Ejemplo n.º 1
0
 def __init__(self, parent=None, parameterDict=None):
     super(ParameterTableModel, self).__init__(parent)
     self.parameterDict = parameterDict if parameterDict else SequenceDict()
     self.column = enum('name', 'value')
     self.textBG = QtGui.QColor(QtCore.Qt.green).lighter(175)
     self.dataLookup = {
         (QtCore.Qt.DisplayRole, self.column.name):
         lambda param: param.name if param.dataType != 'action' else None,
         (QtCore.Qt.DisplayRole, self.column.value):
         lambda param:
         (str(param.value)
          if param.dataType != 'multiselect' else ' | '.join(param.value))
         if param.dataType != 'bool' else None,
         (QtCore.Qt.EditRole, self.column.value):
         lambda param: firstNotNone(param.text, param.value),
         (QtCore.Qt.ToolTipRole, self.column.name):
         lambda param: param.tooltip,
         (QtCore.Qt.ToolTipRole, self.column.value):
         lambda param: firstNotNone(param.text, param.tooltip),
         (QtCore.Qt.CheckStateRole, self.column.value):
         lambda param: (QtCore.Qt.Checked
                        if param.value else QtCore.Qt.Unchecked)
         if param.dataType == 'bool' else None,
         (QtCore.Qt.BackgroundColorRole, self.column.value):
         lambda param: self.textBG if param.text else None
     }
     self.setDataLookup = {
         (QtCore.Qt.EditRole, self.column.value): self.setValue,
         (QtCore.Qt.UserRole, self.column.value): self.setText,
         (QtCore.Qt.CheckStateRole, self.column.value): self.setValue
     }
Ejemplo n.º 2
0
 def __init__(self, ddsChannels, globalDict, parent=None, *args): 
     QtCore.QAbstractTableModel.__init__(self, parent, *args)
     # scanNames are given as a SortedDict
     self.ddsChannels = ddsChannels
     self.defaultBG = QtGui.QColor(QtCore.Qt.white)
     self.textBG = QtGui.QColor(QtCore.Qt.green).lighter(175)
     self.dataLookup = {  (QtCore.Qt.CheckStateRole, 0): lambda row: QtCore.Qt.Checked if self.ddsChannels[row].enabled else QtCore.Qt.Unchecked,
                          (QtCore.Qt.DisplayRole, 1): lambda row: self.ddsChannels[row].name,
                          (QtCore.Qt.DisplayRole, 2): lambda row: str(self.ddsChannels[row].frequency),
                          (QtCore.Qt.DisplayRole, 3): lambda row: str(self.ddsChannels[row].phase),
                          (QtCore.Qt.DisplayRole, 4): lambda row: str(self.ddsChannels[row].amplitude),
                          (QtCore.Qt.EditRole, 1): lambda row: self.ddsChannels[row].name,
                          (QtCore.Qt.EditRole, 2): lambda row: firstNotNone( self.ddsChannels[row].frequencyText, str(self.ddsChannels[row].frequency)),
                          (QtCore.Qt.EditRole, 3): lambda row: firstNotNone( self.ddsChannels[row].phaseText, str(self.ddsChannels[row].phase)),
                          (QtCore.Qt.EditRole, 4): lambda row: firstNotNone( self.ddsChannels[row].amplitudeText, str(self.ddsChannels[row].amplitude)),
                          (QtCore.Qt.BackgroundColorRole, 2): lambda row: self.defaultBG if self.ddsChannels[row].frequencyText is None else self.textBG,
                          (QtCore.Qt.BackgroundColorRole, 3): lambda row: self.defaultBG if self.ddsChannels[row].phaseText is None else self.textBG,
                          (QtCore.Qt.BackgroundColorRole, 4): lambda row: self.defaultBG if self.ddsChannels[row].amplitudeText is None else self.textBG,
                          (QtCore.Qt.CheckStateRole, 5): lambda row: QtCore.Qt.Checked if self.ddsChannels[row].squareEnabled else QtCore.Qt.Unchecked,
                           }
     self.setDataLookup =  {  (QtCore.Qt.CheckStateRole, 0): self.setEnabled,
                              (QtCore.Qt.EditRole, 1): self.setName,
                              (QtCore.Qt.EditRole, 2): self.setFrequency,
                              (QtCore.Qt.EditRole, 3): self.setPhase,
                              (QtCore.Qt.EditRole, 4): self.setAmplitude,
                              (QtCore.Qt.UserRole, 2): partial( self.setFieldText, 'frequencyText'),
                              (QtCore.Qt.UserRole, 3): partial( self.setFieldText, 'phaseText'),
                              (QtCore.Qt.UserRole, 4): partial( self.setFieldText, 'amplitudeText'),
                              (QtCore.Qt.CheckStateRole, 5): self.setSquareEnabled,
                              }
     self.globalDict = globalDict
