Helpviewer/HelpTopicDialog.py

changeset 0
de9c2efb9d02
child 12
1d8dd9706f46
diff -r 000000000000 -r de9c2efb9d02 Helpviewer/HelpTopicDialog.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Helpviewer/HelpTopicDialog.py	Mon Dec 28 16:03:33 2009 +0000
@@ -0,0 +1,58 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2009 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a dialog to select a help topic to display.
+"""
+
+from PyQt4.QtGui import QDialog
+from PyQt4.QtCore import pyqtSlot, SIGNAL, QUrl
+
+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, keyword, links):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget (QWidget)
+        @param keyword keyword for the link set (string)
+        @param links dictionary with help topic as key (string) and
+            URL as value (QUrl)
+        """
+        QDialog.__init__(self, parent)
+        self.setupUi(self)
+        
+        self.label.setText(self.trUtf8("Choose a &topic for <b>{0}</b>:")\
+            .format(keyword))
+        
+        self.__links = links
+        for topic in self.__links:
+            self.topicsList.addItem(topic)
+        if self.topicsList.count() > 0:
+            self.topicsList.setCurrentRow(0)
+        self.topicsList.setFocus()
+        
+        self.connect(self.topicsList, SIGNAL("itemActivated(QListWidgetItem*)"), 
+                     self.accept)
+    
+    def link(self):
+        """
+        Public method to the link of the selected topic.
+        
+        @return URL of the selected topic (QUrl)
+        """
+        itm = self.topicsList.currentItem()
+        if itm is None:
+            return QUrl()
+        
+        topic = itm.text()
+        if topic == "" or topic not in self.__links:
+            return QUrl()
+        
+        return self.__links[topic]
\ No newline at end of file

eric ide

mercurial