UI/UserInterface.py

changeset 365
0686ac00256e
parent 357
197abac89822
child 372
237c3fe739f5
equal deleted inserted replaced
363:8bda0881a970 365:0686ac00256e
67 from .DiffDialog import DiffDialog 67 from .DiffDialog import DiffDialog
68 from .CompareDialog import CompareDialog 68 from .CompareDialog import CompareDialog
69 from .LogView import LogViewer 69 from .LogView import LogViewer
70 from .FindFileDialog import FindFileDialog 70 from .FindFileDialog import FindFileDialog
71 from .FindFileNameDialog import FindFileNameDialog 71 from .FindFileNameDialog import FindFileNameDialog
72 from .SymbolsWidget import SymbolsWidget
72 73
73 from E5Gui.E5SingleApplication import E5SingleApplicationServer 74 from E5Gui.E5SingleApplication import E5SingleApplicationServer
74 from E5Gui.E5Action import E5Action, createActionGroup 75 from E5Gui.E5Action import E5Action, createActionGroup
75 from E5Gui.E5ToolBarManager import E5ToolBarManager 76 from E5Gui.E5ToolBarManager import E5ToolBarManager
76 from E5Gui.E5ToolBarDialog import E5ToolBarDialog 77 from E5Gui.E5ToolBarDialog import E5ToolBarDialog
491 self.viewmanager.shareConnected) 492 self.viewmanager.shareConnected)
492 self.connect(self.cooperation, SIGNAL('editorCommand(QString, QString, QString)'), 493 self.connect(self.cooperation, SIGNAL('editorCommand(QString, QString, QString)'),
493 self.viewmanager.receive) 494 self.viewmanager.receive)
494 self.viewmanager.setCooperationClient(self.cooperation.getClient()) 495 self.viewmanager.setCooperationClient(self.cooperation.getClient())
495 496
497 self.connect(self.symbolsViewer, SIGNAL('insertSymbol(QString)'),
498 self.viewmanager.insertSymbol)
499
496 # Generate the unittest dialog 500 # Generate the unittest dialog
497 self.unittestDialog = UnittestDialog(None, self.debuggerUI.debugServer, self) 501 self.unittestDialog = UnittestDialog(None, self.debuggerUI.debugServer, self)
498 self.connect(self.unittestDialog, SIGNAL('unittestFile'), 502 self.connect(self.unittestDialog, SIGNAL('unittestFile'),
499 self.viewmanager.setFileLine) 503 self.viewmanager.setFileLine)
500 504
551 e5App().registerObject("DummyHelpViewer", self.dummyHelpViewer) 555 e5App().registerObject("DummyHelpViewer", self.dummyHelpViewer)
552 e5App().registerObject("PluginManager", self.pluginManager) 556 e5App().registerObject("PluginManager", self.pluginManager)
553 e5App().registerObject("ToolbarManager", self.toolbarManager) 557 e5App().registerObject("ToolbarManager", self.toolbarManager)
554 e5App().registerObject("Terminal", self.terminal) 558 e5App().registerObject("Terminal", self.terminal)
555 e5App().registerObject("Cooperation", self.cooperation) 559 e5App().registerObject("Cooperation", self.cooperation)
560 e5App().registerObject("Symbols", self.symbolsViewer)
556 561
557 # Initialize the actions, menus, toolbars and statusbar 562 # Initialize the actions, menus, toolbars and statusbar
558 splash.showMessage(self.trUtf8("Initializing Actions...")) 563 splash.showMessage(self.trUtf8("Initializing Actions..."))
559 self.__initActions() 564 self.__initActions()
560 splash.showMessage(self.trUtf8("Initializing Menus...")) 565 splash.showMessage(self.trUtf8("Initializing Menus..."))
741 746
742 # Create the chat part of the user interface 747 # Create the chat part of the user interface
743 self.cooperation = ChatWidget() 748 self.cooperation = ChatWidget()
744 self.cooperation.setWindowTitle(self.trUtf8("Cooperation")) 749 self.cooperation.setWindowTitle(self.trUtf8("Cooperation"))
745 750
751 # Create the symbols part of the user interface
752 self.symbolsViewer = SymbolsWidget()
753 self.symbolsViewer.setWindowTitle(self.trUtf8("Symbols"))
754
746 # Create the log viewer part of the user interface 755 # Create the log viewer part of the user interface
747 self.logViewer = LogViewer(None) 756 self.logViewer = LogViewer(None)
748 self.logViewer.setWindowTitle(self.trUtf8("Log-Viewer")) 757 self.logViewer.setWindowTitle(self.trUtf8("Log-Viewer"))
749 758
750 # Create the task viewer part of the user interface 759 # Create the task viewer part of the user interface
759 self.terminal = Terminal(self.viewmanager) 768 self.terminal = Terminal(self.viewmanager)
760 self.terminal.setWindowTitle(self.trUtf8("Terminal")) 769 self.terminal.setWindowTitle(self.trUtf8("Terminal"))
761 770
762 self.windows = [self.projectBrowser, None, self.debugViewer, 771 self.windows = [self.projectBrowser, None, self.debugViewer,
763 None, self.logViewer, self.taskViewer, self.templateViewer, 772 None, self.logViewer, self.taskViewer, self.templateViewer,
764 self.multiProjectBrowser, self.terminal, self.cooperation] 773 self.multiProjectBrowser, self.terminal, self.cooperation,
774 self.symbolsViewer]
765 775
766 if self.embeddedShell: 776 if self.embeddedShell:
767 self.shell = self.debugViewer.shell 777 self.shell = self.debugViewer.shell
768 else: 778 else:
769 # Create the shell 779 # Create the shell
865 elif self.embeddedFileBrowser == 1: # embedded in debug browser 875 elif self.embeddedFileBrowser == 1: # embedded in debug browser
866 self.browser = self.debugViewer.browser 876 self.browser = self.debugViewer.browser
867 else: # embedded in project browser 877 else: # embedded in project browser
868 self.browser = self.projectBrowser.fileBrowser 878 self.browser = self.projectBrowser.fileBrowser
869 879
880 # Create the symbols viewer
881 self.symbolsDock = self.__createDockWindow("SymbolsDock")
882 self.symbolsViewer = SymbolsWidget()
883 self.__setupDockWindow(self.symbolsDock, Qt.LeftDockWidgetArea,
884 self.symbolsViewer, self.trUtf8("Symbols"))
885 self.windows.append(self.symbolsDock)
886
870 def __createToolboxesLayout(self, debugServer): 887 def __createToolboxesLayout(self, debugServer):
871 """ 888 """
872 Private method to create the Toolboxes layout. 889 Private method to create the Toolboxes layout.
873 890
874 @param debugServer reference to the debug server object 891 @param debugServer reference to the debug server object
959 elif self.embeddedFileBrowser == 1: # embedded in debug browser 976 elif self.embeddedFileBrowser == 1: # embedded in debug browser
960 self.browser = self.debugViewer.browser 977 self.browser = self.debugViewer.browser
961 else: # embedded in project browser 978 else: # embedded in project browser
962 self.browser = self.projectBrowser.fileBrowser 979 self.browser = self.projectBrowser.fileBrowser
963 980
981 # Create the symbols viewer
982 self.symbolsViewer = SymbolsWidget()
983 self.vToolbox.addItem(self.symbolsViewer,
984 UI.PixmapCache.getIcon("symbols.png"),
985 self.trUtf8("Symbols"))
986
964 self.hToolbox.setCurrentIndex(0) 987 self.hToolbox.setCurrentIndex(0)
965 988
966 def __createSidebarsLayout(self, debugServer): 989 def __createSidebarsLayout(self, debugServer):
967 """ 990 """
968 Private method to create the Sidebars layout. 991 Private method to create the Sidebars layout.
1051 if self.embeddedFileBrowser == 0: # separate window 1074 if self.embeddedFileBrowser == 0: # separate window
1052 # Create the file browser 1075 # Create the file browser
1053 logging.debug("Creating File Browser...") 1076 logging.debug("Creating File Browser...")
1054 self.browser = Browser() 1077 self.browser = Browser()
1055 self.leftSidebar.addTab(self.browser, 1078 self.leftSidebar.addTab(self.browser,
1056 UI.PixmapCache.getIcon("browser.png"), 1079 UI.PixmapCache.getIcon("browser.png"),
1057 self.trUtf8("File-Browser")) 1080 self.trUtf8("File-Browser"))
1058 elif self.embeddedFileBrowser == 1: # embedded in debug browser 1081 elif self.embeddedFileBrowser == 1: # embedded in debug browser
1059 self.browser = self.debugViewer.browser 1082 self.browser = self.debugViewer.browser
1060 else: # embedded in project browser 1083 else: # embedded in project browser
1061 self.browser = self.projectBrowser.fileBrowser 1084 self.browser = self.projectBrowser.fileBrowser
1085
1086 # Create the symbols viewer
1087 self.symbolsViewer = SymbolsWidget()
1088 self.leftSidebar.addTab(self.symbolsViewer,
1089 UI.PixmapCache.getIcon("symbols.png"),
1090 self.trUtf8("Symbols"))
1062 1091
1063 self.bottomSidebar.setCurrentIndex(0) 1092 self.bottomSidebar.setCurrentIndex(0)
1064 1093
1065 # create the central widget 1094 # create the central widget
1066 logging.debug("Creating central widget...") 1095 logging.debug("Creating central widget...")
1613 'cooperation_viewer_activate', True) 1642 'cooperation_viewer_activate', True)
1614 self.connect(self.cooperationViewerActivateAct, SIGNAL('triggered()'), 1643 self.connect(self.cooperationViewerActivateAct, SIGNAL('triggered()'),
1615 self.__activateCooperationViewer) 1644 self.__activateCooperationViewer)
1616 self.actions.append(self.cooperationViewerActivateAct) 1645 self.actions.append(self.cooperationViewerActivateAct)
1617 self.addAction(self.cooperationViewerActivateAct) 1646 self.addAction(self.cooperationViewerActivateAct)
1647
1648 self.symbolsViewerAct = E5Action(self.trUtf8('Symbols'),
1649 self.trUtf8('&Symbols'), 0, 0, self, 'symbols_viewer', True)
1650 self.symbolsViewerAct.setStatusTip(self.trUtf8(
1651 'Toggle the Symbols window'))
1652 self.symbolsViewerAct.setWhatsThis(self.trUtf8(
1653 """<b>Toggle the Symbols window</b>"""
1654 """<p>If the Symbols window is hidden then display it."""
1655 """ If it is displayed then close it.</p>"""
1656 ))
1657 self.connect(self.symbolsViewerAct, SIGNAL('triggered()'),
1658 self.__toggleSymbolsViewer)
1659 self.actions.append(self.symbolsViewerAct)
1660
1661 self.symbolsViewerActivateAct = E5Action(
1662 self.trUtf8('Activate Symbols-Viewer'),
1663 self.trUtf8('Activate Symbols-Viewer'),
1664 QKeySequence(self.trUtf8("Alt+Shift+Y")),
1665 0, self,
1666 'symbols_viewer_activate', True)
1667 self.connect(self.symbolsViewerActivateAct, SIGNAL('triggered()'),
1668 self.__activateSymbolsViewer)
1669 self.actions.append(self.symbolsViewerActivateAct)
1670 self.addAction(self.symbolsViewerActivateAct)
1618 1671
1619 self.whatsThisAct = E5Action(self.trUtf8('What\'s This?'), 1672 self.whatsThisAct = E5Action(self.trUtf8('What\'s This?'),
1620 UI.PixmapCache.getIcon("whatsThis.png"), 1673 UI.PixmapCache.getIcon("whatsThis.png"),
1621 self.trUtf8('&What\'s This?'), 1674 self.trUtf8('&What\'s This?'),
1622 QKeySequence(self.trUtf8("Shift+F1")), 1675 QKeySequence(self.trUtf8("Shift+F1")),
3190 self.__menus["window"].addAction(self.cooperationViewerAct) 3243 self.__menus["window"].addAction(self.cooperationViewerAct)
3191 if self.layout == "DockWindows": 3244 if self.layout == "DockWindows":
3192 self.cooperationViewerAct.setChecked(not self.cooperationDock.isHidden()) 3245 self.cooperationViewerAct.setChecked(not self.cooperationDock.isHidden())
3193 else: 3246 else:
3194 self.cooperationViewerAct.setChecked(not self.cooperation.isHidden()) 3247 self.cooperationViewerAct.setChecked(not self.cooperation.isHidden())
3248
3249 self.__menus["window"].addAction(self.symbolsViewerAct)
3250 if self.layout == "DockWindows":
3251 self.symbolsViewerAct.setChecked(not self.symbolsDock.isHidden())
3252 else:
3253 self.symbolsViewerAct.setChecked(not self.symbolsViewer.isHidden())
3195 3254
3196 # Insert menu entry for toolbar settings 3255 # Insert menu entry for toolbar settings
3197 self.__menus["window"].addSeparator() 3256 self.__menus["window"].addSeparator()
3198 self.__menus["window"].addMenu(self.__menus["toolbars"]) 3257 self.__menus["window"].addMenu(self.__menus["toolbars"])
3199 3258
3787 self.cooperationDock.raise_() 3846 self.cooperationDock.raise_()
3788 else: 3847 else:
3789 self.cooperation.show() 3848 self.cooperation.show()
3790 self.cooperation.setFocus(Qt.ActiveWindowFocusReason) 3849 self.cooperation.setFocus(Qt.ActiveWindowFocusReason)
3791 3850
3851 def __toggleSymbolsViewer(self):
3852 """
3853 Private slot to handle the toggle of the Symbols Viewer window.
3854 """
3855 hasFocus = self.symbolsViewer.hasFocus()
3856 if self.layout == "DockWindows":
3857 shown = self.__toggleWindow(self.symbolsDock)
3858 else:
3859 shown = self.__toggleWindow(self.symbolsViewer)
3860 if shown:
3861 self.__activateSymbolsViewer()
3862 else:
3863 if hasFocus:
3864 self.__activateViewmanager()
3865
3866 def __activateSymbolsViewer(self):
3867 """
3868 Private slot to handle the activation of the Symbols Viewer.
3869 """
3870 if self.layout == "DockWindows":
3871 self.symbolsDock.show()
3872 self.symbolsDock.raise_()
3873 elif self.layout == "Toolboxes":
3874 self.vToolboxDock.show()
3875 self.vToolbox.setCurrentWidget(self.symbolsViewer)
3876 elif self.layout == "Sidebars":
3877 self.leftSidebar.show()
3878 self.leftSidebar.setCurrentWidget(self.symbolsViewer)
3879 else:
3880 self.symbolsViewer.show()
3881 self.symbolsViewer.setFocus(Qt.ActiveWindowFocusReason)
3882
3792 def __activateViewmanager(self): 3883 def __activateViewmanager(self):
3793 """ 3884 """
3794 Private slot to handle the activation of the current editor. 3885 Private slot to handle the activation of the current editor.
3795 """ 3886 """
3796 aw = self.viewmanager.activeWindow() 3887 aw = self.viewmanager.activeWindow()

eric ide

mercurial