PrintRemover/ConfigurationPage/PrintRemoverPage.py

changeset 21
9288af505740
parent 13
67844d930102
child 28
46e76a5913cf
equal deleted inserted replaced
20:765081822a29 21:9288af505740
7 Module implementing the Print Remover configuration page. 7 Module implementing the Print Remover configuration page.
8 """ 8 """
9 9
10 from __future__ import unicode_literals # __IGNORE_WARNING__ 10 from __future__ import unicode_literals # __IGNORE_WARNING__
11 11
12 from PyQt4.QtCore import pyqtSlot, Qt 12 import os
13 from PyQt4.QtGui import QListWidgetItem 13
14 from PyQt4.QtCore import pyqtSlot
15 from PyQt4.QtGui import QListWidgetItem, QInputDialog, QLineEdit
14 16
15 from Preferences.ConfigurationPages.ConfigurationPageBase import \ 17 from Preferences.ConfigurationPages.ConfigurationPageBase import \
16 ConfigurationPageBase 18 ConfigurationPageBase
17 from .Ui_PrintRemoverPage import Ui_PrintRemoverPage 19 from .Ui_PrintRemoverPage import Ui_PrintRemoverPage
20
21 import UI.PixmapCache
18 22
19 23
20 class PrintRemoverPage(ConfigurationPageBase, Ui_PrintRemoverPage): 24 class PrintRemoverPage(ConfigurationPageBase, Ui_PrintRemoverPage):
21 """ 25 """
22 Class implementing the Print Remover configuration page. 26 Class implementing the Print Remover configuration page.
29 """ 33 """
30 super(PrintRemoverPage, self).__init__() 34 super(PrintRemoverPage, self).__init__()
31 self.setupUi(self) 35 self.setupUi(self)
32 self.setObjectName("PrintRemoverPage") 36 self.setObjectName("PrintRemoverPage")
33 37
38 self.editButton.setIcon(UI.PixmapCache.getIcon(
39 os.path.join("PrintRemover", "icons", "edit.png")))
40 self.addButton.setIcon(UI.PixmapCache.getIcon("plus.png"))
41 self.addSeparatorButton.setIcon(UI.PixmapCache.getIcon(
42 os.path.join("PrintRemover", "icons", "separatorAdd.png")))
43 self.deleteButton.setIcon(UI.PixmapCache.getIcon("minus.png"))
44 self.upButton.setIcon(UI.PixmapCache.getIcon("1uparrow.png"))
45 self.downButton.setIcon(UI.PixmapCache.getIcon("1downarrow.png"))
46
47 self.editButton.setEnabled(False)
48 self.deleteButton.setEnabled(False)
49 self.upButton.setEnabled(False)
50 self.downButton.setEnabled(False)
51
34 self.__plugin = plugin 52 self.__plugin = plugin
35 53
36 # set initial values 54 # set initial values
37 for pattern in self.__plugin.getPreferences("StartswithStrings"): 55 for pattern in self.__plugin.getPreferences("StartswithStrings"):
56 if pattern == "--Separator--":
57 pattern = self.tr("--Separator--")
38 QListWidgetItem(pattern, self.patternList) 58 QListWidgetItem(pattern, self.patternList)
39 59
40 def save(self): 60 def save(self):
41 """ 61 """
42 Public slot to save the Print Remover configuration. 62 Public slot to save the Print Remover configuration.
43 """ 63 """
44 patterns = [] 64 patterns = []
45 for row in range(self.patternList.count()): 65 for row in range(self.patternList.count()):
46 itm = self.patternList.item(row) 66 itm = self.patternList.item(row)
47 patterns.append(itm.text()) 67 pattern = itm.text()
68 if pattern == self.tr("--Separator--"):
69 pattern = "--Separator--"
70 patterns.append(pattern)
48 self.__plugin.setPreferences("StartswithStrings", patterns) 71 self.__plugin.setPreferences("StartswithStrings", patterns)
49 72
50 @pyqtSlot() 73 @pyqtSlot()
51 def on_patternList_itemSelectionChanged(self): 74 def on_patternList_itemSelectionChanged(self):
52 """ 75 """
53 Private slot to handle the selection of patterns. 76 Private slot to handle the selection of patterns.
54 """ 77 """
55 self.deletePatternButton.setEnabled( 78 if len(self.patternList.selectedItems()) == 0:
56 len(self.patternList.selectedItems()) != 0) 79 self.editButton.setEnabled(False)
80 self.deleteButton.setEnabled(False)
81 self.upButton.setEnabled(False)
82 self.downButton.setEnabled(False)
83 else:
84 itm = self.patternList.selectedItems()[0]
85 self.editButton.setEnabled(itm.text() != self.tr("--Separator--"))
86 self.deleteButton.setEnabled(True)
87 self.upButton.setEnabled(self.patternList.row(itm) > 0)
88 self.downButton.setEnabled(
89 self.patternList.row(itm) < self.patternList.count() - 1)
57 90
58 @pyqtSlot() 91 @pyqtSlot()
59 def on_deletePatternButton_clicked(self): 92 def on_editButton_clicked(self):
60 """ 93 """
61 Private slot to delete the selected items. 94 Private slot to edit the selected entry.
62 """ 95 """
63 for itm in self.patternList.selectedItems(): 96 itm = self.patternList.selectedItems()[0]
64 self.patternList.takeItem(self.patternList.row(itm)) 97 pattern, ok = QInputDialog.getText(
65 del itm 98 self,
99 self.tr("Line Start Pattern"),
100 self.tr("Enter a line start pattern:"),
101 QLineEdit.Normal,
102 itm.text())
103 if ok and pattern:
104 itm.setText(pattern)
66 105
67 @pyqtSlot() 106 @pyqtSlot()
68 def on_addPatternButton_clicked(self): 107 def on_addButton_clicked(self):
69 """ 108 """
70 Private slot add a pattern to the list. 109 Private slot add a pattern to the list.
71 """ 110 """
72 pattern = self.patternEdit.text() 111 pattern, ok = QInputDialog.getText(
73 if pattern: 112 self,
74 foundItems = self.patternList.findItems( 113 self.tr("Line Start Pattern"),
75 pattern, Qt.MatchCaseSensitive | Qt.MatchExactly) 114 self.tr("Enter a line start pattern:"),
76 if len(foundItems) == 0: 115 QLineEdit.Normal)
77 QListWidgetItem(pattern, self.patternList) 116 if ok and pattern:
78 self.patternEdit.clear() 117 itm = QListWidgetItem(pattern)
118 if len(self.patternList.selectedItems()):
119 row = self.patternList.row(
120 self.patternList.selectedItems()[0]) + 1
121 self.patternList.insertItem(row, itm)
122 for sitm in self.patternList.selectedItems():
123 sitm.setSelected(False)
124 else:
125 self.patternList.addItem(itm)
126 itm.setSelected(True)
79 127
80 @pyqtSlot(str) 128 @pyqtSlot()
81 def on_patternEdit_textChanged(self, pattern): 129 def on_addSeparatorButton_clicked(self):
82 """ 130 """
83 Private slot to handle entering a pattern. 131 Private slot add a separator to the list.
132 """
133 itm = QListWidgetItem(self.tr("--Separator--"))
134 if len(self.patternList.selectedItems()):
135 row = self.patternList.row(
136 self.patternList.selectedItems()[0]) + 1
137 self.patternList.insertItem(row, itm)
138 for sitm in self.patternList.selectedItems():
139 sitm.setSelected(False)
140 else:
141 self.patternList.addItem(itm)
142 itm.setSelected(True)
143
144 @pyqtSlot()
145 def on_deleteButton_clicked(self):
146 """
147 Private slot to delete the selected entry.
148 """
149 itm = self.patternList.selectedItems()[0]
150 self.patternList.takeItem(self.patternList.row(itm))
151 del itm
152
153 @pyqtSlot()
154 def on_upButton_clicked(self):
155 """
156 Private slot to move an entry up.
157 """
158 self.__moveSelectedEntry(True)
159
160 @pyqtSlot()
161 def on_downButton_clicked(self):
162 """
163 Private slot to move an entry down.
164 """
165 self.__moveSelectedEntry(False)
166
167 def __moveSelectedEntry(self, moveUp):
168 """
169 Private method to move the selected entry up or down.
84 170
85 @param pattern pattern string entered into the line edit (string) 171 @param moveUp flag indicating to move the entry up (boolean)
86 """ 172 """
87 enable = False 173 itm = self.patternList.selectedItems()[0]
88 if pattern: 174 row = self.patternList.row(itm)
89 foundItems = self.patternList.findItems( 175 newRow = row - 1 if moveUp else row + 1
90 pattern, Qt.MatchCaseSensitive | Qt.MatchExactly) 176 self.patternList.takeItem(row)
91 enable = len(foundItems) == 0 177 self.patternList.insertItem(newRow, itm)
92 self.addPatternButton.setEnabled(enable) 178 for sitm in self.patternList.selectedItems():
179 sitm.setSelected(False)
180 itm.setSelected(True)

eric ide

mercurial