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