Ejemplo n.º 3
0
 def updateComboBoxes(self):
     self.axisDict = dict( {"Started": ('measurement', None, 'startDate') } )
     self.axisDict.update( dict( ((col[2], col) for col in self.measurementModel.extraColumns) ) )
     updateComboBoxItems(self.xComboBox, sorted(self.axisDict.keys()), self.settings.plotXAxis)
     updateComboBoxItems(self.yComboBox, sorted(self.axisDict.keys()), self.settings.plotYAxis)
     self.settings.plotXAxis = firstNotNone( self.settings.plotXAxis, str(self.xComboBox.currentText()) )
     self.settings.plotYAxis = firstNotNone( self.settings.plotYAxis, str(self.yComboBox.currentText()) )
    def __init__(self, config, globalDict, parent=None, *args): 
        QtCore.QAbstractTableModel.__init__(self, parent, *args)
        self.config = config 
        self.dataLookup = { (QtCore.Qt.CheckStateRole, 0): lambda row:  QtCore.Qt.Checked if self.pushVariables.at(row).push else QtCore.Qt.Unchecked,
                            (QtCore.Qt.DisplayRole, 1): lambda row: str(self.pushVariables.at(row).destinationName),
                            (QtCore.Qt.DisplayRole, 2): lambda row: str(self.pushVariables.at(row).variableName),
                            (QtCore.Qt.DisplayRole, 3): lambda row: str(self.pushVariables.at(row).definition),
                            (QtCore.Qt.DisplayRole, 4): lambda row: str(self.pushVariables.at(row).value),                           
                            (QtCore.Qt.DisplayRole, 5): lambda row: str(self.pushVariables.at(row).minimum),
                            (QtCore.Qt.DisplayRole, 6): lambda row: str(self.pushVariables.at(row).maximum),
                            (QtCore.Qt.EditRole, 1): lambda row: self.pushVariables.at(row).destinationName,
                            (QtCore.Qt.EditRole, 2): lambda row: self.pushVariables.at(row).variableName,
                            (QtCore.Qt.EditRole, 3): lambda row: self.pushVariables.at(row).definition,
                            (QtCore.Qt.EditRole, 5): lambda row: firstNotNone( self.pushVariables.at(row).strMinimum, str(self.pushVariables.at(row).minimum)),
                            (QtCore.Qt.EditRole, 6): lambda row: firstNotNone( self.pushVariables.at(row).strMaximum, str(self.pushVariables.at(row).maximum)),
                            (QtCore.Qt.BackgroundRole, 4): lambda row: self.backgroundLookup[self.pushVariables.at(row).valueStatus],  
                            (QtCore.Qt.BackgroundRole, 5): lambda row: self.backgroundLookup[self.pushVariables.at(row).hasStrMinimum],  
                            (QtCore.Qt.BackgroundRole, 6): lambda row: self.backgroundLookup[self.pushVariables.at(row).hasStrMaximum]  

                            }                           
        self.setDataLookup =   { (QtCore.Qt.EditRole, 1): self.setDataDestinationName,
                                 (QtCore.Qt.EditRole, 2): self.setDataVariableName,
                                 (QtCore.Qt.UserRole, 3): self.setDataDefinition,
                                 (QtCore.Qt.EditRole, 5): self.setDataMinimum,
                                 (QtCore.Qt.EditRole, 6): self.setDataMaximum,
                                 (QtCore.Qt.UserRole, 5): self.setDataStrMinimum,
                                 (QtCore.Qt.UserRole, 6): self.setDataStrMaximum,
                                 (QtCore.Qt.CheckStateRole, 0): self.setDataPush }
        self.pushVariables = None
        self.fitfunction = None
        self.pushDestinations = dict()
        self.globalDict = globalDict
 def __init__(self, config, globalDict, parent=None, *args):
     QtCore.QAbstractTableModel.__init__(self, parent, *args)
     self.config = config
     self.dataLookup = {
         (QtCore.Qt.CheckStateRole, 0):
         lambda row: QtCore.Qt.Checked
         if self.pushVariables.at(row).push else QtCore.Qt.Unchecked,
         (QtCore.Qt.DisplayRole, 1):
         lambda row: str(self.pushVariables.at(row).destinationName),
         (QtCore.Qt.DisplayRole, 2):
         lambda row: str(self.pushVariables.at(row).variableName),
         (QtCore.Qt.DisplayRole, 3):
         lambda row: str(self.pushVariables.at(row).definition),
         (QtCore.Qt.DisplayRole, 4):
         lambda row: str(self.pushVariables.at(row).value),
         (QtCore.Qt.DisplayRole, 5):
         lambda row: str(self.pushVariables.at(row).minimum),
         (QtCore.Qt.DisplayRole, 6):
         lambda row: str(self.pushVariables.at(row).maximum),
         (QtCore.Qt.EditRole, 1):
         lambda row: self.pushVariables.at(row).destinationName,
         (QtCore.Qt.EditRole, 2):
         lambda row: self.pushVariables.at(row).variableName,
         (QtCore.Qt.EditRole, 3):
         lambda row: self.pushVariables.at(row).definition,
         (QtCore.Qt.EditRole, 5):
         lambda row: firstNotNone(
             self.pushVariables.at(row).strMinimum,
             str(self.pushVariables.at(row).minimum)),
         (QtCore.Qt.EditRole, 6):
         lambda row: firstNotNone(
             self.pushVariables.at(row).strMaximum,
             str(self.pushVariables.at(row).maximum)),
         (QtCore.Qt.BackgroundRole, 4):
         lambda row: self.backgroundLookup[self.pushVariables.at(row).
                                           valueStatus],
         (QtCore.Qt.BackgroundRole, 5):
         lambda row: self.backgroundLookup[self.pushVariables.at(row).
                                           hasStrMinimum],
         (QtCore.Qt.BackgroundRole, 6):
         lambda row: self.backgroundLookup[self.pushVariables.at(row).
                                           hasStrMaximum]
     }
     self.setDataLookup = {
         (QtCore.Qt.EditRole, 1): self.setDataDestinationName,
         (QtCore.Qt.EditRole, 2): self.setDataVariableName,
         (QtCore.Qt.UserRole, 3): self.setDataDefinition,
         (QtCore.Qt.EditRole, 5): self.setDataMinimum,
         (QtCore.Qt.EditRole, 6): self.setDataMaximum,
         (QtCore.Qt.UserRole, 5): self.setDataStrMinimum,
         (QtCore.Qt.UserRole, 6): self.setDataStrMaximum,
         (QtCore.Qt.CheckStateRole, 0): self.setDataPush
     }
     self.pushVariables = None
     self.fitfunction = None
     self.pushDestinations = dict()
     self.globalDict = globalDict
Ejemplo n.º 6
0
 def __init__(self, ddsChannels, globalDict, parent=None, *args):
     QtCore.QAbstractTableModel.__init__(self, parent, *args)
     # scanNames are given as a SortedDict
     self.ddsChannels = ddsChannels
     self.defaultBG = QtGui.QColor(QtCore.Qt.white)
     self.textBG = QtGui.QColor(QtCore.Qt.green).lighter(175)
     self.dataLookup = {
         (QtCore.Qt.CheckStateRole, 0):
         lambda row: QtCore.Qt.Checked
         if self.ddsChannels[row].enabled else QtCore.Qt.Unchecked,
         (QtCore.Qt.DisplayRole, 1):
         lambda row: self.ddsChannels[row].name,
         (QtCore.Qt.DisplayRole, 2):
         lambda row: str(self.ddsChannels[row].frequency),
         (QtCore.Qt.DisplayRole, 3):
         lambda row: str(self.ddsChannels[row].phase),
         (QtCore.Qt.DisplayRole, 4):
         lambda row: str(self.ddsChannels[row].amplitude),
         (QtCore.Qt.EditRole, 1):
         lambda row: self.ddsChannels[row].name,
         (QtCore.Qt.EditRole, 2):
         lambda row: firstNotNone(self.ddsChannels[row].frequencyText,
                                  str(self.ddsChannels[row].frequency)),
         (QtCore.Qt.EditRole, 3):
         lambda row: firstNotNone(self.ddsChannels[row].phaseText,
                                  str(self.ddsChannels[row].phase)),
         (QtCore.Qt.EditRole, 4):
         lambda row: firstNotNone(self.ddsChannels[row].amplitudeText,
                                  str(self.ddsChannels[row].amplitude)),
         (QtCore.Qt.BackgroundColorRole, 2):
         lambda row: self.defaultBG
         if self.ddsChannels[row].frequencyText is None else self.textBG,
         (QtCore.Qt.BackgroundColorRole, 3):
         lambda row: self.defaultBG
         if self.ddsChannels[row].phaseText is None else self.textBG,
         (QtCore.Qt.BackgroundColorRole, 4):
         lambda row: self.defaultBG
         if self.ddsChannels[row].amplitudeText is None else self.textBG,
         (QtCore.Qt.CheckStateRole, 5):
         lambda row: QtCore.Qt.Checked
         if self.ddsChannels[row].squareEnabled else QtCore.Qt.Unchecked,
     }
     self.setDataLookup = {
         (QtCore.Qt.CheckStateRole, 0): self.setEnabled,
         (QtCore.Qt.EditRole, 1): self.setName,
         (QtCore.Qt.EditRole, 2): self.setFrequency,
         (QtCore.Qt.EditRole, 3): self.setPhase,
         (QtCore.Qt.EditRole, 4): self.setAmplitude,
         (QtCore.Qt.UserRole, 2): partial(self.setFieldText,
                                          'frequencyText'),
         (QtCore.Qt.UserRole, 3): partial(self.setFieldText, 'phaseText'),
         (QtCore.Qt.UserRole, 4): partial(self.setFieldText,
                                          'amplitudeText'),
         (QtCore.Qt.CheckStateRole, 5): self.setSquareEnabled,
     }
     self.globalDict = globalDict
Ejemplo n.º 7
0
 def __init__(self, parent=None, noMessageIcon=None, messageIcon=None, maxMessages=None, messageName=None):
     QtWidgets.QToolButton.__init__(self, parent)
     self.myMenu = QtWidgets.QMenu(self)
     self.setMenu(self.myMenu)
     self.setPopupMode(QtWidgets.QToolButton.InstantPopup)
     self.exceptionsListed = 0
     self.NoExceptionsIcon = QtGui.QIcon(firstNotNone(noMessageIcon, ":/petersIcons/icons/Success-01.png"))
     self.ExceptionsIcon = QtGui.QIcon(firstNotNone(messageIcon, ":/petersIcons/icons/Error-01.png"))
     self.setIcon(self.NoExceptionsIcon)
     self.menuItemDict = dict()
     self.maxMessages = maxMessages
     self.clearAllMessage = "Clear All {0}".format(firstNotNone(messageName, "exceptions"))
