Wed, 02 Jan 2013 10:31:48 +0100
Updated copyright for 2013.
# -*- coding: utf-8 -*- # Copyright (c) 2008 - 2013 Detlev Offenbach <detlev@die-offenbachs.de> # """ Module implementing the Spelling Properties dialog. """ import os from PyQt4.QtCore import pyqtSlot from PyQt4.QtGui import QDialog from E5Gui.E5Completers import E5FileCompleter from E5Gui import E5FileDialog 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) """ super().__init__(parent) self.setupUi(self) self.project = project self.parent = parent self.pwlCompleter = E5FileCompleter(self.pwlEdit) self.pelCompleter = E5FileCompleter(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( Utilities.toNativeSeparators(self.project.pdata["SPELLWORDS"][0])) if self.project.pdata["SPELLEXCLUDES"][0]: self.pelEdit.setText( Utilities.toNativeSeparators(self.project.pdata["SPELLEXCLUDES"][0])) @pyqtSlot() def on_pwlButton_clicked(self): """ Private slot to select the project word list file. """ pwl = Utilities.fromNativeSeparators(self.pwlEdit.text()) if not pwl: pwl = self.project.ppath elif not os.path.isabs(pwl): pwl = Utilities.fromNativeSeparators(os.path.join(self.project.ppath, pwl)) file = E5FileDialog.getOpenFileName( self, self.trUtf8("Select project word list"), pwl, self.trUtf8("Dictionary File (*.dic);;All Files (*)")) if file: self.pwlEdit.setText(self.project.getRelativePath( Utilities.toNativeSeparators(file))) @pyqtSlot() def on_pelButton_clicked(self): """ Private slot to select the project exclude list file. """ pel = Utilities.fromNativeSeparators(self.pelEdit.text()) if not pel: pel = self.project.ppath elif not os.path.isabs(pel): pel = Utilities.fromNativeSeparators(os.path.join(self.project.ppath, pel)) file = E5FileDialog.getOpenFileName( self, self.trUtf8("Select project exclude list"), pel, self.trUtf8("Dictionary File (*.dic);;All Files (*)")) if file: self.pelEdit.setText(self.project.getRelativePath( 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.project.getRelativePath(self.pwlEdit.text())] self.project.pdata["SPELLEXCLUDES"] = \ [self.project.getRelativePath(self.pelEdit.text())]