Example #1
0
 def __init__(self, parent=None):
     QDialog.__init__(self, parent)
     uic.loadUi(path.abspath(path.join(path.dirname(__file__),
                                       '..',
                                       'ui',
                                       'dialogs',
                                       'addsysconfigdialog.ui')), self)
Example #2
0
 def __init__(self, parent=None):
     QWidget.__init__(self, parent)
     uic.loadUi(
         path.join(path.dirname(path.abspath(__file__)), 'ui',
                   'devicewidget.ui'), self)
     self.parameters = {}
     self.pushButtonAdd.clicked.connect(self.addParameter)
Example #3
0
    def __init__(self, client, ldevname):
        # pylint: disable=super-with-arguments
        super(Window, self).__init__()
        parent = Path(__file__).resolve().parent
        uipath = parent.joinpath('roieditor.ui')
        uic.loadUi(uipath, self)
        self.client = client
        self.ldevname = ldevname
        params = self.client.getDeviceParams(ldevname)
        self.backgroundimage = params['backgroundimage']

        self.image = None
        self.bZoom.setChecked(True)
        self.filter1.setChecked(True)
        self.zoom = self.bZoom.isChecked()
        self.noredrawblack = False
        # pylint: disable=invalid-name
        self.tf = QTextCharFormat()
        self.polylist = []
        self.polylistindex = len(self.polylist)
        self.RoicomboBox.insertItem(0, "add")
        self.writeWKT.setEnabled(False)
        self.editRoiBtn.setEnabled(False)
        self.addPolygon()
        self.RoicomboBox.currentIndexChanged.connect(
            self.on_roi_active_changed)
        self.ineditroi = False
        self.editRoiBtn.clicked.connect(self.on_editRoiBtn_clicked)
        self.wktText.textChanged.connect(self.on_wktText_textchanged)
        self.on_readWKT_clicked()

        self.on_pollData()
Example #4
0
 def __init__(self, setups, typ, parent=None):
     QDialog.__init__(self, parent)
     uic.loadUi(
         path.abspath(
             path.join(path.dirname(__file__), '..', 'ui', 'dialogs',
                       'addxcludedialog.ui')), self)
     self.setWindowTitle('New %s ... ' % typ)
     self.labelHeader.setText('Add new %s:' % typ)
     for setup in setups:
         QListWidgetItem(setup, self.listWidgetSetups)
Example #5
0
 def __init__(self, instruments, instrument=None, parent=None):
     QDialog.__init__(self, parent)
     uic.loadUi(
         path.abspath(
             path.join(path.dirname(__file__), '..', 'ui', 'dialogs',
                       'newsetupdialog.ui')), self)
     self.setInstruments(instruments)
     if instrument:
         self.setCurrentInstrument(instrument)
         self.comboBoxInstrument.setDisabled(True)
     self.lineEditFileName.setValidator(
         QRegExpValidator(QRegExp('[A-Za-z_]{1}[A-Za-z0-9_]*')))
