def __init__(self): super().__init__() self.actionManager = ActionManager() self.progressManager = ProgressManager() self.modeManager = None self.helpManager = HelpManager() self._contextWidgets = dict() self._activeContext = [] self._additionalContexts = Constants.C_GLOBAL self._printer = QPrinter(QPrinter.HighResolution) self._settings = PluginManager.settings self.globalSettings = PluginManager.globalSettings self._modeStack = FancyTabWidget() self._navigationWidget = None self._rightPaneWidget = None self._versionDialog = None self._generalSettings = GeneralSettings() self._shortcutSettings = ShortcutSettings() self._focusToEditor = None self._newAction = None self._exitAction = None self._optionsAction = None self._toggleSideBarAction = None self._toggleFullScreenAction = None self._minimizeAction = None self._zoomAction = None self._toggleSideBarButton = QToolButton() self.setWindowTitle("MedUX") QApplication.setWindowIcon(None) #TODO: create app icon QApplication.setApplicationName("MedUX") QApplication.setOrganizationName("MedWorx") self.setDockNestingEnabled(True) self.setCorner(Qt.BottomLeftCorner, Qt.LeftDockWidgetArea) self.setCorner(Qt.BottomRightCorner, Qt.BottomDockWidgetArea) self.modeManager = ModeManager(self, self._modeStack) self.registerDefaultContainers() self.registerDefaultActions() self._navigationWidget = NavigationWidget(self._toggleSideBarAction) self._editorManager.hide() self.setCentralWidget(self._modeStack) self._progressManager.progressView().setParent(self) self._progressManager.progressView().setReferenceWidget(self._modeStack.statusBar()) QApplication.instance().focusChanged.connect(self.updateFocusWidget) self.statusBar.insertPermanentWidget(0, self._toggleSideBarButton) self.statusBar.setProperty("p_styled", True) self.setAcceptDrops(True)
class MainWindow(AppMainWindow): def __init__(self): super().__init__() self.actionManager = ActionManager() self.progressManager = ProgressManager() self.modeManager = None self.helpManager = HelpManager() self._contextWidgets = dict() self._activeContext = [] self._additionalContexts = Constants.C_GLOBAL self._printer = QPrinter(QPrinter.HighResolution) self._settings = PluginManager.settings self.globalSettings = PluginManager.globalSettings self._modeStack = FancyTabWidget() self._navigationWidget = None self._rightPaneWidget = None self._versionDialog = None self._generalSettings = GeneralSettings() self._shortcutSettings = ShortcutSettings() self._focusToEditor = None self._newAction = None self._exitAction = None self._optionsAction = None self._toggleSideBarAction = None self._toggleFullScreenAction = None self._minimizeAction = None self._zoomAction = None self._toggleSideBarButton = QToolButton() self.setWindowTitle("MedUX") QApplication.setWindowIcon(None) #TODO: create app icon QApplication.setApplicationName("MedUX") QApplication.setOrganizationName("MedWorx") self.setDockNestingEnabled(True) self.setCorner(Qt.BottomLeftCorner, Qt.LeftDockWidgetArea) self.setCorner(Qt.BottomRightCorner, Qt.BottomDockWidgetArea) self.modeManager = ModeManager(self, self._modeStack) self.registerDefaultContainers() self.registerDefaultActions() self._navigationWidget = NavigationWidget(self._toggleSideBarAction) self._editorManager.hide() self.setCentralWidget(self._modeStack) self._progressManager.progressView().setParent(self) self._progressManager.progressView().setReferenceWidget(self._modeStack.statusBar()) QApplication.instance().focusChanged.connect(self.updateFocusWidget) self.statusBar.insertPermanentWidget(0, self._toggleSideBarButton) self.statusBar.setProperty("p_styled", True) self.setAcceptDrops(True) def init(self, errorMessage): """This is not the __init__ method, but an explicit initialization method.""" PluginManager.addObject() def extensionsInitialized(self): raise NotImplementedError def aboutToShutDown(self, value): raise NotImplementedError def contextObject(self, widget): return self._contextWidgets.get(widget) def addContextObject(self, context: IContext): """ Adds a context object to an internal list. :param context: IContext object to add """ if not context: return assert context.widget is not None if context.widget in self._contextWidgets: return self._contextWidgets[context.widget] = context def removeContextObject(self, context: IContext): """ Removes context from the internal list. :param context: object that should be removed """ if not context: return assert context.widget if not context.widget in self._contextWidgets: return del self._contextWidgets[context.widget] if context in self._activeContext: self._activeContext = filter(lambda w: w != context.widget, self._activeContext) self.updateContextObject(self._activeContext) def updateFocusWidget(self): raise NotImplementedError def updateContextObject(self, contextObjectList): pass def settings(self, scope): if scope == QSettings.UserScope: #TODO: define _settings/globalSettings return self._settings else: return self.globalSettings @property def printer(self) -> QPrinter: return self._printer @property def currentContextObject(self): return None if len(self._activeContext) == 0 else self._activeContext[0] @property def statusBar(self): return self._modeStack.statusBar()