Helpviewer/HelpWindow.py

changeset 668
b0061a6f7484
parent 653
0540f3c52b46
child 679
b427350a9d97
diff -r fdd568d3533d -r b0061a6f7484 Helpviewer/HelpWindow.py
--- a/Helpviewer/HelpWindow.py	Sun Oct 10 11:25:46 2010 +0200
+++ b/Helpviewer/HelpWindow.py	Sun Oct 10 21:12:43 2010 +0200
@@ -41,6 +41,7 @@
 from .OfflineStorage.OfflineStorageConfigDialog import OfflineStorageConfigDialog
 from .UserAgent.UserAgentMenu import UserAgentMenu
 from .HelpTabWidget import HelpTabWidget
+from .Download.DownloadManager import DownloadManager
 
 from E5Gui.E5Action import E5Action
 from E5Gui import E5MessageBox
@@ -79,6 +80,7 @@
     _historyManager = None
     _passwordManager = None
     _adblockManager = None
+    _downloadManager = None
     
     def __init__(self, home, path, parent, name, fromEric = False, 
                  initShortcutsOnly = False, searchWord = None):
@@ -1075,6 +1077,19 @@
             self.toolsMonitorAct.triggered[()].connect(self.__showNetworkMonitor)
         self.__actions.append(self.toolsMonitorAct)
         
+        self.showDownloadManagerAct = E5Action(self.trUtf8('Downloads'), 
+            self.trUtf8('Downloads'), 
+            0, 0, self, 'help_show_downloads')
+        self.showDownloadManagerAct.setStatusTip(self.trUtf8(
+                'Shows the downloads window'))
+        self.showDownloadManagerAct.setWhatsThis(self.trUtf8(
+                """<b>Downloads</b>"""
+                """<p>Shows the downloads window.</p>"""
+        ))
+        if not self.initShortcutsOnly:
+            self.showDownloadManagerAct.triggered[()].connect(self.__showDownloadsWindow)
+        self.__actions.append(self.showDownloadManagerAct)
+        
         self.backAct.setEnabled(False)
         self.forwardAct.setEnabled(False)
         
@@ -1203,6 +1218,8 @@
         
         menu = mb.addMenu(self.trUtf8("&Window"))
         menu.setTearOffEnabled(True)
+        menu.addAction(self.showDownloadManagerAct)
+        menu.addSeparator()
         menu.addAction(self.showTocAct)
         menu.addAction(self.showIndexAct)
         menu.addAction(self.showSearchAct)
@@ -1583,6 +1600,12 @@
             e.ignore()
             return
         
+        if not self.downloadManager().allowQuit():
+            e.ignore()
+            return
+        
+        self.downloadManager().shutdown()
+        
         self.__closeNetworkMonitor()
         
         self.cookieJar().close()
@@ -2188,14 +2211,18 @@
         """
         dlg = HelpClearPrivateDataDialog(self)
         if dlg.exec_() == QDialog.Accepted:
-            history, searches, favicons, cache, cookies, passwords, databases = \
+            # browsing history, search history, favicons, disk cache, cookies, 
+            # passwords, web databases, downloads
+            history, searches, favicons, cache, cookies, 
+            passwords, databases, downloads = \
                 dlg.getData()
-            # browsing history, search history, favicons, disk cache, cookies, 
-            # passwords, web databases
             if history:
                 self.historyManager().clear()
             if searches:
                 self.searchEdit.clear()
+            if downloads:
+                self.downloadManager().cleanup()
+                self.downloadManager().hide()
             if favicons:
                 self.__clearIconsDatabase()
             if cache:
@@ -2254,6 +2281,12 @@
         monitor = E5NetworkMonitor.instance(self.networkAccessManager())
         monitor.show()
         
+    def __showDownloadsWindow(self):
+        """
+        Private slot to show the downloads dialog.
+        """
+        self.downloadManager().show()
+        
     def __closeNetworkMonitor(self):
         """
         Private slot to close the network monitor dialog.
@@ -2375,6 +2408,18 @@
         
         return cls._adblockManager
     
+    @classmethod
+    def downloadManager(cls):
+        """
+        Class method to get a reference to the download manager.
+        
+        @return reference to the password manager (DownloadManager)
+        """
+        if cls._downloadManager is None:
+            cls._downloadManager = DownloadManager()
+        
+        return cls._downloadManager
+        
     def openSearchManager(self):
         """
         Public method to get a reference to the opensearch manager object.

eric ide

mercurial