Example #6
0
    def __init__(self, parent=None):
        QMainWindow.__init__(self, parent)
        uic.loadUi(
            path.join(path.dirname(path.abspath(__file__)), 'ui',
                      'mainwindow.ui'), self)

        logging.basicConfig()
        self.log = logging.getLogger()

        setupcontroller.init(self.log)
        classparser.init(self.log)

        # dictionary of absolute path to a setup - setupWidget
        self.setupWidgets = {}
        # dictionary of absolute path to setup - dict
        # which is deviceName - deviceWidget
        self.deviceWidgets = {}

        self.labelHeader = QLabel('Select Setup or device...')
        self.labelHeader.setAlignment(Qt.AlignCenter)

        # signal/slot connections
        self.treeWidget.itemActivated.connect(self.loadSelection)
        self.treeWidget.deviceRemoved.connect(self.deviceRemovedSlot)
        self.treeWidget.deviceAdded.connect(self.deviceAddedSlot)
        self.treeWidget.newDeviceAdded.connect(self.newDeviceAddedSlot)

        # setup the menu bar
        self.actionNewFile.triggered.connect(self.treeWidget.newSetup)
        self.actionSave.triggered.connect(self.actionSaveSlot)
        self.actionSaveAs.triggered.connect(self.actionSaveAsSlot)
        self.actionExit.triggered.connect(self.close)
        self.instrumentMenu = self.menuView.addMenu('Instrument')
        self.actionShowAllInstrument = self.menuView.addAction(
            'Show all instruments')
        self.actionShowAllInstrument.triggered.connect(
            self.treeWidget.setAllInstrumentsVisible)
        self.menuView.addAction(self.dockWidget.toggleViewAction())
        self.dockWidget.toggleViewAction().setText('Show Tree')
        self.actionAboutSetupFileTool.triggered.connect(
            self.aboutSetupFileTool)
        self.actionAboutQt.triggered.connect(QApplication.aboutQt)

        self.workarea.addWidget(self.labelHeader)

        self.treeWidget.loadNicosData()
        for directory in sorted(setupcontroller.setup_directories):
            instrumentAction = self.instrumentMenu.addAction(directory)
            instrumentAction.triggered.connect(
                self.treeWidget.setInstrumentMode)
        if config.instrument and config.instrument not in ('jcns', 'demo'):
            self.treeWidget.setSingleInstrument(config.instrument)
    def __init__(self, client, ldevname):
        super(Window, self).__init__()
        parent = Path(__file__).resolve().parent
        uipath = parent.joinpath('imagecompare.ui')
        uic.loadUi(uipath, self)
        self.client = client
        params = self.client.getDeviceParams(ldevname)
        self.ldevname = [ldevname, params['compare2']]
        self.image = [None, None]
        self.frame = [self.image_frame, self.compare2_frame]
        self.mat = [None, None]

        self.on_pollData()
 def __init__(self, client, ldevname):
     super(Window, self).__init__()
     parent = Path(__file__).resolve().parent
     uipath = parent.joinpath('playlisteditor.ui')
     uic.loadUi(uipath, self)
     self.client = client
     self.ldevname = ldevname
     params = self.client.getDeviceParams(ldevname)
     self.playlist.clicked.connect(self.playlist_clicked)
     self.pbutton_remove.clicked.connect(self.remove_clicked)
     self.pbutton_add.clicked.connect(self.add_clicked)
     self.pbutton_add_directory.clicked.connect(self.add_directory_clicked)
     self.lineEdit.clear()
     self.add_clicked()
Example #9
0
    def __init__(self, setup, availablesetups, parent=None):
        QWidget.__init__(self, parent)
        uic.loadUi(path.join(path.dirname(path.abspath(__file__)),
                             'ui', 'setupwidget.ui'), self)

        # keys taken from nicos_demo/skeleton/setups/system.py
        self.sysconfigKeys = ['cache',
                              'instrument',
                              'experiment',
                              'datasinks',
                              'notifiers']

        self.lineEditDescription.textEdited.connect(self.editedSetup.emit)
        self.treeWidgetSysconfig.editedSetup.connect(self.editedSetup.emit)
        self.comboBoxGroup.activated.connect(self.editedSetup.emit)

        self.lineEditDescription.setText(setup.description)
        self.comboBoxGroup.setCurrentIndex(
            self.comboBoxGroup.findText(setup.group))
        for includeItem in setup.includes:
            self.listWidgetIncludes.addItem(includeItem)
        for excludeItem in setup.excludes:
            self.listWidgetExcludes.addItem(excludeItem)
        for moduleItem in setup.modules:
            self.listWidgetModules.addItem(moduleItem)

        topLevelItems = []
        for key in self.sysconfigKeys:
            if key in setup.sysconfig:
                topLevelItems.append(QTreeWidgetItem([key]))
        self.treeWidgetSysconfig.addTopLevelItems(topLevelItems)

        for item in topLevelItems:
            if isinstance(setup.sysconfig[item.text(0)], list):
                for listItem in setup.sysconfig[item.text(0)]:
                    item.addChild(QTreeWidgetItem([listItem]))
            else:
                item.addChild(QTreeWidgetItem(
                    [setup.sysconfig[item.text(0)]]))

        if self.treeWidgetSysconfig.topLevelItemCount() == len(
                self.sysconfigKeys):  # can't add any unknown keys
            self.pushButtonAddSysconfig.setEnabled(False)
        else:
            self.pushButtonAddSysconfig.setEnabled(True)
        self.textEditStartupCode.blockSignals(True)
        self.textEditStartupCode.setPlainText(setup.startupcode[1:-1])
        self.textEditStartupCode.blockSignals(False)
        self.availablesetups = availablesetups
Example #10
0
    def __init__(self, cacheclient, parent=None):
        QMainWindow.__init__(self)
        self.client = cacheclient
        self._treeitems = {}
        uic.loadUi(join(path.dirname(path.abspath(__file__)), 'ui',
                        'mainwindow.ui'), self)
        self.watcherWindow = WatcherWindow(self)
        self.setupEvents()
        self.ipAddress = '127.0.0.1'
        self.port = 14869
        self.showTimeStamp = True
        self.showTTL = True

        setBackgroundColor(self.labelDemoTTL, ttlColor)
        setBackgroundColor(self.labelDemoExpired, expiredColor)
