--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Project/SpellingPropertiesDialog.py Mon Dec 28 16:03:33 2009 +0000 @@ -0,0 +1,113 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2008 - 2009 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing the Spelling Properties dialog. +""" + +import os + +from PyQt4.QtCore import * +from PyQt4.QtGui import * + +from E4Gui.E4Completers import E4FileCompleter + +from QScintilla.SpellChecker import SpellChecker + +from Ui_SpellingPropertiesDialog import Ui_SpellingPropertiesDialog + +import Utilities +import Preferences + +class SpellingPropertiesDialog(QDialog, Ui_SpellingPropertiesDialog): + """ + Class implementing the Spelling Properties dialog. + """ + def __init__(self, project, new, parent): + """ + Constructor + + @param project reference to the project object + @param new flag indicating the generation of a new project + @param parent parent widget of this dialog (QWidget) + """ + QDialog.__init__(self, parent) + self.setupUi(self) + + self.project = project + self.parent = parent + + self.pwlCompleter = E4FileCompleter(self.pwlEdit) + self.pelCompleter = E4FileCompleter(self.pelEdit) + + self.spellingComboBox.addItem(self.trUtf8("<default>")) + self.spellingComboBox.addItems(sorted(SpellChecker.getAvailableLanguages())) + + if not new: + self.initDialog() + + def initDialog(self): + """ + Public method to initialize the dialogs data. + """ + index = self.spellingComboBox.findText(self.project.pdata["SPELLLANGUAGE"][0]) + if index == -1: + index = 0 + self.spellingComboBox.setCurrentIndex(index) + if self.project.pdata["SPELLWORDS"][0]: + self.pwlEdit.setText( + os.path.join(self.project.ppath, self.project.pdata["SPELLWORDS"][0])) + if self.project.pdata["SPELLEXCLUDES"][0]: + self.pelEdit.setText( + os.path.join(self.project.ppath, self.project.pdata["SPELLEXCLUDES"][0])) + + @pyqtSlot() + def on_pwlButton_clicked(self): + """ + Private slot to select the project word list file. + """ + pwl = self.pwlEdit.text() + if not pwl: + pwl = self.project.ppath + file = QFileDialog.getOpenFileName(\ + self, + self.trUtf8("Select project word list"), + pwl, + self.trUtf8("Dictionary File (*.dic);;All Files (*)")) + + if file: + self.pwlEdit.setText(Utilities.toNativeSeparators(file)) + + @pyqtSlot() + def on_pelButton_clicked(self): + """ + Private slot to select the project exclude list file. + """ + pel = self.pelEdit.text() + if not pel: + pel = self.project.ppath + file = QFileDialog.getOpenFileName(\ + self, + self.trUtf8("Select project exclude list"), + pel, + self.trUtf8("Dictionary File (*.dic);;All Files (*)")) + + if file: + self.pelEdit.setText(Utilities.toNativeSeparators(file)) + + def storeData(self): + """ + Public method to store the entered/modified data. + """ + if self.spellingComboBox.currentIndex() == 0: + self.project.pdata["SPELLLANGUAGE"] = \ + [Preferences.getEditor("SpellCheckingDefaultLanguage")] + else: + self.project.pdata["SPELLLANGUAGE"] = \ + [self.spellingComboBox.currentText()] + self.project.pdata["SPELLWORDS"] = \ + [self.pwlEdit.text().replace(self.project.ppath + os.sep, "")] + self.project.pdata["SPELLEXCLUDES"] = \ + [self.pelEdit.text().replace(self.project.ppath + os.sep, "")]