5 |
5 |
6 """ |
6 """ |
7 Module implementing the help viewer base class. |
7 Module implementing the help viewer base class. |
8 """ |
8 """ |
9 |
9 |
|
10 import contextlib |
10 import functools |
11 import functools |
11 |
12 |
12 from PyQt6.QtCore import pyqtSlot, Qt, QEvent, QTimer, QUrl, QPoint |
13 from PyQt6.QtCore import pyqtSlot, Qt, QEvent, QTimer, QUrl, QPoint |
13 from PyQt6.QtGui import QGuiApplication, QClipboard, QContextMenuEvent |
14 from PyQt6.QtGui import QGuiApplication, QClipboard, QContextMenuEvent |
14 from PyQt6.QtWidgets import QMenu |
15 from PyQt6.QtWidgets import QMenu |
610 self.tr("Copy Page URL to Clipboard")) |
611 self.tr("Copy Page URL to Clipboard")) |
611 act.setData(self.link()) |
612 act.setData(self.link()) |
612 act.triggered.connect( |
613 act.triggered.connect( |
613 functools.partial(self.__copyLink, act)) |
614 functools.partial(self.__copyLink, act)) |
614 |
615 |
|
616 act = menu.addAction( |
|
617 UI.PixmapCache.getIcon("bookmark22"), |
|
618 self.tr("Bookmark Page")) |
|
619 act.setData({ |
|
620 "title": self.pageTitle(), |
|
621 "url": self.link() |
|
622 }) |
|
623 act.triggered.connect( |
|
624 functools.partial(self.__bookmarkPage, act)) |
|
625 |
615 menu.addSeparator() |
626 menu.addSeparator() |
616 |
627 |
617 act = menu.addAction( |
628 act = menu.addAction( |
618 UI.PixmapCache.getIcon("zoomIn"), |
629 UI.PixmapCache.getIcon("zoomIn"), |
619 self.tr("Zoom in"), |
630 self.tr("Zoom in"), |
717 if url.isEmpty(): |
728 if url.isEmpty(): |
718 return |
729 return |
719 |
730 |
720 self.__helpViewerWidget.openUrlNewBackgroundPage(url) |
731 self.__helpViewerWidget.openUrlNewBackgroundPage(url) |
721 |
732 |
|
733 def __bookmarkPage(self, act): |
|
734 """ |
|
735 Private method called by the context menu to bookmark the page. |
|
736 |
|
737 @param act reference to the action that triggered |
|
738 @type QAction |
|
739 """ |
|
740 data = act.data() |
|
741 if data: |
|
742 with contextlib.suppress(KeyError): |
|
743 url = data["url"] |
|
744 title = data["title"] |
|
745 |
|
746 self.__helpViewerWidget.bookmarkPage(title, url) |
|
747 |
722 def __copyLink(self, act): |
748 def __copyLink(self, act): |
723 """ |
749 """ |
724 Private method called by the context menu to copy a link to the |
750 Private method called by the context menu to copy a link to the |
725 clipboard. |
751 clipboard. |
726 |
752 |