Exemplo n.º 1
0
 def __init__(self, parent):
     QDialog.__init__(self, parent)
     loadUi(self, 'panels/fit_arby.ui')
     self.presets = DlgPresets('fit_arby',
                               [(self.function, ''), (self.fitparams, ''),
                                (self.xfrom, ''), (self.xto, '')])
     self.presets.load()
     for name in sorted(ArbitraryFitter.arby_functions):
         QListWidgetItem(name, self.oftenUsed)
Exemplo n.º 2
0
 def __init__(self, parent, client):
     QMainWindow.__init__(self, parent)
     loadUi(self, 'dialogs/helpwin.ui')
     self.history = []
     self.webView = QWebView(self)
     self.webView.setPage(HelpPage(client, self.history, self.webView))
     self.frame.layout().addWidget(self.webView)
     self.client = client
     self._next_scrollpos = None
Exemplo n.º 3
0
    def initUi(self):
        loadUi(self, findResource('nicos_mlz/refsans/gui/resolutionpanel.ui'))

        valid = QDoubleValidator()

        for f in (self.chSpeed, self.phase2, self.phase3, self.phase4,
                  self.phase5, self.phase6):
            f.setValidator(valid)
            f.setReadOnly(True)
Exemplo n.º 4
0
    def __init__(self, parent, connpresets, lastpreset, lastdata, tunnel=''):
        QDialog.__init__(self, parent)
        loadUi(self, 'dialogs/auth.ui')
        self.connpresets = connpresets
        if isinstance(lastpreset, QPyNullVariant):
            lastpreset = None

        pal = self.quickList.palette()
        pal.setColor(QPalette.Window, pal.color(QPalette.Base))
        self.quickList.setPalette(pal)

        if len(connpresets) < 3:
            self.quickList.hide()
        else:
            self.quickList.setStyleSheet('padding: 10px 5px;')
            self.quickList.clear()
            maxw = 64
            icon = QIcon(':/appicon')
            metric = QFontMetrics(self.quickList.font())
            for preset in sorted(connpresets):
                item = QListWidgetItem(preset, self.quickList)
                item.setIcon(icon)
                maxw = max(maxw, metric.width(preset))
            self.quickList.setGridSize(QSize(maxw + 8, 72))
            # the automatic sizing still leads to a vertical scrollbar
            hint = self.quickList.sizeHint()
            hint.setHeight(hint.height() + 50)
            hint.setWidth(max(4.7 * maxw, 330))
            self.quickList.setMinimumSize(hint)
            self.resize(self.sizeHint())

        self.presetOrAddr.addItems(sorted(connpresets))
        self.presetOrAddr.setEditText(lastpreset)
        if not lastpreset and lastdata:
            # if we have no stored last preset connection, put in the raw data
            self.presetOrAddr.setEditText('%s:%s' %
                                          (lastdata.host, lastdata.port))
            self.viewonly.setChecked(lastdata.viewonly)
        self.userName.setText(lastdata.user)
        self.password.setFocus()

        self.viaFrame.setHidden(not tunnel)
        if tunnel:
            host, username, password = splitTunnelString(tunnel)
            self.remotePassword.setText(password)
            if not password:
                self.remotePassword.setFocus()
            self.remoteUserName.setText(username)
            if not username:
                self.remoteUserName.setFocus()
            self.remoteHost.setText(host)
            if not host:
                self.remoteHost.setFocus()

        self.presetFrame.hide()
        self.resize(QSize(self.width(), self.minimumSize().height()))
Exemplo n.º 5
0
 def __init__(self, parent, client, options, frame):
     LokiPanelBase.__init__(self, parent, client, options)
     self.client = client
     self.frame = frame
     loadUi(self.frame, findResource('nicos_ess/loki/gui/'
                                     'ui_files/sample_changers/'
                                     'thermo_cell_holder_settings.ui'))
     self.initialise_validators()
     self.frame.cartridgeSettings.clicked.connect(
         self._active_holder_position_settings)
