28 |
28 |
29 def __init__(self, filters, parent=None): |
29 def __init__(self, filters, parent=None): |
30 """ |
30 """ |
31 Constructor |
31 Constructor |
32 |
32 |
33 @param filters dictionary containing the existing file filters |
33 @param filters dictionary with the filter name as key and a list of |
|
34 file name patterns as value |
34 @type dict |
35 @type dict |
35 @param parent reference to the parent widget (defaults to None) |
36 @param parent reference to the parent widget (defaults to None) |
36 @type QWidget (optional) |
37 @type QWidget (optional) |
37 """ |
38 """ |
38 super().__init__(parent) |
39 super().__init__(parent) |
49 @type dict |
50 @type dict |
50 """ |
51 """ |
51 self.fileFiltersList.clear() |
52 self.fileFiltersList.clear() |
52 |
53 |
53 for name in sorted(filters): |
54 for name in sorted(filters): |
54 QTreeWidgetItem(self.fileFiltersList, [name, filters[name]]) |
55 QTreeWidgetItem(self.fileFiltersList, [name, " ".join(filters[name])]) |
55 |
56 |
56 self.__adjustColumns() |
57 self.__adjustColumns() |
57 |
58 |
58 def __adjustColumns(self): |
59 def __adjustColumns(self): |
59 """ |
60 """ |
74 @pyqtSlot() |
75 @pyqtSlot() |
75 def on_addFileFilterButton_clicked(self): |
76 def on_addFileFilterButton_clicked(self): |
76 """ |
77 """ |
77 Private slot to add a new filter entry. |
78 Private slot to add a new filter entry. |
78 """ |
79 """ |
79 filters = self.__getFiltersList() |
80 filters = self.__getFilterNames() |
80 dlg = FindFileFilterPropertiesDialog(filters, parent=self) |
81 dlg = FindFileFilterPropertiesDialog(filters, parent=self) |
81 if dlg.exec() == QDialog.DialogCode.Accepted: |
82 if dlg.exec() == QDialog.DialogCode.Accepted: |
82 name, pattern = dlg.getProperties() |
83 name, patterns = dlg.getProperties() |
83 QTreeWidgetItem(self.fileFiltersList, [name, pattern]) |
84 QTreeWidgetItem(self.fileFiltersList, [name, patterns]) |
84 self.__adjustColumns() |
85 self.__adjustColumns() |
85 |
86 |
86 @pyqtSlot() |
87 @pyqtSlot() |
87 def on_editFileFilterButton_clicked(self): |
88 def on_editFileFilterButton_clicked(self): |
88 """ |
89 """ |
89 Private slot to edit the selected filter entry.. |
90 Private slot to edit the selected filter entry.. |
90 """ |
91 """ |
91 filters = self.__getFiltersList(forEdit=True) |
92 filters = self.__getFilterNames(forEdit=True) |
92 selectedEntry = self.fileFiltersList.selectedItems()[0] |
93 selectedEntry = self.fileFiltersList.selectedItems()[0] |
93 dlg = FindFileFilterPropertiesDialog( |
94 dlg = FindFileFilterPropertiesDialog( |
94 filters, properties=(selectedEntry.text(0), selectedEntry.text(1)) |
95 filters, properties=(selectedEntry.text(0), selectedEntry.text(1)) |
95 ) |
96 ) |
96 if dlg.exec() == QDialog.DialogCode.Accepted: |
97 if dlg.exec() == QDialog.DialogCode.Accepted: |
97 name, pattern = dlg.getProperties() |
98 name, patterns = dlg.getProperties() |
98 selectedEntry.setText(0, name) |
99 selectedEntry.setText(0, name) |
99 selectedEntry.setText(1, pattern) |
100 selectedEntry.setText(1, patterns) |
100 |
101 |
101 @pyqtSlot() |
102 @pyqtSlot() |
102 def on_deleteFileFilterButton_clicked(self): |
103 def on_deleteFileFilterButton_clicked(self): |
103 """ |
104 """ |
104 Private slot to delete the selected filter entries. |
105 Private slot to delete the selected filter entries. |
137 + Preferences.getEditor("AdditionalOpenFilters")[:] |
138 + Preferences.getEditor("AdditionalOpenFilters")[:] |
138 ) |
139 ) |
139 |
140 |
140 filters = {} |
141 filters = {} |
141 for openFileFilter in openFileFiltersList: |
142 for openFileFilter in openFileFiltersList: |
142 name, pattern = openFileFilter.split(" (", 1) |
143 name, pattern = openFileFilter.strip().rstrip(")").split(" (", 1) |
143 pattern = ";".join(pattern.strip().rstrip(")").split()) |
144 patterns = pattern.strip().split() |
144 filters[name.strip()] = pattern |
145 filters[name.strip()] = patterns |
145 |
146 |
146 self.__populateFilters(filters) |
147 self.__populateFilters(filters) |
147 |
148 |
148 def __getFiltersList(self, forEdit=False): |
149 def __getFilterNames(self, forEdit=False): |
149 """ |
150 """ |
150 Private method to get the list of defined filter names. |
151 Private method to get the list of defined filter names. |
151 |
152 |
152 @param forEdit flag indicating a list for an edit operation |
153 @param forEdit flag indicating a list for an edit operation |
153 (defaults to False) |
154 (defaults to False) |
167 |
168 |
168 def getFilters(self): |
169 def getFilters(self): |
169 """ |
170 """ |
170 Public method to retrieve the edited filter list. |
171 Public method to retrieve the edited filter list. |
171 |
172 |
172 @return dictionary containing the defined file filters |
173 @return dictionary containing the defined file filters with the |
|
174 filter name as key and a list of file name patterns as value |
173 @rtype dict |
175 @rtype dict |
174 """ |
176 """ |
175 filters = {} |
177 filters = {} |
176 for row in range(self.fileFiltersList.topLevelItemCount()): |
178 for row in range(self.fileFiltersList.topLevelItemCount()): |
177 itm = self.fileFiltersList.topLevelItem(row) |
179 itm = self.fileFiltersList.topLevelItem(row) |
178 filters[itm.text(0)] = itm.text(1) |
180 filters[itm.text(0)] = itm.text(1).split() |
179 |
181 |
180 return filters |
182 return filters |