Ejemplo n.º 8
0
 def updateComboBoxes(self):
     self.axisDict = dict({"Started": ('measurement', None, 'startDate')})
     self.axisDict.update(
         dict(
             ((col[2], col) for col in self.measurementModel.extraColumns)))
     updateComboBoxItems(self.xComboBox, sorted(self.axisDict.keys()),
                         self.settings.plotXAxis)
     updateComboBoxItems(self.yComboBox, sorted(self.axisDict.keys()),
                         self.settings.plotYAxis)
     self.settings.plotXAxis = firstNotNone(
         self.settings.plotXAxis, str(self.xComboBox.currentText()))
     self.settings.plotYAxis = firstNotNone(
         self.settings.plotYAxis, str(self.yComboBox.currentText()))
Ejemplo n.º 9
0
 def onActiveInstrumentChanged(self, modelIndex, modelIndex2):
     measurement = self.container.measurements[modelIndex.row()]
     self.parameterModel.setParameters(measurement.parameters)
     self.resultModel.setResults(measurement.results)
     self.plainTextEdit.setPlainText(
         firstNotNone(measurement.longComment, ""))
     self.currentMeasurement = measurement
Ejemplo n.º 10
0
    def loadShuttleDef(self, filename):
        if filename is not None:
            self.shuttlingDefinitionFile = filename
            if os.path.exists(filename):
                tree = ElementTree.parse(filename)
                root = tree.getroot()

                # load pulse definition
                ShuttlingGraphElement = root.find("ShuttlingGraph")
                newGraph = ShuttlingGraph.fromXmlElement(ShuttlingGraphElement)
                matchingPos = newGraph.getMatchingPosition(
                    self.shuttlingGraph
                )  # Try to match previous graph node/position
                self.shuttlingGraph = newGraph
                self.shuttleEdgeTableModel.setShuttlingGraph(
                    self.shuttlingGraph)
                self.currentPositionLabel.setText(
                    firstNotNone(self.shuttlingGraph.currentPositionName, ""))
                self.shuttlingGraph.currentPositionObservable.subscribe(
                    self.onCurrentPositionEvent)
                self.shuttlingGraph.graphChangedObservable.subscribe(
                    self.setupGraphDependent)
                self.setupGraphDependent()
                self.setPosition(matchingPos)
                self.updateOutput.emit(
                    self.adjust, True
                )  # Update the output voltages by setting updateHardware to True
Ejemplo n.º 11
0
 def __init__(self, controlUi, parameterList=[], parent=None):
     super(ExternalParameterControlModel, self).__init__(parameterList, parent, nodeNameAttr='displayName')
     self.parameterList=parameterList
     self.controlUi = controlUi
     for parameter in parameterList:
         parameter.categories = parameter.device.name
     self.headerLookup.update({
         (QtCore.Qt.Horizontal, QtCore.Qt.DisplayRole, 0): 'Name',
         (QtCore.Qt.Horizontal, QtCore.Qt.DisplayRole, 1): 'Control',
         (QtCore.Qt.Horizontal, QtCore.Qt.DisplayRole, 2): 'External'
         })
     self.dataLookup.update({
         (QtCore.Qt.DisplayRole, 0): lambda node: node.content.displayName,
         (QtCore.Qt.DisplayRole, 1): lambda node: str(node.content.targetValue),
         (QtCore.Qt.EditRole, 1): lambda node: firstNotNone( node.content.string, str(node.content.targetValue) ),
         (QtCore.Qt.UserRole, 1): lambda node: node.content.dimension,
         (QtCore.Qt.DisplayRole, 2): lambda node: str(node.content.value),
         (QtCore.Qt.BackgroundRole, 1): self.dependencyBgFunction,
         (QtCore.Qt.ToolTipRole, 1): self.toolTipFunction
         })
     self.setDataLookup.update({
         (QtCore.Qt.EditRole, 1): lambda index, value: self.setValue(index, value),
         (QtCore.Qt.UserRole, 1): lambda index, value: self.setStrValue(index, value),
         })
     self.flagsLookup = {
         1:QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsEditable | QtCore.Qt.ItemIsSelectable
     }
     self.numColumns = 3
     self.allowReordering = True
     self.signalConnections = list()
Ejemplo n.º 12
0
 def setupUi(self, parent):
     VoltageAdjustForm.setupUi(self, parent)
     self.lineBox.globalDict = self.settings.adjust.globalDict
     self.lineGainBox.globalDict = self.settings.adjust.globalDict
     self.globalGainBox.globalDict = self.settings.adjust.globalDict
     self.lineBox.setExpression( self.adjust._line )
     self.currentLineDisplay.setText(str(self.adjust._line))
     self.lineGainBox.setExpression( self.adjust._lineGain )
     self.globalGainBox.setExpression( self.adjust._globalGain )
     self.adjust.dataChanged.connect(self.onExpressionChanged)
     self.triggerButton.clicked.connect( self.onTrigger )
     # Shuttling
     self.addEdgeButton.clicked.connect( self.addShuttlingEdge )
     self.removeEdgeButton.clicked.connect( self.removeShuttlingEdge )
     self.shuttleEdgeTableModel = ShuttleEdgeTableModel(self.config, self.shuttlingGraph)
     self.delegate = ComboBoxDelegate()
     self.edgeTableView.setModel(self.shuttleEdgeTableModel)
     self.edgeTableView.setItemDelegateForColumn( 8, self.delegate )
     self.edgeTableView.setItemDelegateForColumn(10, self.delegate )
     self.currentPositionLabel.setText( firstNotNone( self.shuttlingGraph.currentPositionName, "" ) )
     self.shuttlingGraph.currentPositionObservable.subscribe( self.onCurrentPositionEvent )
     self.shuttlingGraph.graphChangedObservable.subscribe( self.setupGraphDependent )
     self.setupGraphDependent()
     self.uploadDataButton.clicked.connect( self.onUploadData )
     self.uploadEdgesButton.clicked.connect( self.onUploadEdgesButton )
     restoreGuiState(self, self.config.get('VoltageAdjust.GuiState'))
     self.destinationComboBox.currentIndexChanged[str].connect( self.onShuttleSequence )
     self.shuttlingRouteEdit.setText( " ".join(self.settings.shuttlingRoute) )
     self.shuttlingRouteEdit.editingFinished.connect( self.onSetShuttlingRoute )
     self.shuttlingRouteButton.clicked.connect( self.onShuttlingRoute )
     self.repetitionBox.setValue(self.settings.shuttlingRepetitions)
     self.repetitionBox.valueChanged.connect( self.onShuttlingRepetitions )
