UI/UserInterface.py

changeset 372
237c3fe739f5
parent 365
0686ac00256e
child 381
64ae9e09d8bc
equal deleted inserted replaced
371:913f2c88915b 372:237c3fe739f5
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 from .SymbolsWidget import SymbolsWidget
73 from .NumbersWidget import NumbersWidget
73 74
74 from E5Gui.E5SingleApplication import E5SingleApplicationServer 75 from E5Gui.E5SingleApplication import E5SingleApplicationServer
75 from E5Gui.E5Action import E5Action, createActionGroup 76 from E5Gui.E5Action import E5Action, createActionGroup
76 from E5Gui.E5ToolBarManager import E5ToolBarManager 77 from E5Gui.E5ToolBarManager import E5ToolBarManager
77 from E5Gui.E5ToolBarDialog import E5ToolBarDialog 78 from E5Gui.E5ToolBarDialog import E5ToolBarDialog
495 self.viewmanager.setCooperationClient(self.cooperation.getClient()) 496 self.viewmanager.setCooperationClient(self.cooperation.getClient())
496 497
497 self.connect(self.symbolsViewer, SIGNAL('insertSymbol(QString)'), 498 self.connect(self.symbolsViewer, SIGNAL('insertSymbol(QString)'),
498 self.viewmanager.insertSymbol) 499 self.viewmanager.insertSymbol)
499 500
501 self.connect(self.numbersViewer, SIGNAL('insertNumber(QString)'),
502 self.viewmanager.insertNumber)
503
500 # Generate the unittest dialog 504 # Generate the unittest dialog
501 self.unittestDialog = UnittestDialog(None, self.debuggerUI.debugServer, self) 505 self.unittestDialog = UnittestDialog(None, self.debuggerUI.debugServer, self)
502 self.connect(self.unittestDialog, SIGNAL('unittestFile'), 506 self.connect(self.unittestDialog, SIGNAL('unittestFile'),
503 self.viewmanager.setFileLine) 507 self.viewmanager.setFileLine)
504 508
556 e5App().registerObject("PluginManager", self.pluginManager) 560 e5App().registerObject("PluginManager", self.pluginManager)
557 e5App().registerObject("ToolbarManager", self.toolbarManager) 561 e5App().registerObject("ToolbarManager", self.toolbarManager)
558 e5App().registerObject("Terminal", self.terminal) 562 e5App().registerObject("Terminal", self.terminal)
559 e5App().registerObject("Cooperation", self.cooperation) 563 e5App().registerObject("Cooperation", self.cooperation)
560 e5App().registerObject("Symbols", self.symbolsViewer) 564 e5App().registerObject("Symbols", self.symbolsViewer)
565 e5App().registerObject("Numbers", self.numbersViewer)
561 566
562 # Initialize the actions, menus, toolbars and statusbar 567 # Initialize the actions, menus, toolbars and statusbar
563 splash.showMessage(self.trUtf8("Initializing Actions...")) 568 splash.showMessage(self.trUtf8("Initializing Actions..."))
564 self.__initActions() 569 self.__initActions()
565 splash.showMessage(self.trUtf8("Initializing Menus...")) 570 splash.showMessage(self.trUtf8("Initializing Menus..."))
766 771
767 # Create the terminal 772 # Create the terminal
768 self.terminal = Terminal(self.viewmanager) 773 self.terminal = Terminal(self.viewmanager)
769 self.terminal.setWindowTitle(self.trUtf8("Terminal")) 774 self.terminal.setWindowTitle(self.trUtf8("Terminal"))
770 775
776 # Create the numbers viewer
777 self.numbersViewer = NumbersWidget()
778 self.numbersViewer.setWindowTitle(self.trUtf8("Numbers"))
779
771 self.windows = [self.projectBrowser, None, self.debugViewer, 780 self.windows = [self.projectBrowser, None, self.debugViewer,
772 None, self.logViewer, self.taskViewer, self.templateViewer, 781 None, self.logViewer, self.taskViewer, self.templateViewer,
773 self.multiProjectBrowser, self.terminal, self.cooperation, 782 self.multiProjectBrowser, self.terminal, self.cooperation,
774 self.symbolsViewer] 783 self.symbolsViewer, self.numbersViewer]
775 784
776 if self.embeddedShell: 785 if self.embeddedShell:
777 self.shell = self.debugViewer.shell 786 self.shell = self.debugViewer.shell
778 else: 787 else:
779 # Create the shell 788 # Create the shell
882 self.symbolsViewer = SymbolsWidget() 891 self.symbolsViewer = SymbolsWidget()
883 self.__setupDockWindow(self.symbolsDock, Qt.LeftDockWidgetArea, 892 self.__setupDockWindow(self.symbolsDock, Qt.LeftDockWidgetArea,
884 self.symbolsViewer, self.trUtf8("Symbols")) 893 self.symbolsViewer, self.trUtf8("Symbols"))
885 self.windows.append(self.symbolsDock) 894 self.windows.append(self.symbolsDock)
886 895
896 # Create the numbers viewer
897 self.numbersDock = self.__createDockWindow("NumbersDock")
898 self.numbersViewer = NumbersWidget()
899 self.__setupDockWindow(self.numbersDock, Qt.BottomDockWidgetArea,
900 self.numbersViewer, self.trUtf8("Numbers"))
901 self.windows.append(self.numbersDock)
902
887 def __createToolboxesLayout(self, debugServer): 903 def __createToolboxesLayout(self, debugServer):
888 """ 904 """
889 Private method to create the Toolboxes layout. 905 Private method to create the Toolboxes layout.
890 906
891 @param debugServer reference to the debug server object 907 @param debugServer reference to the debug server object
981 # Create the symbols viewer 997 # Create the symbols viewer
982 self.symbolsViewer = SymbolsWidget() 998 self.symbolsViewer = SymbolsWidget()
983 self.vToolbox.addItem(self.symbolsViewer, 999 self.vToolbox.addItem(self.symbolsViewer,
984 UI.PixmapCache.getIcon("symbols.png"), 1000 UI.PixmapCache.getIcon("symbols.png"),
985 self.trUtf8("Symbols")) 1001 self.trUtf8("Symbols"))
1002
1003 # Create the numbers viewer
1004 self.numbersViewer = NumbersWidget()
1005 self.hToolbox.addItem(self.numbersViewer,
1006 UI.PixmapCache.getIcon("numbers.png"),
1007 self.trUtf8("Numbers"))
986 1008
987 self.hToolbox.setCurrentIndex(0) 1009 self.hToolbox.setCurrentIndex(0)
988 1010
989 def __createSidebarsLayout(self, debugServer): 1011 def __createSidebarsLayout(self, debugServer):
990 """ 1012 """
1086 # Create the symbols viewer 1108 # Create the symbols viewer
1087 self.symbolsViewer = SymbolsWidget() 1109 self.symbolsViewer = SymbolsWidget()
1088 self.leftSidebar.addTab(self.symbolsViewer, 1110 self.leftSidebar.addTab(self.symbolsViewer,
1089 UI.PixmapCache.getIcon("symbols.png"), 1111 UI.PixmapCache.getIcon("symbols.png"),
1090 self.trUtf8("Symbols")) 1112 self.trUtf8("Symbols"))
1113
1114 # Create the numbers viewer
1115 self.numbersViewer = NumbersWidget()
1116 self.bottomSidebar.addTab(self.numbersViewer,
1117 UI.PixmapCache.getIcon("numbers.png"),
1118 self.trUtf8("Numbers"))
1091 1119
1092 self.bottomSidebar.setCurrentIndex(0) 1120 self.bottomSidebar.setCurrentIndex(0)
1093 1121
1094 # create the central widget 1122 # create the central widget
1095 logging.debug("Creating central widget...") 1123 logging.debug("Creating central widget...")
1666 'symbols_viewer_activate', True) 1694 'symbols_viewer_activate', True)
1667 self.connect(self.symbolsViewerActivateAct, SIGNAL('triggered()'), 1695 self.connect(self.symbolsViewerActivateAct, SIGNAL('triggered()'),
1668 self.__activateSymbolsViewer) 1696 self.__activateSymbolsViewer)
1669 self.actions.append(self.symbolsViewerActivateAct) 1697 self.actions.append(self.symbolsViewerActivateAct)
1670 self.addAction(self.symbolsViewerActivateAct) 1698 self.addAction(self.symbolsViewerActivateAct)
1699
1700 self.numbersViewerAct = E5Action(self.trUtf8('Numbers'),
1701 self.trUtf8('&Numbers'), 0, 0, self, 'numbers_viewer', True)
1702 self.numbersViewerAct.setStatusTip(self.trUtf8(
1703 'Toggle the Numbers window'))
1704 self.numbersViewerAct.setWhatsThis(self.trUtf8(
1705 """<b>Toggle the Numbers window</b>"""
1706 """<p>If the Numbers window is hidden then display it."""
1707 """ If it is displayed then close it.</p>"""
1708 ))
1709 self.connect(self.numbersViewerAct, SIGNAL('triggered()'),
1710 self.__toggleNumbersViewer)
1711 self.actions.append(self.numbersViewerAct)
1712
1713 self.numbersViewerActivateAct = E5Action(
1714 self.trUtf8('Activate Numbers-Viewer'),
1715 self.trUtf8('Activate Numbers-Viewer'),
1716 QKeySequence(self.trUtf8("Alt+Shift+B")),
1717 0, self,
1718 'numbers_viewer_activate', True)
1719 self.connect(self.numbersViewerActivateAct, SIGNAL('triggered()'),
1720 self.__activateNumbersViewer)
1721 self.actions.append(self.numbersViewerActivateAct)
1722 self.addAction(self.numbersViewerActivateAct)
1671 1723
1672 self.whatsThisAct = E5Action(self.trUtf8('What\'s This?'), 1724 self.whatsThisAct = E5Action(self.trUtf8('What\'s This?'),
1673 UI.PixmapCache.getIcon("whatsThis.png"), 1725 UI.PixmapCache.getIcon("whatsThis.png"),
1674 self.trUtf8('&What\'s This?'), 1726 self.trUtf8('&What\'s This?'),
1675 QKeySequence(self.trUtf8("Shift+F1")), 1727 QKeySequence(self.trUtf8("Shift+F1")),
3878 self.leftSidebar.setCurrentWidget(self.symbolsViewer) 3930 self.leftSidebar.setCurrentWidget(self.symbolsViewer)
3879 else: 3931 else:
3880 self.symbolsViewer.show() 3932 self.symbolsViewer.show()
3881 self.symbolsViewer.setFocus(Qt.ActiveWindowFocusReason) 3933 self.symbolsViewer.setFocus(Qt.ActiveWindowFocusReason)
3882 3934
3935 def __toggleNumbersViewer(self):
3936 """
3937 Private slot to handle the toggle of the Numbers Viewer window.
3938 """
3939 hasFocus = self.numbersViewer.hasFocus()
3940 if self.layout == "DockWindows":
3941 shown = self.__toggleWindow(self.numbersDock)
3942 else:
3943 shown = self.__toggleWindow(self.numbersViewer)
3944 if shown:
3945 self.__activateNumbersViewer()
3946 else:
3947 if hasFocus:
3948 self.__activateViewmanager()
3949
3950 def __activateNumbersViewer(self):
3951 """
3952 Private slot to handle the activation of the Numbers Viewer.
3953 """
3954 if self.layout == "DockWindows":
3955 self.numbersDock.show()
3956 self.numbersDock.raise_()
3957 elif self.layout == "Toolboxes":
3958 self.vToolboxDock.show()
3959 self.vToolbox.setCurrentWidget(self.numbersViewer)
3960 elif self.layout == "Sidebars":
3961 self.bottomSidebar.show()
3962 self.bottomSidebar.setCurrentWidget(self.numbersViewer)
3963 else:
3964 self.numbersViewer.show()
3965 self.numbersViewer.setFocus(Qt.ActiveWindowFocusReason)
3966
3883 def __activateViewmanager(self): 3967 def __activateViewmanager(self):
3884 """ 3968 """
3885 Private slot to handle the activation of the current editor. 3969 Private slot to handle the activation of the current editor.
3886 """ 3970 """
3887 aw = self.viewmanager.activeWindow() 3971 aw = self.viewmanager.activeWindow()

eric ide

mercurial