UI/UserInterface.py

changeset 372
237c3fe739f5
parent 365
0686ac00256e
child 381
64ae9e09d8bc
--- a/UI/UserInterface.py	Mon Jun 28 19:02:47 2010 +0200
+++ b/UI/UserInterface.py	Mon Jun 28 20:00:21 2010 +0200
@@ -70,6 +70,7 @@
 from .FindFileDialog import FindFileDialog
 from .FindFileNameDialog import FindFileNameDialog
 from .SymbolsWidget import SymbolsWidget
+from .NumbersWidget import NumbersWidget
 
 from E5Gui.E5SingleApplication import E5SingleApplicationServer
 from E5Gui.E5Action import E5Action, createActionGroup
@@ -497,6 +498,9 @@
         self.connect(self.symbolsViewer, SIGNAL('insertSymbol(QString)'), 
                      self.viewmanager.insertSymbol)
         
+        self.connect(self.numbersViewer, SIGNAL('insertNumber(QString)'), 
+                     self.viewmanager.insertNumber)
+        
         # Generate the unittest dialog
         self.unittestDialog = UnittestDialog(None, self.debuggerUI.debugServer, self)
         self.connect(self.unittestDialog, SIGNAL('unittestFile'),
@@ -558,6 +562,7 @@
         e5App().registerObject("Terminal", self.terminal)
         e5App().registerObject("Cooperation", self.cooperation)
         e5App().registerObject("Symbols", self.symbolsViewer)
+        e5App().registerObject("Numbers", self.numbersViewer)
         
         # Initialize the actions, menus, toolbars and statusbar
         splash.showMessage(self.trUtf8("Initializing Actions..."))
@@ -768,10 +773,14 @@
         self.terminal = Terminal(self.viewmanager)
         self.terminal.setWindowTitle(self.trUtf8("Terminal"))
 
+        # Create the numbers viewer
+        self.numbersViewer = NumbersWidget()
+        self.numbersViewer.setWindowTitle(self.trUtf8("Numbers"))
+        
         self.windows = [self.projectBrowser, None, self.debugViewer, 
             None, self.logViewer, self.taskViewer, self.templateViewer, 
             self.multiProjectBrowser, self.terminal, self.cooperation, 
-            self.symbolsViewer]
+            self.symbolsViewer, self.numbersViewer]
 
         if self.embeddedShell:
             self.shell = self.debugViewer.shell
@@ -884,6 +893,13 @@
                                self.symbolsViewer, self.trUtf8("Symbols"))
         self.windows.append(self.symbolsDock)
         
+        # Create the numbers viewer
+        self.numbersDock = self.__createDockWindow("NumbersDock")
+        self.numbersViewer = NumbersWidget()
+        self.__setupDockWindow(self.numbersDock, Qt.BottomDockWidgetArea,
+                               self.numbersViewer, self.trUtf8("Numbers"))
+        self.windows.append(self.numbersDock)
+        
     def __createToolboxesLayout(self, debugServer):
         """
         Private method to create the Toolboxes layout.
@@ -984,6 +1000,12 @@
                               UI.PixmapCache.getIcon("symbols.png"), 
                               self.trUtf8("Symbols"))
         
+        # Create the numbers viewer
+        self.numbersViewer = NumbersWidget()
+        self.hToolbox.addItem(self.numbersViewer, 
+                              UI.PixmapCache.getIcon("numbers.png"), 
+                              self.trUtf8("Numbers"))
+        
         self.hToolbox.setCurrentIndex(0)
         
     def __createSidebarsLayout(self, debugServer):
@@ -1089,6 +1111,12 @@
                                 UI.PixmapCache.getIcon("symbols.png"), 
                                 self.trUtf8("Symbols"))
         
+        # Create the numbers viewer
+        self.numbersViewer = NumbersWidget()
+        self.bottomSidebar.addTab(self.numbersViewer, 
+                                  UI.PixmapCache.getIcon("numbers.png"), 
+                                  self.trUtf8("Numbers"))
+        
         self.bottomSidebar.setCurrentIndex(0)
         
         # create the central widget
@@ -1669,6 +1697,30 @@
         self.actions.append(self.symbolsViewerActivateAct)
         self.addAction(self.symbolsViewerActivateAct)
 
+        self.numbersViewerAct = E5Action(self.trUtf8('Numbers'),
+                self.trUtf8('&Numbers'), 0, 0, self, 'numbers_viewer', True)
+        self.numbersViewerAct.setStatusTip(self.trUtf8(
+            'Toggle the Numbers window'))
+        self.numbersViewerAct.setWhatsThis(self.trUtf8(
+            """<b>Toggle the Numbers window</b>"""
+            """<p>If the Numbers window is hidden then display it."""
+            """ If it is displayed then close it.</p>"""
+        ))
+        self.connect(self.numbersViewerAct, SIGNAL('triggered()'), 
+                self.__toggleNumbersViewer)
+        self.actions.append(self.numbersViewerAct)
+        
+        self.numbersViewerActivateAct = E5Action(
+                self.trUtf8('Activate Numbers-Viewer'),
+                self.trUtf8('Activate Numbers-Viewer'),
+                QKeySequence(self.trUtf8("Alt+Shift+B")),
+                0, self,
+                'numbers_viewer_activate', True)
+        self.connect(self.numbersViewerActivateAct, SIGNAL('triggered()'), 
+                self.__activateNumbersViewer)
+        self.actions.append(self.numbersViewerActivateAct)
+        self.addAction(self.numbersViewerActivateAct)
+
         self.whatsThisAct = E5Action(self.trUtf8('What\'s This?'),
                 UI.PixmapCache.getIcon("whatsThis.png"),
                 self.trUtf8('&What\'s This?'), 
@@ -3880,6 +3932,38 @@
             self.symbolsViewer.show()
         self.symbolsViewer.setFocus(Qt.ActiveWindowFocusReason)
         
+    def __toggleNumbersViewer(self):
+        """
+        Private slot to handle the toggle of the Numbers Viewer window.
+        """
+        hasFocus = self.numbersViewer.hasFocus()
+        if self.layout == "DockWindows":
+            shown = self.__toggleWindow(self.numbersDock)
+        else:
+            shown = self.__toggleWindow(self.numbersViewer)
+        if shown:
+            self.__activateNumbersViewer()
+        else:
+            if hasFocus:
+                self.__activateViewmanager()
+
+    def __activateNumbersViewer(self):
+        """
+        Private slot to handle the activation of the Numbers Viewer.
+        """
+        if self.layout == "DockWindows":
+            self.numbersDock.show()
+            self.numbersDock.raise_()
+        elif self.layout == "Toolboxes":
+            self.vToolboxDock.show()
+            self.vToolbox.setCurrentWidget(self.numbersViewer)
+        elif self.layout == "Sidebars":
+            self.bottomSidebar.show()
+            self.bottomSidebar.setCurrentWidget(self.numbersViewer)
+        else:
+            self.numbersViewer.show()
+        self.numbersViewer.setFocus(Qt.ActiveWindowFocusReason)
+        
     def __activateViewmanager(self):
         """
         Private slot to handle the activation of the current editor.

eric ide

mercurial