def open_macroserver_connection_panel(self): w = TaurusMacroConfigurationDialog(self) Qt.qApp.SDM.connectReader("macroserverName", w.selectMacroServer) Qt.qApp.SDM.connectReader("doorName", w.selectDoor) Qt.qApp.SDM.connectReader("doorName", self.onDoorChanged) Qt.qApp.SDM.connectWriter("macroserverName", w, 'macroserverNameChanged') Qt.qApp.SDM.connectWriter("doorName", w, 'doorNameChanged') w.show()
def open_macroserver_connection_panel(self): w = TaurusMacroConfigurationDialog(self) Qt.qApp.SDM.connectReader("macroserverName", w.selectMacroServer) Qt.qApp.SDM.connectReader("doorName", w.selectDoor) Qt.qApp.SDM.connectReader("doorName", self.onDoorChanged) Qt.qApp.SDM.connectWriter( "macroserverName", w, 'macroserverNameChanged') Qt.qApp.SDM.connectWriter("doorName", w, 'doorNameChanged') w.show()
def changeConfiguration(self): """This method is used to change macroserver as a model of application. It shows dialog with list of all macroservers on tango host, if the user Cancel dialog it doesn't do anything.""" dialog = TaurusMacroConfigurationDialog( self, self.spockWidget._macro_server_name, self.modelName) if dialog.exec_(): self.spockWidget.setModel(str(dialog.doorComboBox.currentText())) else: return
def demo(model=None): """Experiment configuration""" #w = main_ChannelEditor() w = ExpDescriptionEditor() if model is None: from sardana.taurus.qt.qtgui.extra_macroexecutor import \ TaurusMacroConfigurationDialog dialog = TaurusMacroConfigurationDialog(w) accept = dialog.exec_() if accept: model = str(dialog.doorComboBox.currentText()) if model is not None: w.setModel(model) return w
def _createPermanentPanels(self): '''creates panels on the main window''' from sardana.taurus.qt.qtgui.extra_macroexecutor import \ TaurusMacroExecutorWidget, TaurusSequencerWidget, \ TaurusMacroConfigurationDialog, TaurusMacroDescriptionViewer, \ DoorOutput, DoorDebug, DoorResult from sardana.taurus.qt.qtgui.extra_sardana import \ ExpDescriptionEditor, SardanaEditor mainwindow = self.parent() # Create macroconfiguration dialog & action self.__macroConfigurationDialog = \ TaurusMacroConfigurationDialog(mainwindow) self.macroConfigurationAction = mainwindow.taurusMenu.addAction( Qt.QIcon.fromTheme("preferences-system-session"), "Macro execution configuration...", self.__macroConfigurationDialog.show) SDM = Qt.qApp.SDM SDM.connectReader("macroserverName", self.__macroConfigurationDialog.selectMacroServer) SDM.connectReader("doorName", self.__macroConfigurationDialog.selectDoor) SDM.connectWriter("macroserverName", self.__macroConfigurationDialog, 'macroserverNameChanged') SDM.connectWriter("doorName", self.__macroConfigurationDialog, 'doorNameChanged') # Create ExpDescriptionEditor dialog self.__expDescriptionEditor = ExpDescriptionEditor(plotsButton=False) SDM.connectReader("doorName", self.__expDescriptionEditor.setModel) mainwindow.createPanel(self.__expDescriptionEditor, 'Experiment Config', registerconfig=True, icon=Qt.QIcon.fromTheme('preferences-system'), permanent=True) ############################### # TODO: These lines can be removed once the door does emit # "experimentConfigurationChanged" signals SDM.connectWriter("expConfChanged", self.__expDescriptionEditor, "experimentConfigurationChanged") ################################ # put a Macro Executor self.__macroExecutor = TaurusMacroExecutorWidget() SDM.connectReader("macroserverName", self.__macroExecutor.setModel) SDM.connectReader("doorName", self.__macroExecutor.onDoorChanged) SDM.connectReader("macroStatus", self.__macroExecutor.onMacroStatusUpdated) SDM.connectWriter("macroName", self.__macroExecutor, "macroNameChanged") SDM.connectWriter("executionStarted", self.__macroExecutor, "macroStarted") SDM.connectWriter("plotablesFilter", self.__macroExecutor, "plotablesFilterChanged") SDM.connectWriter("shortMessage", self.__macroExecutor, "shortMessageEmitted") mainwindow.createPanel(self.__macroExecutor, 'Macros', registerconfig=True, permanent=True) # put a Sequencer self.__sequencer = TaurusSequencerWidget() SDM.connectReader("macroserverName", self.__sequencer.setModel) SDM.connectReader("doorName", self.__sequencer.onDoorChanged) SDM.connectReader("macroStatus", self.__sequencer.onMacroStatusUpdated) SDM.connectWriter("macroName", self.__sequencer.tree, "macroNameChanged") SDM.connectWriter("macroName", self.__sequencer, "macroNameChanged") SDM.connectWriter("executionStarted", self.__sequencer, "macroStarted") SDM.connectWriter("plotablesFilter", self.__sequencer, "plotablesFilterChanged") SDM.connectWriter("shortMessage", self.__sequencer, "shortMessageEmitted") mainwindow.createPanel(self.__sequencer, 'Sequences', registerconfig=True, permanent=True) # puts a macrodescriptionviewer self.__macroDescriptionViewer = TaurusMacroDescriptionViewer() SDM.connectReader("macroserverName", self.__macroDescriptionViewer.setModel) SDM.connectReader("macroName", self.__macroDescriptionViewer.onMacroNameChanged) mainwindow.createPanel(self.__macroDescriptionViewer, 'MacroDescription', registerconfig=True, permanent=True) # puts a doorOutput self.__doorOutput = DoorOutput() SDM.connectReader("doorOutputChanged", self.__doorOutput.onDoorOutputChanged) SDM.connectReader("doorInfoChanged", self.__doorOutput.onDoorInfoChanged) SDM.connectReader("doorWarningChanged", self.__doorOutput.onDoorWarningChanged) SDM.connectReader("doorErrorChanged", self.__doorOutput.onDoorErrorChanged) mainwindow.createPanel(self.__doorOutput, 'DoorOutput', registerconfig=False, permanent=True) # puts doorDebug self.__doorDebug = DoorDebug() SDM.connectReader("doorDebugChanged", self.__doorDebug.onDoorDebugChanged) mainwindow.createPanel(self.__doorDebug, 'DoorDebug', registerconfig=False, permanent=True) # puts doorResult self.__doorResult = DoorResult(mainwindow) SDM.connectReader("doorResultChanged", self.__doorResult.onDoorResultChanged) mainwindow.createPanel(self.__doorResult, 'DoorResult', registerconfig=False, permanent=True) # puts sardanaEditor # self.__sardanaEditor = SardanaEditor() # SDM.connectReader("macroserverName", self.__sardanaEditor.setModel) # mainwindow.createPanel(self.__sardanaEditor, 'SardanaEditor', # registerconfig=False, permanent=True) # add panic button for aborting the door text = "Panic Button: stops the pool (double-click for abort)" self.doorAbortAction = mainwindow.jorgsBar.addAction( Qt.QIcon("actions:process-stop.svg"), text, self.__onDoorAbort) # store beginning of times as a datetime self.__lastAbortTime = datetime.datetime(1, 1, 1) # store doubleclick interval as a timedelta td = datetime.timedelta(0, 0, 1000 * Qt.qApp.doubleClickInterval()) self.__doubleclickInterval = td