Ejemplo n.º 13
0
    def __init__(self, settings, globalDict, parent=None, *args):
        QtCore.QAbstractTableModel.__init__(self, parent, *args)
        self.settings = settings
        self.globalDict = globalDict
        self.defaultBG = QtGui.QColor(QtCore.Qt.white)
        self.textBG = QtGui.QColor(QtCore.Qt.green).lighter(175)
        self.column = enum('variable', 'value')
        self.defaultFontName = "Segoe UI"
        self.defaultFontSize = 9
        self.normalFont = QtGui.QFont(self.defaultFontName, self.defaultFontSize, QtGui.QFont.Normal)
        self.boldFont = QtGui.QFont(self.defaultFontName, self.defaultFontSize, QtGui.QFont.Bold)

        self.dataLookup = {
            (QtCore.Qt.DisplayRole, self.column.variable): lambda row: self.settings.varDict.keyAt(row),
            (QtCore.Qt.DisplayRole, self.column.value): lambda row: str(self.settings.varDict.at(row)['value']),
            (QtCore.Qt.FontRole, self.column.variable): lambda row: self.boldFont if self.settings.varDict.keyAt(row).startswith('Duration') else self.normalFont,
            (QtCore.Qt.FontRole, self.column.value): lambda row: self.boldFont if self.settings.varDict.keyAt(row).startswith('Duration') else self.normalFont,
            (QtCore.Qt.EditRole, self.column.value): lambda row: firstNotNone( self.settings.varDict.at(row)['text'], str(self.settings.varDict.at(row)['value'])),
            (QtCore.Qt.BackgroundColorRole, self.column.value): lambda row: self.defaultBG if self.settings.varDict.at(row)['text'] is None else self.textBG,
            (QtCore.Qt.ToolTipRole, self.column.value): lambda row: self.settings.varDict.at(row)['text'] if self.settings.varDict.at(row)['text'] else None
        }
        self.setDataLookup =  { 
            (QtCore.Qt.EditRole, self.column.value): self.setValue,
            (QtCore.Qt.UserRole, self.column.value): self.setText
        }
Ejemplo n.º 14
0
 def setPosition(self, line):
     if self.currentPosition != line:
         self.currentPosition = line
         self.currentPositionName = self.position(line)
         self.currentPositionObservable.fire(line=line,
                                             text=firstNotNone(
                                                 self.currentPositionName,
                                                 ""))
Ejemplo n.º 15
0
 def loadLine(self, entry ):
     currentname, currentwidget = self.currentScan()
     # switch to the scan for the first line
     if entry.scan!=currentname:
         self.setCurrentScan(entry.scan)
     # load the correct measurement
     currentwidget.scanControlWidget.loadSetting( entry.measurement )   
     currentwidget.evaluationControlWidget.loadSetting( entry.evaluation )  
     currentwidget.analysisControlWidget.onLoadAnalysisConfiguration( firstNotNone( entry.analysis, "")  )
Ejemplo n.º 16
0
 def __init__(self, parent=None, parameterDict=None):
     super(ParameterTableModel, self).__init__(parent)
     self.parameterDict = parameterDict if parameterDict else SequenceDict()
     self.column = enum('name', 'value')
     self.textBG = QtGui.QColor(QtCore.Qt.green).lighter(175)
     self.dataLookup = {
         (QtCore.Qt.DisplayRole, self.column.name): lambda param: param.name if param.dataType!='action' else None,
         (QtCore.Qt.DisplayRole, self.column.value): lambda param: (str(param.value) if param.dataType!='multiselect' else ' | '.join(param.value)) if param.dataType!='bool' else None,
         (QtCore.Qt.EditRole, self.column.value): lambda param: firstNotNone(param.text, param.value),
         (QtCore.Qt.ToolTipRole, self.column.name): lambda param: param.tooltip,
         (QtCore.Qt.ToolTipRole, self.column.value): lambda param: firstNotNone(param.text, param.tooltip),
         (QtCore.Qt.CheckStateRole, self.column.value): lambda param: (QtCore.Qt.Checked if param.value else QtCore.Qt.Unchecked) if param.dataType=='bool' else None,
         (QtCore.Qt.BackgroundColorRole, self.column.value): lambda param: self.textBG if param.text else None
     }
     self.setDataLookup =  {
         (QtCore.Qt.EditRole, self.column.value): self.setValue,
         (QtCore.Qt.UserRole, self.column.value): self.setText,
         (QtCore.Qt.CheckStateRole, self.column.value): self.setValue
     }
Ejemplo n.º 17
0
 def __init__(self,
              parent=None,
              noMessageIcon=None,
              messageIcon=None,
              maxMessages=None,
              messageName=None):
     QtWidgets.QToolButton.__init__(self, parent)
     self.myMenu = QtWidgets.QMenu(self)
     self.setMenu(self.myMenu)
     self.setPopupMode(QtWidgets.QToolButton.InstantPopup)
     self.exceptionsListed = 0
     self.NoExceptionsIcon = QtGui.QIcon(
         firstNotNone(noMessageIcon, ":/petersIcons/icons/Success-01.png"))
     self.ExceptionsIcon = QtGui.QIcon(
         firstNotNone(messageIcon, ":/petersIcons/icons/Error-01.png"))
     self.setIcon(self.NoExceptionsIcon)
     self.menuItemDict = dict()
     self.maxMessages = maxMessages
     self.clearAllMessage = "Clear All {0}".format(
         firstNotNone(messageName, "exceptions"))
Ejemplo n.º 18
0
 def addTraceui(self, scan, traceui):
     self.traceuiLookup[scan] = traceui
     self.plotWindowIndex = dict(
         (("{0}.{1}".format(key, item), (ui, item, d["view"]))
          for key, ui in self.traceuiLookup.items()
          for item, d in ui.graphicsViewDict.items()))
     updateComboBoxItems(self.windowComboBox,
                         sorted(self.plotWindowIndex.keys()),
                         self.settings.plotWindow)
     self.settings.plotWindow = firstNotNone(
         self.settings.plotWindow, str(self.windowComboBox.currentText()))
Ejemplo n.º 19
0
 def setTrapped(self):
     self.changeSettings('Trapped')
     self.startButton.setEnabled( True )
     self.stopButton.setEnabled( True )
     self.elapsedLabel.setStyleSheet("QLabel { color:green; }")
     self.statusLabel.setText("Trapped :)")
     self.trappingTime = firstNotNone(self.loadingHistory.lastEvent().trappingTime, now())
     self.timerNullTime = self.trappingTime
     self.trappingTime = self.trappingTime
     # self.checkStarted = self.trappingTime
     self.ionReappeared.emit()
Ejemplo n.º 20
0
 def shuttlePath(self, fromName, toName ):
     fromName = firstNotNone(fromName, self.currentPositionName)
     fromName = fromName if fromName else self.position(float(self.currentPosition))
     if fromName not in self.shuttlingGraph:
         raise ShuttlingGraphException("Shuttling failed, origin '{0}' is not a valid shuttling node".format(fromName))
     if toName not in self.shuttlingGraph:
         raise ShuttlingGraphException("Shuttling failed, target '{0}' is not a valid shuttling node".format(toName))
     sp = shortest_path(self.shuttlingGraph, fromName, toName)
     path = list()
     for a, b in pairs_iter(sp):
         edge = sorted(self.shuttlingGraph.edge[a][b].values(), key=itemgetter('weight'))[0]['edge']
         path.append((a, b, edge, self.index(edge)))
     return path
