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) |