Exemplo n.º 1
0
 def onSaveProfile(self):
     name = str(self.profileComboBox.currentText())
     isNew = name not in self.settingsDict
     self.settingsDict[name] = copy.deepcopy( self.settings )
     if isNew:
         updateComboBoxItems( self.profileComboBox, sorted(self.settingsDict.keys()), name)
     self.saveProfileButton.setEnabled( False )
Exemplo n.º 2
0
 def onRemoveProfile(self):
     name = str(self.profileComboBox.currentText())
     if name in self.settingsDict:
         self.settingsDict.pop(name)
         updateComboBoxItems( self.profileComboBox, sorted(self.settingsDict.keys()))
         name = str(self.profileComboBox.currentText())
         self.onLoadProfile(name)
Exemplo n.º 3
0
 def setSettings(self, settings):
     logger = logging.getLogger(__name__)
     logger.debug( str( settings) )
     logger.debug( "GateSequenceUi SetSettings {0}".format( settings.__dict__ ) )
     self.settings = settings
     self.GateSequenceEnableCheckBox.setChecked( self.settings.enabled )
     self.GateSequenceFrame.setEnabled( self.settings.enabled )
     self.GateEdit.setText( ", ".join(self.settings.gate ))
     self.repetitionSpinBox.setValue( self.settings.thisSequenceRepetition )
     if self.settings.startAddressParam:
         self.StartAddressBox.setCurrentIndex(self.StartAddressBox.findText(self.settings.startAddressParam) )
     else:
         self.settings.startAddressParam = str(self.StartAddressBox.currentText())
     self.settings.startAddressParam = str(self.settings.startAddressParam)
     try:
         updateComboBoxItems(self.GateDefinitionBox, list(self.settings.gateDefinitionCache.keys()))
         updateComboBoxItems(self.GateSequenceBox, list(self.settings.gateSequenceCache.keys()))
         self.updateDatastructures()
     except IOError as err:
         logger.warning( "{0} during loading of GateSequence Files, ignored.".format(err) )
     with BlockSignals(self.FullListRadioButton) as w:
         if self.settings.active == self.Mode.FullList:
             self.FullListRadioButton.setChecked(True)
         elif self.settings.active == self.Mode.Gate:
             self.GateRadioButton.setChecked(True)
Exemplo n.º 4
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()) )
Exemplo n.º 5
0
 def onSaveProfile(self):
     name = str(self.profileDedicatedCountersComboBox.currentText())
     isNew = name not in self.settingsDict
     self.settingsDict[name] = copy.deepcopy(self.settings)
     if isNew:
         updateComboBoxItems(self.profileDedicatedCountersComboBox,
                             sorted(self.settingsDict.keys()), name)
Exemplo n.º 6
0
    def setPulseProgramUi(self, pulseProgramUi):
        logger = logging.getLogger(__name__)
        logger.debug("ScanControl.setPulseProgramUi {0}".format(
            list(pulseProgramUi.configParams.recentFiles.keys())))
        isStartup = self.pulseProgramUi is None
        self.pulseProgramUi = pulseProgramUi
        updateComboBoxItems(self.loadPPComboBox,
                            sorted(pulseProgramUi.contextDict.keys()),
                            self.settings.loadPPName)
        try:
            self.pulseProgramUi.contextDictChanged.connect(
                self.onRecentPPFilesChanged, QtCore.Qt.UniqueConnection)
        except TypeError:
            pass  # is raised if the connection already existed

        if not self.gateSequenceUi:
            self.gateSequenceUi = GateSequenceUi.GateSequenceUi()
            self.gateSequenceUi.valueChanged.connect(self.checkSettingsSavable)
            self.gateSequenceUi.postInit('test', self.config,
                                         self.pulseProgramUi.pulseProgram)
            self.gateSequenceUi.setupUi(self.gateSequenceUi)
            self.toolBox.addItem(self.gateSequenceUi, "Gate Sequences")
        if pulseProgramUi.currentContext.parameters:
            self.gateSequenceUi.setVariables(
                pulseProgramUi.currentContext.parameters)
        try:
            self.gateSequenceUi.setSettings(self.settings.gateSequenceSettings)
        except GateSequenceException as e:
            logger.exception(e)
        if isStartup:
            self.onLoadPP(self.settings.loadPPName)
