UI/UserInterface.py

changeset 149
a134031209be
parent 137
9b3f3e8fc798
child 150
6ca76837a2d4
--- a/UI/UserInterface.py	Sat Mar 20 13:14:56 2010 +0000
+++ b/UI/UserInterface.py	Sun Mar 21 19:34:15 2010 +0000
@@ -57,6 +57,8 @@
 
 from Templates.TemplateViewer import TemplateViewer
 
+from Cooperation.ChatWidget import ChatWidget
+
 from .Browser import Browser
 from .Info import *
 from . import Config
@@ -454,6 +456,8 @@
                      self.pluginManager.preferencesChanged)
         self.connect(self, SIGNAL('preferencesChanged'),
                      debugServer.preferencesChanged)
+        self.connect(self, SIGNAL('preferencesChanged'),
+                     self.cooperation.preferencesChanged)
         
         self.connect(self.viewmanager, SIGNAL('editorSaved'),
                      self.project.repopulateItem)
@@ -706,6 +710,10 @@
             embeddedBrowser=(self.embeddedFileBrowser == 1))
         self.debugViewer.setWindowTitle(self.trUtf8("Debug-Viewer"))
 
+        # Create the chat part of the user interface
+        self.cooperation = ChatWidget()
+        self.cooperation.setWindowTitle(self.trUtf8("Cooperation"))
+        
         # Create the log viewer part of the user interface
         self.logViewer = LogViewer(None)
         self.logViewer.setWindowTitle(self.trUtf8("Log-Viewer"))
@@ -724,7 +732,7 @@
 
         self.windows = [self.projectBrowser, None, self.debugViewer, 
             None, self.logViewer, self.taskViewer, self.templateViewer, 
-            self.multiProjectBrowser, self.terminal]
+            self.multiProjectBrowser, self.terminal, self.cooperation]
 
         if self.embeddedShell:
             self.shell = self.debugViewer.shell
@@ -773,6 +781,12 @@
         self.__setupDockWindow(self.debugViewerDock, Qt.RightDockWidgetArea,
                              self.debugViewer, self.trUtf8("Debug-Viewer"))
 
+        # Create the chat part of the user interface
+        self.cooperationDock = self.__createDockWindow("CooperationDock")
+        self.cooperation = ChatWidget(parent = self.cooperationDock)
+        self.__setupDockWindow(self.cooperationDock, Qt.RightDockWidgetArea,
+                             self.cooperation, self.trUtf8("Cooperation"))
+        
         # Create the log viewer part of the user interface
         self.logViewerDock = self.__createDockWindow("LogViewerDock")
         self.logViewer = LogViewer(self.logViewerDock)
@@ -800,7 +814,7 @@
         
         self.windows = [self.projectBrowserDock, None, self.debugViewerDock, 
             None, self.logViewerDock, self.taskViewerDock, self.templateViewerDock, 
-            self.multiProjectBrowserDock, self.terminalDock]
+            self.multiProjectBrowserDock, self.terminalDock, self.cooperationDock]
 
         if self.embeddedShell:
             self.shell = self.debugViewer.shell
@@ -871,6 +885,12 @@
         self.__setupDockWindow(self.debugViewerDock, Qt.RightDockWidgetArea,
                              self.debugViewer, self.trUtf8("Debug-Viewer"))
 
+        # Create the chat part of the user interface
+        self.cooperationDock = self.__createDockWindow("CooperationDock")
+        self.cooperation = ChatWidget(parent = self.cooperationDock)
+        self.__setupDockWindow(self.cooperationDock, Qt.RightDockWidgetArea,
+                             self.cooperation, self.trUtf8("Cooperation"))
+        
         # Create the terminal part of the user interface
         self.terminal = Terminal(self.viewmanager)
         self.hToolbox.addItem(self.terminal, 
@@ -889,8 +909,8 @@
                               UI.PixmapCache.getIcon("logViewer.png"), 
                               self.trUtf8("Log-Viewer"))
 
-        self.windows = [None, None, self.debugViewerDock, 
-            None, None, None, None, None]
+        self.windows = [None, None, self.debugViewerDock, None, None, 
+                        None, None, None, None, self.cooperationDock]
 
         if self.embeddedShell:
             self.shell = self.debugViewer.shell
@@ -959,6 +979,12 @@
         self.__setupDockWindow(self.debugViewerDock, Qt.RightDockWidgetArea,
                              self.debugViewer, self.trUtf8("Debug-Viewer"))
 
+        # Create the chat part of the user interface
+        self.cooperationDock = self.__createDockWindow("CooperationDock")
+        self.cooperation = ChatWidget(parent = self.cooperationDock)
+        self.__setupDockWindow(self.cooperationDock, Qt.RightDockWidgetArea,
+                             self.cooperation, self.trUtf8("Cooperation"))
+        
         # Create the terminal part of the user interface
         logging.debug("Creating Terminal...")
         self.terminal = Terminal(self.viewmanager)
