eric7/HelpViewer/HelpViewerWidget.py

branch
eric7-maintenance
changeset 8941
e1f6a9e53979
parent 8902
ba9b8c6e4928
child 9172
4bac907a4c74
equal deleted inserted replaced
8897:a906ba97c1fe 8941:e1f6a9e53979
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"))
264 265
265 self.__buttonLayout.addStretch() 266 self.__buttonLayout.addStretch()
266 267
267 self.__helpFilterWidget = self.__initFilterWidget() 268 self.__helpFilterWidget = self.__initFilterWidget()
268 self.__buttonLayout.addWidget(self.__helpFilterWidget) 269 self.__buttonLayout.addWidget(self.__helpFilterWidget)
318 """ 319 """
319 Private method to populate the stack of navigation widgets. 320 Private method to populate the stack of navigation widgets.
320 """ 321 """
321 # Open Pages 322 # Open Pages
322 self.__openPagesList = OpenPagesWidget(self.__helpStack, self) 323 self.__openPagesList = OpenPagesWidget(self.__helpStack, self)
323 self.__openPagesList.currentChanged.connect(self.__currentPageChanged) 324 self.__openPagesList.currentPageChanged.connect(
325 self.__currentPageChanged)
324 self.__helpNavigationStack.addWidget(self.__openPagesList) 326 self.__helpNavigationStack.addWidget(self.__openPagesList)
325 327
326 # QtHelp TOC widget 328 # QtHelp TOC widget
327 self.__helpTocWidget = HelpTocWidget( 329 self.__helpTocWidget = HelpTocWidget(
328 self.__helpEngine, internal=True) 330 self.__helpEngine, internal=True)
360 self.__helpSearchWidget.openUrl.connect(self.openUrl) 362 self.__helpSearchWidget.openUrl.connect(self.openUrl)
361 self.__helpSearchWidget.newTab.connect(self.openUrlNewPage) 363 self.__helpSearchWidget.newTab.connect(self.openUrlNewPage)
362 self.__helpSearchWidget.newBackgroundTab.connect( 364 self.__helpSearchWidget.newBackgroundTab.connect(
363 self.openUrlNewBackgroundPage) 365 self.openUrlNewBackgroundPage)
364 self.__helpNavigationStack.addWidget(self.__helpSearchWidget) 366 self.__helpNavigationStack.addWidget(self.__helpSearchWidget)
367
368 # Bookmarks widget
369 self.__bookmarksList = HelpBookmarksWidget(self)
370 self.__bookmarksList.escapePressed.connect(self.__activateCurrentPage)
371 self.__bookmarksList.openUrl.connect(self.openUrl)
372 self.__bookmarksList.newTab.connect(self.openUrlNewPage)
373 self.__bookmarksList.newBackgroundTab.connect(
374 self.openUrlNewBackgroundPage)
375 self.__helpNavigationStack.addWidget(self.__bookmarksList)
365 376
366 @pyqtSlot(QAbstractButton) 377 @pyqtSlot(QAbstractButton)
367 def __selectNavigationWidget(self, button): 378 def __selectNavigationWidget(self, button):
368 """ 379 """
369 Private slot to select the navigation widget. 380 Private slot to select the navigation widget.
381 self.__helpNavigationStack.setCurrentWidget( 392 self.__helpNavigationStack.setCurrentWidget(
382 self.__helpIndexWidget) 393 self.__helpIndexWidget)
383 elif button == self.__helpSearchButton: 394 elif button == self.__helpSearchButton:
384 self.__helpNavigationStack.setCurrentWidget( 395 self.__helpNavigationStack.setCurrentWidget(
385 self.__helpSearchWidget) 396 self.__helpSearchWidget)
397 elif button == self.__bookmarksButton:
398 self.__helpNavigationStack.setCurrentWidget(
399 self.__bookmarksList)
386 400
387 def __populateHelpSelector(self): 401 def __populateHelpSelector(self):
388 """ 402 """
389 Private method to populate the help selection combo box. 403 Private method to populate the help selection combo box.
390 """ 404 """
592 606
593 @return reference to the active help viewer 607 @return reference to the active help viewer
594 @rtype HelpViewerImpl 608 @rtype HelpViewerImpl
595 """ 609 """
596 return self.__helpStack.currentWidget() 610 return self.__helpStack.currentWidget()
611
612 def bookmarkPage(self, title, url):
613 """
614 Public method to bookmark a page with the given data.
615
616 @param title title of the page
617 @type str
618 @param url URL of the page
619 @type QUrl
620 """
621 self.__bookmarksList.addBookmark(title, url)
597 622
598 ####################################################################### 623 #######################################################################
599 ## QtHelp related code below 624 ## QtHelp related code below
600 ####################################################################### 625 #######################################################################
601 626

eric ide

mercurial