Example #11
0
 def __init__(self, parent, client, uifile):
     QWidget.__init__(self, parent)
     new_layout = QHBoxLayout()
     self.subwidget = QWidget(self)
     if uifile:
         uic.loadUi(uifile, self.subwidget)
     self.button = QToolButton(self)
     self.setButton('+')
     self.button.clicked.connect(self.on_button_click)
     new_layout.addWidget(self.subwidget)
     new_layout.addSpacerItem(QSpacerItem(15, 1, QSizePolicy.Fixed))
     new_layout.addWidget(self.button)
     new_layout.setContentsMargins(0, 0, 0, 0)
     self.setLayout(new_layout)
     for ch in self.subwidget.findChildren(NicosWidget):
         ch.setClient(client)
Example #12
0
 def __init__(self, param, valueWidget, isUnknownValue=False, parent=None):
     QWidget.__init__(self, parent)
     uic.loadUi(
         path.abspath(
             path.join(path.dirname(__file__), 'ui', 'deviceparam.ui')),
         self)
     self.placeholder.setVisible(False)
     self.param = param
     self.valueWidget = valueWidget
     self.isUnknownValue = isUnknownValue
     self.pushButtonRemove.clicked.connect(
         lambda: self.clickedRemoveButton.emit(self.param))
     self.labelParam.setText(self.param + ':')
     self.horizontalLayout.addWidget(self.valueWidget)
     self.valueWidget.valueModified.connect(self.editedParam)
     self.valueWidget.valueChosen.connect(lambda _: self.editedParam.emit())
Example #13
0
 def __init__(self, parameters, existingParameters, parent=None):
     QDialog.__init__(self, parent)
     uic.loadUi(
         path.abspath(
             path.join(path.dirname(__file__), '..', 'ui', 'dialogs',
                       'addparameterdialog.ui')), self)
     self.lineEditCustomParameter.setHidden(True)
     missingParameters = [
         key for key in parameters.keys()
         if key not in existingParameters.keys() and not key.startswith('_')
     ]
     if missingParameters:
         for key in sorted(missingParameters):
             listItem = QListWidgetItem(key, self.listWidgetSelectParameter)
             listItem.setToolTip(parameters[key].description)
             self.listWidgetSelectParameter.addItem(listItem)
     else:
         self.checkBoxCustomParameter.setChecked(True)
         self.checkBoxCustomParameter.setEnabled(False)
         self.lineEditCustomParameter.setEnabled(True)
Example #14
0
    def __init__(self, parent=None):
        QMainWindow.__init__(self, parent)
        uic.loadUi(
            path.join(path.dirname(path.abspath(__file__)), 'ui',
                      'mainwindow.ui'), self)

        self.className = ''  # name of the devices class in auth tuple
        self.group = ''  # name of the group defined in the setup file
        self.description = ''  # name of the description in the setup file
        self.authDict = {}  # dictionary containing info in auth tuple
        self.users = {}  # dict to store users while working

        self.actionLoad.triggered.connect(self.loadFile)
        self.actionSave.triggered.connect(self.save)
        self.actionPrintUsers.triggered.connect(self.debugUsers)
        self.actionShowDebug.triggered.connect(self.toggleDebug)

        self.menuBar.clear()
        self.menuBar.addMenu(self.menuFile)
        self.menuBar.addMenu(self.menuEdit)

        self.userList.currentItemChanged.connect(self.changeUser)
        self.pushButtonAddUser.clicked.connect(self.addUser)
        self.pushButtonDeleteUser.clicked.connect(self.deleteUser)
        self.pushButtonSaveConfig.clicked.connect(self.setConfig)
        self.pushButtonSaveUser.clicked.connect(self.setUserData)

        self.comboBoxHashing.activated.connect(self.changedConfig)
        self.lineEditUserName.textEdited.connect(self.changedUser)
        self.lineEditPassword.textEdited.connect(self.changedUser)
        self.comboBoxUserLevel.activated.connect(self.changedUser)

        # Initialize a logger required by setups.readSetup()
        self.log = logging.getLogger()
        self.setuppath = path.join(path.abspath('.'), 'nicos_mlz',
                                   config.instrument, 'setups', 'special',
                                   'daemon.py')
        self.setup = None
        self.readSetupFile(self.setuppath)