Exemplo n.º 7
0
 def onPlotConfigurationChanged(self, plotDict):
     self.plotDict = plotDict
     if self.traceSettings.frequencyPlot not in self.plotDict:
         self.traceSettings.frequencyPlot = list(self.plotDict.keys())[0]
     if self.traceSettings.errorSigPlot not in self.plotDict:
         self.traceSettings.errorSigPlot = list(self.plotDict.keys())[0]
     updateComboBoxItems( self.frequencyPlotCombo, list(self.plotDict.keys()) )
     updateComboBoxItems( self.errorSigPlotCombo, list(self.plotDict.keys()) )       
Exemplo n.º 8
0
 def onRemoveProfile(self):
     name = str(self.profileDedicatedCountersComboBox.currentText())
     if name in self.settingsDict:
         self.settingsDict.pop(name)
         updateComboBoxItems(self.profileDedicatedCountersComboBox,
                             sorted(self.settingsDict.keys()))
         name = str(self.profileComboBox.currentText())
         self.onLoadProfile(name)
Exemplo n.º 9
0
 def onSave(self):
     if self.currentAnalysisName != '':
         if self.currentAnalysisName not in self.analysisDefinitionDict or self.analysisDefinition != self.analysisDefinitionDict[self.currentAnalysisName]:
             logging.getLogger(__name__).debug("Saving Analysis '{0}' '{1}'".format(self.currentAnalysisName, self.analysisDefinition[0].name if self.analysisDefinition else ""))
             self.analysisDefinitionDict[self.currentAnalysisName] = copy.deepcopy(self.analysisDefinition)
             if self.analysisConfigurationComboBox.findText(self.currentAnalysisName)==-1:
                 updateComboBoxItems(self.analysisConfigurationComboBox, sorted([ key for key in self.analysisDefinitionDict.keys() if key ]))
             self.saveButton.setEnabled( False )
             self.analysisConfigurationChanged.emit( self.analysisDefinitionDict )
Exemplo n.º 10
0
 def getInstrumentSuggestions(self, className=None):
     className = str(className) if className else self.classComboBox.currentText()
     myclass = self.classdict[className]
     if hasattr(myclass, 'connectedInstruments'):
         updateComboBoxItems(self.instrumentComboBox, sorted(myclass.connectedInstruments()))
         self.refreshInstrumentComboBox.setEnabled(True)
     else:
         self.instrumentComboBox.clear()
         self.refreshInstrumentComboBox.setEnabled(False)
 def onSpaceChanged(self, newSpace):
     newSpace = str(newSpace)
     if self.parameters.space is not None and self.parameters.parameter is not None:
         self.parameters.spaceParamCache[self.parameters.space] = self.parameters.parameter
     self.parameters.space = newSpace
     self.parameters.parameter = self.parameters.spaceParamCache.get( self.parameters.space, self.parameterNames[self.parameters.space][0] if len(self.parameterNames[self.parameters.space])>0 else None )
     updateComboBoxItems( self.comboBoxParam, sorted(self.parameterNames[self.parameters.space]) )
     if self.parameters.parameter is not None:
         self.comboBoxParam.setCurrentIndex( self.comboBoxParam.findText(self.parameters.parameter ))
Exemplo n.º 12
0
 def onRefresh(self):
     self.parameterNames = defaultdict(list)
     for (space,
          source) in list(self.connection.refreshSourceDict().keys()):
         self.parameterNames[space].append(source)
     updateComboBoxItems(self.comboBoxSpace,
                         sorted(self.parameterNames.keys()))
     updateComboBoxItems(self.comboBoxParam,
                         sorted(self.parameterNames[self.parameters.space]))
Exemplo n.º 13
0
 def onSaveTodoList(self):
     text = str(self.comboBoxListCache.currentText())
     if text is not None and text !=  "":
         new = text not in self.settingsCache
         if new or self.settings!=self.settingsCache[text]:
             self.settingsCache[text] = deepcopy( self.settings )
             self.masterSettings.currentSettingName = text
             if new:
                 updateComboBoxItems(self.comboBoxListCache, sorted(self.settingsCache.keys()))
     self.checkSettingsSavable(savable=False)
