src/eric7/WebBrowser/QtHelp/HelpTopicDialog.py

branch
eric7
changeset 9209
b99e7fd55fd3
parent 8881
54e42bc2437a
child 9221
bf71ee032bb4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/eric7/WebBrowser/QtHelp/HelpTopicDialog.py	Thu Jul 07 11:23:56 2022 +0200
@@ -0,0 +1,61 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2009 - 2022 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a dialog to select a help topic to display.
+"""
+
+from PyQt6.QtCore import Qt
+from PyQt6.QtHelp import QHelpLink
+from PyQt6.QtWidgets import QDialog, QListWidgetItem
+
+from .Ui_HelpTopicDialog import Ui_HelpTopicDialog
+
+
+class HelpTopicDialog(QDialog, Ui_HelpTopicDialog):
+    """
+    Class implementing a dialog to select a help topic to display.
+    """
+    def __init__(self, parent, helpKeyword, documents):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget
+        @type QWidget
+        @param helpKeyword keyword for the link set
+        @type str
+        @param documents list of help document link data structures
+        @type list of QHelpLink
+        """
+        super().__init__(parent)
+        self.setupUi(self)
+        
+        self.label.setText(self.tr("Choose a &topic for <b>{0}</b>:")
+                           .format(helpKeyword))
+        
+        for document in documents:
+            itm = QListWidgetItem(document.title, self.topicsList)
+            itm.setData(Qt.ItemDataRole.UserRole, document.url)
+        if self.topicsList.count() > 0:
+            self.topicsList.setCurrentRow(0)
+        self.topicsList.setFocus()
+        
+        self.topicsList.itemActivated.connect(self.accept)
+    
+    def document(self):
+        """
+        Public method to retrieve the selected help topic.
+        
+        @return help document link for the selected help topic
+        @rtype QHelpLink
+        """
+        document = QHelpLink()
+        
+        itm = self.topicsList.currentItem()
+        if itm is not None:
+            document.title = itm.text()
+            document.url = itm.data(Qt.ItemDataRole.UserRole)
+        
+        return document

eric ide

mercurial