src/eric7/UI/FindFileFiltersEditDialog.py

Wed, 10 Jan 2024 10:42:39 +0100

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

Find In Files
- Fine tuned the filter functionality.

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

eric ide

mercurial