--- 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