Exemplo n.º 6
0
 def __init__(self, parent):
     QDialog.__init__(self, parent)
     loadUi(self, findResource('nicos_ess/loki/gui/ui_files/rtconfig.ui'))
     self.progBox.setValidator(DoubleValidator(self))
     self.chanBox.valueChanged.connect(self._update_time)
     self.intervalBox.valueChanged.connect(self._update_time)
     self.intervalUnitBox.currentIndexChanged.connect(self._update_time)
     self.linBtn.toggled.connect(self._update_time)
     self.progBtn.toggled.connect(self._update_time)
     self.progBox.textChanged.connect(self._update_time)
Exemplo n.º 7
0
 def __init__(self, parent, client, options):
     Panel.__init__(self, parent, client, options)
     loadUi(self, self.uiName)
     for ch in self.findChildren(NicosWidget):
         ch.setClient(self.client)
     if self.client.viewonly:
         self.buttonBox.setStandardButtons(QDialogButtonBox.Close)
     else:
         self.buttonBox.setStandardButtons(QDialogButtonBox.Apply
                                           | QDialogButtonBox.Close)
Exemplo n.º 8
0
    def __init__(self, parent, client, devs):
        self.client = client
        self.devs = devs
        QWidget.__init__(self, parent)
        loadUi(self, findResource('nicos_mlz/kws1/gui/devices_one.ui'))

        self.table.setColumnCount(len(devs))
        self.table.setHorizontalHeaderLabels(devs)
        self._edit = None
        self._rows = []
Exemplo n.º 9
0
    def __init__(self, parent, client, options):
        Panel.__init__(self, parent, client, options)
        loadUi(self, 'panels/commandline.ui')

        self.commandInput.history = self.cmdhistory
        self.commandInput.completion_callback = self.completeInput

        client.initstatus.connect(self.on_client_initstatus)
        client.mode.connect(self.on_client_mode)
        client.experiment.connect(self.on_client_experiment)
Exemplo n.º 10
0
    def __init__(self, parent, _client, **_kwds):
        QMainWindow.__init__(self, parent)
        DlgUtils.__init__(self, 'Hexapod')

        # set during actions that will call signal handlers
        self.recursive = False

        loadUi(self, findResource('nicos_mlz/kws1/gui/tools/hexapod.ui'))

        for but in (self.butStart, self.butSetWorkspace, self.butSetFrame,
                    self.butSaveVel):
            but.setEnabled(False)

        self.axes = {}
        self.axeslist = []

        try:
            self._controller = PyTango.DeviceProxy(TANGO_DEV_BASE +
                                                   'controller')
            # make sure the server is running and create remaining proxies
            try:
                self._controller.State()
            except AttributeError:
                raise Exception('server appears to be not running')
            for axis in AXES:
                self.axes[axis] = PyTango.DeviceProxy(TANGO_DEV_BASE + axis)
                self.axeslist.append(self.axes[axis])
        except Exception as err:
            self.showError('could not connect to tango server: %s' % err)
            self.deleteLater()
            return

        self.on_cbsWorkspace_activated(0)
        self.on_cbsFrame_activated(self.cbsFrame.currentText())

        tx_speed = self.query_attr(self.axes['tx'], 'speed')
        self.inpVelTrans.setValue(tx_speed)
        self.lblVelTrans.setText(self.inpVelTrans.text())
        self.inpVelRot.setValue(self.query_attr(self.axes['rx'], 'speed'))
        self.lblVelRot.setText(self.inpVelRot.text())
        self.inpVelOmega.setValue(self.query_attr(self.axes['omega'], 'speed'))
        self.lblVelOmega.setText(self.inpVelOmega.text())

        # ramp time = speed / acceleration
        self.inpRampUp.setValue(tx_speed /
                                self.query_attr(self.axes['tx'], 'accel'))
        self.lblRampUp.setText(self.inpRampUp.text())
        self.inpRampDown.setValue(tx_speed /
                                  self.query_attr(self.axes['tx'], 'decel'))
        self.lblRampDown.setText(self.inpRampDown.text())

        self.updTimer = QTimer()
        self.updTimer.timeout.connect(self.updateTimer)
        self.updTimer.start(1000)