Ejemplo n.º 21
0
 def __init__(self, controlUi, parameterList=[], parent=None):
     super(ExternalParameterControlModel,
           self).__init__(parameterList, parent, nodeNameAttr='displayName')
     self.parameterList = parameterList
     self.controlUi = controlUi
     for parameter in parameterList:
         parameter.categories = parameter.device.name
     self.headerLookup.update({
         (QtCore.Qt.Horizontal, QtCore.Qt.DisplayRole, 0):
         'Name',
         (QtCore.Qt.Horizontal, QtCore.Qt.DisplayRole, 1):
         'Control',
         (QtCore.Qt.Horizontal, QtCore.Qt.DisplayRole, 2):
         'External'
     })
     self.dataLookup.update({
         (QtCore.Qt.DisplayRole, 0):
         lambda node: node.content.displayName,
         (QtCore.Qt.DisplayRole, 1):
         lambda node: str(node.content.targetValue),
         (QtCore.Qt.EditRole, 1):
         lambda node: firstNotNone(node.content.string,
                                   str(node.content.targetValue)),
         (QtCore.Qt.UserRole, 1):
         lambda node: node.content.dimension,
         (QtCore.Qt.DisplayRole, 2):
         lambda node: str(node.content.value),
         (QtCore.Qt.BackgroundRole, 1):
         self.dependencyBgFunction,
         (QtCore.Qt.ToolTipRole, 1):
         self.toolTipFunction
     })
     self.setDataLookup.update({
         (QtCore.Qt.EditRole, 1):
         lambda index, value: self.setValue(index, value),
         (QtCore.Qt.UserRole, 1):
         lambda index, value: self.setStrValue(index, value),
     })
     self.flagsLookup = {
         1:
         QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsEditable
         | QtCore.Qt.ItemIsSelectable
     }
     self.numColumns = 3
     self.allowReordering = True
     self.signalConnections = list()
 def __init__(self, updateSaveStatus, globalVariables, scanSegments=None, parent=None):
     super(ScanSegmentTableModel, self).__init__(parent)
     self.scanSegmentList = scanSegments if scanSegments is not None else list()
     self.updateSaveStatus = updateSaveStatus
     self.setDataLookup =  {  (QtCore.Qt.EditRole, 0): partial( self.setField, 'start'),
                              (QtCore.Qt.EditRole, 1): partial( self.setField, 'stop'),
                              (QtCore.Qt.EditRole, 2): partial( self.setField, 'center'),
                              (QtCore.Qt.EditRole, 3): partial( self.setField, 'span'),
                              (QtCore.Qt.EditRole, 4): partial( self.setField, 'steps'),
                              (QtCore.Qt.EditRole, 5): partial( self.setField, 'stepsize'),
                              (QtCore.Qt.UserRole, 0): partial( self.setFieldText, 'startText'),
                              (QtCore.Qt.UserRole, 1): partial( self.setFieldText, 'stopText'),
                              (QtCore.Qt.UserRole, 2): partial( self.setFieldText, 'centerText'),
                              (QtCore.Qt.UserRole, 3): partial( self.setFieldText, 'spanText'),
                              (QtCore.Qt.UserRole, 4): partial( self.setFieldText, 'stepsText'),
                              (QtCore.Qt.UserRole, 5): partial( self.setFieldText, 'stepsizeText')
                             }
     self.dataLookup = {  (QtCore.Qt.DisplayRole, 0): lambda self, column: str(self.scanSegmentList[column].start),
                          (QtCore.Qt.DisplayRole, 1): lambda self, column: str(self.scanSegmentList[column].stop),
                          (QtCore.Qt.DisplayRole, 2): lambda self, column: str(self.scanSegmentList[column].center),
                          (QtCore.Qt.DisplayRole, 3): lambda self, column: str(self.scanSegmentList[column].span),
                          (QtCore.Qt.DisplayRole, 4): lambda self, column: str(self.scanSegmentList[column].steps),
                          (QtCore.Qt.DisplayRole, 5): lambda self, column: str(self.scanSegmentList[column].stepsize),
                          (QtCore.Qt.EditRole, 0):    lambda self, column: firstNotNone( self.scanSegmentList[column].startText, str(self.scanSegmentList[column].start)),
                          (QtCore.Qt.EditRole, 1):    lambda self, column: firstNotNone( self.scanSegmentList[column].stopText, str(self.scanSegmentList[column].stop)),
                          (QtCore.Qt.EditRole, 2):    lambda self, column: firstNotNone( self.scanSegmentList[column].centerText, str(self.scanSegmentList[column].center)),
                          (QtCore.Qt.EditRole, 3):    lambda self, column: firstNotNone( self.scanSegmentList[column].spanText,  str(self.scanSegmentList[column].span)),
                          (QtCore.Qt.EditRole, 4):    lambda self, column: firstNotNone( self.scanSegmentList[column].stepsText, str(self.scanSegmentList[column].steps)),
                          (QtCore.Qt.EditRole, 5):    lambda self, column: firstNotNone( self.scanSegmentList[column].stepsizeText, str(self.scanSegmentList[column].stepsize)),
                          (QtCore.Qt.BackgroundColorRole, 0): lambda self, column: self.backgroundLookup[(self.scanSegmentList[column].inconsistent, self.scanSegmentList[column]._startText is not None)],
                          (QtCore.Qt.BackgroundColorRole, 1): lambda self, column: self.backgroundLookup[(self.scanSegmentList[column].inconsistent, self.scanSegmentList[column]._stopText is not None)],
                          (QtCore.Qt.BackgroundColorRole, 2): lambda self, column: self.backgroundLookup[(self.scanSegmentList[column].inconsistent, self.scanSegmentList[column]._centerText is not None)],
                          (QtCore.Qt.BackgroundColorRole, 3): lambda self, column: self.backgroundLookup[(self.scanSegmentList[column].inconsistent, self.scanSegmentList[column]._spanText is not None)],
                          (QtCore.Qt.BackgroundColorRole, 4): lambda self, column: self.backgroundLookup[(self.scanSegmentList[column].inconsistent, self.scanSegmentList[column]._stepsText is not None)],
                          (QtCore.Qt.BackgroundColorRole, 5): lambda self, column: self.backgroundLookup[(self.scanSegmentList[column].inconsistent, self.scanSegmentList[column]._stepsizeText is not None)],
                          (QtCore.Qt.ToolTipRole, 0): lambda self, column: self.scanSegmentList[column]._startText if self.scanSegmentList[column]._startText is not None else None,
                          (QtCore.Qt.ToolTipRole, 1): lambda self, column: self.scanSegmentList[column]._stopText if self.scanSegmentList[column]._stopText is not None else None,
                          (QtCore.Qt.ToolTipRole, 2): lambda self, column: self.scanSegmentList[column]._centerText if self.scanSegmentList[column]._centerText is not None else None,
                          (QtCore.Qt.ToolTipRole, 3): lambda self, column: self.scanSegmentList[column]._spanText if self.scanSegmentList[column]._spanText is not None else None,
                          (QtCore.Qt.ToolTipRole, 4): lambda self, column: self.scanSegmentList[column]._stepsText if self.scanSegmentList[column]._stepsText is not None else None,
                          (QtCore.Qt.ToolTipRole, 5): lambda self, column: self.scanSegmentList[column]._stepsizeText if self.scanSegmentList[column]._stepsizeText is not None else None,
                          (QtCore.Qt.FontRole, 4): lambda self, column: self.fontLookup[self.scanSegmentList[column]._stepPreference=='steps'],
                          (QtCore.Qt.FontRole, 5): lambda self, column: self.fontLookup[self.scanSegmentList[column]._stepPreference=='stepsize']
                          }
     self.globalDict = globalVariables
     defaultBG = QtGui.QColor(QtCore.Qt.white)
     inconsistentBG = QtGui.QColor(0xff, 0xa6, 0xa6, 0xff)
     textBG = QtGui.QColor(QtCore.Qt.green).lighter(175)
     preferenceFont = QtGui.QFont("MS Shell Dlg 2", -1, QtGui.QFont.DemiBold, False)
     regularFont = QtGui.QFont("MS Shell Dlg 2", -1, QtGui.QFont.Normal, False)
     self.fontLookup = { True: preferenceFont, False: regularFont}
     self.backgroundLookup = { (True, True):inconsistentBG, (True, False):inconsistentBG, (False, True):textBG, (False, False):defaultBG}
