PrintRemover/ConfigurationPage/PrintRemoverPage.py

Wed, 01 Jan 2014 14:47:59 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 01 Jan 2014 14:47:59 +0100
changeset 13
67844d930102
parent 2
1375fce99e3b
child 21
9288af505740
permissions
-rw-r--r--

Updated copyright for 2014.

0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
13
67844d930102 Updated copyright for 2014.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2
diff changeset
3 # Copyright (c) 2013 - 2014 Detlev Offenbach <detlev@die-offenbachs.de>
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the Print Remover configuration page.
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 from __future__ import unicode_literals # __IGNORE_WARNING__
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 from PyQt4.QtCore import pyqtSlot, Qt
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 from PyQt4.QtGui import QListWidgetItem
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 from Preferences.ConfigurationPages.ConfigurationPageBase import \
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 ConfigurationPageBase
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 from .Ui_PrintRemoverPage import Ui_PrintRemoverPage
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 class PrintRemoverPage(ConfigurationPageBase, Ui_PrintRemoverPage):
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 Class implementing the Print Remover configuration page.
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 def __init__(self, plugin):
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 Constructor
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 @param plugin reference to the plugin object
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 super(PrintRemoverPage, self).__init__()
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 self.setupUi(self)
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 self.setObjectName("PrintRemoverPage")
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 self.__plugin = plugin
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 # set initial values
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 for pattern in self.__plugin.getPreferences("StartswithStrings"):
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 QListWidgetItem(pattern, self.patternList)
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 def save(self):
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 Public slot to save the Print Remover configuration.
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 patterns = []
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 for row in range(self.patternList.count()):
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 itm = self.patternList.item(row)
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 patterns.append(itm.text())
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 self.__plugin.setPreferences("StartswithStrings", patterns)
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 @pyqtSlot()
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 def on_patternList_itemSelectionChanged(self):
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 Private slot to handle the selection of patterns.
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 self.deletePatternButton.setEnabled(
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 len(self.patternList.selectedItems()) != 0)
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 @pyqtSlot()
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 def on_deletePatternButton_clicked(self):
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 Private slot to delete the selected items.
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 for itm in self.patternList.selectedItems():
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 self.patternList.takeItem(self.patternList.row(itm))
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 del itm
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 @pyqtSlot()
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 def on_addPatternButton_clicked(self):
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 Private slot add a pattern to the list.
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 pattern = self.patternEdit.text()
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 if pattern:
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 foundItems = self.patternList.findItems(
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 pattern, Qt.MatchCaseSensitive | Qt.MatchExactly)
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 if len(foundItems) == 0:
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 QListWidgetItem(pattern, self.patternList)
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 self.patternEdit.clear()
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 @pyqtSlot(str)
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 def on_patternEdit_textChanged(self, pattern):
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 Private slot to handle entering a pattern.
2
1375fce99e3b Finished first relese of the print remover tool plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
84
1375fce99e3b Finished first relese of the print remover tool plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
85 @param pattern pattern string entered into the line edit (string)
0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 """
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 enable = False
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 if pattern:
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 foundItems = self.patternList.findItems(
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 pattern, Qt.MatchCaseSensitive | Qt.MatchExactly)
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 enable = len(foundItems) == 0
deeb8c24a7ab Started the 'Print Remover' project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 self.addPatternButton.setEnabled(enable)

eric ide

mercurial