Exemplo n.º 11
0
    def __init__(self, parent, client, **settings):
        QDialog.__init__(self, parent)
        loadUi(self, 'tools/website.ui')
        self.webView = QWebView(self)
        self.layout().addWidget(self.webView)

        site = settings.get('url', '')
        if site:
            self.webView.load(QUrl(site))

        self.closeBtn.clicked.connect(self.close)
Exemplo n.º 12
0
 def __init__(self, parent, client, options):
     Panel.__init__(self, parent, client, options)
     self._error_window = None
     if 'uifile' not in options:
         raise ConfigurationError('GenericPanels require at least an'
                                  ' `uifile` option.')
     loadUi(self, findResource(options['uifile']))
     if options.get('showmsg'):
         self.client.message.connect(self.on_client_message)
     if client.isconnected:
         self.on_client_connected()
     client.connected.connect(self.on_client_connected)
Exemplo n.º 13
0
    def __init__(self, parent, client, options):
        Panel.__init__(self, parent, client, options)
        loadUi(self, self.ui)
        self._finish_exp_panel = None

        # Additional dialog panel to pop up after FinishExperiment().
        self._finish_exp_panel = options.get('finish_exp_panel')

        self.finishButton.setEnabled(False)
        client.connected.connect(self.on_client_connected)
        client.disconnected.connect(self.on_client_disconnected)
        client.experiment.connect(self.on_experiment_changed)
Exemplo n.º 14
0
    def __init__(self, parent, client, options):
        Panel.__init__(self, parent, client, options)

        self._logPath = 'log'

        loadUi(self, 'panels/logviewer.ui')

        # initialize date/time range to display logs from yesterday
        # (same time) to now
        self.dateTimeEditFrom.setDateTime(
            QDateTime.currentDateTime().addDays(-1))
        self.dateTimeEditTo.setDateTime(QDateTime.currentDateTime())
Exemplo n.º 15
0
    def __init__(self, parent, panel, client):
        self.client = client
        QWidget.__init__(self, parent)
        loadUi(self, 'panels/simresult.ui')
        self.simOutStack.setCurrentIndex(0)
        hdr = self.simRanges.header()
        hdr.setSectionResizeMode(QHeaderView.ResizeToContents)

        self.panel = panel
        self.simuuid = None
        client.simmessage.connect(self.on_client_simmessage)
        client.simresult.connect(self.on_client_simresult)
Exemplo n.º 16
0
    def __init__(self, parent, client, options):
        Panel.__init__(self, parent, client, options)
        loadUi(self, 'panels/errpanel.ui')
        self.outView.setFullTimestamps(True)

        self.buttonBox.addButton('Clear', QDialogButtonBox.ResetRole)

        if client.isconnected:
            self.on_client_connected()
        client.connected.connect(self.on_client_connected)
        client.message.connect(self.on_client_message)
        client.experiment.connect(self.on_client_experiment)
Exemplo n.º 17
0
    def __init__(self, parent, client, options):
        Panel.__init__(self, parent, client, options)
        loadUi(self, findResource('nicos_mlz/pgaa/gui/panels/tomography.ui'))

        self.current_status = None
        self.run_color = QColor('#ffdddd')
        self.idle_color = parent.user_color

        client.connected.connect(self.on_client_connected)
        client.message.connect(self.on_client_message)
        client.status.connect(self.on_client_initstatus)
        client.mode.connect(self.on_client_mode)
Exemplo n.º 18
0
    def __init__(self, parent, client, options):
        Panel.__init__(self, parent, client, options)
        loadUi(self, findResource('nicos_mlz/gui/plcpanel.ui'))
        self._curdev = None
        self._changed_pars = {}
        self._in_reread = False

        if client.isconnected:
            self.on_client_connected()
        client.connected.connect(self.on_client_connected)
        client.device.connect(self.on_client_device)

        self.controlBox.setEnabled(False)
Exemplo n.º 19
0
    def __init__(self, parent, client, options):
        Panel.__init__(self, parent, client, options)
        loadUi(self, findResource('nicos_mlz/toftof/gui/safety.ui'))

        self.table.horizontalHeader().restoreState(self._headerstate)
        self.clear()

        if client.isconnected:
            self.on_client_connected()
        client.connected.connect(self.on_client_connected)
        client.setup.connect(self.on_client_connected)
        client.disconnected.connect(self.on_client_disconnected)
        client.cache.connect(self.on_client_cache)
