UI/UserInterface.py

changeset 6426
f072dd2edb0f
parent 6424
5e74c4e22e9a
child 6430
9fe4016a653b
equal deleted inserted replaced
6425:2f37e52a6c70 6426:f072dd2edb0f
130 """ 130 """
131 self.buffer += str(s) 131 self.buffer += str(s)
132 self.__nWrite(self.__bufferedWrite()) 132 self.__nWrite(self.__bufferedWrite())
133 133
134 134
135 # TODO: make "Template-Viewer", "File-Browser", "Symbols" and "Numbers" configurable
136 class UserInterface(E5MainWindow): 135 class UserInterface(E5MainWindow):
137 """ 136 """
138 Class implementing the main user interface. 137 Class implementing the main user interface.
139 138
140 @signal appendStderr(str) emitted to write data to stderr logger 139 @signal appendStderr(str) emitted to write data to stderr logger
269 splash.showMessage(self.tr("Generating Main User Interface...")) 268 splash.showMessage(self.tr("Generating Main User Interface..."))
270 269
271 self.codeDocumentationViewer = None 270 self.codeDocumentationViewer = None
272 self.cooperation = None 271 self.cooperation = None
273 self.irc = None 272 self.irc = None
273 self.symbolsViewer = None
274 self.browser = None
275 self.templateViewer = None
276 self.numbersViewer = None
274 277
275 # Create the main window now so that we can connect QActions to it. 278 # Create the main window now so that we can connect QActions to it.
276 logging.debug("Creating Layout...") 279 logging.debug("Creating Layout...")
277 self.__createLayout(debugServer) 280 self.__createLayout(debugServer)
278 self.__currentRightWidget = None 281 self.__currentRightWidget = None
303 self.__readingSession = False 306 self.__readingSession = False
304 self.__versionsDialog = None 307 self.__versionsDialog = None
305 308
306 # now setup the connections 309 # now setup the connections
307 splash.showMessage(self.tr("Setting up connections...")) 310 splash.showMessage(self.tr("Setting up connections..."))
308 self.browser.sourceFile[str].connect(
309 self.viewmanager.openSourceFile)
310 self.browser.sourceFile[str, int].connect(
311 self.viewmanager.openSourceFile)
312 self.browser.sourceFile[str, list].connect(
313 self.viewmanager.openSourceFile)
314 self.browser.sourceFile[str, int, str].connect(
315 self.viewmanager.openSourceFile)
316 self.browser.designerFile.connect(self.__designer)
317 self.browser.linguistFile.connect(self.__linguist4)
318 self.browser.projectFile.connect(self.project.openProject)
319 self.browser.multiProjectFile.connect(
320 self.multiProject.openMultiProject)
321 self.browser.pixmapEditFile.connect(self.__editPixmap)
322 self.browser.pixmapFile.connect(self.__showPixmap)
323 self.browser.svgFile.connect(self.__showSvg)
324 self.browser.binaryFile.connect(self.__openHexEditor)
325 self.browser.unittestOpen.connect(self.__unittestScript)
326 self.browser.trpreview.connect(self.__TRPreviewer)
327 311
328 self.debugViewer.exceptionLogger.sourceFile.connect( 312 self.debugViewer.exceptionLogger.sourceFile.connect(
329 self.viewmanager.openSourceFile) 313 self.viewmanager.openSourceFile)
330 314
331 self.debugViewer.sourceFile.connect(self.viewmanager.showDebugSource) 315 self.debugViewer.sourceFile.connect(self.viewmanager.showDebugSource)
428 412
429 self.debuggerUI.resetUI.connect(self.viewmanager.handleResetUI) 413 self.debuggerUI.resetUI.connect(self.viewmanager.handleResetUI)
430 self.debuggerUI.resetUI.connect(self.debugViewer.handleResetUI) 414 self.debuggerUI.resetUI.connect(self.debugViewer.handleResetUI)
431 self.debuggerUI.resetUI.connect(self.__debuggingDone) 415 self.debuggerUI.resetUI.connect(self.__debuggingDone)
432 self.debuggerUI.debuggingStarted.connect( 416 self.debuggerUI.debuggingStarted.connect(
433 self.browser.handleProgramChange)
434 self.debuggerUI.debuggingStarted.connect(
435 self.debugViewer.exceptionLogger.debuggingStarted) 417 self.debugViewer.exceptionLogger.debuggingStarted)
436 self.debuggerUI.debuggingStarted.connect( 418 self.debuggerUI.debuggingStarted.connect(
437 self.debugViewer.handleDebuggingStarted) 419 self.debugViewer.handleDebuggingStarted)
438 self.debuggerUI.debuggingStarted.connect(self.__programChange) 420 self.debuggerUI.debuggingStarted.connect(self.__programChange)
439 self.debuggerUI.debuggingStarted.connect(self.__debuggingStarted) 421 self.debuggerUI.debuggingStarted.connect(self.__debuggingStarted)
452 self.debugViewer.exceptionLogger.addException) 434 self.debugViewer.exceptionLogger.addException)
453 debugServer.clientLine.connect( 435 debugServer.clientLine.connect(
454 self.debugViewer.breakpointViewer.highlightBreakpoint) 436 self.debugViewer.breakpointViewer.highlightBreakpoint)
455 debugServer.clientProcessStdout.connect(self.appendToStdout) 437 debugServer.clientProcessStdout.connect(self.appendToStdout)
456 debugServer.clientProcessStderr.connect(self.appendToStderr) 438 debugServer.clientProcessStderr.connect(self.appendToStderr)
457 debugServer.clientInterpreterChanged.connect(
458 self.browser.handleInterpreterChanged)
459 debugServer.appendStdout.connect(self.appendToStdout) 439 debugServer.appendStdout.connect(self.appendToStdout)
460 440
461 self.stdout.appendStdout.connect(self.appendToStdout) 441 self.stdout.appendStdout.connect(self.appendToStdout)
462 self.stderr.appendStderr.connect(self.appendToStderr) 442 self.stderr.appendStderr.connect(self.appendToStderr)
463 443
482 self.projectBrowser.piBrowser.handlePreferencesChanged) 462 self.projectBrowser.piBrowser.handlePreferencesChanged)
483 self.preferencesChanged.connect( 463 self.preferencesChanged.connect(
484 self.projectBrowser.ppBrowser.handlePreferencesChanged) 464 self.projectBrowser.ppBrowser.handlePreferencesChanged)
485 self.preferencesChanged.connect( 465 self.preferencesChanged.connect(
486 self.projectBrowser.poBrowser.handlePreferencesChanged) 466 self.projectBrowser.poBrowser.handlePreferencesChanged)
487 self.preferencesChanged.connect(self.browser.handlePreferencesChanged)
488 self.preferencesChanged.connect( 467 self.preferencesChanged.connect(
489 self.taskViewer.handlePreferencesChanged) 468 self.taskViewer.handlePreferencesChanged)
490 self.preferencesChanged.connect(self.pluginManager.preferencesChanged) 469 self.preferencesChanged.connect(self.pluginManager.preferencesChanged)
491 self.preferencesChanged.connect(debugServer.preferencesChanged) 470 self.preferencesChanged.connect(debugServer.preferencesChanged)
492 self.preferencesChanged.connect(self.debugViewer.preferencesChanged) 471 self.preferencesChanged.connect(self.debugViewer.preferencesChanged)
493 self.preferencesChanged.connect( 472 self.preferencesChanged.connect(
494 self.backgroundService.preferencesOrProjectChanged) 473 self.backgroundService.preferencesOrProjectChanged)
474
475 if self.browser is not None:
476 self.browser.sourceFile[str].connect(
477 self.viewmanager.openSourceFile)
478 self.browser.sourceFile[str, int].connect(
479 self.viewmanager.openSourceFile)
480 self.browser.sourceFile[str, list].connect(
481 self.viewmanager.openSourceFile)
482 self.browser.sourceFile[str, int, str].connect(
483 self.viewmanager.openSourceFile)
484 self.browser.designerFile.connect(self.__designer)
485 self.browser.linguistFile.connect(self.__linguist4)
486 self.browser.projectFile.connect(self.project.openProject)
487 self.browser.multiProjectFile.connect(
488 self.multiProject.openMultiProject)
489 self.browser.pixmapEditFile.connect(self.__editPixmap)
490 self.browser.pixmapFile.connect(self.__showPixmap)
491 self.browser.svgFile.connect(self.__showSvg)
492 self.browser.binaryFile.connect(self.__openHexEditor)
493 self.browser.unittestOpen.connect(self.__unittestScript)
494 self.browser.trpreview.connect(self.__TRPreviewer)
495
496 self.debuggerUI.debuggingStarted.connect(
497 self.browser.handleProgramChange)
498
499 debugServer.clientInterpreterChanged.connect(
500 self.browser.handleInterpreterChanged)
501
502 self.preferencesChanged.connect(
503 self.browser.handlePreferencesChanged)
495 504
496 if self.codeDocumentationViewer is not None: 505 if self.codeDocumentationViewer is not None:
497 self.preferencesChanged.connect( 506 self.preferencesChanged.connect(
498 self.codeDocumentationViewer.preferencesChanged) 507 self.codeDocumentationViewer.preferencesChanged)
499 508
532 self.cooperation.editorCommand.connect( 541 self.cooperation.editorCommand.connect(
533 self.viewmanager.receive) 542 self.viewmanager.receive)
534 self.viewmanager.setCooperationClient( 543 self.viewmanager.setCooperationClient(
535 self.cooperation.getClient()) 544 self.cooperation.getClient())
536 545
537 self.symbolsViewer.insertSymbol.connect(self.viewmanager.insertSymbol) 546 if self.symbolsViewer is not None:
538 547 self.symbolsViewer.insertSymbol.connect(
539 self.numbersViewer.insertNumber.connect(self.viewmanager.insertNumber) 548 self.viewmanager.insertSymbol)
549
550 if self.numbersViewer is not None:
551 self.numbersViewer.insertNumber.connect(
552 self.viewmanager.insertNumber)
540 553
541 if self.irc is not None: 554 if self.irc is not None:
542 self.irc.autoConnected.connect(self.__ircAutoConnected) 555 self.irc.autoConnected.connect(self.__ircAutoConnected)
543 556
544 # create the toolbar manager object 557 # create the toolbar manager object
577 e5App().registerObject("ViewManager", self.viewmanager) 590 e5App().registerObject("ViewManager", self.viewmanager)
578 e5App().registerObject("Project", self.project) 591 e5App().registerObject("Project", self.project)
579 e5App().registerObject("ProjectBrowser", self.projectBrowser) 592 e5App().registerObject("ProjectBrowser", self.projectBrowser)
580 e5App().registerObject("MultiProject", self.multiProject) 593 e5App().registerObject("MultiProject", self.multiProject)
581 e5App().registerObject("TaskViewer", self.taskViewer) 594 e5App().registerObject("TaskViewer", self.taskViewer)
582 e5App().registerObject("TemplateViewer", self.templateViewer) 595 if self.templateViewer is not None:
596 e5App().registerObject("TemplateViewer", self.templateViewer)
583 e5App().registerObject("Shell", self.shell) 597 e5App().registerObject("Shell", self.shell)
584 if self.dummyHelpViewer is not None: 598 if self.dummyHelpViewer is not None:
585 e5App().registerObject("DummyHelpViewer", self.dummyHelpViewer) 599 e5App().registerObject("DummyHelpViewer", self.dummyHelpViewer)
586 e5App().registerObject("PluginManager", self.pluginManager) 600 e5App().registerObject("PluginManager", self.pluginManager)
587 e5App().registerObject("ToolbarManager", self.toolbarManager) 601 e5App().registerObject("ToolbarManager", self.toolbarManager)
588 if self.cooperation is not None: 602 if self.cooperation is not None:
589 e5App().registerObject("Cooperation", self.cooperation) 603 e5App().registerObject("Cooperation", self.cooperation)
590 if self.irc is not None: 604 if self.irc is not None:
591 e5App().registerObject("IRC", self.irc) 605 e5App().registerObject("IRC", self.irc)
592 e5App().registerObject("Symbols", self.symbolsViewer) 606 if self.symbolsViewer is not None:
593 e5App().registerObject("Numbers", self.numbersViewer) 607 e5App().registerObject("Symbols", self.symbolsViewer)
608 if self.numbersViewer is not None:
609 e5App().registerObject("Numbers", self.numbersViewer)
594 if self.codeDocumentationViewer is not None: 610 if self.codeDocumentationViewer is not None:
595 e5App().registerObject("DocuViewer", self.codeDocumentationViewer) 611 e5App().registerObject("DocuViewer", self.codeDocumentationViewer)
596 612
597 # list of web addresses serving the versions file 613 # list of web addresses serving the versions file
598 self.__httpAlternatives = Preferences.getUI("VersionsUrls6") 614 self.__httpAlternatives = Preferences.getUI("VersionsUrls6")
672 688
673 # now read the saved tasks 689 # now read the saved tasks
674 splash.showMessage(self.tr("Reading Tasks...")) 690 splash.showMessage(self.tr("Reading Tasks..."))
675 self.__readTasks() 691 self.__readTasks()
676 692
677 # now read the saved templates 693 if self.templateViewer is not None:
678 splash.showMessage(self.tr("Reading Templates...")) 694 # now read the saved templates
679 self.templateViewer.readTemplates() 695 splash.showMessage(self.tr("Reading Templates..."))
696 self.templateViewer.readTemplates()
680 697
681 # now start the debug client 698 # now start the debug client
682 splash.showMessage(self.tr("Starting Debugger...")) 699 splash.showMessage(self.tr("Starting Debugger..."))
683 debugServer.startClient(False) 700 debugServer.startClient(False)
684 701
802 self.multiProjectBrowser = MultiProjectBrowser(self.multiProject, 819 self.multiProjectBrowser = MultiProjectBrowser(self.multiProject,
803 self.project) 820 self.project)
804 self.lToolbox.addItem(self.multiProjectBrowser, 821 self.lToolbox.addItem(self.multiProjectBrowser,
805 UI.PixmapCache.getIcon("multiProjectViewer.png"), 822 UI.PixmapCache.getIcon("multiProjectViewer.png"),
806 self.tr("Multiproject-Viewer")) 823 self.tr("Multiproject-Viewer"))
807 824
808 # Create the template viewer part of the user interface 825 if Preferences.getUI("ShowTemplateViewer"):
809 logging.debug("Creating Template Viewer...") 826 # Create the template viewer part of the user interface
810 from Templates.TemplateViewer import TemplateViewer 827 logging.debug("Creating Template Viewer...")
811 self.templateViewer = TemplateViewer(None, 828 from Templates.TemplateViewer import TemplateViewer
812 self.viewmanager) 829 self.templateViewer = TemplateViewer(None,
813 self.lToolbox.addItem(self.templateViewer, 830 self.viewmanager)
814 UI.PixmapCache.getIcon("templateViewer.png"), 831 self.lToolbox.addItem(self.templateViewer,
815 self.tr("Template-Viewer")) 832 UI.PixmapCache.getIcon("templateViewer.png"),
833 self.tr("Template-Viewer"))
816 834
817 if Preferences.getUI("ShowCodeDocumentationViewer"): 835 if Preferences.getUI("ShowCodeDocumentationViewer"):
818 # Create the code documentation viewer 836 # Create the code documentation viewer
819 logging.debug("Creating Code Documentation Viewer...") 837 logging.debug("Creating Code Documentation Viewer...")
820 from .CodeDocumentationViewer import CodeDocumentationViewer 838 from .CodeDocumentationViewer import CodeDocumentationViewer
872 ShellAssembly(debugServer, self.viewmanager, True) 890 ShellAssembly(debugServer, self.viewmanager, True)
873 self.shell = self.shellAssembly.shell() 891 self.shell = self.shellAssembly.shell()
874 self.hToolbox.insertItem(0, self.shellAssembly, 892 self.hToolbox.insertItem(0, self.shellAssembly,
875 UI.PixmapCache.getIcon("shell.png"), 893 UI.PixmapCache.getIcon("shell.png"),
876 self.tr("Shell")) 894 self.tr("Shell"))
877 895
878 # Create the file browser 896 if Preferences.getUI("ShowFileBrowser"):
879 logging.debug("Creating File Browser...") 897 # Create the file browser
880 from .Browser import Browser 898 logging.debug("Creating File Browser...")
881 self.browser = Browser() 899 from .Browser import Browser
882 self.lToolbox.addItem(self.browser, 900 self.browser = Browser()
883 UI.PixmapCache.getIcon("browser.png"), 901 self.lToolbox.addItem(self.browser,
884 self.tr("File-Browser")) 902 UI.PixmapCache.getIcon("browser.png"),
885 903 self.tr("File-Browser"))
886 # Create the symbols viewer 904
887 logging.debug("Creating Symbols Viewer...") 905 if Preferences.getUI("ShowSymbolsViewer"):
888 from .SymbolsWidget import SymbolsWidget 906 # Create the symbols viewer
889 self.symbolsViewer = SymbolsWidget() 907 logging.debug("Creating Symbols Viewer...")
890 self.lToolbox.addItem(self.symbolsViewer, 908 from .SymbolsWidget import SymbolsWidget
891 UI.PixmapCache.getIcon("symbols.png"), 909 self.symbolsViewer = SymbolsWidget()
892 self.tr("Symbols")) 910 self.lToolbox.addItem(self.symbolsViewer,
893 911 UI.PixmapCache.getIcon("symbols.png"),
894 # Create the numbers viewer 912 self.tr("Symbols"))
895 logging.debug("Creating Numbers Viewer...") 913
896 from .NumbersWidget import NumbersWidget 914 if Preferences.getUI("ShowNumbersViewer"):
897 self.numbersViewer = NumbersWidget() 915 # Create the numbers viewer
898 self.hToolbox.addItem(self.numbersViewer, 916 logging.debug("Creating Numbers Viewer...")
899 UI.PixmapCache.getIcon("numbers.png"), 917 from .NumbersWidget import NumbersWidget
900 self.tr("Numbers")) 918 self.numbersViewer = NumbersWidget()
919 self.hToolbox.addItem(self.numbersViewer,
920 UI.PixmapCache.getIcon("numbers.png"),
921 self.tr("Numbers"))
901 922
902 self.hToolbox.setCurrentIndex(0) 923 self.hToolbox.setCurrentIndex(0)
903 924
904 def __createSidebarsLayout(self, debugServer): 925 def __createSidebarsLayout(self, debugServer):
905 """ 926 """
938 self.leftSidebar.addTab( 959 self.leftSidebar.addTab(
939 self.multiProjectBrowser, 960 self.multiProjectBrowser,
940 UI.PixmapCache.getIcon("multiProjectViewer.png"), 961 UI.PixmapCache.getIcon("multiProjectViewer.png"),
941 self.tr("Multiproject-Viewer")) 962 self.tr("Multiproject-Viewer"))
942 963
943 # Create the template viewer part of the user interface 964 if Preferences.getUI("ShowTemplateViewer"):
944 logging.debug("Creating Template Viewer...") 965 # Create the template viewer part of the user interface
945 from Templates.TemplateViewer import TemplateViewer 966 logging.debug("Creating Template Viewer...")
946 self.templateViewer = TemplateViewer(None, 967 from Templates.TemplateViewer import TemplateViewer
947 self.viewmanager) 968 self.templateViewer = TemplateViewer(None,
948 self.leftSidebar.addTab( 969 self.viewmanager)
949 self.templateViewer, 970 self.leftSidebar.addTab(
950 UI.PixmapCache.getIcon("templateViewer.png"), 971 self.templateViewer,
951 self.tr("Template-Viewer")) 972 UI.PixmapCache.getIcon("templateViewer.png"),
973 self.tr("Template-Viewer"))
952 974
953 if Preferences.getUI("ShowCodeDocumentationViewer"): 975 if Preferences.getUI("ShowCodeDocumentationViewer"):
954 # Create the code documentation viewer 976 # Create the code documentation viewer
955 logging.debug("Creating Code Documentation Viewer...") 977 logging.debug("Creating Code Documentation Viewer...")
956 from .CodeDocumentationViewer import CodeDocumentationViewer 978 from .CodeDocumentationViewer import CodeDocumentationViewer
1010 self.shell = self.shellAssembly.shell() 1032 self.shell = self.shellAssembly.shell()
1011 self.bottomSidebar.insertTab(0, self.shellAssembly, 1033 self.bottomSidebar.insertTab(0, self.shellAssembly,
1012 UI.PixmapCache.getIcon("shell.png"), 1034 UI.PixmapCache.getIcon("shell.png"),
1013 self.tr("Shell")) 1035 self.tr("Shell"))
1014 1036
1015 # Create the file browser 1037 if Preferences.getUI("ShowFileBrowser"):
1016 logging.debug("Creating File Browser...") 1038 # Create the file browser
1017 from .Browser import Browser 1039 logging.debug("Creating File Browser...")
1018 self.browser = Browser() 1040 from .Browser import Browser
1019 self.leftSidebar.addTab(self.browser, 1041 self.browser = Browser()
1020 UI.PixmapCache.getIcon("browser.png"), 1042 self.leftSidebar.addTab(self.browser,
1021 self.tr("File-Browser")) 1043 UI.PixmapCache.getIcon("browser.png"),
1022 1044 self.tr("File-Browser"))
1023 # Create the symbols viewer 1045
1024 logging.debug("Creating Symbols Viewer...") 1046 if Preferences.getUI("ShowSymbolsViewer"):
1025 from .SymbolsWidget import SymbolsWidget 1047 # Create the symbols viewer
1026 self.symbolsViewer = SymbolsWidget() 1048 logging.debug("Creating Symbols Viewer...")
1027 self.leftSidebar.addTab(self.symbolsViewer, 1049 from .SymbolsWidget import SymbolsWidget
1028 UI.PixmapCache.getIcon("symbols.png"), 1050 self.symbolsViewer = SymbolsWidget()
1029 self.tr("Symbols")) 1051 self.leftSidebar.addTab(self.symbolsViewer,
1030 1052 UI.PixmapCache.getIcon("symbols.png"),
1031 # Create the numbers viewer 1053 self.tr("Symbols"))
1032 logging.debug("Creating Numbers Viewer...") 1054
1033 from .NumbersWidget import NumbersWidget 1055 if Preferences.getUI("ShowNumbersViewer"):
1034 self.numbersViewer = NumbersWidget() 1056 # Create the numbers viewer
1035 self.bottomSidebar.addTab(self.numbersViewer, 1057 logging.debug("Creating Numbers Viewer...")
1036 UI.PixmapCache.getIcon("numbers.png"), 1058 from .NumbersWidget import NumbersWidget
1037 self.tr("Numbers")) 1059 self.numbersViewer = NumbersWidget()
1060 self.bottomSidebar.addTab(self.numbersViewer,
1061 UI.PixmapCache.getIcon("numbers.png"),
1062 self.tr("Numbers"))
1038 1063
1039 self.bottomSidebar.setCurrentIndex(0) 1064 self.bottomSidebar.setCurrentIndex(0)
1040 1065
1041 # create the central widget 1066 # create the central widget
1042 logging.debug("Creating central widget...") 1067 logging.debug("Creating central widget...")
1529 """<p>This switches the input focus to the Shell window.</p>""" 1554 """<p>This switches the input focus to the Shell window.</p>"""
1530 )) 1555 ))
1531 self.shellActivateAct.triggered.connect(self.__activateShell) 1556 self.shellActivateAct.triggered.connect(self.__activateShell)
1532 self.actions.append(self.shellActivateAct) 1557 self.actions.append(self.shellActivateAct)
1533 self.addAction(self.shellActivateAct) 1558 self.addAction(self.shellActivateAct)
1534 1559
1535 self.browserActivateAct = E5Action( 1560 if self.browser is not None:
1536 self.tr('File-Browser'), 1561 self.browserActivateAct = E5Action(
1537 self.tr('&File-Browser'), 1562 self.tr('File-Browser'),
1538 QKeySequence(self.tr("Alt+Shift+F")), 1563 self.tr('&File-Browser'),
1539 0, self, 1564 QKeySequence(self.tr("Alt+Shift+F")),
1540 'file_browser_activate') 1565 0, self,
1541 self.browserActivateAct.setStatusTip(self.tr( 1566 'file_browser_activate')
1542 "Switch the input focus to the File-Browser window.")) 1567 self.browserActivateAct.setStatusTip(self.tr(
1543 self.browserActivateAct.setWhatsThis(self.tr( 1568 "Switch the input focus to the File-Browser window."))
1544 """<b>Activate File-Browser</b>""" 1569 self.browserActivateAct.setWhatsThis(self.tr(
1545 """<p>This switches the input focus to the File-Browser""" 1570 """<b>Activate File-Browser</b>"""
1546 """ window.</p>""" 1571 """<p>This switches the input focus to the File-Browser"""
1547 )) 1572 """ window.</p>"""
1548 self.browserActivateAct.triggered.connect(self.__activateBrowser) 1573 ))
1549 self.actions.append(self.browserActivateAct) 1574 self.browserActivateAct.triggered.connect(self.__activateBrowser)
1550 self.addAction(self.browserActivateAct) 1575 self.actions.append(self.browserActivateAct)
1576 self.addAction(self.browserActivateAct)
1551 1577
1552 self.logViewerActivateAct = E5Action( 1578 self.logViewerActivateAct = E5Action(
1553 self.tr('Log-Viewer'), 1579 self.tr('Log-Viewer'),
1554 self.tr('Lo&g-Viewer'), 1580 self.tr('Lo&g-Viewer'),
1555 QKeySequence(self.tr("Alt+Shift+G")), 1581 QKeySequence(self.tr("Alt+Shift+G")),
1582 )) 1608 ))
1583 self.taskViewerActivateAct.triggered.connect( 1609 self.taskViewerActivateAct.triggered.connect(
1584 self.__activateTaskViewer) 1610 self.__activateTaskViewer)
1585 self.actions.append(self.taskViewerActivateAct) 1611 self.actions.append(self.taskViewerActivateAct)
1586 self.addAction(self.taskViewerActivateAct) 1612 self.addAction(self.taskViewerActivateAct)
1587 1613
1588 self.templateViewerActivateAct = E5Action( 1614 if self.templateViewer is not None:
1589 self.tr('Template-Viewer'), 1615 self.templateViewerActivateAct = E5Action(
1590 self.tr('Templ&ate-Viewer'), 1616 self.tr('Template-Viewer'),
1591 QKeySequence(self.tr("Alt+Shift+A")), 1617 self.tr('Templ&ate-Viewer'),
1592 0, self, 1618 QKeySequence(self.tr("Alt+Shift+A")),
1593 'template_viewer_activate') 1619 0, self,
1594 self.templateViewerActivateAct.setStatusTip(self.tr( 1620 'template_viewer_activate')
1595 "Switch the input focus to the Template-Viewer window.")) 1621 self.templateViewerActivateAct.setStatusTip(self.tr(
1596 self.templateViewerActivateAct.setWhatsThis(self.tr( 1622 "Switch the input focus to the Template-Viewer window."))
1597 """<b>Activate Template-Viewer</b>""" 1623 self.templateViewerActivateAct.setWhatsThis(self.tr(
1598 """<p>This switches the input focus to the Template-Viewer""" 1624 """<b>Activate Template-Viewer</b>"""
1599 """ window.</p>""" 1625 """<p>This switches the input focus to the Template-Viewer"""
1600 )) 1626 """ window.</p>"""
1601 self.templateViewerActivateAct.triggered.connect( 1627 ))
1602 self.__activateTemplateViewer) 1628 self.templateViewerActivateAct.triggered.connect(
1603 self.actions.append(self.templateViewerActivateAct) 1629 self.__activateTemplateViewer)
1604 self.addAction(self.templateViewerActivateAct) 1630 self.actions.append(self.templateViewerActivateAct)
1631 self.addAction(self.templateViewerActivateAct)
1605 1632
1606 self.ltAct = E5Action( 1633 self.ltAct = E5Action(
1607 self.tr('Left Toolbox'), 1634 self.tr('Left Toolbox'),
1608 self.tr('&Left Toolbox'), 0, 0, self, 'vertical_toolbox', True) 1635 self.tr('&Left Toolbox'), 0, 0, self, 'vertical_toolbox', True)
1609 self.ltAct.setStatusTip(self.tr('Toggle the Left Toolbox window')) 1636 self.ltAct.setStatusTip(self.tr('Toggle the Left Toolbox window'))
1717 )) 1744 ))
1718 self.ircActivateAct.triggered.connect( 1745 self.ircActivateAct.triggered.connect(
1719 self.__activateIRC) 1746 self.__activateIRC)
1720 self.actions.append(self.ircActivateAct) 1747 self.actions.append(self.ircActivateAct)
1721 self.addAction(self.ircActivateAct) 1748 self.addAction(self.ircActivateAct)
1722 1749
1723 self.symbolsViewerActivateAct = E5Action( 1750 if self.symbolsViewer is not None:
1724 self.tr('Symbols-Viewer'), 1751 self.symbolsViewerActivateAct = E5Action(
1725 self.tr('S&ymbols-Viewer'), 1752 self.tr('Symbols-Viewer'),
1726 QKeySequence(self.tr("Alt+Shift+Y")), 1753 self.tr('S&ymbols-Viewer'),
1727 0, self, 1754 QKeySequence(self.tr("Alt+Shift+Y")),
1728 'symbols_viewer_activate') 1755 0, self,
1729 self.symbolsViewerActivateAct.setStatusTip(self.tr( 1756 'symbols_viewer_activate')
1730 "Switch the input focus to the Symbols-Viewer window.")) 1757 self.symbolsViewerActivateAct.setStatusTip(self.tr(
1731 self.symbolsViewerActivateAct.setWhatsThis(self.tr( 1758 "Switch the input focus to the Symbols-Viewer window."))
1732 """<b>Activate Symbols-Viewer</b>""" 1759 self.symbolsViewerActivateAct.setWhatsThis(self.tr(
1733 """<p>This switches the input focus to the Symbols-Viewer""" 1760 """<b>Activate Symbols-Viewer</b>"""
1734 """ window.</p>""" 1761 """<p>This switches the input focus to the Symbols-Viewer"""
1735 )) 1762 """ window.</p>"""
1736 self.symbolsViewerActivateAct.triggered.connect( 1763 ))
1737 self.__activateSymbolsViewer) 1764 self.symbolsViewerActivateAct.triggered.connect(
1738 self.actions.append(self.symbolsViewerActivateAct) 1765 self.__activateSymbolsViewer)
1739 self.addAction(self.symbolsViewerActivateAct) 1766 self.actions.append(self.symbolsViewerActivateAct)
1740 1767 self.addAction(self.symbolsViewerActivateAct)
1741 self.numbersViewerActivateAct = E5Action( 1768
1742 self.tr('Numbers-Viewer'), 1769 if self.numbersViewer is not None:
1743 self.tr('Num&bers-Viewer'), 1770 self.numbersViewerActivateAct = E5Action(
1744 QKeySequence(self.tr("Alt+Shift+B")), 1771 self.tr('Numbers-Viewer'),
1745 0, self, 1772 self.tr('Num&bers-Viewer'),
1746 'numbers_viewer_activate') 1773 QKeySequence(self.tr("Alt+Shift+B")),
1747 self.numbersViewerActivateAct.setStatusTip(self.tr( 1774 0, self,
1748 "Switch the input focus to the Numbers-Viewer window.")) 1775 'numbers_viewer_activate')
1749 self.numbersViewerActivateAct.setWhatsThis(self.tr( 1776 self.numbersViewerActivateAct.setStatusTip(self.tr(
1750 """<b>Activate Numbers-Viewer</b>""" 1777 "Switch the input focus to the Numbers-Viewer window."))
1751 """<p>This switches the input focus to the Numbers-Viewer""" 1778 self.numbersViewerActivateAct.setWhatsThis(self.tr(
1752 """ window.</p>""" 1779 """<b>Activate Numbers-Viewer</b>"""
1753 )) 1780 """<p>This switches the input focus to the Numbers-Viewer"""
1754 self.numbersViewerActivateAct.triggered.connect( 1781 """ window.</p>"""
1755 self.__activateNumbersViewer) 1782 ))
1756 self.actions.append(self.numbersViewerActivateAct) 1783 self.numbersViewerActivateAct.triggered.connect(
1757 self.addAction(self.numbersViewerActivateAct) 1784 self.__activateNumbersViewer)
1785 self.actions.append(self.numbersViewerActivateAct)
1786 self.addAction(self.numbersViewerActivateAct)
1758 1787
1759 self.whatsThisAct = E5Action( 1788 self.whatsThisAct = E5Action(
1760 self.tr('What\'s This?'), 1789 self.tr('What\'s This?'),
1761 UI.PixmapCache.getIcon("whatsThis.png"), 1790 UI.PixmapCache.getIcon("whatsThis.png"),
1762 self.tr('&What\'s This?'), 1791 self.tr('&What\'s This?'),
2782 except AttributeError: 2811 except AttributeError:
2783 # Qt4 2812 # Qt4
2784 pass 2813 pass
2785 self.__menus["subwindow"].addAction(self.pbActivateAct) 2814 self.__menus["subwindow"].addAction(self.pbActivateAct)
2786 self.__menus["subwindow"].addAction(self.mpbActivateAct) 2815 self.__menus["subwindow"].addAction(self.mpbActivateAct)
2787 self.__menus["subwindow"].addAction(self.templateViewerActivateAct) 2816 if self.templateViewer is not None:
2788 self.__menus["subwindow"].addAction(self.browserActivateAct) 2817 self.__menus["subwindow"].addAction(self.templateViewerActivateAct)
2789 self.__menus["subwindow"].addAction(self.symbolsViewerActivateAct) 2818 if self.browser is not None:
2819 self.__menus["subwindow"].addAction(self.browserActivateAct)
2820 if self.symbolsViewer is not None:
2821 self.__menus["subwindow"].addAction(self.symbolsViewerActivateAct)
2790 # bottom side 2822 # bottom side
2791 try: 2823 try:
2792 self.__menus["subwindow"].addSection(self.tr("Bottom Side")) 2824 self.__menus["subwindow"].addSection(self.tr("Bottom Side"))
2793 except AttributeError: 2825 except AttributeError:
2794 # Qt4 2826 # Qt4
2795 self.__menus["subwindow"].addSeparator() 2827 self.__menus["subwindow"].addSeparator()
2796 self.__menus["subwindow"].addAction(self.shellActivateAct) 2828 self.__menus["subwindow"].addAction(self.shellActivateAct)
2797 self.__menus["subwindow"].addAction(self.taskViewerActivateAct) 2829 self.__menus["subwindow"].addAction(self.taskViewerActivateAct)
2798 self.__menus["subwindow"].addAction(self.logViewerActivateAct) 2830 self.__menus["subwindow"].addAction(self.logViewerActivateAct)
2799 self.__menus["subwindow"].addAction(self.numbersViewerActivateAct) 2831 if self.numbersViewer is not None:
2832 self.__menus["subwindow"].addAction(self.numbersViewerActivateAct)
2800 try: 2833 try:
2801 self.__menus["subwindow"].addSection(self.tr("Right Side")) 2834 self.__menus["subwindow"].addSection(self.tr("Right Side"))
2802 except AttributeError: 2835 except AttributeError:
2803 # Qt4 2836 # Qt4
2804 self.__menus["subwindow"].addSeparator() 2837 self.__menus["subwindow"].addSeparator()
4173 4206
4174 def __activateTemplateViewer(self): 4207 def __activateTemplateViewer(self):
4175 """ 4208 """
4176 Private slot to handle the activation of the Template Viewer. 4209 Private slot to handle the activation of the Template Viewer.
4177 """ 4210 """
4178 if self.layoutType == "Toolboxes": 4211 if self.templateViewer is not None:
4179 self.lToolboxDock.show() 4212 if self.layoutType == "Toolboxes":
4180 self.lToolbox.setCurrentWidget(self.templateViewer) 4213 self.lToolboxDock.show()
4181 elif self.layoutType == "Sidebars": 4214 self.lToolbox.setCurrentWidget(self.templateViewer)
4182 self.leftSidebar.show() 4215 elif self.layoutType == "Sidebars":
4183 self.leftSidebar.setCurrentWidget(self.templateViewer) 4216 self.leftSidebar.show()
4184 else: 4217 self.leftSidebar.setCurrentWidget(self.templateViewer)
4185 self.templateViewer.show() 4218 else:
4186 self.templateViewer.setFocus(Qt.ActiveWindowFocusReason) 4219 self.templateViewer.show()
4220 self.templateViewer.setFocus(Qt.ActiveWindowFocusReason)
4187 4221
4188 def __activateBrowser(self): 4222 def __activateBrowser(self):
4189 """ 4223 """
4190 Private slot to handle the activation of the file browser. 4224 Private slot to handle the activation of the file browser.
4191 """ 4225 """
4192 if self.layoutType == "Toolboxes": 4226 if self.browser is not None:
4193 self.lToolboxDock.show() 4227 if self.layoutType == "Toolboxes":
4194 self.lToolbox.setCurrentWidget(self.browser) 4228 self.lToolboxDock.show()
4195 elif self.layoutType == "Sidebars": 4229 self.lToolbox.setCurrentWidget(self.browser)
4196 self.leftSidebar.show() 4230 elif self.layoutType == "Sidebars":
4197 self.leftSidebar.setCurrentWidget(self.browser) 4231 self.leftSidebar.show()
4198 else: 4232 self.leftSidebar.setCurrentWidget(self.browser)
4199 self.browser.show() 4233 else:
4200 self.browser.setFocus(Qt.ActiveWindowFocusReason) 4234 self.browser.show()
4235 self.browser.setFocus(Qt.ActiveWindowFocusReason)
4201 4236
4202 def __toggleLeftToolbox(self): 4237 def __toggleLeftToolbox(self):
4203 """ 4238 """
4204 Private slot to handle the toggle of the Left Toolbox window. 4239 Private slot to handle the toggle of the Left Toolbox window.
4205 """ 4240 """
4306 4341
4307 def __activateSymbolsViewer(self): 4342 def __activateSymbolsViewer(self):
4308 """ 4343 """
4309 Private slot to handle the activation of the Symbols Viewer. 4344 Private slot to handle the activation of the Symbols Viewer.
4310 """ 4345 """
4311 if self.layoutType == "Toolboxes": 4346 if self.symbolsViewer is not None:
4312 self.lToolboxDock.show() 4347 if self.layoutType == "Toolboxes":
4313 self.lToolbox.setCurrentWidget(self.symbolsViewer) 4348 self.lToolboxDock.show()
4314 elif self.layoutType == "Sidebars": 4349 self.lToolbox.setCurrentWidget(self.symbolsViewer)
4315 self.leftSidebar.show() 4350 elif self.layoutType == "Sidebars":
4316 self.leftSidebar.setCurrentWidget(self.symbolsViewer) 4351 self.leftSidebar.show()
4317 else: 4352 self.leftSidebar.setCurrentWidget(self.symbolsViewer)
4318 self.symbolsViewer.show() 4353 else:
4319 self.symbolsViewer.setFocus(Qt.ActiveWindowFocusReason) 4354 self.symbolsViewer.show()
4355 self.symbolsViewer.setFocus(Qt.ActiveWindowFocusReason)
4320 4356
4321 def __activateNumbersViewer(self): 4357 def __activateNumbersViewer(self):
4322 """ 4358 """
4323 Private slot to handle the activation of the Numbers Viewer. 4359 Private slot to handle the activation of the Numbers Viewer.
4324 """ 4360 """
4325 if self.layoutType == "Toolboxes": 4361 if self.numbersViewer is not None:
4326 self.hToolboxDock.show() 4362 if self.layoutType == "Toolboxes":
4327 self.hToolboxDock.setCurrentWidget(self.numbersViewer) 4363 self.hToolboxDock.show()
4328 elif self.layoutType == "Sidebars": 4364 self.hToolboxDock.setCurrentWidget(self.numbersViewer)
4329 self.bottomSidebar.show() 4365 elif self.layoutType == "Sidebars":
4330 self.bottomSidebar.setCurrentWidget(self.numbersViewer) 4366 self.bottomSidebar.show()
4331 else: 4367 self.bottomSidebar.setCurrentWidget(self.numbersViewer)
4332 self.numbersViewer.show() 4368 else:
4333 self.numbersViewer.setFocus(Qt.ActiveWindowFocusReason) 4369 self.numbersViewer.show()
4370 self.numbersViewer.setFocus(Qt.ActiveWindowFocusReason)
4334 4371
4335 def __activateViewmanager(self): 4372 def __activateViewmanager(self):
4336 """ 4373 """
4337 Private slot to handle the activation of the current editor. 4374 Private slot to handle the activation of the current editor.
4338 """ 4375 """
6509 self.__previewer.shutdown() 6546 self.__previewer.shutdown()
6510 6547
6511 self.shell.closeShell() 6548 self.shell.closeShell()
6512 6549
6513 self.__writeTasks() 6550 self.__writeTasks()
6514 self.templateViewer.save() 6551
6552 if self.templateViewer is not None:
6553 self.templateViewer.save()
6515 6554
6516 if not self.debuggerUI.shutdownServer(): 6555 if not self.debuggerUI.shutdownServer():
6517 return False 6556 return False
6518 self.debuggerUI.shutdown() 6557 self.debuggerUI.shutdown()
6519 6558
6536 self.SAServer = None 6575 self.SAServer = None
6537 6576
6538 Preferences.setGeometry("MainMaximized", self.isMaximized()) 6577 Preferences.setGeometry("MainMaximized", self.isMaximized())
6539 if not self.isMaximized(): 6578 if not self.isMaximized():
6540 Preferences.setGeometry("MainGeometry", self.saveGeometry()) 6579 Preferences.setGeometry("MainGeometry", self.saveGeometry())
6541 self.browser.saveToplevelDirs() 6580
6581 if self.browser is not None:
6582 self.browser.saveToplevelDirs()
6542 6583
6543 Preferences.setUI( 6584 Preferences.setUI(
6544 "ToolbarManagerState", self.toolbarManager.saveState()) 6585 "ToolbarManagerState", self.toolbarManager.saveState())
6545 self.__saveCurrentViewProfile(True) 6586 self.__saveCurrentViewProfile(True)
6546 Preferences.saveToolGroups(self.toolGroups, self.currentToolGroup) 6587 Preferences.saveToolGroups(self.toolGroups, self.currentToolGroup)

eric ide

mercurial