6 """ |
6 """ |
7 Module implementing a window for showing the QtHelp TOC. |
7 Module implementing a window for showing the QtHelp TOC. |
8 """ |
8 """ |
9 |
9 |
10 from PyQt6.QtCore import pyqtSignal, pyqtSlot, Qt, QUrl |
10 from PyQt6.QtCore import pyqtSignal, pyqtSlot, Qt, QUrl |
|
11 from PyQt6.QtGui import QGuiApplication, QClipboard |
11 from PyQt6.QtWidgets import QWidget, QVBoxLayout, QMenu, QApplication |
12 from PyQt6.QtWidgets import QWidget, QVBoxLayout, QMenu, QApplication |
12 |
13 |
13 |
14 |
14 class HelpTocWidget(QWidget): |
15 class HelpTocWidget(QWidget): |
15 """ |
16 """ |
181 else: |
182 else: |
182 newTab = menu.addAction(self.tr("Open Link in New Tab")) |
183 newTab = menu.addAction(self.tr("Open Link in New Tab")) |
183 newBackgroundTab = menu.addAction( |
184 newBackgroundTab = menu.addAction( |
184 self.tr("Open Link in Background Tab")) |
185 self.tr("Open Link in Background Tab")) |
185 newWindow = menu.addAction(self.tr("Open Link in New Window")) |
186 newWindow = menu.addAction(self.tr("Open Link in New Window")) |
186 # TODO: add link to copy the URL |
187 menu.addSeparator() |
|
188 copyLink = menu.addAction(self.tr("Copy URL to Clipboard")) |
187 menu.move(self.__tocWidget.mapToGlobal(pos)) |
189 menu.move(self.__tocWidget.mapToGlobal(pos)) |
188 |
190 |
189 act = menu.exec() |
191 act = menu.exec() |
190 if act == curTab: |
192 if act == curTab: |
191 self.openUrl.emit(link) |
193 self.openUrl.emit(link) |
193 self.newTab.emit(link) |
195 self.newTab.emit(link) |
194 elif act == newBackgroundTab: |
196 elif act == newBackgroundTab: |
195 self.newBackgroundTab.emit(link) |
197 self.newBackgroundTab.emit(link) |
196 elif not self.__internal and act == newWindow: |
198 elif not self.__internal and act == newWindow: |
197 self.newWindow.emit(link) |
199 self.newWindow.emit(link) |
|
200 elif act == copyLink: |
|
201 # copy the URL to both clipboard areas |
|
202 QGuiApplication.clipboard().setText( |
|
203 link.toString(), QClipboard.Mode.Clipboard) |
|
204 QGuiApplication.clipboard().setText( |
|
205 link.toString(), QClipboard.Mode.Selection) |