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 )
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)
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)
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 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)
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)
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()) )
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)
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 )
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 ))
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]))
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)
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()))
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 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))
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()) )
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] )
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)
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)
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()
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
def populateAnalysisItem(self, name, settingsDict ): self.scanModuleAnalysis[name] = sorted(settingsDict.keys()) if name == self.currentMeasurementsDisplayedForScan: updateComboBoxItems( self.analysisSelectionBox, self.scanModuleAnalysis[name] )
def setupGraphDependent(self): updateComboBoxItems( self.destinationComboBox, sorted(self.shuttlingGraph.nodes()) )
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()) )
def onDeleteSaveTodoList(self): text = str(self.comboBoxListCache.currentText()) if text in self.settingsCache: self.settingsCache.pop(text) updateComboBoxItems(self.comboBoxListCache, sorted(self.settingsCache.keys()))
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)
def onRecentPPFilesChanged(self, namelist): updateComboBoxItems(self.loadPPComboBox, sorted(namelist)) self.checkSettingsSavable()