def saveOrReloadSize(self,key) : if key & (qt.Qt.SHIFT|qt.Qt.CTRL) : key &= ~(qt.Qt.SHIFT|qt.Qt.CTRL) keyname = 'F%d' % ((key - qt.Qt.Key_F9) + 9) self.saveSize('_%d' % key) qt.QMessageBox.information(self,'Position and size','This configuration is saved on key %s' % keyname,qt.QMessageBox.Default) else: for display in self.windows: window = self.configuration.windows[str(display.name())] GUIDisplay.restoreSizes(self.configuration,window,display,configurationSuffix = '_%d' % key,moveWindowFlag = False)
def renew(self): self.windowPreviewBox.close(True) self.windowPreviewBox = qt.QVGroupBox("Window preview", self) self.windowPreview = GUIDisplay.WindowDisplayWidget(self.windowPreviewBox) qt.QObject.connect(self.windowPreview, qt.PYSIGNAL("itemClicked"), self.previewItemClicked) self.layout().addWidget(self.windowPreviewBox) self.windowPreviewBox.show()
def __init__(self, *args, **kwargs): qt.QWidget.__init__(self, *args) self.setCaption("GUI Preview") self.windowPreviewBox = qt.QVGroupBox("Window preview", self) self.windowPreview = GUIDisplay.WindowDisplayWidget(self.windowPreviewBox) qt.QObject.connect(self.windowPreview, qt.PYSIGNAL("itemClicked"), self.previewItemClicked) qt.QVBoxLayout(self) self.layout().addWidget(self.windowPreviewBox) # set arbitrary default size self.resize(640,480)
def execute(self, config): # # start in execution mode # self.windows = GUIDisplay.display(config, noBorder=self.noBorder) main_window = None if len(self.windows) > 0: main_window = self.windows[0] main_window.configuration = config qt.qApp.setMainWidget(main_window) if self.noBorder: main_window.move(0, 0) w = qt.qApp.desktop().width() h = qt.qApp.desktop().height() main_window.resize(qt.QSize(w, h)) # # make connections # widgets_dict = dict( [ (callable(w.name) and w.name() or None, w) for w in qt.QApplication.allWidgets() ] ) def make_connections(items_list): for item in items_list: try: sender = widgets_dict[item["name"]] except KeyError: logging.getLogger().error( "Could not find receiver widget %s", item["name"] ) else: for connection in item["connections"]: _receiver = ( connection["receiver"] or connection["receiverWindow"] ) try: receiver = widgets_dict[_receiver] except KeyError: logging.getLogger().error( "Could not find receiver widget %s", _receiver ) else: try: slot = getattr(receiver, connection["slot"]) except AttributeError: logging.getLogger().error( "No slot '%s' in receiver %s", connection["slot"], _receiver, ) else: # print "connecting %s to slot %s on signal %s" % (sender, slot, connection["signal"]) sender.connect( sender, qt.PYSIGNAL(connection["signal"]), slot ) make_connections(item["children"]) make_connections(config.windows_list) # # set run mode for every brick # BlissWidget.setRunMode(True) if self.showMaximized: main_window.showMaximized() else: main_window.show() for window in self.windows: window._fontSizeAccel = qt.QAccel(window) window._fontSizeAccel.insertItem(qt.Qt.CTRL + qt.Qt.Key_Minus, 1) window._fontSizeAccel.insertItem(qt.Qt.CTRL + qt.Qt.Key_Plus, 2) window._fontSizeAccel.insertItem(qt.Qt.CTRL + qt.Qt.Key_Asterisk, 0) window._whatsThisAccel = qt.QAccel(window) window._whatsThisAccel.insertItem(qt.Qt.Key_F1) window._reloadAccel = qt.QAccel(window) window._reloadAccel.insertItem(qt.Qt.CTRL + qt.Qt.SHIFT + qt.Qt.Key_F5) window._splitterPositionAccel = qt.QAccel(window) for key in [qt.Qt.Key_F9, qt.Qt.Key_F10, qt.Qt.Key_F11, qt.Qt.Key_F12]: window._splitterPositionAccel.insertItem( qt.Qt.SHIFT + key, qt.Qt.SHIFT + key ) window._splitterPositionAccel.insertItem( qt.Qt.CTRL + key, qt.Qt.CTRL + key ) window._splitterPositionAccel.insertItem(key, key) qt.QObject.connect( window._splitterPositionAccel, qt.SIGNAL("activated(int)"), self.saveOrReloadSize, ) qt.QObject.connect( window._fontSizeAccel, qt.SIGNAL("activated(int)"), self.changeFontSize, ) qt.QObject.connect( window._whatsThisAccel, qt.SIGNAL("activated(int)"), BlissWidget.updateWhatsThis, ) qt.QObject.connect( window._reloadAccel, qt.SIGNAL("activated(int)"), self.reloadGUI ) if window._show: window.show() if BlissWidget._menuBar: BlissWidget._menuBar.setExpertMode(False) return main_window
def execute(self, config): # # start in execution mode # self.windows = GUIDisplay.display(config, noBorder=self.noBorder) main_window = None if len(self.windows) > 0: main_window = self.windows[0] main_window.configuration = config qt.qApp.setMainWidget(main_window) if self.noBorder: main_window.move(0, 0) w = qt.qApp.desktop().width() h = qt.qApp.desktop().height() main_window.resize(qt.QSize(w, h)) # # make connections # widgets_dict = dict([ (isinstance(w.name, collections.Callable) and w.name() or None, w) for w in qt.QApplication.allWidgets() ]) def make_connections(items_list): for item in items_list: try: sender = widgets_dict[item["name"]] except KeyError: logging.getLogger().error( "Could not find receiver widget %s", item["name"]) else: for connection in item["connections"]: _receiver = connection["receiver"] or connection[ "receiverWindow"] try: receiver = widgets_dict[_receiver] except KeyError: logging.getLogger().error( "Could not find receiver widget %s", _receiver) else: try: slot = getattr(receiver, connection["slot"]) except AttributeError: logging.getLogger().error( "No slot '%s' in receiver %s", connection["slot"], _receiver) else: #print "connecting %s to slot %s on signal %s" % (sender, slot, connection["signal"]) sender.connect( sender, qt.PYSIGNAL(connection["signal"]), slot) make_connections(item["children"]) make_connections(config.windows_list) # # set run mode for every brick # BlissWidget.setRunMode(True) if self.showMaximized: main_window.showMaximized() else: main_window.show() for window in self.windows: window._fontSizeAccel = qt.QAccel(window) window._fontSizeAccel.insertItem(qt.Qt.CTRL + qt.Qt.Key_Minus, 1) window._fontSizeAccel.insertItem(qt.Qt.CTRL + qt.Qt.Key_Plus, 2) window._fontSizeAccel.insertItem( qt.Qt.CTRL + qt.Qt.Key_Asterisk, 0) window._whatsThisAccel = qt.QAccel(window) window._whatsThisAccel.insertItem(qt.Qt.Key_F1) window._reloadAccel = qt.QAccel(window) window._reloadAccel.insertItem(qt.Qt.CTRL + qt.Qt.SHIFT + qt.Qt.Key_F5) window._splitterPositionAccel = qt.QAccel(window) for key in [ qt.Qt.Key_F9, qt.Qt.Key_F10, qt.Qt.Key_F11, qt.Qt.Key_F12 ]: window._splitterPositionAccel.insertItem( qt.Qt.SHIFT + key, qt.Qt.SHIFT + key) window._splitterPositionAccel.insertItem( qt.Qt.CTRL + key, qt.Qt.CTRL + key) window._splitterPositionAccel.insertItem(key, key) qt.QObject.connect(window._splitterPositionAccel, qt.SIGNAL('activated(int)'), self.saveOrReloadSize) qt.QObject.connect(window._fontSizeAccel, qt.SIGNAL('activated(int)'), self.changeFontSize) qt.QObject.connect(window._whatsThisAccel, qt.SIGNAL('activated(int)'), BlissWidget.updateWhatsThis) qt.QObject.connect(window._reloadAccel, qt.SIGNAL('activated(int)'), self.reloadGUI) if window._show: window.show() if BlissWidget._menuBar: BlissWidget._menuBar.setExpertMode(False) return main_window