Exemplo n.º 20
0
    def __init__(self, parent, client, options):
        Panel.__init__(self, parent, client, options)
        loadUi(self, findResource('nicos_mlz/mira/gui/live.ui'))

        self._format = None
        self._runtime = 0
        self._no_direct_display = False
        self._range_active = False

        self.statusBar = QStatusBar(self)
        policy = self.statusBar.sizePolicy()
        policy.setVerticalPolicy(QSizePolicy.Fixed)
        self.statusBar.setSizePolicy(policy)
        self.statusBar.setSizeGripEnabled(False)
        self.layout().addWidget(self.statusBar)

        if CascadeWidget:
            self.widget = CascadeWidget(self)
            self.widget.setContextMenuPolicy(Qt.CustomContextMenu)
            self.widgetLayout.addWidget(self.widget)
        else:
            raise RuntimeError('The Cascade live widget is not available')

        self.rangeFrom = QDoubleSpinBox(self)
        self.rangeTo = QDoubleSpinBox(self)
        for ctrl in [self.rangeFrom, self.rangeTo]:
            ctrl.setRange(0, 100000000)
            ctrl.setEnabled(False)
            ctrl.setMaximumWidth(90)
            ctrl.setSizePolicy(
                QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed))
            ctrl.valueChanged.connect(self.on_rangeChanged)

        self.liveitem = QListWidgetItem('<Live>', self.fileList)
        self.liveitem.setData(32, '')
        self.liveitem.setData(33, '')

        self.splitter.setSizes([20, 80])
        self.splitter.restoreState(self.splitterstate)

        client.livedata.connect(self.on_client_livedata)
        client.liveparams.connect(self.on_client_liveparams)
        if client.isconnected:
            self.on_client_connected()
        client.connected.connect(self.on_client_connected)
        client.setup.connect(self.on_client_connected)

        self.actionLogScale.toggled.connect(self.widget.SetLog10)
        self.actionSelectChannels.triggered.connect(self.widget.showSumDlg)
        self.widget.customContextMenuRequested.connect(
            self.on_widget_customContextMenuRequested)
Exemplo n.º 21
0
    def __init__(self, name='unknown', parent=None, **kwds):
        QWidget.__init__(self, parent)
        loadUi(self,
               findResource('nicos_mlz/reseda/gui/mieze_display_foil.ui'))
        # set name
        self.name = name
        self.groupBox.setTitle(name)

        # insert plot widget + store reference
        self.plotwidget = MiniPlot(self)
        self.plotwidget.setSizePolicy(QSizePolicy.MinimumExpanding,
                                      QSizePolicy.MinimumExpanding)
        self.verticalLayout.insertWidget(0, self.plotwidget)
        self.do_update([(0, 0, 0, 0), (0, 0, 0, 0), [0] * 16] * 2)
Exemplo n.º 22
0
    def __init__(self, parent, client, options):
        Panel.__init__(self, parent, client, options)
        loadUi(self, findResource('nicos_mlz/gui/tunewavetable.ui'))

        self._dev = options.get('tabledev')
        measuremode = options.get('measuremode', 'nrse')
        if measuremode not in ['nrse', 'mieze']:
            measuremode = 'nrse'
        for i in range(self.measModeComboBox.count()):
            if measuremode == self.measModeComboBox.itemText(i):
                self.measModeComboBox.setCurrentIndex(i)
                break
        # access to the echotime device
        if not self._dev:
            raise ConfigurationError('TuneWaveTable panel: At least `tabledev`'
                                     ' is required.')

        self._header_labels = []
        self._available_tables = {}
        self._edit = None
        self._blocked_while_edit = [
            self.measModeComboBox, self.wavelengthComboBox,
            self.restorePushButton, self.savePushButton,
            self.refreshPushButton, self.deletePushButton
        ]

        self.tableWidget.installEventFilter(self)

        self.tableWidget.verticalHeader().setContextMenuPolicy(
            Qt.CustomContextMenu)

        self.measModeComboBox.currentIndexChanged.connect(self._fill_table)
        self.measModeComboBox.currentIndexChanged.connect(
            self._update_combo_boxes)
        self.wavelengthComboBox.currentIndexChanged.connect(self._fill_table)
        self.savePushButton.clicked.connect(self._save_current_table)
        self.refreshPushButton.clicked.connect(self._update_available_tables)
        self.tableWidget.verticalHeader()\
            .customContextMenuRequested.connect(
            self.on_tableWidget_customContextMenuRequested)
        self.tableWidget.cellActivated.connect(self._edit_cell)
        self.tableWidget.verticalHeader().sectionClicked.connect(
            self._stop_edit)
        self.tableWidget.horizontalHeader().sectionPressed.connect(
            self._stop_edit)
        self.tableWidget.setAlternatingRowColors(True)

        client.connected.connect(self.on_client_connected)
        client.device.connect(self.on_client_device)
        self._dev_available = False