Ejemplo n.º 23
0
 def loadShuttleDef(self, filename):
     if filename is not None:
         self.shuttlingDefinitionFile = filename
         if os.path.exists(filename):
             tree = ElementTree.parse(filename)
             root = tree.getroot()
             
             # load pulse definition
             ShuttlingGraphElement = root.find("ShuttlingGraph")
             newGraph = ShuttlingGraph.fromXmlElement(ShuttlingGraphElement)
             matchingPos = newGraph.getMatchingPosition(self.shuttlingGraph) # Try to match previous graph node/position
             self.shuttlingGraph = newGraph
             self.shuttleEdgeTableModel.setShuttlingGraph(self.shuttlingGraph)
             self.currentPositionLabel.setText( firstNotNone( self.shuttlingGraph.currentPositionName, "" ) )
             self.shuttlingGraph.currentPositionObservable.subscribe( self.onCurrentPositionEvent )
             self.shuttlingGraph.graphChangedObservable.subscribe( self.setupGraphDependent )
             self.setupGraphDependent()
             self.setPosition(matchingPos)
             self.updateOutput.emit(self.adjust, True) # Update the output voltages by setting updateHardware to True
Ejemplo n.º 24
0
 def __init__(self, dacChannels, globalDict, parent=None, *args): 
     QtCore.QAbstractTableModel.__init__(self, parent, *args)
     # scanNames are given as a SortedDict
     self.dacChannels = dacChannels
     self.defaultBG = QtGui.QColor(QtCore.Qt.white)
     self.textBG = QtGui.QColor(QtCore.Qt.green).lighter(175)
     self.dataLookup = {  (QtCore.Qt.CheckStateRole, 0): lambda row: QtCore.Qt.Checked if self.dacChannels[row].enabled else QtCore.Qt.Unchecked,
                          (QtCore.Qt.DisplayRole, 1): lambda row: self.dacChannels[row].name,
                          (QtCore.Qt.DisplayRole, 2): lambda row: str(self.dacChannels[row].voltage),
                          (QtCore.Qt.EditRole, 1): lambda row: self.dacChannels[row].name,
                          (QtCore.Qt.EditRole, 2): lambda row: firstNotNone( self.dacChannels[row].voltageText, str(self.dacChannels[row].voltage)),
                          (QtCore.Qt.BackgroundColorRole, 2): lambda row: self.textBG if self.dacChannels[row]._voltage.hasDependency else self.defaultBG,
                          (QtCore.Qt.CheckStateRole, 3): lambda row: QtCore.Qt.Checked if self.dacChannels[row].resetAfterPP else QtCore.Qt.Unchecked,
                           }
     self.setDataLookup =  {  (QtCore.Qt.CheckStateRole, 0): self.setEnabled,
                              (QtCore.Qt.EditRole, 1): self.setName,
                              (QtCore.Qt.EditRole, 2): self.setVoltage,
                              (QtCore.Qt.UserRole, 2): partial( self.setFieldText, 'voltageText'),
                              (QtCore.Qt.CheckStateRole, 3): self.setResetAfterPP,
                              }
     self.globalDict = globalDict
Ejemplo n.º 25
0
 def setupUi(self, parent):
     VoltageAdjustForm.setupUi(self, parent)
     self.lineBox.globalDict = self.settings.adjust.globalDict
     self.lineGainBox.globalDict = self.settings.adjust.globalDict
     self.globalGainBox.globalDict = self.settings.adjust.globalDict
     self.lineBox.setExpression(self.adjust._line)
     self.currentLineDisplay.setText(str(self.adjust._line))
     self.lineGainBox.setExpression(self.adjust._lineGain)
     self.globalGainBox.setExpression(self.adjust._globalGain)
     self.adjust.dataChanged.connect(self.onExpressionChanged)
     self.triggerButton.clicked.connect(self.onTrigger)
     # Shuttling
     self.addEdgeButton.clicked.connect(self.addShuttlingEdge)
     self.removeEdgeButton.clicked.connect(self.removeShuttlingEdge)
     self.shuttleEdgeTableModel = ShuttleEdgeTableModel(
         self.config, self.shuttlingGraph)
     self.delegate = ComboBoxDelegate()
     self.edgeTableView.setModel(self.shuttleEdgeTableModel)
     self.edgeTableView.setItemDelegateForColumn(8, self.delegate)
     self.edgeTableView.setItemDelegateForColumn(10, self.delegate)
     self.currentPositionLabel.setText(
         firstNotNone(self.shuttlingGraph.currentPositionName, ""))
     self.shuttlingGraph.currentPositionObservable.subscribe(
         self.onCurrentPositionEvent)
     self.shuttlingGraph.graphChangedObservable.subscribe(
         self.setupGraphDependent)
     self.setupGraphDependent()
     self.uploadDataButton.clicked.connect(self.onUploadData)
     self.uploadEdgesButton.clicked.connect(self.onUploadEdgesButton)
     restoreGuiState(self, self.config.get('VoltageAdjust.GuiState'))
     self.destinationComboBox.currentIndexChanged[str].connect(
         self.onShuttleSequence)
     self.shuttlingRouteEdit.setText(" ".join(self.settings.shuttlingRoute))
     self.shuttlingRouteEdit.editingFinished.connect(
         self.onSetShuttlingRoute)
     self.shuttlingRouteButton.clicked.connect(self.onShuttlingRoute)
     self.repetitionBox.setValue(self.settings.shuttlingRepetitions)
     self.repetitionBox.valueChanged.connect(self.onShuttlingRepetitions)
Ejemplo n.º 26
0
 def __init__(self, pulser, config, configName='PulserParameterUi', globalDict=None, parent=None):
     super(PulserParameterUi, self).__init__(parent)
     self.isSetup = False
     self.globalDict = firstNotNone( globalDict, dict() )
     self.config = config
     self.configName = configName
     self.pulser = pulser
     if configName=='PulserParameterUi':
         self.pulserParamConfigName = "PulserParameterValues-{0:x}".format(self.pulser.hardwareConfigurationId())
     else:
         self.pulserParamConfigName = "PulserParameterValues-{0}-{1:x}".format(configName, self.pulser.hardwareConfigurationId())
     oldValues = self.config.get('PulserParameterValues', dict()) if self.pulserParamConfigName not in self.config else self.config[self.pulserParamConfigName]
     self.parameterList = list()
     pulserconfig = self.pulser.pulserConfiguration()
     self.currentWireValues = defaultdict( lambda: 0 )
     if pulserconfig:
         for index, extendedWireIn in enumerate(pulserconfig.extendedWireIns):
             value, string = oldValues.get(extendedWireIn.name, (extendedWireIn.default, None))
             parameter = PulserParameter(name=extendedWireIn.name, address=extendedWireIn.address, string=string,
                                         bitmask=extendedWireIn.bitmask, shift=extendedWireIn.shift, encoding=extendedWireIn.encoding,
                                         categories=extendedWireIn.categories, onChange=partial(self.onChange, index), globalDict=self.globalDict)
             self.parameterList.append( parameter )
             parameter.value = value
Ejemplo n.º 27
0
 def updateScanTarget(self, target, scannames):
     if target == "Internal":
         extended = ["None"]
         extended.extend(sorted(scannames))
     else:
         extended = sorted(scannames)
     self.scanTargetDict[target] = extended
     updateComboBoxItems(self.comboBoxScanTarget,
                         list(self.scanTargetDict.keys()),
                         self.parameters.currentScanTarget)
     self.parameters.currentScanTarget = firstNotNone(
         self.parameters.currentScanTarget, target)
     if target == self.parameters.currentScanTarget:
         self.settings.scanParameter = str(
             updateComboBoxItems(self.comboBoxParameter,
                                 self.scanTargetDict[target],
                                 self.settings.scanParameter))
     if not self.settings.scanTarget:
         self.settings.scanTarget = self.parameters.currentScanTarget
     if target == "Internal":
         updateComboBoxItems(self.parallelInternalScanComboBox,
                             self.scanTargetDict[target],
                             self.settings.parallelInternalScanParameter)
Ejemplo n.º 28
0
 def data(self, index, role):
     if index.isValid():
         if role == QtCore.Qt.DisplayRole:
             printer = firstNotNone(self.printers[index.column()], str)
             return printer(self.data[index.row()][index.column()])
     return None
