--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PrintRemover/ConfigurationPage/PrintRemoverPage.py Wed Dec 18 08:50:31 2013 +0100 @@ -0,0 +1,90 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2013 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing the Print Remover configuration page. +""" + +from __future__ import unicode_literals # __IGNORE_WARNING__ + +from PyQt4.QtCore import pyqtSlot, Qt +from PyQt4.QtGui import QListWidgetItem + +from Preferences.ConfigurationPages.ConfigurationPageBase import \ + ConfigurationPageBase +from .Ui_PrintRemoverPage import Ui_PrintRemoverPage + + +class PrintRemoverPage(ConfigurationPageBase, Ui_PrintRemoverPage): + """ + Class implementing the Print Remover configuration page. + """ + def __init__(self, plugin): + """ + Constructor + + @param plugin reference to the plugin object + """ + super(PrintRemoverPage, self).__init__() + self.setupUi(self) + self.setObjectName("PrintRemoverPage") + + self.__plugin = plugin + + # set initial values + for pattern in self.__plugin.getPreferences("StartswithStrings"): + QListWidgetItem(pattern, self.patternList) + + def save(self): + """ + Public slot to save the Print Remover configuration. + """ + patterns = [] + for row in range(self.patternList.count()): + itm = self.patternList.item(row) + patterns.append(itm.text()) + self.__plugin.setPreferences("StartswithStrings", patterns) + + @pyqtSlot() + def on_patternList_itemSelectionChanged(self): + """ + Private slot to handle the selection of patterns. + """ + self.deletePatternButton.setEnabled( + len(self.patternList.selectedItems()) != 0) + + @pyqtSlot() + def on_deletePatternButton_clicked(self): + """ + Private slot to delete the selected items. + """ + for itm in self.patternList.selectedItems(): + self.patternList.takeItem(self.patternList.row(itm)) + del itm + + @pyqtSlot() + def on_addPatternButton_clicked(self): + """ + Private slot add a pattern to the list. + """ + pattern = self.patternEdit.text() + if pattern: + foundItems = self.patternList.findItems( + pattern, Qt.MatchCaseSensitive | Qt.MatchExactly) + if len(foundItems) == 0: + QListWidgetItem(pattern, self.patternList) + self.patternEdit.clear() + + @pyqtSlot(str) + def on_patternEdit_textChanged(self, pattern): + """ + Private slot to handle entering a pattern. + """ + enable = False + if pattern: + foundItems = self.patternList.findItems( + pattern, Qt.MatchCaseSensitive | Qt.MatchExactly) + enable = len(foundItems) == 0 + self.addPatternButton.setEnabled(enable)