eric7/HelpViewer/HelpViewerWidget.py

branch
eric7
changeset 8900
9c153ce17d74
parent 8895
d66181594630
child 8902
ba9b8c6e4928
equal deleted inserted replaced
8899:764178f2124d 8900:9c153ce17d74
31 import UI.PixmapCache 31 import UI.PixmapCache
32 import Utilities 32 import Utilities
33 import Preferences 33 import Preferences
34 34
35 from .OpenPagesWidget import OpenPagesWidget 35 from .OpenPagesWidget import OpenPagesWidget
36 from .HelpBookmarksWidget import HelpBookmarksWidget
36 37
37 from WebBrowser.QtHelp.HelpTocWidget import HelpTocWidget 38 from WebBrowser.QtHelp.HelpTocWidget import HelpTocWidget
38 from WebBrowser.QtHelp.HelpIndexWidget import HelpIndexWidget 39 from WebBrowser.QtHelp.HelpIndexWidget import HelpIndexWidget
39 from WebBrowser.QtHelp.HelpSearchWidget import HelpSearchWidget 40 from WebBrowser.QtHelp.HelpSearchWidget import HelpSearchWidget
40 41
41 42
42 # TODO: add support for bookmarks
43 class HelpViewerWidget(QWidget): 43 class HelpViewerWidget(QWidget):
44 """ 44 """
45 Class implementing an embedded viewer for QtHelp and local HTML files. 45 Class implementing an embedded viewer for QtHelp and local HTML files.
46 """ 46 """
47 MaxHistoryItems = 20 # max. number of history items to be shown 47 MaxHistoryItems = 20 # max. number of history items to be shown
258 "tableOfContents", self.tr("Show the table of contents")) 258 "tableOfContents", self.tr("Show the table of contents"))
259 self.__helpIndexButton = self.__addNavigationButton( 259 self.__helpIndexButton = self.__addNavigationButton(
260 "helpIndex", self.tr("Show the help document index")) 260 "helpIndex", self.tr("Show the help document index"))
261 self.__helpSearchButton = self.__addNavigationButton( 261 self.__helpSearchButton = self.__addNavigationButton(
262 "documentFind", self.tr("Show the help search window")) 262 "documentFind", self.tr("Show the help search window"))
263 self.__openPagesButton.setChecked(True) 263 self.__bookmarksButton = self.__addNavigationButton(
264 "bookmark22", self.tr("Show list of bookmarks"))
265 # self.__openPagesButton.setChecked(True)
264 266
265 self.__buttonLayout.addStretch() 267 self.__buttonLayout.addStretch()
266 268
267 self.__helpFilterWidget = self.__initFilterWidget() 269 self.__helpFilterWidget = self.__initFilterWidget()
268 self.__buttonLayout.addWidget(self.__helpFilterWidget) 270 self.__buttonLayout.addWidget(self.__helpFilterWidget)
318 """ 320 """
319 Private method to populate the stack of navigation widgets. 321 Private method to populate the stack of navigation widgets.
320 """ 322 """
321 # Open Pages 323 # Open Pages
322 self.__openPagesList = OpenPagesWidget(self.__helpStack, self) 324 self.__openPagesList = OpenPagesWidget(self.__helpStack, self)
323 self.__openPagesList.currentPageChanged.connect(self.__currentPageChanged) 325 self.__openPagesList.currentPageChanged.connect(
326 self.__currentPageChanged)
324 self.__helpNavigationStack.addWidget(self.__openPagesList) 327 self.__helpNavigationStack.addWidget(self.__openPagesList)
325 328
326 # QtHelp TOC widget 329 # QtHelp TOC widget
327 self.__helpTocWidget = HelpTocWidget( 330 self.__helpTocWidget = HelpTocWidget(
328 self.__helpEngine, internal=True) 331 self.__helpEngine, internal=True)
360 self.__helpSearchWidget.openUrl.connect(self.openUrl) 363 self.__helpSearchWidget.openUrl.connect(self.openUrl)
361 self.__helpSearchWidget.newTab.connect(self.openUrlNewPage) 364 self.__helpSearchWidget.newTab.connect(self.openUrlNewPage)
362 self.__helpSearchWidget.newBackgroundTab.connect( 365 self.__helpSearchWidget.newBackgroundTab.connect(
363 self.openUrlNewBackgroundPage) 366 self.openUrlNewBackgroundPage)
364 self.__helpNavigationStack.addWidget(self.__helpSearchWidget) 367 self.__helpNavigationStack.addWidget(self.__helpSearchWidget)
368
369 # Bookmarks widget
370 self.__bookmarksList = HelpBookmarksWidget(self)
371 self.__bookmarksList.escapePressed.connect(self.__activateCurrentPage)
372 self.__bookmarksList.openUrl.connect(self.openUrl)
373 self.__bookmarksList.newTab.connect(self.openUrlNewPage)
374 self.__bookmarksList.newBackgroundTab.connect(
375 self.openUrlNewBackgroundPage)
376 self.__helpNavigationStack.addWidget(self.__bookmarksList)
365 377
366 @pyqtSlot(QAbstractButton) 378 @pyqtSlot(QAbstractButton)
367 def __selectNavigationWidget(self, button): 379 def __selectNavigationWidget(self, button):
368 """ 380 """
369 Private slot to select the navigation widget. 381 Private slot to select the navigation widget.
381 self.__helpNavigationStack.setCurrentWidget( 393 self.__helpNavigationStack.setCurrentWidget(
382 self.__helpIndexWidget) 394 self.__helpIndexWidget)
383 elif button == self.__helpSearchButton: 395 elif button == self.__helpSearchButton:
384 self.__helpNavigationStack.setCurrentWidget( 396 self.__helpNavigationStack.setCurrentWidget(
385 self.__helpSearchWidget) 397 self.__helpSearchWidget)
398 elif button == self.__bookmarksButton:
399 self.__helpNavigationStack.setCurrentWidget(
400 self.__bookmarksList)
386 401
387 def __populateHelpSelector(self): 402 def __populateHelpSelector(self):
388 """ 403 """
389 Private method to populate the help selection combo box. 404 Private method to populate the help selection combo box.
390 """ 405 """
592 607
593 @return reference to the active help viewer 608 @return reference to the active help viewer
594 @rtype HelpViewerImpl 609 @rtype HelpViewerImpl
595 """ 610 """
596 return self.__helpStack.currentWidget() 611 return self.__helpStack.currentWidget()
612
613 def bookmarkPage(self, title, url):
614 """
615 Public method to bookmark a page with the given data.
616
617 @param title title of the page
618 @type str
619 @param url URL of the page
620 @type QUrl
621 """
622 self.__bookmarksList.addBookmark(title, url)
597 623
598 ####################################################################### 624 #######################################################################
599 ## QtHelp related code below 625 ## QtHelp related code below
600 ####################################################################### 626 #######################################################################
601 627

eric ide

mercurial