--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Preferences/ConfigurationPages/QtPage.py Mon Dec 28 16:03:33 2009 +0000 @@ -0,0 +1,118 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2006 - 2009 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing the Qt configuration page. +""" + +import sys + +from PyQt4.QtCore import QDir, pyqtSlot +from PyQt4.QtGui import QFileDialog + +from E4Gui.E4Completers import E4DirCompleter + +from ConfigurationPageBase import ConfigurationPageBase +from Ui_QtPage import Ui_QtPage + +import Preferences +import Utilities + +class QtPage(ConfigurationPageBase, Ui_QtPage): + """ + Class implementing the Qt configuration page. + """ + def __init__(self): + """ + Constructor + """ + ConfigurationPageBase.__init__(self) + self.setupUi(self) + self.setObjectName("QtPage") + + self.qt4Completer = E4DirCompleter(self.qt4Edit) + self.qt4TransCompleter = E4DirCompleter(self.qt4TransEdit) + + if sys.platform != "darwin": + self.qt4Group.hide() + + # set initial values + self.qt4Edit.setText(Preferences.getQt("Qt4Dir")) + self.qt4TransEdit.setText(Preferences.getQt("Qt4TranslationsDir")) + self.qt4PrefixEdit.setText(Preferences.getQt("QtToolsPrefix4")) + self.qt4PostfixEdit.setText(Preferences.getQt("QtToolsPostfix4")) + self.__updateQt4Sample() + + def save(self): + """ + Public slot to save the Qt configuration. + """ + Preferences.setQt("Qt4Dir", self.qt4Edit.text()) + Preferences.setQt("Qt4TranslationsDir", self.qt4TransEdit.text()) + Preferences.setQt("QtToolsPrefix4", self.qt4PrefixEdit.text()) + Preferences.setQt("QtToolsPostfix4", self.qt4PostfixEdit.text()) + + @pyqtSlot() + def on_qt4Button_clicked(self): + """ + Private slot to handle the Qt4 directory selection. + """ + dir = QFileDialog.getExistingDirectory(\ + self, + self.trUtf8("Select Qt4 Directory"), + self.qt4Edit.text(), + QFileDialog.Options(QFileDialog.ShowDirsOnly)) + + if dir: + self.qt4Edit.setText(Utilities.toNativeSeparators(dir)) + + @pyqtSlot() + def on_qt4TransButton_clicked(self): + """ + Private slot to handle the Qt4 translations directory selection. + """ + dir = QFileDialog.getExistingDirectory(\ + self, + self.trUtf8("Select Qt4 Translations Directory"), + self.qt4TransEdit.text(), + QFileDialog.Options(QFileDialog.ShowDirsOnly)) + + if dir: + self.qt4TransEdit.setText(Utilities.toNativeSeparators(dir)) + + def __updateQt4Sample(self): + """ + Private slot to update the Qt4 tools sample label. + """ + self.qt4SampleLabel.setText("Sample: {0}designer{1}"\ + .format(self.qt4PrefixEdit.text(), + self.qt4PostfixEdit.text())) + + @pyqtSlot(str) + def on_qt4PrefixEdit_textChanged(self, txt): + """ + Private slot to handle a change in the entered Qt directory. + + @param txt the entered string (string) + """ + self.__updateQt4Sample() + + @pyqtSlot(str) + def on_qt4PostfixEdit_textChanged(self, txt): + """ + Private slot to handle a change in the entered Qt directory. + + @param txt the entered string (string) + """ + self.__updateQt4Sample() + +def create(dlg): + """ + Module function to create the configuration page. + + @param dlg reference to the configuration dialog + """ + page = QtPage() + return page