Exemple #1
0
def value_widget(default, value, parent):
    d = default.decl
    t = d.py_type
    v = None
    if isinstance(t, enum.EnumMeta):
        widget = QtGui.QComboBox(parent)
        v = ''
        choices = t
        if default.children:
            choices = pkcollections.map_values(
                default.children, lambda x: x.value)
        for e in choices:
            n = rt_qt.i18n_text(e.display_name)
            widget.addItem(n, userData=e.value)
            if len(n) > len(v):
                v = n
        set_widget_value(d, value, widget)
    elif issubclass(t, bool):
        widget = QtGui.QCheckBox(parent)
        v = rt_qt.i18n_text(d.label)
        set_widget_value(d, value, widget)
    else:
        widget = QtGui.QLineEdit(parent)
        v = set_widget_value(d, value, widget)
    return (widget, v)
Exemple #2
0
 def _global_param(name):
     try:
         df = self._controller.defaults[name]
     except KeyError:
         return
     hb = QtGui.QHBoxLayout()
     label = rt_qt.set_id(QtGui.QLabel(param_widget), 'form_field')
     rt_qt.i18n_text(df.decl.label, label)
     hb.addWidget(label, alignment=QtCore.Qt.AlignRight)
     res = rt_popup.value_widget(df, df.value, param_widget)
     hb.addWidget(res[0])
     param_vbox.addLayout(hb)
     self.global_params[name] = res[0]
     return res
Exemple #3
0
 def _add(name, label, desc):
     """Creates a stretchable TextEdit area with label above"""
     vbox = QtGui.QVBoxLayout()
     main.addLayout(vbox, stretch=1)
     qlabel = rt_qt.set_id(QtGui.QLabel(self), 'heading')
     for v in self.global_params.values():
         qlabel.setMinimumHeight(v.sizeHint().height())
     rt_qt.i18n_text(label, qlabel)
     vbox.addWidget(qlabel, alignment=QtCore.Qt.AlignCenter)
     text = QtGui.QTextEdit(self)
     rt_qt.i18n_text(desc, text)
     text.setReadOnly(True)
     vbox.addWidget(text)
     self._result_text[name] = text
Exemple #4
0
def set_widget_value(decl, param, widget):
    """Sets parameter value accordingly on widget

    Args:
        decl (dict): decl for parameter
        param (dict): value
        widget (widget): what to set on

    Returns:
        str: value that was set
    """
    t = decl.py_type
    if isinstance(t, enum.EnumMeta):
        widget.setCurrentIndex(list(t).index(param))
        return rt_qt.i18n_text(param.display_name)
    if issubclass(t, bool):
        widget.setChecked(param)
        # Approximate size of checkbox
        return ' '
    if decl.units:
        l = RbUtility.displayWithUnitsNumber(param, decl.units)
    else:
        l = str(param)
    widget.setText(l)
    return l
Exemple #5
0
 def _models():
     self._wavefront_models = {}
     params = self._controller.params['simulation_kind']
     first_sk = None
     sk_defaults = self._controller.defaults['simulation_kind']
     for sk_name in sk_defaults:
         sk = srw_enums.SimulationKind.from_anything(sk_name)
         wf_defaults = sk_defaults[sk_name]['wavefront']
         if not first_sk:
             first_sk = sk
         m = QtGui.QStandardItemModel(len(wf_defaults), 2);
         p = params[sk_name]['wavefront']
         for (row, n) in enumerate(wf_defaults):
             d = wf_defaults[n]
             item = QtGui.QStandardItem()
             rt_qt.i18n_text(d.decl.label, item)
             m.setItem(row, 0, item)
             item = QtGui.QStandardItem()
             rt_popup.set_widget_value(d.decl, p[d.decl.name], item)
             m.setItem(row, 1, item)
         self._wavefront_models[sk_name] = m
     return self._wavefront_models[first_sk.name.lower()]
Exemple #6
0
 def _label(d):
     qlabel = QtGui.QLabel(self._frame)
     l = rt_qt.i18n_text(d.label, qlabel)
     if len(l) > res['max_label']:
         res['max_label'] = len(l)
     return qlabel
Exemple #7
0
 def __init__(self, defaults, params, file_prefix, parent=None):
     super(Window, self).__init__(parent)
     self.setWindowTitle(rt_qt.i18n_text(defaults.decl.label))
     self.setStyleSheet(pkio.read_text(pkresource.filename(file_prefix + '_popup.css')))
     self._form = Form(defaults, params, self)