@@ -980,7 +1006,8 @@
                               UI.PixmapCache.getIcon("logViewer.png"), 
                               self.trUtf8("Log-Viewer"))
 
-        self.windows = [None, None, self.debugViewerDock, None, None, None, None, None]
+        self.windows = [None, None, self.debugViewerDock, None, None, 
+                        None, None, None, None, self.cooperationDock]
 
         if self.embeddedShell:
             self.shell = self.debugViewer.shell
@@ -1536,6 +1563,30 @@
         self.connect(self.bsbAct, SIGNAL('triggered()'), self.__toggleBottomSidebar)
         self.actions.append(self.bsbAct)
         
+        self.cooperationViewerAct = E5Action(self.trUtf8('Cooperation'),
+                self.trUtf8('&Cooperation'), 0, 0, self, 'cooperation_viewer', True)
+        self.cooperationViewerAct.setStatusTip(self.trUtf8(
+            'Toggle the Cooperation window'))
+        self.cooperationViewerAct.setWhatsThis(self.trUtf8(
+            """<b>Toggle the Cooperation window</b>"""
+            """<p>If the Cooperation window is hidden then display it."""
+            """ If it is displayed then close it.</p>"""
+        ))
+        self.connect(self.cooperationViewerAct, SIGNAL('triggered()'), 
+                self.__toggleCooperationViewer)
+        self.actions.append(self.cooperationViewerAct)
+        
+        self.cooperationViewerActivateAct = E5Action(
+                self.trUtf8('Activate Cooperation-Viewer'),
+                self.trUtf8('Activate Cooperation-Viewer'),
+                QKeySequence(self.trUtf8("Alt+Shift+O")),
+                0, self,
+                'cooperation_viewer_activate', True)
+        self.connect(self.cooperationViewerActivateAct, SIGNAL('triggered()'), 
+                self.__activateCooperationViewer)
+        self.actions.append(self.cooperationViewerActivateAct)
+        self.addAction(self.cooperationViewerActivateAct)
+
         self.whatsThisAct = E5Action(self.trUtf8('What\'s This?'),
                 UI.PixmapCache.getIcon("whatsThis.png"),
                 self.trUtf8('&What\'s This?'), 
@@ -3036,6 +3087,8 @@
             self.vtAct.setChecked(not self.vToolboxDock.isHidden())
             self.__menus["window"].addAction(self.htAct)
             self.htAct.setChecked(not self.hToolboxDock.isHidden())
+            self.__menus["window"].addAction(self.cooperationViewerAct)
+            self.cooperationViewerAct.setChecked(not self.cooperationDock.isHidden())
             self.__menus["window"].addAction(self.debugViewerAct)
             self.debugViewerAct.setChecked(not self.debugViewerDock.isHidden())
         elif self.layout == "Sidebars":
@@ -3043,6 +3096,8 @@
             self.lsbAct.setChecked(not self.leftSidebar.isHidden())
             self.__menus["window"].addAction(self.bsbAct)
             self.bsbAct.setChecked(not self.bottomSidebar.isHidden())
+            self.__menus["window"].addAction(self.cooperationViewerAct)
+            self.cooperationViewerAct.setChecked(not self.cooperationDock.isHidden())
             self.__menus["window"].addAction(self.debugViewerAct)
             self.debugViewerAct.setChecked(not self.debugViewerDock.isHidden())
         else:
@@ -3103,6 +3158,12 @@
             else:
                 self.templateViewerAct.setChecked(not self.templateViewer.isHidden())
 
+            self.__menus["window"].addAction(self.cooperationViewerAct)
+            if self.layout == "DockWindows":
+                self.cooperationViewerAct.setChecked(not self.cooperationDock.isHidden())
+            else:
+                self.cooperationViewerAct.setChecked(not self.cooperation.isHidden())
+
         # Insert menu entry for toolbar settings
         self.__menus["window"].addSeparator()
         self.__menus["window"].addMenu(self.__menus["toolbars"])
@@ -3673,6 +3734,32 @@
             if hasFocus:
                 self.__activateViewmanager()
         
+    def __toggleCooperationViewer(self):
+        """
+        Private slot to handle the toggle of the cooperation window.
+        """
+        hasFocus = self.cooperation.hasFocus()
+        if self.layout in ["DockWindows", "Toolboxes", "Sidebars"]:
+            shown = self.__toggleWindow(self.cooperationDock)
+        else:
+            shown = self.__toggleWindow(self.cooperation)
+        if shown:
+            self.__activateCooperationViewer()
+        else:
+            if hasFocus:
+                self.__activateViewmanager()
+        
+    def __activateCooperationViewer(self):
+        """
+        Private slot to handle the activation of the cooperation window.
+        """
+        if self.layout in ["DockWindows", "Toolboxes", "Sidebars"]:
+            self.cooperationDock.show()
+            self.cooperationDock.raise_()
+        else:
+            self.cooperation.show()
+        self.cooperation.setFocus(Qt.ActiveWindowFocusReason)
+        
     def __activateViewmanager(self):
         """
         Private slot to handle the activation of the current editor.

eric ide

mercurial