Example #1
0
    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)
Example #2
0
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()