Ejemplo n.º 29
0
 def __init__(self,
              updateSaveStatus,
              globalVariables,
              scanSegments=None,
              parent=None):
     super(ScanSegmentTableModel, self).__init__(parent)
     self.scanSegmentList = scanSegments if scanSegments is not None else list(
     )
     self.updateSaveStatus = updateSaveStatus
     self.setDataLookup = {
         (QtCore.Qt.EditRole, 0): partial(self.setField, 'start'),
         (QtCore.Qt.EditRole, 1): partial(self.setField, 'stop'),
         (QtCore.Qt.EditRole, 2): partial(self.setField, 'center'),
         (QtCore.Qt.EditRole, 3): partial(self.setField, 'span'),
         (QtCore.Qt.EditRole, 4): partial(self.setField, 'steps'),
         (QtCore.Qt.EditRole, 5): partial(self.setField, 'stepsize'),
         (QtCore.Qt.UserRole, 0): partial(self.setFieldText, 'startText'),
         (QtCore.Qt.UserRole, 1): partial(self.setFieldText, 'stopText'),
         (QtCore.Qt.UserRole, 2): partial(self.setFieldText, 'centerText'),
         (QtCore.Qt.UserRole, 3): partial(self.setFieldText, 'spanText'),
         (QtCore.Qt.UserRole, 4): partial(self.setFieldText, 'stepsText'),
         (QtCore.Qt.UserRole, 5): partial(self.setFieldText, 'stepsizeText')
     }
     self.dataLookup = {
         (QtCore.Qt.DisplayRole, 0):
         lambda self, column: str(self.scanSegmentList[column].start),
         (QtCore.Qt.DisplayRole, 1):
         lambda self, column: str(self.scanSegmentList[column].stop),
         (QtCore.Qt.DisplayRole, 2):
         lambda self, column: str(self.scanSegmentList[column].center),
         (QtCore.Qt.DisplayRole, 3):
         lambda self, column: str(self.scanSegmentList[column].span),
         (QtCore.Qt.DisplayRole, 4):
         lambda self, column: str(self.scanSegmentList[column].steps),
         (QtCore.Qt.DisplayRole, 5):
         lambda self, column: str(self.scanSegmentList[column].stepsize),
         (QtCore.Qt.EditRole, 0):
         lambda self, column: firstNotNone(
             self.scanSegmentList[column].startText,
             str(self.scanSegmentList[column].start)),
         (QtCore.Qt.EditRole, 1):
         lambda self, column: firstNotNone(
             self.scanSegmentList[column].stopText,
             str(self.scanSegmentList[column].stop)),
         (QtCore.Qt.EditRole, 2):
         lambda self, column: firstNotNone(
             self.scanSegmentList[column].centerText,
             str(self.scanSegmentList[column].center)),
         (QtCore.Qt.EditRole, 3):
         lambda self, column: firstNotNone(
             self.scanSegmentList[column].spanText,
             str(self.scanSegmentList[column].span)),
         (QtCore.Qt.EditRole, 4):
         lambda self, column: firstNotNone(
             self.scanSegmentList[column].stepsText,
             str(self.scanSegmentList[column].steps)),
         (QtCore.Qt.EditRole, 5):
         lambda self, column: firstNotNone(
             self.scanSegmentList[column].stepsizeText,
             str(self.scanSegmentList[column].stepsize)),
         (QtCore.Qt.BackgroundColorRole, 0):
         lambda self, column: self.backgroundLookup[
             (self.scanSegmentList[column].inconsistent, self.
              scanSegmentList[column]._startText is not None)],
         (QtCore.Qt.BackgroundColorRole, 1):
         lambda self, column: self.backgroundLookup[
             (self.scanSegmentList[column].inconsistent, self.
              scanSegmentList[column]._stopText is not None)],
         (QtCore.Qt.BackgroundColorRole, 2):
         lambda self, column: self.backgroundLookup[
             (self.scanSegmentList[column].inconsistent, self.
              scanSegmentList[column]._centerText is not None)],
         (QtCore.Qt.BackgroundColorRole, 3):
         lambda self, column: self.backgroundLookup[
             (self.scanSegmentList[column].inconsistent, self.
              scanSegmentList[column]._spanText is not None)],
         (QtCore.Qt.BackgroundColorRole, 4):
         lambda self, column: self.backgroundLookup[
             (self.scanSegmentList[column].inconsistent, self.
              scanSegmentList[column]._stepsText is not None)],
         (QtCore.Qt.BackgroundColorRole, 5):
         lambda self, column: self.backgroundLookup[
             (self.scanSegmentList[column].inconsistent, self.
              scanSegmentList[column]._stepsizeText is not None)],
         (QtCore.Qt.ToolTipRole, 0):
         lambda self, column: self.scanSegmentList[column]._startText
         if self.scanSegmentList[column]._startText is not None else None,
         (QtCore.Qt.ToolTipRole, 1):
         lambda self, column: self.scanSegmentList[column]._stopText
         if self.scanSegmentList[column]._stopText is not None else None,
         (QtCore.Qt.ToolTipRole, 2):
         lambda self, column: self.scanSegmentList[column]._centerText
         if self.scanSegmentList[column]._centerText is not None else None,
         (QtCore.Qt.ToolTipRole, 3):
         lambda self, column: self.scanSegmentList[column]._spanText
         if self.scanSegmentList[column]._spanText is not None else None,
         (QtCore.Qt.ToolTipRole, 4):
         lambda self, column: self.scanSegmentList[column]._stepsText
         if self.scanSegmentList[column]._stepsText is not None else None,
         (QtCore.Qt.ToolTipRole, 5):
         lambda self, column: self.scanSegmentList[column]._stepsizeText if
         self.scanSegmentList[column]._stepsizeText is not None else None,
         (QtCore.Qt.FontRole, 4):
         lambda self, column: self.fontLookup[self.scanSegmentList[column].
                                              _stepPreference == 'steps'],
         (QtCore.Qt.FontRole, 5):
         lambda self, column: self.fontLookup[self.scanSegmentList[column].
                                              _stepPreference == 'stepsize']
     }
     self.globalDict = globalVariables
     defaultBG = QtGui.QColor(QtCore.Qt.white)
     inconsistentBG = QtGui.QColor(0xff, 0xa6, 0xa6, 0xff)
     textBG = QtGui.QColor(QtCore.Qt.green).lighter(175)
     preferenceFont = QtGui.QFont("MS Shell Dlg 2", -1,
                                  QtGui.QFont.DemiBold, False)
     regularFont = QtGui.QFont("MS Shell Dlg 2", -1, QtGui.QFont.Normal,
                               False)
     self.fontLookup = {True: preferenceFont, False: regularFont}
     self.backgroundLookup = {
         (True, True): inconsistentBG,
         (True, False): inconsistentBG,
         (False, True): textBG,
         (False, False): defaultBG
     }
Ejemplo n.º 30
0
 def setEvaluationLabel(self, scanName):        
     self.evaluationLabel.setText(firstNotNone(scanName, ""))
Ejemplo n.º 31
0
 def onCurrentPositionEvent(self, event):
     self.adjust.line = event.line
     self.currentLineDisplay.setText(str(self.adjust.line))
     self.currentPositionLabel.setText( firstNotNone(event.text, "") )           
     self.updateOutput.emit(self.adjust, False)
Ejemplo n.º 32
0
 def setPosition(self, line):
     if self.currentPosition!=line:
         self.currentPosition = line
         self.currentPositionName = self.position(line)
         self.currentPositionObservable.fire( line=line, text=firstNotNone(self.currentPositionName, "") )
