UI/UserInterface.py

changeset 2227
b7aceb255831
parent 2214
4ce1ebcc3806
child 2228
5c59b9393306
diff -r 0139003972cd -r b7aceb255831 UI/UserInterface.py
--- a/UI/UserInterface.py	Wed Nov 14 18:58:51 2012 +0100
+++ b/UI/UserInterface.py	Sun Nov 25 18:40:15 2012 +0100
@@ -66,6 +66,8 @@
 
 from Cooperation.ChatWidget import ChatWidget
 
+from Network.IRC.IrcWidget import IrcWidget
+
 from .Browser import Browser
 from .Info import Version, BugAddress, Program, FeatureAddress
 from . import Config
@@ -490,6 +492,7 @@
         e5App().registerObject("ToolbarManager", self.toolbarManager)
         e5App().registerObject("Terminal", self.terminal)
         e5App().registerObject("Cooperation", self.cooperation)
+        e5App().registerObject("IRC", self.irc)
         e5App().registerObject("Symbols", self.symbolsViewer)
         e5App().registerObject("Numbers", self.numbersViewer)
         
@@ -676,6 +679,12 @@
                               UI.PixmapCache.getIcon("cooperation.png"),
                               self.trUtf8("Cooperation"))
         
+        # Create the IRC part of the user interface
+        self.irc = IrcWidget(self)
+        self.rToolbox.addItem(self.irc,
+                              UI.PixmapCache.getIcon("irc.png"),
+                              self.trUtf8("IRC"))
+        
         # Create the terminal part of the user interface
         self.terminalAssembly = TerminalAssembly(self.viewmanager)
         self.terminal = self.terminalAssembly.terminal()
@@ -783,6 +792,12 @@
         self.rightSidebar.addTab(self.cooperation,
             UI.PixmapCache.getIcon("cooperation.png"), self.trUtf8("Cooperation"))
         
+        # Create the IRC part of the user interface
+        logging.debug("Creating IRC Widget...")
+        self.irc = IrcWidget(self)
+        self.rightSidebar.addTab(self.irc,
+            UI.PixmapCache.getIcon("irc.png"), self.trUtf8("IRC"))
+        
         # Create the terminal part of the user interface
         logging.debug("Creating Terminal...")
         self.terminalAssembly = TerminalAssembly(self.viewmanager)
@@ -1414,6 +1429,23 @@
         self.actions.append(self.cooperationViewerActivateAct)
         self.addAction(self.cooperationViewerActivateAct)
 
+        self.ircActivateAct = E5Action(
+                self.trUtf8('IRC'),
+                self.trUtf8('&IRC'),
+                QKeySequence(self.trUtf8("Meta+Shift+I")),
+                0, self,
+                'irc_widget_activate')
+        self.ircActivateAct.setStatusTip(self.trUtf8(
+            "Switch the input focus to the IRC window."))
+        self.ircActivateAct.setWhatsThis(self.trUtf8(
+            """<b>Activate IRC</b>"""
+            """<p>This switches the input focus to the IRC window.</p>"""
+        ))
+        self.ircActivateAct.triggered[()].connect(
+            self.__activateIRC)
+        self.actions.append(self.ircActivateAct)
+        self.addAction(self.ircActivateAct)
+
         self.symbolsViewerActivateAct = E5Action(
                 self.trUtf8('Symbols-Viewer'),
                 self.trUtf8('S&ymbols-Viewer'),
@@ -2154,18 +2186,22 @@
         
         self.__menus["subwindow"] = QMenu(self.trUtf8("&Windows"), self.__menus["window"])
         self.__menus["subwindow"].setTearOffEnabled(True)
+        # left side
         self.__menus["subwindow"].addAction(self.pbActivateAct)
         self.__menus["subwindow"].addAction(self.mpbActivateAct)
+        self.__menus["subwindow"].addAction(self.templateViewerActivateAct)
         self.__menus["subwindow"].addAction(self.browserActivateAct)
-        self.__menus["subwindow"].addAction(self.debugViewerActivateAct)
+        self.__menus["subwindow"].addAction(self.symbolsViewerActivateAct)
+        # bottom side
         self.__menus["subwindow"].addAction(self.shellActivateAct)
         self.__menus["subwindow"].addAction(self.terminalActivateAct)
+        self.__menus["subwindow"].addAction(self.taskViewerActivateAct)
         self.__menus["subwindow"].addAction(self.logViewerActivateAct)
-        self.__menus["subwindow"].addAction(self.taskViewerActivateAct)
-        self.__menus["subwindow"].addAction(self.templateViewerActivateAct)
+        self.__menus["subwindow"].addAction(self.numbersViewerActivateAct)
+        # right side
+        self.__menus["subwindow"].addAction(self.debugViewerActivateAct)
         self.__menus["subwindow"].addAction(self.cooperationViewerActivateAct)
-        self.__menus["subwindow"].addAction(self.symbolsViewerActivateAct)
-        self.__menus["subwindow"].addAction(self.numbersViewerActivateAct)
+        self.__menus["subwindow"].addAction(self.ircActivateAct)
         
         self.__menus["toolbars"] = \
             QMenu(self.trUtf8("&Toolbars"), self.__menus["window"])
@@ -3504,6 +3540,20 @@
             self.cooperation.show()
         self.cooperation.setFocus(Qt.ActiveWindowFocusReason)
         
+    def __activateIRC(self):
+        """
+        Public slot to handle the activation of the IRC window.
+        """
+        if self.layout == "Toolboxes":
+            self.rToolboxDock.show()
+            self.rToolbox.setCurrentWidget(self.irc)
+        elif self.layout == "Sidebars":
+            self.rightSidebar.show()
+            self.rightSidebar.setCurrentWidget(self.irc)
+        else:
+            self.irc.show()
+        self.irc.setFocus(Qt.ActiveWindowFocusReason)
+        
     def __activateSymbolsViewer(self):
         """
         Private slot to handle the activation of the Symbols Viewer.
@@ -5132,6 +5182,9 @@
         if not self.viewmanager.closeViewManager():
             return False
         
+        if not self.irc.shutdown():
+            return False
+        
         self.shell.closeShell()
         self.terminal.closeTerminal()
         

eric ide

mercurial