Exemplo n.º 14
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()))
Exemplo n.º 15
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()))
Exemplo n.º 16
0
 def onSpaceChanged(self, newSpace):
     newSpace = str(newSpace)
     if self.parameters.space is not None and self.parameters.parameter is not None:
         self.parameters.spaceParamCache[
             self.parameters.space] = self.parameters.parameter
     self.parameters.space = newSpace
     self.parameters.parameter = self.parameters.spaceParamCache.get(
         self.parameters.space,
         self.parameterNames[self.parameters.space][0]
         if len(self.parameterNames[self.parameters.space]) > 0 else None)
     updateComboBoxItems(self.comboBoxParam,
                         sorted(self.parameterNames[self.parameters.space]))
     if self.parameters.parameter is not None:
         self.comboBoxParam.setCurrentIndex(
             self.comboBoxParam.findText(self.parameters.parameter))
Exemplo n.º 17
0
    def setSettings(self, settings):
        self.settings = copy.deepcopy(settings)
        if self.globalDict:
            self.settings.evaluate(self.globalDict)
        self.scanModeComboBox.setCurrentIndex(self.settings.scanMode)
        self.scanTypeCombo.setCurrentIndex(self.settings.scantype)
        self.autoSaveCheckBox.setChecked(self.settings.autoSave)
        self.saveRawCheckBox.setChecked(self.settings.saveRawData)
        self.histogramSaveCheckBox.setChecked(self.settings.histogramSave)
        if self.settings.scanTarget:
            self.settings.scanParameter = self.doChangeScanTarget(
                self.settings.scanTarget, self.settings.scanParameter)
        elif self.comboBoxScanTarget.count() > 0:
            self.settings.scanTarget = str(
                self.comboBoxScanTarget.currentText())
            self.settings.scanParameter = self.doChangeScanTarget(
                self.settings.scanTarget, None)
        if self.settings.parallelInternalScanParameter:
            updateComboBoxItems(self.parallelInternalScanComboBox,
                                self.scanTargetDict.get('Internal'),
                                self.settings.parallelInternalScanParameter)
        filename = getattr(self.settings, 'filename', '')
        self.filenameEdit.setText(filename if filename else '')
        self.rawFilenameEdit.setText(getattr(self.settings, 'rawFilename', ''))
        self.histogramFilenameEdit.setText(
            getattr(self.settings, 'histogramFilename', ''))
        self.scanTypeCombo.setEnabled(self.settings.scanMode in [0, 1])
        self.xUnitEdit.setText(self.settings.xUnit)
        self.xExprEdit.setText(self.settings.xExpression)
        self.maxPointsBox.setValue(self.settings.maxPoints)

        self.loadPPcheckBox.setChecked(self.settings.loadPP)
        if self.settings.loadPPName:
            index = self.loadPPComboBox.findText(self.settings.loadPPName)
            if index >= 0:
                self.loadPPComboBox.setCurrentIndex(index)
                self.onLoadPP(self.settings.loadPPName)
        self.onModeChanged(self.settings.scanMode)
        if self.gateSequenceUi:
            self.gateSequenceUi.setSettings(self.settings.gateSequenceSettings)
        self.checkSettingsSavable()
        self.tableModel.setScanList(self.settings.scanSegmentList)
 def onRefresh(self):
     self.parameterNames = defaultdict( list )
     for (space, source) in list(self.connection.refreshSourceDict().keys()):
         self.parameterNames[space].append(source)
     updateComboBoxItems( self.comboBoxSpace, sorted(self.parameterNames.keys()) )
     updateComboBoxItems( self.comboBoxParam, sorted(self.parameterNames[self.parameters.space]) )
     updateComboBoxItems( self.comboBoxPlotName, sorted(self.plotDict.keys()) )        
Exemplo n.º 19
0
 def updateMeasurementSelectionBox(self, newscan ):
     newscan = str(newscan)
     if self.currentMeasurementsDisplayedForScan != newscan:
         self.currentMeasurementsDisplayedForScan = newscan
         updateComboBoxItems(self.measurementSelectionBox, self.scanModuleMeasurements[newscan] )
         updateComboBoxItems(self.evaluationSelectionBox, self.scanModuleEvaluations[newscan] )
         updateComboBoxItems(self.analysisSelectionBox, self.scanModuleAnalysis[newscan] )