Ejemplo n.º 33
0
 def shuttlingDefinitionPath(self, definitionpath=None):
     path = firstNotNone(definitionpath, self.files.definitionFile)
     filedir, filename = os.path.split(path)
     basename, _ = os.path.splitext(filename)
     return os.path.join(filedir, basename + "_shuttling.xml")
Ejemplo n.º 34
0
 def addTraceui(self, scan, traceui ):
     self.traceuiLookup[scan] = traceui 
     self.plotWindowIndex = dict( (("{0}.{1}".format(key, item), (ui, item, d["view"])) for key, ui in self.traceuiLookup.items() for item, d in ui.graphicsViewDict.items()) )
     updateComboBoxItems( self.windowComboBox, sorted(self.plotWindowIndex.keys()), self.settings.plotWindow )
     self.settings.plotWindow = firstNotNone( self.settings.plotWindow, str(self.windowComboBox.currentText()) )
Ejemplo n.º 35
0
 def onCurrentPositionEvent(self, event):
     self.adjust.line = event.line
     self.currentLineDisplay.setText(str(self.adjust.line))
     self.currentPositionLabel.setText(firstNotNone(event.text, ""))
     self.updateOutput.emit(self.adjust, False)
Ejemplo n.º 36
0
 def setScanLabel(self, scanName):        
     self.scanLabel.setText( firstNotNone(scanName, "") )
Ejemplo n.º 37
0
 def __init__(self, config, globalDict=None, parent=None):
     Base.__init__(self, parent)
     Form.__init__(self)
     self.globalDict = firstNotNone(globalDict, dict())
     self.config = config
     self.configName = 'ControlUi'
Ejemplo n.º 38
0
 def __init__(self, config, parent=None, *args):
     QtCore.QAbstractTableModel.__init__(self, parent, *args)
     self.config = config
     self.dataLookup = {
         (QtCore.Qt.CheckStateRole, 0):
         lambda row: QtCore.Qt.Checked
         if self.fitfunction.parameterEnabled[row] else QtCore.Qt.Unchecked,
         (QtCore.Qt.DisplayRole, 1):
         lambda row: self.fitfunction.parameterNames[row],
         (QtCore.Qt.DisplayRole, 2):
         lambda row: str(self.fitfunction.startParameters[row]),
         (QtCore.Qt.DisplayRole, 3):
         lambda row: mystr(self.fitfunction.parameterBounds[row][0]),
         (QtCore.Qt.DisplayRole, 4):
         lambda row: mystr(self.fitfunction.parameterBounds[row][1]),
         (QtCore.Qt.EditRole, 2):
         lambda row: firstNotNone(
             self.fitfunction.startParameterExpressions[row],
             str(self.fitfunction.startParameters[row])),
         (QtCore.Qt.UserRole, 2):
         lambda row: self.fitfunction.units[row]
         if self.fitfunction.units else None,
         (QtCore.Qt.EditRole, 3):
         lambda row: firstNotNone(
             self.fitfunction.parameterBoundsExpressions[row][0], self.
             fitfunction.parameterBounds[row][0], ""),
         (QtCore.Qt.UserRole, 3):
         lambda row: self.fitfunction.units[row]
         if self.fitfunction.units else None,
         (QtCore.Qt.EditRole, 4):
         lambda row: firstNotNone(
             self.fitfunction.parameterBoundsExpressions[row][1], self.
             fitfunction.parameterBounds[row][1], ""),
         (QtCore.Qt.UserRole, 4):
         lambda row: self.fitfunction.units[row]
         if self.fitfunction.units else None,
         (QtCore.Qt.DisplayRole, 5):
         self.fitValue,
         (QtCore.Qt.DisplayRole, 6):
         self.confidenceValue,
         (QtCore.Qt.DisplayRole, 7):
         self.relConfidenceValue,
         (QtCore.Qt.ToolTipRole, 2):
         lambda row: self.fitfunction.startParameterExpressions[row] if self
         .fitfunction.startParameterExpressions[row] is not None else None,
         (QtCore.Qt.BackgroundRole, 2):
         lambda row: self.backgroundLookup[
             self.fitfunction.startParameterExpressions[row] is not None],
         (QtCore.Qt.BackgroundRole, 3):
         lambda row: self.backgroundLookup[self.fitfunction.
                                           parameterBoundsExpressions[row][
                                               0] is not None],
         (QtCore.Qt.BackgroundRole, 4):
         lambda row: self.backgroundLookup[
             self.fitfunction.parameterBoundsExpressions[row][1
                                                              ] is not None]
     }
     self.setDataLookup = {
         (QtCore.Qt.CheckStateRole, 0): self.setParametersEnabled,
         (QtCore.Qt.EditRole, 2): self.setStartParameters,
         (QtCore.Qt.UserRole, 2): self.setStartParameterExpression,
         (QtCore.Qt.EditRole, 3): partial(self.setParametersBound, 0),
         (QtCore.Qt.UserRole, 3):
         partial(self.setParametersBoundsExpression, 0),
         (QtCore.Qt.EditRole, 4): partial(self.setParametersBound, 1),
         (QtCore.Qt.UserRole, 4):
         partial(self.setParametersBoundsExpression, 1)
     }
     self.fitfunction = None
Ejemplo n.º 39
0
 def shuttlingDefinitionPath(self, definitionpath=None ):
     path = firstNotNone( definitionpath, self.files.definitionFile )
     filedir, filename = os.path.split(path)
     basename, _ = os.path.splitext(filename)
     return os.path.join( filedir, basename+"_shuttling.xml" )
Ejemplo n.º 40
0
 def updateStyleSheet(self, hasFocus=None):
     hasFocus = firstNotNone(hasFocus, self.hasFocus())
     self.setStyleSheet(
         "ExpressionSpinBox { background-color: #bfffbf; }"
     ) if self.expressionValue.hasDependency and not hasFocus else self.setStyleSheet(
         "")
Ejemplo n.º 41
0
 def setAnalysisLabel(self, scanName):        
     self.analysisLabel.setText(firstNotNone(scanName, ""))
Ejemplo n.º 42
0
 def setAnalysisLabel(self, scanName):
     self.analysisLabel.setText(firstNotNone(scanName, ""))
Ejemplo n.º 43
0
 def setScanLabel(self, scanName):
     self.scanLabel.setText(firstNotNone(scanName, ""))
Ejemplo n.º 44
0
 def setEvaluationLabel(self, scanName):
     self.evaluationLabel.setText(firstNotNone(scanName, ""))
Ejemplo n.º 45
0
 def __init__(self, config, globalDict=None, parent=None):
     Base.__init__(self, parent)
     Form.__init__(self)
     self.globalDict = firstNotNone( globalDict, dict() )
     self.config = config
     self.configName = 'ControlUi'
Ejemplo n.º 46
0
 def data(self, index, role): 
     if index.isValid():
         if role == QtCore.Qt.DisplayRole:
             printer = firstNotNone( self.printers[index.column()], str )
             return printer(self.data[index.row()][index.column()])
     return None
Ejemplo n.º 47
0
 def updateStyleSheet(self, hasFocus=None):
     hasFocus = firstNotNone(hasFocus, self.hasFocus())
     self.setStyleSheet("ExpressionSpinBox { background-color: #bfffbf; }") if self.expressionValue.hasDependency and not hasFocus else self.setStyleSheet("")
Ejemplo n.º 48
0
 def onActiveInstrumentChanged(self, modelIndex, modelIndex2 ):
     measurement = self.container.measurements[modelIndex.row()]
     self.parameterModel.setParameters( measurement.parameters )
     self.resultModel.setResults( measurement.results )
     self.plainTextEdit.setPlainText( firstNotNone( measurement.longComment, "" ) )
     self.currentMeasurement = measurement