Exemplo n.º 23
0
    def __init__(self, parent, view, tb):
        QDialog.__init__(self, parent)
        loadUi(self, 'dialogs/traceback.ui')
        self.tb = tb
        self.view = view
        self.client = parent.client

        assert tb.startswith('Traceback')
        # split into frames and message
        frames = []
        message = ''
        curframe = []
        for line in tb.splitlines():
            if line.startswith('        '):
                try:
                    name, v = line.split('=', 1)
                except ValueError:
                    pass  # most probably the "^" line of a SyntaxError
                else:
                    if curframe:
                        curframe[2][name.strip()] = v.strip()
            elif line.startswith('    '):
                if curframe:
                    curframe[1] = line.strip()
            elif line.startswith('  '):
                curframe = [line.strip(), '', {}]
                frames.append(curframe)
            elif not line.startswith('Traceback'):
                message += line

        button = QPushButton('To clipboard', self)
        self.buttonBox.addButton(button, QDialogButtonBox.ActionRole)

        def copy():
            QApplication.clipboard().setText(tb+'\n', QClipboard.Selection)
            QApplication.clipboard().setText(tb+'\n', QClipboard.Clipboard)
        button.clicked.connect(copy)

        self.message.setText(message[:200])
        self.tree.setFont(view.font())
        boldfont = QFont(view.font())
        boldfont.setBold(True)
        for filename, line, bindings in frames:
            item = QTreeWidgetItem(self.tree, [filename])
            item.setFirstColumnSpanned(True)
            item = QTreeWidgetItem(self.tree, [line])
            item.setFirstColumnSpanned(True)
            item.setFont(0, boldfont)
            for var, value in iteritems(bindings):
                QTreeWidgetItem(item, ['', var, value])
Exemplo n.º 24
0
    def __init__(self, parent, client, **settings):
        QDialog.__init__(self, parent)
        loadUi(self, 'tools/calculator.ui')

        self.closeBtn.clicked.connect(self.doclose)

        self.braggfmlLabel.setPixmap(QPixmap(
            path.join(path.dirname(__file__), 'calculator_images',
                      'braggfml.png')))
        for fld in bragg_fields:
            getattr(self, 'chk' + fld).toggled.connect(self.gen_checked(fld))

        self._miezesettings = settings.get('mieze', [])
        if not self._miezesettings:
            self.tabWidget.removeTab(1)
        else:
            self.mzwavelengthInput.textChanged.connect(self.mzcalc)
            self.mzdistanceInput.textChanged.connect(self.mzcalc)
            self.mzformulaLabel.setPixmap(QPixmap(
                path.join(path.dirname(__file__), 'calculator_images',
                          'miezefml.png')))

            self.mztimeTable.setHeaderLabels(['Setting', u'MIEZE time τ'])
            for setting in self._miezesettings:
                self.mztimeTable.addTopLevelItem(QTreeWidgetItem([setting, '']))

        for fld in neutron_fields:
            getattr(self, 'prop' + fld).textEdited.connect(self.n_calc)

        self.presets = DlgPresets('nicoscalctool', [
            (self.tabWidget, 0),
            (self.mzwavelengthInput, '10'), (self.mzdistanceInput, '100'),
            (self.inputLambda, '4.5'), (self.input2Theta, '0'),
            (self.inputD, '10'), (self.inputN, '1'), (self.inputQ, '0'),
            (self.chkLambda, 1), (self.chk2Theta, 0), (self.chkN, 1),
            (self.chkD, 1), (self.chkQ, 0), (self.chkSampleDet, 1),
            (self.inputSampleDet, '0'),
            (self.propL, '1.8'), (self.propK, '3.4907'),
            (self.propE, '25.2482'), (self.propNy, '6.1050'),
            (self.propT, '292.9934'), (self.propV, '2197.80'),
        ])
        self.presets.load()
        self.braggcalc()
        self.n_calc('')

        dblval = DoubleValidator(self)
        for fld in bragg_fields:
            inputbox = getattr(self, 'input'+fld)
            inputbox.textChanged.connect(self.braggcalc)
            inputbox.setValidator(dblval)
