Wed, 11 Jul 2018 19:08:59 +0200
UserInterface, Editor: made the activation of the symbols viewer, file browser, template viewer and numbers viewer optional.
QScintilla/Editor.py | file | annotate | diff | comparison | revisions | |
UI/UserInterface.py | file | annotate | diff | comparison | revisions | |
changelog | file | annotate | diff | comparison | revisions |
--- a/QScintilla/Editor.py Wed Jul 11 19:06:33 2018 +0200 +++ b/QScintilla/Editor.py Wed Jul 11 19:08:59 2018 +0200 @@ -7191,27 +7191,33 @@ @param cmd the scintilla command to be performed """ if cmd == QsciScintilla.SCI_TAB: - line, index = self.getCursorPosition() - tmplName = self.getWordLeft(line, index) - if tmplName: - if e5App().getObject("TemplateViewer").hasTemplate( - tmplName, self.getLanguage()): - self.__applyTemplate(tmplName, self.getLanguage()) - return - else: - templateNames = \ - e5App().getObject("TemplateViewer").getTemplateNames( + try: + templateViewer = e5App().getObject("TemplateViewer") + except KeyError: + # template viewer is not active + templateViewer = None + + if templateViewer is not None: + line, index = self.getCursorPosition() + tmplName = self.getWordLeft(line, index) + if tmplName: + if templateViewer.hasTemplate(tmplName, + self.getLanguage()): + self.__applyTemplate(tmplName, self.getLanguage()) + return + else: + templateNames = templateViewer.getTemplateNames( tmplName, self.getLanguage()) - if len(templateNames) == 1: - self.__applyTemplate(templateNames[0], - self.getLanguage()) - return - elif len(templateNames) > 1: - self.showUserList( - TemplateCompletionListID, - ["{0}?{1:d}".format(t, self.TemplateImageID) - for t in templateNames]) - return + if len(templateNames) == 1: + self.__applyTemplate(templateNames[0], + self.getLanguage()) + return + elif len(templateNames) > 1: + self.showUserList( + TemplateCompletionListID, + ["{0}?{1:d}".format(t, self.TemplateImageID) + for t in templateNames]) + return super(Editor, self).editorCommand(cmd) @@ -7223,11 +7229,16 @@ @param language name of the language (group) to get the template from (string) """ - if e5App().getObject("TemplateViewer").hasTemplate( - templateName, self.getLanguage()): + try: + templateViewer = e5App().getObject("TemplateViewer") + except KeyError: + # template viewer is not active + return + + if templateViewer.hasTemplate(templateName, self.getLanguage()): self.extendSelectionWordLeft() - e5App().getObject("TemplateViewer").applyNamedTemplate( - templateName, self.getLanguage()) + templateViewer.applyNamedTemplate(templateName, + self.getLanguage()) ####################################################################### ## Project related methods
--- a/UI/UserInterface.py Wed Jul 11 19:06:33 2018 +0200 +++ b/UI/UserInterface.py Wed Jul 11 19:08:59 2018 +0200 @@ -132,7 +132,6 @@ self.__nWrite(self.__bufferedWrite()) -# TODO: make "Template-Viewer", "File-Browser", "Symbols" and "Numbers" configurable class UserInterface(E5MainWindow): """ Class implementing the main user interface. @@ -271,6 +270,10 @@ self.codeDocumentationViewer = None self.cooperation = None self.irc = None + self.symbolsViewer = None + self.browser = None + self.templateViewer = None + self.numbersViewer = None # Create the main window now so that we can connect QActions to it. logging.debug("Creating Layout...") @@ -305,25 +308,6 @@ # now setup the connections splash.showMessage(self.tr("Setting up connections...")) - self.browser.sourceFile[str].connect( - self.viewmanager.openSourceFile) - self.browser.sourceFile[str, int].connect( - self.viewmanager.openSourceFile) - self.browser.sourceFile[str, list].connect( - self.viewmanager.openSourceFile) - self.browser.sourceFile[str, int, str].connect( - self.viewmanager.openSourceFile) - self.browser.designerFile.connect(self.__designer) - self.browser.linguistFile.connect(self.__linguist4) - self.browser.projectFile.connect(self.project.openProject) - self.browser.multiProjectFile.connect( - self.multiProject.openMultiProject) - self.browser.pixmapEditFile.connect(self.__editPixmap) - self.browser.pixmapFile.connect(self.__showPixmap) - self.browser.svgFile.connect(self.__showSvg) - self.browser.binaryFile.connect(self.__openHexEditor) - self.browser.unittestOpen.connect(self.__unittestScript) - self.browser.trpreview.connect(self.__TRPreviewer) self.debugViewer.exceptionLogger.sourceFile.connect( self.viewmanager.openSourceFile) @@ -430,8 +414,6 @@ self.debuggerUI.resetUI.connect(self.debugViewer.handleResetUI) self.debuggerUI.resetUI.connect(self.__debuggingDone) self.debuggerUI.debuggingStarted.connect( - self.browser.handleProgramChange) - self.debuggerUI.debuggingStarted.connect( self.debugViewer.exceptionLogger.debuggingStarted) self.debuggerUI.debuggingStarted.connect( self.debugViewer.handleDebuggingStarted) @@ -454,8 +436,6 @@ self.debugViewer.breakpointViewer.highlightBreakpoint) debugServer.clientProcessStdout.connect(self.appendToStdout) debugServer.clientProcessStderr.connect(self.appendToStderr) - debugServer.clientInterpreterChanged.connect( - self.browser.handleInterpreterChanged) debugServer.appendStdout.connect(self.appendToStdout) self.stdout.appendStdout.connect(self.appendToStdout) @@ -484,7 +464,6 @@ self.projectBrowser.ppBrowser.handlePreferencesChanged) self.preferencesChanged.connect( self.projectBrowser.poBrowser.handlePreferencesChanged) - self.preferencesChanged.connect(self.browser.handlePreferencesChanged) self.preferencesChanged.connect( self.taskViewer.handlePreferencesChanged) self.preferencesChanged.connect(self.pluginManager.preferencesChanged) @@ -493,6 +472,36 @@ self.preferencesChanged.connect( self.backgroundService.preferencesOrProjectChanged) + if self.browser is not None: + self.browser.sourceFile[str].connect( + self.viewmanager.openSourceFile) + self.browser.sourceFile[str, int].connect( + self.viewmanager.openSourceFile) + self.browser.sourceFile[str, list].connect( + self.viewmanager.openSourceFile) + self.browser.sourceFile[str, int, str].connect( + self.viewmanager.openSourceFile) + self.browser.designerFile.connect(self.__designer) + self.browser.linguistFile.connect(self.__linguist4) + self.browser.projectFile.connect(self.project.openProject) + self.browser.multiProjectFile.connect( + self.multiProject.openMultiProject) + self.browser.pixmapEditFile.connect(self.__editPixmap) + self.browser.pixmapFile.connect(self.__showPixmap) + self.browser.svgFile.connect(self.__showSvg) + self.browser.binaryFile.connect(self.__openHexEditor) + self.browser.unittestOpen.connect(self.__unittestScript) + self.browser.trpreview.connect(self.__TRPreviewer) + + self.debuggerUI.debuggingStarted.connect( + self.browser.handleProgramChange) + + debugServer.clientInterpreterChanged.connect( + self.browser.handleInterpreterChanged) + + self.preferencesChanged.connect( + self.browser.handlePreferencesChanged) + if self.codeDocumentationViewer is not None: self.preferencesChanged.connect( self.codeDocumentationViewer.preferencesChanged) @@ -534,9 +543,13 @@ self.viewmanager.setCooperationClient( self.cooperation.getClient()) - self.symbolsViewer.insertSymbol.connect(self.viewmanager.insertSymbol) - - self.numbersViewer.insertNumber.connect(self.viewmanager.insertNumber) + if self.symbolsViewer is not None: + self.symbolsViewer.insertSymbol.connect( + self.viewmanager.insertSymbol) + + if self.numbersViewer is not None: + self.numbersViewer.insertNumber.connect( + self.viewmanager.insertNumber) if self.irc is not None: self.irc.autoConnected.connect(self.__ircAutoConnected) @@ -579,7 +592,8 @@ e5App().registerObject("ProjectBrowser", self.projectBrowser) e5App().registerObject("MultiProject", self.multiProject) e5App().registerObject("TaskViewer", self.taskViewer) - e5App().registerObject("TemplateViewer", self.templateViewer) + if self.templateViewer is not None: + e5App().registerObject("TemplateViewer", self.templateViewer) e5App().registerObject("Shell", self.shell) if self.dummyHelpViewer is not None: e5App().registerObject("DummyHelpViewer", self.dummyHelpViewer) @@ -589,8 +603,10 @@ e5App().registerObject("Cooperation", self.cooperation) if self.irc is not None: e5App().registerObject("IRC", self.irc) - e5App().registerObject("Symbols", self.symbolsViewer) - e5App().registerObject("Numbers", self.numbersViewer) + if self.symbolsViewer is not None: + e5App().registerObject("Symbols", self.symbolsViewer) + if self.numbersViewer is not None: + e5App().registerObject("Numbers", self.numbersViewer) if self.codeDocumentationViewer is not None: e5App().registerObject("DocuViewer", self.codeDocumentationViewer) @@ -674,9 +690,10 @@ splash.showMessage(self.tr("Reading Tasks...")) self.__readTasks() - # now read the saved templates - splash.showMessage(self.tr("Reading Templates...")) - self.templateViewer.readTemplates() + if self.templateViewer is not None: + # now read the saved templates + splash.showMessage(self.tr("Reading Templates...")) + self.templateViewer.readTemplates() # now start the debug client splash.showMessage(self.tr("Starting Debugger...")) @@ -804,15 +821,16 @@ self.lToolbox.addItem(self.multiProjectBrowser, UI.PixmapCache.getIcon("multiProjectViewer.png"), self.tr("Multiproject-Viewer")) - - # Create the template viewer part of the user interface - logging.debug("Creating Template Viewer...") - from Templates.TemplateViewer import TemplateViewer - self.templateViewer = TemplateViewer(None, - self.viewmanager) - self.lToolbox.addItem(self.templateViewer, - UI.PixmapCache.getIcon("templateViewer.png"), - self.tr("Template-Viewer")) + + if Preferences.getUI("ShowTemplateViewer"): + # Create the template viewer part of the user interface + logging.debug("Creating Template Viewer...") + from Templates.TemplateViewer import TemplateViewer + self.templateViewer = TemplateViewer(None, + self.viewmanager) + self.lToolbox.addItem(self.templateViewer, + UI.PixmapCache.getIcon("templateViewer.png"), + self.tr("Template-Viewer")) if Preferences.getUI("ShowCodeDocumentationViewer"): # Create the code documentation viewer @@ -874,30 +892,33 @@ self.hToolbox.insertItem(0, self.shellAssembly, UI.PixmapCache.getIcon("shell.png"), self.tr("Shell")) - - # Create the file browser - logging.debug("Creating File Browser...") - from .Browser import Browser - self.browser = Browser() - self.lToolbox.addItem(self.browser, - UI.PixmapCache.getIcon("browser.png"), - self.tr("File-Browser")) - - # Create the symbols viewer - logging.debug("Creating Symbols Viewer...") - from .SymbolsWidget import SymbolsWidget - self.symbolsViewer = SymbolsWidget() - self.lToolbox.addItem(self.symbolsViewer, - UI.PixmapCache.getIcon("symbols.png"), - self.tr("Symbols")) - - # Create the numbers viewer - logging.debug("Creating Numbers Viewer...") - from .NumbersWidget import NumbersWidget - self.numbersViewer = NumbersWidget() - self.hToolbox.addItem(self.numbersViewer, - UI.PixmapCache.getIcon("numbers.png"), - self.tr("Numbers")) + + if Preferences.getUI("ShowFileBrowser"): + # Create the file browser + logging.debug("Creating File Browser...") + from .Browser import Browser + self.browser = Browser() + self.lToolbox.addItem(self.browser, + UI.PixmapCache.getIcon("browser.png"), + self.tr("File-Browser")) + + if Preferences.getUI("ShowSymbolsViewer"): + # Create the symbols viewer + logging.debug("Creating Symbols Viewer...") + from .SymbolsWidget import SymbolsWidget + self.symbolsViewer = SymbolsWidget() + self.lToolbox.addItem(self.symbolsViewer, + UI.PixmapCache.getIcon("symbols.png"), + self.tr("Symbols")) + + if Preferences.getUI("ShowNumbersViewer"): + # Create the numbers viewer + logging.debug("Creating Numbers Viewer...") + from .NumbersWidget import NumbersWidget + self.numbersViewer = NumbersWidget() + self.hToolbox.addItem(self.numbersViewer, + UI.PixmapCache.getIcon("numbers.png"), + self.tr("Numbers")) self.hToolbox.setCurrentIndex(0) @@ -940,15 +961,16 @@ UI.PixmapCache.getIcon("multiProjectViewer.png"), self.tr("Multiproject-Viewer")) - # Create the template viewer part of the user interface - logging.debug("Creating Template Viewer...") - from Templates.TemplateViewer import TemplateViewer - self.templateViewer = TemplateViewer(None, - self.viewmanager) - self.leftSidebar.addTab( - self.templateViewer, - UI.PixmapCache.getIcon("templateViewer.png"), - self.tr("Template-Viewer")) + if Preferences.getUI("ShowTemplateViewer"): + # Create the template viewer part of the user interface + logging.debug("Creating Template Viewer...") + from Templates.TemplateViewer import TemplateViewer + self.templateViewer = TemplateViewer(None, + self.viewmanager) + self.leftSidebar.addTab( + self.templateViewer, + UI.PixmapCache.getIcon("templateViewer.png"), + self.tr("Template-Viewer")) if Preferences.getUI("ShowCodeDocumentationViewer"): # Create the code documentation viewer @@ -1012,29 +1034,32 @@ UI.PixmapCache.getIcon("shell.png"), self.tr("Shell")) - # Create the file browser - logging.debug("Creating File Browser...") - from .Browser import Browser - self.browser = Browser() - self.leftSidebar.addTab(self.browser, - UI.PixmapCache.getIcon("browser.png"), - self.tr("File-Browser")) - - # Create the symbols viewer - logging.debug("Creating Symbols Viewer...") - from .SymbolsWidget import SymbolsWidget - self.symbolsViewer = SymbolsWidget() - self.leftSidebar.addTab(self.symbolsViewer, - UI.PixmapCache.getIcon("symbols.png"), - self.tr("Symbols")) - - # Create the numbers viewer - logging.debug("Creating Numbers Viewer...") - from .NumbersWidget import NumbersWidget - self.numbersViewer = NumbersWidget() - self.bottomSidebar.addTab(self.numbersViewer, - UI.PixmapCache.getIcon("numbers.png"), - self.tr("Numbers")) + if Preferences.getUI("ShowFileBrowser"): + # Create the file browser + logging.debug("Creating File Browser...") + from .Browser import Browser + self.browser = Browser() + self.leftSidebar.addTab(self.browser, + UI.PixmapCache.getIcon("browser.png"), + self.tr("File-Browser")) + + if Preferences.getUI("ShowSymbolsViewer"): + # Create the symbols viewer + logging.debug("Creating Symbols Viewer...") + from .SymbolsWidget import SymbolsWidget + self.symbolsViewer = SymbolsWidget() + self.leftSidebar.addTab(self.symbolsViewer, + UI.PixmapCache.getIcon("symbols.png"), + self.tr("Symbols")) + + if Preferences.getUI("ShowNumbersViewer"): + # Create the numbers viewer + logging.debug("Creating Numbers Viewer...") + from .NumbersWidget import NumbersWidget + self.numbersViewer = NumbersWidget() + self.bottomSidebar.addTab(self.numbersViewer, + UI.PixmapCache.getIcon("numbers.png"), + self.tr("Numbers")) self.bottomSidebar.setCurrentIndex(0) @@ -1531,23 +1556,24 @@ self.shellActivateAct.triggered.connect(self.__activateShell) self.actions.append(self.shellActivateAct) self.addAction(self.shellActivateAct) - - self.browserActivateAct = E5Action( - self.tr('File-Browser'), - self.tr('&File-Browser'), - QKeySequence(self.tr("Alt+Shift+F")), - 0, self, - 'file_browser_activate') - self.browserActivateAct.setStatusTip(self.tr( - "Switch the input focus to the File-Browser window.")) - self.browserActivateAct.setWhatsThis(self.tr( - """<b>Activate File-Browser</b>""" - """<p>This switches the input focus to the File-Browser""" - """ window.</p>""" - )) - self.browserActivateAct.triggered.connect(self.__activateBrowser) - self.actions.append(self.browserActivateAct) - self.addAction(self.browserActivateAct) + + if self.browser is not None: + self.browserActivateAct = E5Action( + self.tr('File-Browser'), + self.tr('&File-Browser'), + QKeySequence(self.tr("Alt+Shift+F")), + 0, self, + 'file_browser_activate') + self.browserActivateAct.setStatusTip(self.tr( + "Switch the input focus to the File-Browser window.")) + self.browserActivateAct.setWhatsThis(self.tr( + """<b>Activate File-Browser</b>""" + """<p>This switches the input focus to the File-Browser""" + """ window.</p>""" + )) + self.browserActivateAct.triggered.connect(self.__activateBrowser) + self.actions.append(self.browserActivateAct) + self.addAction(self.browserActivateAct) self.logViewerActivateAct = E5Action( self.tr('Log-Viewer'), @@ -1584,24 +1610,25 @@ self.__activateTaskViewer) self.actions.append(self.taskViewerActivateAct) self.addAction(self.taskViewerActivateAct) - - self.templateViewerActivateAct = E5Action( - self.tr('Template-Viewer'), - self.tr('Templ&ate-Viewer'), - QKeySequence(self.tr("Alt+Shift+A")), - 0, self, - 'template_viewer_activate') - self.templateViewerActivateAct.setStatusTip(self.tr( - "Switch the input focus to the Template-Viewer window.")) - self.templateViewerActivateAct.setWhatsThis(self.tr( - """<b>Activate Template-Viewer</b>""" - """<p>This switches the input focus to the Template-Viewer""" - """ window.</p>""" - )) - self.templateViewerActivateAct.triggered.connect( - self.__activateTemplateViewer) - self.actions.append(self.templateViewerActivateAct) - self.addAction(self.templateViewerActivateAct) + + if self.templateViewer is not None: + self.templateViewerActivateAct = E5Action( + self.tr('Template-Viewer'), + self.tr('Templ&ate-Viewer'), + QKeySequence(self.tr("Alt+Shift+A")), + 0, self, + 'template_viewer_activate') + self.templateViewerActivateAct.setStatusTip(self.tr( + "Switch the input focus to the Template-Viewer window.")) + self.templateViewerActivateAct.setWhatsThis(self.tr( + """<b>Activate Template-Viewer</b>""" + """<p>This switches the input focus to the Template-Viewer""" + """ window.</p>""" + )) + self.templateViewerActivateAct.triggered.connect( + self.__activateTemplateViewer) + self.actions.append(self.templateViewerActivateAct) + self.addAction(self.templateViewerActivateAct) self.ltAct = E5Action( self.tr('Left Toolbox'), @@ -1719,42 +1746,44 @@ self.__activateIRC) self.actions.append(self.ircActivateAct) self.addAction(self.ircActivateAct) - - self.symbolsViewerActivateAct = E5Action( - self.tr('Symbols-Viewer'), - self.tr('S&ymbols-Viewer'), - QKeySequence(self.tr("Alt+Shift+Y")), - 0, self, - 'symbols_viewer_activate') - self.symbolsViewerActivateAct.setStatusTip(self.tr( - "Switch the input focus to the Symbols-Viewer window.")) - self.symbolsViewerActivateAct.setWhatsThis(self.tr( - """<b>Activate Symbols-Viewer</b>""" - """<p>This switches the input focus to the Symbols-Viewer""" - """ window.</p>""" - )) - self.symbolsViewerActivateAct.triggered.connect( - self.__activateSymbolsViewer) - self.actions.append(self.symbolsViewerActivateAct) - self.addAction(self.symbolsViewerActivateAct) - - self.numbersViewerActivateAct = E5Action( - self.tr('Numbers-Viewer'), - self.tr('Num&bers-Viewer'), - QKeySequence(self.tr("Alt+Shift+B")), - 0, self, - 'numbers_viewer_activate') - self.numbersViewerActivateAct.setStatusTip(self.tr( - "Switch the input focus to the Numbers-Viewer window.")) - self.numbersViewerActivateAct.setWhatsThis(self.tr( - """<b>Activate Numbers-Viewer</b>""" - """<p>This switches the input focus to the Numbers-Viewer""" - """ window.</p>""" - )) - self.numbersViewerActivateAct.triggered.connect( - self.__activateNumbersViewer) - self.actions.append(self.numbersViewerActivateAct) - self.addAction(self.numbersViewerActivateAct) + + if self.symbolsViewer is not None: + self.symbolsViewerActivateAct = E5Action( + self.tr('Symbols-Viewer'), + self.tr('S&ymbols-Viewer'), + QKeySequence(self.tr("Alt+Shift+Y")), + 0, self, + 'symbols_viewer_activate') + self.symbolsViewerActivateAct.setStatusTip(self.tr( + "Switch the input focus to the Symbols-Viewer window.")) + self.symbolsViewerActivateAct.setWhatsThis(self.tr( + """<b>Activate Symbols-Viewer</b>""" + """<p>This switches the input focus to the Symbols-Viewer""" + """ window.</p>""" + )) + self.symbolsViewerActivateAct.triggered.connect( + self.__activateSymbolsViewer) + self.actions.append(self.symbolsViewerActivateAct) + self.addAction(self.symbolsViewerActivateAct) + + if self.numbersViewer is not None: + self.numbersViewerActivateAct = E5Action( + self.tr('Numbers-Viewer'), + self.tr('Num&bers-Viewer'), + QKeySequence(self.tr("Alt+Shift+B")), + 0, self, + 'numbers_viewer_activate') + self.numbersViewerActivateAct.setStatusTip(self.tr( + "Switch the input focus to the Numbers-Viewer window.")) + self.numbersViewerActivateAct.setWhatsThis(self.tr( + """<b>Activate Numbers-Viewer</b>""" + """<p>This switches the input focus to the Numbers-Viewer""" + """ window.</p>""" + )) + self.numbersViewerActivateAct.triggered.connect( + self.__activateNumbersViewer) + self.actions.append(self.numbersViewerActivateAct) + self.addAction(self.numbersViewerActivateAct) self.whatsThisAct = E5Action( self.tr('What\'s This?'), @@ -2784,9 +2813,12 @@ pass self.__menus["subwindow"].addAction(self.pbActivateAct) self.__menus["subwindow"].addAction(self.mpbActivateAct) - self.__menus["subwindow"].addAction(self.templateViewerActivateAct) - self.__menus["subwindow"].addAction(self.browserActivateAct) - self.__menus["subwindow"].addAction(self.symbolsViewerActivateAct) + if self.templateViewer is not None: + self.__menus["subwindow"].addAction(self.templateViewerActivateAct) + if self.browser is not None: + self.__menus["subwindow"].addAction(self.browserActivateAct) + if self.symbolsViewer is not None: + self.__menus["subwindow"].addAction(self.symbolsViewerActivateAct) # bottom side try: self.__menus["subwindow"].addSection(self.tr("Bottom Side")) @@ -2796,7 +2828,8 @@ self.__menus["subwindow"].addAction(self.shellActivateAct) self.__menus["subwindow"].addAction(self.taskViewerActivateAct) self.__menus["subwindow"].addAction(self.logViewerActivateAct) - self.__menus["subwindow"].addAction(self.numbersViewerActivateAct) + if self.numbersViewer is not None: + self.__menus["subwindow"].addAction(self.numbersViewerActivateAct) try: self.__menus["subwindow"].addSection(self.tr("Right Side")) except AttributeError: @@ -4175,29 +4208,31 @@ """ Private slot to handle the activation of the Template Viewer. """ - if self.layoutType == "Toolboxes": - self.lToolboxDock.show() - self.lToolbox.setCurrentWidget(self.templateViewer) - elif self.layoutType == "Sidebars": - self.leftSidebar.show() - self.leftSidebar.setCurrentWidget(self.templateViewer) - else: - self.templateViewer.show() - self.templateViewer.setFocus(Qt.ActiveWindowFocusReason) + if self.templateViewer is not None: + if self.layoutType == "Toolboxes": + self.lToolboxDock.show() + self.lToolbox.setCurrentWidget(self.templateViewer) + elif self.layoutType == "Sidebars": + self.leftSidebar.show() + self.leftSidebar.setCurrentWidget(self.templateViewer) + else: + self.templateViewer.show() + self.templateViewer.setFocus(Qt.ActiveWindowFocusReason) def __activateBrowser(self): """ Private slot to handle the activation of the file browser. """ - if self.layoutType == "Toolboxes": - self.lToolboxDock.show() - self.lToolbox.setCurrentWidget(self.browser) - elif self.layoutType == "Sidebars": - self.leftSidebar.show() - self.leftSidebar.setCurrentWidget(self.browser) - else: - self.browser.show() - self.browser.setFocus(Qt.ActiveWindowFocusReason) + if self.browser is not None: + if self.layoutType == "Toolboxes": + self.lToolboxDock.show() + self.lToolbox.setCurrentWidget(self.browser) + elif self.layoutType == "Sidebars": + self.leftSidebar.show() + self.leftSidebar.setCurrentWidget(self.browser) + else: + self.browser.show() + self.browser.setFocus(Qt.ActiveWindowFocusReason) def __toggleLeftToolbox(self): """ @@ -4308,29 +4343,31 @@ """ Private slot to handle the activation of the Symbols Viewer. """ - if self.layoutType == "Toolboxes": - self.lToolboxDock.show() - self.lToolbox.setCurrentWidget(self.symbolsViewer) - elif self.layoutType == "Sidebars": - self.leftSidebar.show() - self.leftSidebar.setCurrentWidget(self.symbolsViewer) - else: - self.symbolsViewer.show() - self.symbolsViewer.setFocus(Qt.ActiveWindowFocusReason) + if self.symbolsViewer is not None: + if self.layoutType == "Toolboxes": + self.lToolboxDock.show() + self.lToolbox.setCurrentWidget(self.symbolsViewer) + elif self.layoutType == "Sidebars": + self.leftSidebar.show() + self.leftSidebar.setCurrentWidget(self.symbolsViewer) + else: + self.symbolsViewer.show() + self.symbolsViewer.setFocus(Qt.ActiveWindowFocusReason) def __activateNumbersViewer(self): """ Private slot to handle the activation of the Numbers Viewer. """ - if self.layoutType == "Toolboxes": - self.hToolboxDock.show() - self.hToolboxDock.setCurrentWidget(self.numbersViewer) - elif self.layoutType == "Sidebars": - self.bottomSidebar.show() - self.bottomSidebar.setCurrentWidget(self.numbersViewer) - else: - self.numbersViewer.show() - self.numbersViewer.setFocus(Qt.ActiveWindowFocusReason) + if self.numbersViewer is not None: + if self.layoutType == "Toolboxes": + self.hToolboxDock.show() + self.hToolboxDock.setCurrentWidget(self.numbersViewer) + elif self.layoutType == "Sidebars": + self.bottomSidebar.show() + self.bottomSidebar.setCurrentWidget(self.numbersViewer) + else: + self.numbersViewer.show() + self.numbersViewer.setFocus(Qt.ActiveWindowFocusReason) def __activateViewmanager(self): """ @@ -6511,7 +6548,9 @@ self.shell.closeShell() self.__writeTasks() - self.templateViewer.save() + + if self.templateViewer is not None: + self.templateViewer.save() if not self.debuggerUI.shutdownServer(): return False @@ -6538,7 +6577,9 @@ Preferences.setGeometry("MainMaximized", self.isMaximized()) if not self.isMaximized(): Preferences.setGeometry("MainGeometry", self.saveGeometry()) - self.browser.saveToplevelDirs() + + if self.browser is not None: + self.browser.saveToplevelDirs() Preferences.setUI( "ToolbarManagerState", self.toolbarManager.saveState())
--- a/changelog Wed Jul 11 19:06:33 2018 +0200 +++ b/changelog Wed Jul 11 19:08:59 2018 +0200 @@ -2,6 +2,15 @@ ---------- Version 18.08: - bug fixes +- General + -- made the activation of these internal tools configurable + * Template-Viewer + * File-Browser + * Symbols + * Code Documentation Viewer + * Cooperation + * IRC + * Numbers - File-Browser -- changed code so file-browser is always a standalone window - Shell