Example #15
0
    def __init__(self, classesList, parent=None):
        QDialog.__init__(self, parent)
        uic.loadUi(
            path.abspath(
                path.join(path.dirname(__file__), '..', 'ui', 'dialogs',
                          'newdevicedialog.ui')), self)
        self.menu = QMenu('Select class')
        self.pushButtonSelectClass.setMenu(self.menu)
        for _class in sorted([str(__class)[14:-2] for __class in classesList]):
            self.recursiveMenu(_class, self.menu)

        self.menuCustom = QMenu('Select class')
        for _class in sorted([
                str(__class)[14:-2]
                for __class in classparser.getDeviceClasses(None)
        ]):
            self.recursiveMenu(_class, self.menuCustom)

        self.checkBoxCustomClasses.stateChanged.connect(
            self.stateChangedHandler)

        self.lineEditDeviceName.setValidator(
            QRegExpValidator(QRegExp('[A-Za-z0-9_]*')))
Example #16
0
 def __init__(self, parent=None):
     QDialog.__init__(self, parent)
     uic.loadUi(path.join(path.dirname(path.abspath(__file__)), 'ui',
                          'connect.ui'), self)
Example #17
0
def loadUi(widget, uiname):
    uic.loadUi(path.join(uipath, uiname), widget)
Example #18
0
 def __init__(self, parent=None):
     QMainWindow.__init__(self, parent)
     uic.loadUi(path.join(path.dirname(path.abspath(__file__)), 'ui',
                          'watcher.ui'), self)
     self.buttonClear.clicked.connect(self.clear)
Example #19
0
 def __init__(self, parent=None):
     QDialog.__init__(self, parent)
     uic.loadUi(
         path.join(path.dirname(path.abspath(__file__)), 'ui',
                   'entryedit.ui'), self)
     self.setupEvents()
Example #20
0
File: qt.py Project: ess-dmsc/nicos
        def _create_field(groupframe, field):

            def _setup(widget):
                fontscale = field.get('fontscale', 1.0)
                if fontscale not in fontCache:
                    fontCache[fontscale] = scaledFont(valuefont, fontscale)
                widget.valueFont = fontCache[fontscale]
                widget.setFont(labelfont)
                for key in field:
                    if key in widget.properties:
                        setattr(widget, key, field[key])
                widget.setSource(self)
                if hasattr(widget, 'widgetInfo'):
                    widget.widgetInfo.connect(self.newWidgetInfo)
                return widget

            if isinstance(field, str):
                field = {'dev': field}
            if 'min' in field:
                field['min'] = repr(field['min'])
            if 'max' in field:
                field['max'] = repr(field['max'])
            setups = field.get('setups', None)

            if 'gui' in field:
                resource = findResource(field.pop('gui'))
                try:
                    instance = uic.loadUi(resource)
                except Exception as err:
                    self.log.exception('could not load .ui file %r, ignoring',
                                       resource)
                    instance = QLabel('%r could not be loaded:\n%s' %
                                      (resource, err))
                else:
                    for child in instance.findChildren(NicosWidget):
                        _setup(child)
                instance.setups = setups
                return instance
            elif 'widget' in field:
                widget_class = self._class_import(field.pop('widget'))
                widget = widget_class(groupframe)
                if isinstance(widget, NicosWidget):
                    _setup(widget)
                for child in widget.findChildren(NicosWidget):
                    _setup(child)
                widget.setups = setups
                return widget
            elif 'plot' in field and plot_available:
                # XXX make this more standard
                plotwidget = self._plots.get(field['plot'])
                if plotwidget:
                    plotwidget.devices += [field.get('dev', field.get('key', ''))]
                    plotwidget.names += [field.get('name', field.get('dev', field.get('key', '')))]
                    return None
                plotwidget = TrendPlot(groupframe)
                _setup(plotwidget)
                plotwidget.legend = field.get('legend', True)
                plotwidget.plotwindow = field.get('plotwindow', 3600)
                plotwidget.plotinterval = field.get('plotinterval', 2)
                self._plots[field['plot']] = plotwidget
                plotwidget.devices = [field.get('dev', field.get('key', ''))]
                plotwidget.names = [field.get('name', field.get('dev', field.get('key', '')))]
                plotwidget.setups = setups
                return plotwidget
            elif 'picture' in field:
                picwidget = PictureDisplay(groupframe)
                picwidget.filepath = field['picture']
                picwidget.setups = setups
                return _setup(picwidget)
            else:
                display = ValueDisplay(groupframe, colorScheme=colorScheme,
                                       showExpiration=self.noexpired)
                display.setups = setups
                return _setup(display)