src/eric7/UI/FindFileFiltersEditDialog.py

Wed, 10 Jan 2024 09:42:15 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 10 Jan 2024 09:42:15 +0100
branch
eric7
changeset 10492
53eac4c7d10b
child 10494
8db0328580d7
permissions
-rw-r--r--

Find In Files
- Changed the filter entry to a filter selector with associated edit capability to define a list of filter entries.

10492
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3 # Copyright (c) 2023 Detlev Offenbach <detlev@die-offenbachs.de>
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a dialog to configure the file filters.
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 from PyQt6.QtCore import Qt, pyqtSlot
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 from PyQt6.QtWidgets import QDialog, QTreeWidgetItem
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 from eric7 import Preferences
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 from eric7.EricWidgets import EricMessageBox
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 from eric7.QScintilla import Lexers
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 from .FindFileFilterPropertiesDialog import FindFileFilterPropertiesDialog
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 from .Ui_FindFileFiltersEditDialog import Ui_FindFileFiltersEditDialog
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 class FindFileFiltersEditDialog(QDialog, Ui_FindFileFiltersEditDialog):
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 """
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 Class implementing a dialog to configure the file filters.
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 """
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 FilterTextRole = Qt.ItemDataRole.UserRole
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 FilterPatternRole = Qt.ItemDataRole.UserRole + 1
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 def __init__(self, filters, parent=None):
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 """
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 Constructor
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 @param filters dictionary containing the existing file filters
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 @type dict
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 @param parent reference to the parent widget (defaults to None)
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 @type QWidget (optional)
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 """
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 super().__init__(parent)
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 self.setupUi(self)
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 self.fileFiltersList.header().setSortIndicator(0, Qt.SortOrder.AscendingOrder)
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 self.__populateFilters(filters)
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 def __populateFilters(self, filters):
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 """
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 Private method to populate the filters list.
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 @param filters dictionary containing the existing file filters
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 @type dict
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 """
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 self.fileFiltersList.clear()
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 for name in sorted(filters):
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 QTreeWidgetItem(self.fileFiltersList, [name, filters[name]])
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 self.__adjustColumns()
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 def __adjustColumns(self):
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 """
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 Private method to adjust the column widths.
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 """
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 self.fileFiltersList.resizeColumnToContents(0)
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 self.fileFiltersList.resizeColumnToContents(1)
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 @pyqtSlot()
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 def on_fileFiltersList_itemSelectionChanged(self):
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 """
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 Private slot to handle a change of the selected items.
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 """
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 selectedItemsLength = len(self.fileFiltersList.selectedItems())
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 self.editFileFilterButton.setEnabled(selectedItemsLength == 1)
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 self.deleteFileFilterButton.setEnabled(selectedItemsLength > 0)
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 @pyqtSlot()
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 def on_addFileFilterButton_clicked(self):
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 """
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 Private slot to add a new filter entry.
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 """
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 filters = self.__getFiltersList()
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 dlg = FindFileFilterPropertiesDialog(filters, parent=self)
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 if dlg.exec() == QDialog.DialogCode.Accepted:
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 name, pattern = dlg.getProperties()
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 QTreeWidgetItem(self.fileFiltersList, [name, pattern])
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 self.__adjustColumns()
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 @pyqtSlot()
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 def on_editFileFilterButton_clicked(self):
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 """
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 Private slot to edit the selected filter entry..
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 """
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 filters = self.__getFiltersList(forEdit=True)
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 selectedEntry = self.fileFiltersList.selectedItems()[0]
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 dlg = FindFileFilterPropertiesDialog(
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 filters, properties=(selectedEntry.text(0), selectedEntry.text(1))
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 )
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 if dlg.exec() == QDialog.DialogCode.Accepted:
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 name, pattern = dlg.getProperties()
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 selectedEntry.setText(0, name)
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 selectedEntry.setText(1, pattern)
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 @pyqtSlot()
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 def on_deleteFileFilterButton_clicked(self):
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 """
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 Private slot to delete the selected filter entries.
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 """
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 yes = EricMessageBox.yesNo(
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 self,
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 self.tr("Delete Selected Filters"),
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 self.tr("""Shall the selected filters really be deleted?"""),
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 )
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 if yes:
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 for itm in self.fileFiltersList.selectedItems():
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 self.fileFiltersList.takeTopLevelItem(
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 self.fileFiltersList.indexOfTopLevelItem(itm)
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 )
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 del itm
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 @pyqtSlot()
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 def on_defaultFiltersButton_clicked(self):
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 """
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 Private slot to create the default list of file filters.
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 """
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 if self.fileFiltersList.topLevelItemCount():
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 ok = EricMessageBox.yesNo(
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 self,
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 self.tr("Default Filters"),
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 self.tr(
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 "Do you really want to clear the list of defined file filters and"
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 " replace it with the list of default filters?"
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 ),
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 )
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 if not ok:
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 return
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 openFileFiltersList = (
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 Lexers.getOpenFileFiltersList(False, withAdditional=False)
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 + Preferences.getEditor("AdditionalOpenFilters")[:]
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 )
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 filters = {}
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 for openFileFilter in openFileFiltersList:
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 name, pattern = openFileFilter.split(" (", 1)
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 pattern = ";".join(pattern.strip().rstrip(")").split())
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 filters[name.strip()] = pattern
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 self.__populateFilters(filters)
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 def __getFiltersList(self, forEdit=False):
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 """
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 Private method to get the list of defined filter names.
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 @param forEdit flag indicating a list for an edit operation
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 (defaults to False)
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 @type bool (optional)
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 @return list of defined filter names
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 @rtype list of str
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 """
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 selectedItems = self.fileFiltersList.selectedItems() if forEdit else []
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 filters = []
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 for row in range(self.fileFiltersList.topLevelItemCount()):
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 itm = self.fileFiltersList.topLevelItem(row)
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 if itm not in selectedItems:
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 filters.append(itm.text(0))
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 return filters
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 def getFilters(self):
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 """
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 Public method to retrieve the edited filter list.
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 @return dictionary containing the defined file filters
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 @rtype dict
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 """
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 filters = {}
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 for row in range(self.fileFiltersList.topLevelItemCount()):
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177 itm = self.fileFiltersList.topLevelItem(row)
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178 filters[itm.text(0)] = itm.text(1)
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 return filters

eric ide

mercurial