Exemplo n.º 25
0
    def __init__(self, parent, info=None, client=None):
        QDialog.__init__(self, parent)
        DlgUtils.__init__(self, 'History viewer')
        loadUi(self, 'panels/history_new.ui')
        self.client = client

        self.fromdate.setDateTime(QDateTime.currentDateTime())
        self.todate.setDateTime(QDateTime.currentDateTime())

        self.customY.toggled.connect(self.toggleCustomY)
        self.toggleCustomY(False)

        self.simpleTime.toggled.connect(self.toggleSimpleExt)
        self.extTime.toggled.connect(self.toggleSimpleExt)
        self.frombox.toggled.connect(self.toggleSimpleExt)
        self.tobox.toggled.connect(self.toggleSimpleExt)
        self.toggleSimpleExt(True)

        self.simpleTimeSpec.textChanged.connect(self.setIntervalFromSimple)

        self.helpButton.clicked.connect(self.showDeviceHelp)
        self.simpleHelpButton.clicked.connect(self.showSimpleHelp)

        self.devicesFrame.hide()
        self.deviceTree = None
        self.deviceTreeSel = OrderedDict()
        if not client:
            self.devicesExpandBtn.hide()
        else:
            devices = client.getDeviceList()
            devcompleter = QCompleter(devices, self)
            devcompleter.setCompletionMode(QCompleter.InlineCompletion)
            self.devices.setCompleter(devcompleter)

        if info is not None:
            self.devices.setText(info['devices'])
            self.namebox.setText(info['name'])
            self.simpleTime.setChecked(info['simpleTime'])
            self.simpleTimeSpec.setText(info['simpleTimeSpec'])
            self.slidingWindow.setChecked(info['slidingWindow'])
            self.extTime.setChecked(not info['simpleTime'])
            self.frombox.setChecked(info['frombox'])
            self.tobox.setChecked(info['tobox'])
            self.fromdate.setDateTime(QDateTime.fromTime_t(info['fromdate']))
            self.todate.setDateTime(QDateTime.fromTime_t(info['todate']))
            self.interval.setText(info['interval'])
            self.customY.setChecked(info['customY'])
            self.customYFrom.setText(info['customYFrom'])
            self.customYTo.setText(info['customYTo'])
Exemplo n.º 26
0
 def __init__(self, parent, client, options):
     Panel.__init__(self, parent, client, options)
     loadUi(self, findResource('nicos_mlz/reseda/gui/mieze_display.ui'))
     self.mywidgets = []
     self.foils = options.get('foils', [7, 6, 5, 0, 1, 2])
     self.columns = options.get('columns', 3)
     self.rows = options.get('rows', 2)
     for foil, x, y in zip(
             self.foils, self.rows * list(range(self.columns)),
             sum([self.columns * [i] for i in range(self.rows)], [])):
         foilwidget = FoilWidget(name='Foil %d' % foil, parent=self)
         self.mywidgets.append(foilwidget)
         self.gridLayout.addWidget(foilwidget, y, x)
     self.client.cache.connect(self.on_client_cache)
     self.client.connected.connect(self.on_client_connected)
Exemplo n.º 27
0
    def initUi(self):
        with waitCursor():
            loadUi(self,
                   findResource('nicos_mlz/toftof/gui/resolutionpanel.ui'))

            valid = QDoubleValidator()

            for f in (self.E_neutron, self.Q0_min, self.Q0_max, self.dE_max,
                      self.dE_el):
                f.setValidator(valid)
                f.setReadOnly(True)

            self.plot1 = DynamicRangePlot(self.drPlot)
            self.plot2 = ElasticResolutionPlot(self.erPlot)
            self.plot3 = ResolutionPlot(self.rPlot)
