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 |