src/eric7/UI/FindFileFiltersEditDialog.py

Sat, 26 Apr 2025 12:34:32 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 26 Apr 2025 12:34:32 +0200
branch
eric7
changeset 11240
c48c615c04a3
parent 11090
f5f5f5803935
permissions
-rw-r--r--

MicroPython
- Added a configuration option to disable the support for the no longer produced Pimoroni Pico Wireless Pack.

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
11090
f5f5f5803935 Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11006
diff changeset
3 # Copyright (c) 2024 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>
10492
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(
11006
a671918232f3 Modified modal dialog usage to always include a valid parent (needed for Wayland).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10514
diff changeset
95 filters,
a671918232f3 Modified modal dialog usage to always include a valid parent (needed for Wayland).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10514
diff changeset
96 properties=(selectedEntry.text(0), selectedEntry.text(1)),
a671918232f3 Modified modal dialog usage to always include a valid parent (needed for Wayland).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10514
diff changeset
97 parent=self,
10492
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 )
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 if dlg.exec() == QDialog.DialogCode.Accepted:
10494
8db0328580d7 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10492
diff changeset
100 name, patterns = dlg.getProperties()
10492
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 selectedEntry.setText(0, name)
10494
8db0328580d7 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10492
diff changeset
102 selectedEntry.setText(1, patterns)
10492
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 @pyqtSlot()
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 def on_deleteFileFilterButton_clicked(self):
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 Private slot to delete the selected filter entries.
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 """
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 yes = EricMessageBox.yesNo(
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 self,
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 self.tr("Delete Selected Filters"),
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 self.tr("""Shall the selected filters really be deleted?"""),
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 )
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 if yes:
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 for itm in self.fileFiltersList.selectedItems():
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 self.fileFiltersList.takeTopLevelItem(
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 self.fileFiltersList.indexOfTopLevelItem(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 del itm
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 @pyqtSlot()
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 def on_defaultFiltersButton_clicked(self):
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 Private slot to create the default list of file filters.
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 """
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 if self.fileFiltersList.topLevelItemCount():
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 ok = EricMessageBox.yesNo(
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 self,
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 self.tr("Default Filters"),
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 self.tr(
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 "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
132 " replace it with the list of default filters?"
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 ),
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 if not ok:
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 return
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 openFileFiltersList = (
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 Lexers.getOpenFileFiltersList(False, withAdditional=False)
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 + Preferences.getEditor("AdditionalOpenFilters")[:]
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 )
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 filters = {}
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 for openFileFilter in openFileFiltersList:
10494
8db0328580d7 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10492
diff changeset
145 name, pattern = openFileFilter.strip().rstrip(")").split(" (", 1)
8db0328580d7 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10492
diff changeset
146 patterns = pattern.strip().split()
8db0328580d7 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10492
diff changeset
147 filters[name.strip()] = patterns
10492
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 self.__populateFilters(filters)
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150
10494
8db0328580d7 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10492
diff changeset
151 def __getFilterNames(self, forEdit=False):
10492
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 Private method to get the list of defined filter names.
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 @param forEdit flag indicating a list for an edit operation
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 (defaults to False)
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 @type bool (optional)
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 @return list of defined filter names
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 @rtype list of str
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 selectedItems = self.fileFiltersList.selectedItems() if forEdit else []
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 filters = []
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 for row in range(self.fileFiltersList.topLevelItemCount()):
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 itm = self.fileFiltersList.topLevelItem(row)
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 if itm not in selectedItems:
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 filters.append(itm.text(0))
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 return filters
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 def getFilters(self):
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 """
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 Public method to retrieve the edited filter list.
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174
10494
8db0328580d7 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10492
diff changeset
175 @return dictionary containing the defined file filters with the
8db0328580d7 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10492
diff changeset
176 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
177 @rtype dict
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178 """
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 filters = {}
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 for row in range(self.fileFiltersList.topLevelItemCount()):
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 itm = self.fileFiltersList.topLevelItem(row)
10494
8db0328580d7 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10492
diff changeset
182 filters[itm.text(0)] = itm.text(1).split()
10492
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183
53eac4c7d10b Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 return filters

eric ide

mercurial