Exemplo n.º 28
0
    def __init__(self, parent, client, options):
        Panel.__init__(self, parent, client, options)
        loadUi(self, self.ui)
        self.propdbInfo.setVisible(False)
        self._orig_proposal = None
        self._new_exp_panel = None
        self._finish_exp_panel = None

        # Additional dialog panels to pop up after NewExperiment() and before
        # FinishExperiment() respectively.
        self._new_exp_panel = options.get('new_exp_panel')
        self._finish_exp_panel = options.get('finish_exp_panel')

        client.connected.connect(self.on_client_connected)
        client.setup.connect(self.on_client_connected)
        client.experiment.connect(self.on_client_experiment)
Exemplo n.º 29
0
    def __init__(self, parent, client):
        QDialog.__init__(self, parent)
        self.client = client
        loadUi(self, findResource('nicos_ess/loki/gui/'
                                  'ui_files/sample_changers/'
                                  'thermo_cell_holder_positions.ui'))
        self.initialise_markups()
        for table in self._get_all_tables():
            table.setItemDelegate(TableDelegate())

        self._disable_all_positions_but_first()

        self.dialogButtonBox.rejected.connect(self.reject)
        self.dialogButtonBox.accepted.connect(self.accept)

        self.initialise_dialog_tables()
Exemplo n.º 30
0
    def __init__(self, parent, client, options):
        Panel.__init__(self, parent, client, options)
        loadUi(self, findResource('nicos_mlz/pgaa/gui/panels/pgai.ui'))
        w = self.widget.widget
        self.pointAdded.connect(w.pointAdded)
        self.pointTable.cellActivated.connect(w.positionActivated)
        self.pointTable.cellClicked.connect(w.positionActivated)
        self.pointTable.cellEntered.connect(w.positionActivated)
        self.pointTable.cellPressed.connect(w.positionActivated)
        self.pointTable.verticalHeader().sectionClicked.connect(
            lambda row: w.positionActivated(row, 0))
        self.newPointButton.clicked.connect(self.newPoint)
        self.buttonBox.button(QDialogButtonBox.SaveAll).setText('Run')
        self.pointTable.itemChanged.connect(self.modifyPoint)
        self.pointModified.connect(w.pointModified)
        self.pointTable.setItemDelegate(PositionDelegate())
        self.pointTable.pointRemove.connect(w.pointRemove)
        self.buttonBox.accepted.connect(self.runScript)
        self.pointTable.valueChanged.connect(self.cellValueModified)
        self.sampleShape.currentIndexChanged[str].connect(w.sampleShapeChanged)
        self.sampleShape.currentIndexChanged[str].connect(
            self.sampleShapeChanged)
        self.dimValue1.valueChanged.connect(w.dim1Changed)
        self.dimValue2.valueChanged.connect(w.dim2Changed)
        self.dimValue3.valueChanged.connect(w.dim3Changed)

        self.dimValue1.valueChanged.connect(self.sampleSizeChanged)
        self.dimValue2.valueChanged.connect(self.sampleSizeChanged)
        self.dimValue3.valueChanged.connect(self.sampleSizeChanged)

        self.volumeSize.valueChanged.connect(self.sampleSizeChanged)
        self.volumeSize.valueChanged.connect(w.cubeSizeChanged)
        self.volumeDistance.valueChanged.connect(self.sampleSizeChanged)
        self.pointTable.horizontalHeader().sectionClicked.connect(
            self.sortOrderChanged)

        w.dim1Changed(self.dimValue1.value())
        w.dim2Changed(self.dimValue2.value())
        w.dim3Changed(self.dimValue3.value())

        self.fileName.hide()
        self.fileNameSelect.hide()
        self.fileName.editingFinished.connect(self.loadPointsFromFile)
        self.fileNameSelect.clicked.connect(self.selectFileName)

        self.sampleShapeChanged(self.sampleShape.currentText())