Helpviewer/HelpWindow.py

branch
Py2 comp.
changeset 2847
1843ef6e2656
parent 2791
a9577f248f04
parent 2831
05fcdce02b94
child 3057
10516539f238
--- a/Helpviewer/HelpWindow.py	Mon Aug 12 19:41:53 2013 +0200
+++ b/Helpviewer/HelpWindow.py	Mon Aug 12 22:21:53 2013 +0200
@@ -136,6 +136,7 @@
                 self.__helpEngine = \
                     QHelpEngine(os.path.join(Utilities.getConfigDir(),
                                              "browser", "eric5help.qhc"), self)
+                self.__removeOldDocumentation()
                 self.__helpEngine.warning.connect(self.__warning)
             else:
                 self.__helpEngine = None
@@ -459,7 +460,7 @@
         self.__actions.append(self.saveAsAct)
         
         self.savePageScreenAct = E5Action(self.trUtf8('Save Page Screen'),
-            UI.PixmapCache.getIcon("filePixmap.png"),
+            UI.PixmapCache.getIcon("fileSavePixmap.png"),
             self.trUtf8('Save Page Screen...'),
             0, 0, self, 'help_file_save_page_screen')
         self.savePageScreenAct.setStatusTip(
@@ -472,6 +473,21 @@
             self.savePageScreenAct.triggered[()].connect(self.__savePageScreen)
         self.__actions.append(self.savePageScreenAct)
         
+        self.saveVisiblePageScreenAct = E5Action(self.trUtf8('Save Visible Page Screen'),
+            UI.PixmapCache.getIcon("fileSaveVisiblePixmap.png"),
+            self.trUtf8('Save Visible Page Screen...'),
+            0, 0, self, 'help_file_save_visible_page_screen')
+        self.saveVisiblePageScreenAct.setStatusTip(
+            self.trUtf8('Save the visible part of the current page as a screen shot'))
+        self.saveVisiblePageScreenAct.setWhatsThis(self.trUtf8(
+                """<b>Save Visible Page Screen...</b>"""
+                """<p>Saves the visible part of the current page as a screen shot.</p>"""
+        ))
+        if not self.initShortcutsOnly:
+            self.saveVisiblePageScreenAct.triggered[()].connect(
+                self.__saveVisiblePageScreen)
+        self.__actions.append(self.saveVisiblePageScreenAct)
+        
         bookmarksManager = self.bookmarksManager()
         self.importBookmarksAct = E5Action(self.trUtf8('Import Bookmarks'),
             self.trUtf8('&Import Bookmarks...'),
@@ -1362,6 +1378,7 @@
         menu.addSeparator()
         menu.addAction(self.saveAsAct)
         menu.addAction(self.savePageScreenAct)
+        menu.addAction(self.saveVisiblePageScreenAct)
         menu.addSeparator()
         menu.addAction(self.printPreviewAct)
         menu.addAction(self.printAct)
@@ -1523,6 +1540,13 @@
         filetb.addAction(self.closeAct)
         filetb.addAction(self.exitAct)
         
+        self.savePageScreenMenu = QMenu(self)
+        self.savePageScreenMenu.addAction(self.savePageScreenAct)
+        self.savePageScreenMenu.addAction(self.saveVisiblePageScreenAct)
+        savePageScreenButton = filetb.widgetForAction(self.savePageScreenAct)
+        savePageScreenButton.setMenu(self.savePageScreenMenu)
+        savePageScreenButton.setPopupMode(QToolButton.MenuButtonPopup)
+        
         edittb = self.addToolBar(self.trUtf8("Edit"))
         edittb.setObjectName("EditToolBar")
         edittb.setIconSize(UI.Config.ToolBarIconSize)
@@ -1841,14 +1865,24 @@
         if browser is not None:
             browser.saveAs()
         
-    def __savePageScreen(self):
+    def __savePageScreen(self, visibleOnly=False):
         """
         Private slot to save the current page as a screen shot.
+        
+        @param visibleOnly flag indicating to just save the visible part
+            of the page (boolean)
         """
         from .PageScreenDialog import PageScreenDialog
-        self.__pageScreen = PageScreenDialog(self.currentBrowser())
+        self.__pageScreen = PageScreenDialog(
+            self.currentBrowser(), visibleOnly=visibleOnly)
         self.__pageScreen.show()
         
+    def __saveVisiblePageScreen(self):
+        """
+        Private slot to save the visible part of the current page as a screen shot.
+        """
+        self.__savePageScreen(visibleOnly=True)
+        
     def __about(self):
         """
         Private slot to show the about information.
@@ -2051,7 +2085,8 @@
             Preferences.setGeometry("HelpViewerGeometry", QByteArray())
         
         try:
-            del self.__class__.helpwindows[self.__class__.helpwindows.index(self)]
+            if self.fromEric or len(self.__class__.helpwindows) > 1:
+                del self.__class__.helpwindows[self.__class__.helpwindows.index(self)]
         except ValueError:
             pass
         
@@ -2554,7 +2589,7 @@
             if self.__indexingProgress is None:
                 self.__indexingProgress = QWidget()
                 layout = QHBoxLayout(self.__indexingProgress)
-                layout.setMargin(0)
+                layout.setContentsMargins(0, 0, 0, 0)
                 sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Maximum)
                 
                 label = QLabel(self.trUtf8("Updating search index"))
@@ -2602,6 +2637,15 @@
                 self.__searchWord = word
                 self.__searchForWord()
         
+    def __removeOldDocumentation(self):
+        """
+        Private slot to remove non-existing documentation from the help engine.
+        """
+        for namespace in self.__helpEngine.registeredDocumentations():
+            docFile = self.__helpEngine.documentationFileName(namespace)
+            if not os.path.exists(docFile):
+                self.__helpEngine.unregisterDocumentation(namespace)
+        
     def __lookForNewDocumentation(self):
         """
         Private slot to look for new documentation to be loaded into the

eric ide

mercurial