Exemplo n.º 20
0
 def onSave(self):
     if self.currentAnalysisName != '':
         if self.currentAnalysisName not in self.analysisDefinitionDict or self.analysisDefinition != self.analysisDefinitionDict[
                 self.currentAnalysisName]:
             logging.getLogger(__name__).debug(
                 "Saving Analysis '{0}' '{1}'".format(
                     self.currentAnalysisName,
                     self.analysisDefinition[0].name
                     if self.analysisDefinition else ""))
             self.analysisDefinitionDict[
                 self.currentAnalysisName] = copy.deepcopy(
                     self.analysisDefinition)
             if self.analysisConfigurationComboBox.findText(
                     self.currentAnalysisName) == -1:
                 updateComboBoxItems(
                     self.analysisConfigurationComboBox,
                     sorted([
                         key for key in self.analysisDefinitionDict.keys()
                         if key
                     ]))
             self.saveButton.setEnabled(False)
             self.analysisConfigurationChanged.emit(
                 self.analysisDefinitionDict)
Exemplo n.º 21
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)
Exemplo n.º 22
0
 def onChangeScanTarget(self, name):
     """ called on currentIndexChanged[QString] signal of ComboBox"""
     name = str(name)
     if name != self.parameters.currentScanTarget:
         self.parameters.scanTargetCache[
             self.parameters.
             currentScanTarget] = self.settings.scanParameter
         cachedParam = self.parameters.scanTargetCache.get(name)
         cachedParam = updateComboBoxItems(
             self.comboBoxParameter, sorted(self.scanTargetDict[name]),
             cachedParam)
         self.settings.scanParameter = cachedParam
         self.settings.scanTarget = name
         self.parameters.currentScanTarget = name
     self.parallelInternalScanComboBox.setVisible(name != "Internal")
     self.checkSettingsSavable()
Exemplo n.º 23
0
 def doChangeScanTarget(self, name, scanParameter):
     """ Change the scan target as part of loading a parameter set,
     we know the ScanParameter to select and want it either selected or added as red item """
     name = str(name)
     if name != self.parameters.currentScanTarget:
         with BlockSignals(self.comboBoxScanTarget):
             self.comboBoxScanTarget.setCurrentIndex(
                 self.comboBoxScanTarget.findText(name))
         targets = self.scanTargetDict.get(name)
         if targets is not None:
             targets = sorted(targets)
         scanParameter = updateComboBoxItems(self.comboBoxParameter,
                                             targets, scanParameter)
         self.settings.scanTarget = name
         self.parameters.currentScanTarget = name
     else:
         self.comboBoxParameter.setCurrentIndex(
             self.comboBoxParameter.findText(scanParameter))
     self.checkSettingsSavable()
     return scanParameter
Exemplo n.º 24
0
 def populateAnalysisItem(self, name, settingsDict ):
     self.scanModuleAnalysis[name] = sorted(settingsDict.keys())
     if name == self.currentMeasurementsDisplayedForScan:
         updateComboBoxItems( self.analysisSelectionBox, self.scanModuleAnalysis[name] )            
Exemplo n.º 25
0
 def setupGraphDependent(self):
     updateComboBoxItems( self.destinationComboBox, sorted(self.shuttlingGraph.nodes()) )
Exemplo n.º 26
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()) )
Exemplo n.º 27
0
 def onDeleteSaveTodoList(self):
     text = str(self.comboBoxListCache.currentText())
     if text in self.settingsCache:
         self.settingsCache.pop(text)
         updateComboBoxItems(self.comboBoxListCache, sorted(self.settingsCache.keys()))
Exemplo n.º 28
0
 def setupGraphDependent(self):
     updateComboBoxItems(self.destinationComboBox,
                         sorted(self.shuttlingGraph.nodes()))
 def onSaveProfile(self):
     name = str(self.profileDedicatedCountersComboBox.currentText())
     isNew = name not in self.settingsDict
     self.settingsDict[name] = copy.deepcopy( self.settings )
     if isNew:
         updateComboBoxItems( self.profileDedicatedCountersComboBox, sorted(self.settingsDict.keys()), name)
Exemplo n.º 30
0
 def onRecentPPFilesChanged(self, namelist):
     updateComboBoxItems(self.loadPPComboBox, sorted(namelist))
     self.checkSettingsSavable()