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 |