PrintRemover/ConfigurationPage/PrintRemoverPage.py

changeset 0
deeb8c24a7ab
child 2
1375fce99e3b
diff -r 000000000000 -r deeb8c24a7ab PrintRemover/ConfigurationPage/PrintRemoverPage.py
--- /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)

eric ide

mercurial