Wed, 10 Jan 2024 09:42:15 +0100
Find In Files
- Changed the filter entry to a filter selector with associated edit capability to define a list of filter entries.
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
10439
21c28b0f9e41
Updated copyright for 2024.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10435
diff
changeset
|
3 | # Copyright (c) 2002 - 2024 Detlev Offenbach <detlev@die-offenbachs.de> |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing a dialog to search for text in files. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
10492
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
10 | import json |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | import os |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | import re |
8932
a21e80dde10e
Don't process events after each file to prevent a slow search.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
8917
diff
changeset
|
13 | import time |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
15 | from PyQt6.QtCore import QPoint, Qt, QUrl, pyqtSignal, pyqtSlot |
8636
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
16 | from PyQt6.QtGui import QCursor, QDesktopServices, QImageReader |
8318
962bce857696
Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8312
diff
changeset
|
17 | from PyQt6.QtWidgets import ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
18 | QApplication, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
19 | QComboBox, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
20 | QDialog, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
21 | QDialogButtonBox, |
9517
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
22 | QListWidgetItem, |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
23 | QMenu, |
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
24 | QTreeWidgetItem, |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
25 | QVBoxLayout, |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
26 | QWidget, |
7264
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
27 | ) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
29 | from eric7 import Preferences, Utilities |
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
30 | from eric7.EricGui import EricPixmapCache |
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
31 | from eric7.EricWidgets import EricMessageBox |
9413
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
32 | from eric7.EricWidgets.EricApplication import ericApp |
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
33 | from eric7.EricWidgets.EricPathPicker import EricPathPickerModes |
9624
b47dfa7a137d
Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9586
diff
changeset
|
34 | from eric7.SystemUtilities import FileSystemUtilities |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | |
8614 | 36 | from .Ui_FindFileWidget import Ui_FindFileWidget |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3186
diff
changeset
|
38 | |
8614 | 39 | class FindFileWidget(QWidget, Ui_FindFileWidget): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | """ |
8614 | 41 | Class implementing a widget to search for text in files and replace it |
42 | with some other text. | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
43 | |
8614 | 44 | The occurrences found are displayed in a tree showing the file name, |
45 | the line number and the text found. The file will be opened upon a double | |
46 | click onto the respective entry of the list. If the widget is in replace | |
47 | mode the line below shows the text after replacement. Replacements can | |
48 | be authorized by ticking them on. Pressing the replace button performs | |
49 | all ticked replacement operations. | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
50 | |
846
869c200be26e
Fixed an omission in the find and replace dialog and formatted it according PEP 8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
51 | @signal sourceFile(str, int, str, int, int) emitted to open a source file |
8614 | 52 | at a specificline |
501
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
53 | @signal designerFile(str) emitted to open a Qt-Designer file |
8636
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
54 | @signal linguistFile(str) emitted to open a Qt-Linguist (*.ts) file |
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
55 | @signal trpreview([str]) emitted to preview Qt-Linguist (*.qm) files |
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
56 | @signal pixmapFile(str) emitted to open a pixmap file |
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
57 | @signal svgFile(str) emitted to open a SVG file |
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
58 | @signal umlFile(str) emitted to open an eric UML file |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
60 | |
476
121633976eca
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
458
diff
changeset
|
61 | sourceFile = pyqtSignal(str, int, str, int, int) |
500
c3abc7895a01
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
489
diff
changeset
|
62 | designerFile = pyqtSignal(str) |
8636
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
63 | linguistFile = pyqtSignal(str) |
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
64 | trpreview = pyqtSignal(list) |
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
65 | pixmapFile = pyqtSignal(str) |
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
66 | svgFile = pyqtSignal(str) |
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
67 | umlFile = pyqtSignal(str) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
68 | |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7992
diff
changeset
|
69 | lineRole = Qt.ItemDataRole.UserRole + 1 |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7992
diff
changeset
|
70 | startRole = Qt.ItemDataRole.UserRole + 2 |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7992
diff
changeset
|
71 | endRole = Qt.ItemDataRole.UserRole + 3 |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7992
diff
changeset
|
72 | replaceRole = Qt.ItemDataRole.UserRole + 4 |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7992
diff
changeset
|
73 | md5Role = Qt.ItemDataRole.UserRole + 5 |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
74 | |
8614 | 75 | def __init__(self, project, parent=None): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | Constructor |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
78 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | @param project reference to the project object |
8614 | 80 | @type Project |
81 | @param parent parent widget of this dialog (defaults to None) | |
82 | @type QWidget (optional) | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | """ |
8218
7c09585bd960
Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8149
diff
changeset
|
84 | super().__init__(parent) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | self.setupUi(self) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
86 | |
10492
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
87 | self.__project = project |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
88 | |
8614 | 89 | self.layout().setContentsMargins(0, 3, 0, 0) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
90 | |
9413
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
91 | self.caseToolButton.setIcon(EricPixmapCache.getIcon("caseSensitive")) |
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
92 | self.wordToolButton.setIcon(EricPixmapCache.getIcon("wholeWord")) |
10435
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
93 | self.escapeToolButton.setIcon(EricPixmapCache.getIcon("esc-code")) |
9413
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
94 | self.regexpToolButton.setIcon(EricPixmapCache.getIcon("regexp")) |
10492
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
95 | self.filtersConfigButton.setIcon(EricPixmapCache.getIcon("edit")) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
96 | |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8347
diff
changeset
|
97 | self.dirPicker.setMode(EricPathPickerModes.DIRECTORY_MODE) |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7992
diff
changeset
|
98 | self.dirPicker.setInsertPolicy(QComboBox.InsertPolicy.InsertAtTop) |
4589
b648ccbdbef9
Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4278
diff
changeset
|
99 | self.dirPicker.setSizeAdjustPolicy( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
100 | QComboBox.SizeAdjustPolicy.AdjustToMinimumContentsLengthWithIcon |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
101 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
102 | |
8614 | 103 | self.stopButton.setEnabled(False) |
104 | self.stopButton.clicked.connect(self.__stopSearch) | |
9413
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
105 | self.stopButton.setIcon(EricPixmapCache.getIcon("stopLoading")) |
9038
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
106 | self.stopButton.setAutoDefault(False) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
107 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | self.findButton.setEnabled(False) |
8614 | 109 | self.findButton.clicked.connect(self.__doSearch) |
9413
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
110 | self.findButton.setIcon(EricPixmapCache.getIcon("find")) |
9038
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
111 | self.findButton.setAutoDefault(False) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
112 | |
8809
29471a3867ac
Added a 'Clear' button to the 'search in files' and 'search location' panes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8637
diff
changeset
|
113 | self.clearButton.setEnabled(False) |
29471a3867ac
Added a 'Clear' button to the 'search in files' and 'search location' panes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8637
diff
changeset
|
114 | self.clearButton.clicked.connect(self.__clearResults) |
9413
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
115 | self.clearButton.setIcon(EricPixmapCache.getIcon("clear")) |
9038
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
116 | self.clearButton.setAutoDefault(False) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
117 | |
9413
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
118 | self.replaceButton.setIcon(EricPixmapCache.getIcon("editReplace")) |
9038
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
119 | self.replaceButton.setAutoDefault(False) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
120 | |
8614 | 121 | self.modeToggleButton.clicked.connect(self.__toggleReplaceMode) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
122 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
123 | self.findProgressLabel.setMaximumWidth(550) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
124 | |
268
f6f53503b8d6
Changed the Find in Files dialog to remember the history of the search string, replace string and the search directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
248
diff
changeset
|
125 | self.searchHistory = Preferences.toList( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
126 | Preferences.getSettings().value("FindFileWidget/SearchHistory") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
127 | ) |
8614 | 128 | self.findtextCombo.lineEdit().setClearButtonEnabled(True) |
129 | self.findtextCombo.lineEdit().returnPressed.connect(self.__doSearch) | |
130 | self.findtextCombo.setCompleter(None) | |
131 | self.findtextCombo.addItems(self.searchHistory) | |
132 | self.findtextCombo.setEditText("") | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
133 | |
268
f6f53503b8d6
Changed the Find in Files dialog to remember the history of the search string, replace string and the search directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
248
diff
changeset
|
134 | self.replaceHistory = Preferences.toList( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
135 | Preferences.getSettings().value("FindFileWidget/ReplaceHistory") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
136 | ) |
8614 | 137 | self.replacetextCombo.lineEdit().setClearButtonEnabled(True) |
138 | self.replacetextCombo.lineEdit().returnPressed.connect(self.__doSearch) | |
139 | self.replacetextCombo.setCompleter(None) | |
140 | self.replacetextCombo.addItems(self.replaceHistory) | |
141 | self.replacetextCombo.setEditText("") | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
142 | |
268
f6f53503b8d6
Changed the Find in Files dialog to remember the history of the search string, replace string and the search directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
248
diff
changeset
|
143 | self.dirHistory = Preferences.toList( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
144 | Preferences.getSettings().value("FindFileWidget/DirectoryHistory") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
145 | ) |
4589
b648ccbdbef9
Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4278
diff
changeset
|
146 | self.dirPicker.addItems(self.dirHistory) |
8614 | 147 | self.dirPicker.setText("") |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
148 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
149 | self.excludeHiddenCheckBox.setChecked( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
150 | Preferences.toBool( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
151 | Preferences.getSettings().value("FindFileWidget/ExcludeHidden", True) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
152 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
153 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
154 | |
10492
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
155 | self.__populateFiltersSelector() |
9559
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
156 | self.populateFileCategories() |
9517
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
157 | |
8917
18901f50f971
FindFileWidget: adde code to ensure the file type tab is the current one upon startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
158 | # ensure the file type tab is the current one |
18901f50f971
FindFileWidget: adde code to ensure the file type tab is the current one upon startup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
159 | self.fileOptionsWidget.setCurrentWidget(self.fileTypeTab) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
160 | |
9517
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
161 | self.__project.projectOpened.connect(self.__projectOpened) |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
162 | self.__project.projectClosed.connect(self.__projectClosed) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
163 | |
8614 | 164 | self.__standardListFont = self.findList.font() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
165 | self.findList.headerItem().setText(self.findList.columnCount(), "") |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7992
diff
changeset
|
166 | self.findList.header().setSortIndicator(0, Qt.SortOrder.AscendingOrder) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
167 | self.__section0Size = self.findList.header().sectionSize(0) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
168 | self.findList.setExpandsOnDoubleClick(False) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
169 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
170 | self.__cancelSearch = False |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
171 | self.__lastFileItem = None |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
172 | self.__populating = False |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
173 | |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7992
diff
changeset
|
174 | self.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) |
458
1695e7a2db54
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
432
diff
changeset
|
175 | self.customContextMenuRequested.connect(self.__contextMenuRequested) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
176 | |
8614 | 177 | self.__replaceMode = True |
178 | self.__toggleReplaceMode() | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
179 | |
10492
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
180 | def __populateFiltersSelector(self): |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
181 | """ |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
182 | Private method to (re-)populate the file filters selector. |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
183 | """ |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
184 | currentFilter = self.filterComboBox.currentText() |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
185 | self.filterComboBox.clear() |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
186 | |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
187 | # add standard entries |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
188 | self.filterComboBox.addItem("") |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
189 | self.filterComboBox.addItem(self.tr("All Files"), "*") |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
190 | |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
191 | # add configured entries |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
192 | # filters is a dictionary with the filter text as key and the pattern as value |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
193 | self.__filters = json.loads( |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
194 | Preferences.getSettings().value("FindFileWidget/FileFilters", "{}") |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
195 | # noqa: M613 |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
196 | ) |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
197 | for fileFilter in sorted(self.__filters): |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
198 | self.filterComboBox.addItem(fileFilter, self.__filters[filter]) |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
199 | |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
200 | # reselect the current entry |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
201 | index = self.filterComboBox.findText(currentFilter) |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
202 | if index == -1: |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
203 | index = 0 |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
204 | self.filterComboBox.setCurrentIndex(index) |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
205 | |
9559
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
206 | def populateFileCategories(self): |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
207 | """ |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
208 | Public method to populate the search file categories list. |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
209 | """ |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
210 | # step 1: remember checked entries categories |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
211 | checkedCategories = [] |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
212 | for row in range(self.fileTypeList.count()): |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
213 | itm = self.fileTypeList.item(row) |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
214 | if itm.checkState() == Qt.CheckState.Checked: |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
215 | checkedCategories.append(itm.data(Qt.ItemDataRole.UserRole)) |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
216 | |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
217 | # step 2: clear the list |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
218 | self.fileTypeList.clear() |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
219 | |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
220 | # step 3: populate the file type list |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
221 | for fileCategory in [ |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
222 | c |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
223 | for c in self.__project.getFileCategories() |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
224 | if c not in ("TRANSLATIONS", "OTHERS") |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
225 | ]: |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
226 | itm = QListWidgetItem( |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
227 | self.__project.getFileCategoryType(fileCategory), self.fileTypeList |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
228 | ) |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
229 | itm.setData(Qt.ItemDataRole.UserRole, fileCategory) |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
230 | itm.setFlags(itm.flags() | Qt.ItemFlag.ItemIsUserCheckable) |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
231 | if bool(checkedCategories): |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
232 | itm.setCheckState( |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
233 | Qt.CheckState.Checked |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
234 | if fileCategory in checkedCategories |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
235 | else Qt.CheckState.Unchecked |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
236 | ) |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
237 | else: |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
238 | # first time population |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
239 | itm.setCheckState( |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
240 | Qt.CheckState.Checked |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
241 | if fileCategory == "SOURCES" |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
242 | else Qt.CheckState.Unchecked |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
243 | ) |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
244 | |
846
869c200be26e
Fixed an omission in the find and replace dialog and formatted it according PEP 8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
245 | def __createItem(self, file, line, text, start, end, replTxt="", md5=""): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
246 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
247 | Private method to create an entry in the file list. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
248 | |
8614 | 249 | @param file filename of file |
250 | @type str | |
251 | @param line line number | |
252 | @type int | |
253 | @param text text found | |
254 | @type str | |
255 | @param start start position of match | |
256 | @type int | |
257 | @param end end position of match | |
258 | @type int | |
259 | @param replTxt text with replacements applied (defaults to "") | |
260 | @type str (optional) | |
261 | @param md5 MD5 hash of the file (defaults to "") | |
262 | @type str (optional) | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
263 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
264 | if self.__lastFileItem is None: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
265 | # It's a new file |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
266 | self.__lastFileItem = QTreeWidgetItem(self.findList, [file]) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
267 | self.__lastFileItem.setFirstColumnSpanned(True) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
268 | self.__lastFileItem.setExpanded(True) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
269 | if self.__replaceMode: |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
270 | self.__lastFileItem.setFlags( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
271 | self.__lastFileItem.flags() |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
272 | | Qt.ItemFlag.ItemIsUserCheckable |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
273 | | Qt.ItemFlag.ItemIsAutoTristate |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
274 | ) |
682
91114a975eda
Added a check to the find and replace dialog to make sure, that no external changes were done between the find run and the replace run.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
654
diff
changeset
|
275 | self.__lastFileItem.setData(0, self.md5Role, md5) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
276 | |
1640
1699d46026cd
Fixed a compatibility issue with Qt 4.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
277 | itm = QTreeWidgetItem(self.__lastFileItem) |
9575
635b6c5a36e1
Corrected the alignment of the line numbers of the "Find In File" widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9574
diff
changeset
|
278 | itm.setTextAlignment( |
635b6c5a36e1
Corrected the alignment of the line numbers of the "Find In File" widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9574
diff
changeset
|
279 | 0, |
635b6c5a36e1
Corrected the alignment of the line numbers of the "Find In File" widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9574
diff
changeset
|
280 | Qt.AlignmentFlag.AlignRight | Qt.AlignmentFlag.AlignVCenter, |
635b6c5a36e1
Corrected the alignment of the line numbers of the "Find In File" widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9574
diff
changeset
|
281 | ) |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7992
diff
changeset
|
282 | itm.setData(0, Qt.ItemDataRole.DisplayRole, line) |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7992
diff
changeset
|
283 | itm.setData(1, Qt.ItemDataRole.DisplayRole, text) |
7
c679fb30c8f3
Change code dealing with QVariant (and QSettings) to use the PyQt4 QVariant v2 API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6
diff
changeset
|
284 | itm.setData(0, self.lineRole, line) |
c679fb30c8f3
Change code dealing with QVariant (and QSettings) to use the PyQt4 QVariant v2 API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6
diff
changeset
|
285 | itm.setData(0, self.startRole, start) |
c679fb30c8f3
Change code dealing with QVariant (and QSettings) to use the PyQt4 QVariant v2 API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6
diff
changeset
|
286 | itm.setData(0, self.endRole, end) |
c679fb30c8f3
Change code dealing with QVariant (and QSettings) to use the PyQt4 QVariant v2 API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6
diff
changeset
|
287 | itm.setData(0, self.replaceRole, replTxt) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
288 | if self.__replaceMode: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
289 | itm.setFlags(itm.flags() | Qt.ItemFlag.ItemIsUserCheckable) |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7992
diff
changeset
|
290 | itm.setCheckState(0, Qt.CheckState.Checked) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
291 | self.replaceButton.setEnabled(True) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
292 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
293 | def activate(self, replaceMode=False, txt="", searchDir="", openFiles=False): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
294 | """ |
8614 | 295 | Public method to activate the widget with a given mode, a text |
296 | to search for and some search parameters. | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
297 | |
8614 | 298 | @param replaceMode flag indicating replacement mode (defaults to False) |
299 | @type bool (optional) | |
300 | @param txt text to be searched for (defaults to "") | |
301 | @type str (optional) | |
302 | @param searchDir directory to search in (defaults to "") | |
303 | @type str (optional) | |
304 | @param openFiles flag indicating to operate on open files only | |
305 | (defaults to False) | |
306 | @type bool (optional) | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
307 | """ |
9559
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
308 | self.populateFileCategories() |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
309 | |
9517
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
310 | if self.__project.isOpen(): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
311 | self.projectButton.setEnabled(True) |
8614 | 312 | self.projectButton.setChecked(True) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
313 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
314 | self.projectButton.setEnabled(False) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
315 | self.dirButton.setChecked(True) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
316 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
317 | self.findtextCombo.setEditText(txt) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
318 | self.findtextCombo.lineEdit().selectAll() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
319 | self.findtextCombo.setFocus() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
320 | |
8614 | 321 | if self.__replaceMode != replaceMode: |
322 | self.__toggleReplaceMode() | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
323 | |
8614 | 324 | if searchDir: |
9037
907540e4f741
Created new branch <external_find>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8943
diff
changeset
|
325 | self.__setSearchDirectory(searchDir) |
8614 | 326 | if openFiles: |
9037
907540e4f741
Created new branch <external_find>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8943
diff
changeset
|
327 | self.__setOpenFiles() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
328 | |
8614 | 329 | @pyqtSlot() |
330 | def __toggleReplaceMode(self): | |
331 | """ | |
332 | Private slot to toggle the dialog mode. | |
333 | """ | |
334 | self.__replaceMode = not self.__replaceMode | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
335 | |
8614 | 336 | # change some interface elements and properties |
337 | self.findList.clear() | |
8809
29471a3867ac
Added a 'Clear' button to the 'search in files' and 'search location' panes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8637
diff
changeset
|
338 | self.clearButton.setEnabled(False) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
339 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
340 | if self.__replaceMode: |
8614 | 341 | self.replaceButton.show() |
342 | self.replaceLabel.show() | |
343 | self.replacetextCombo.show() | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
344 | |
8614 | 345 | self.replaceButton.setEnabled(False) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
346 | self.replacetextCombo.setEditText("") |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
347 | |
8614 | 348 | font = Preferences.getEditorOtherFonts("MonospacedFont") |
349 | self.findList.setFont(font) | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
350 | |
9413
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
351 | self.modeToggleButton.setIcon(EricPixmapCache.getIcon("1uparrow")) |
8614 | 352 | else: |
353 | self.replaceLabel.hide() | |
354 | self.replacetextCombo.hide() | |
355 | self.replaceButton.hide() | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
356 | |
8614 | 357 | self.findList.setFont(self.__standardListFont) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
358 | |
9413
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
359 | self.modeToggleButton.setIcon(EricPixmapCache.getIcon("1downarrow")) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
360 | |
8614 | 361 | @pyqtSlot() |
362 | def __projectOpened(self): | |
363 | """ | |
364 | Private slot to react to the opening of a project. | |
365 | """ | |
366 | self.projectButton.setEnabled(True) | |
367 | self.projectButton.setChecked(True) | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
368 | |
8614 | 369 | @pyqtSlot() |
370 | def __projectClosed(self): | |
371 | """ | |
372 | Private slot to react to the closing of a project. | |
373 | """ | |
374 | self.projectButton.setEnabled(False) | |
375 | if self.projectButton.isChecked(): | |
376 | self.dirButton.setChecked(True) | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
377 | |
10435
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
378 | @pyqtSlot(bool) |
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
379 | def on_escapeToolButton_toggled(self, checked): |
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
380 | """ |
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
381 | Private slot handling a change of the escape selector. |
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
382 | |
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
383 | @param checked state of the escape selector |
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
384 | @type bool |
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
385 | """ |
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
386 | if checked: |
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
387 | # only one of regexp or escape can be selected |
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
388 | self.regexpToolButton.setChecked(False) |
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
389 | |
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
390 | @pyqtSlot(bool) |
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
391 | def on_regexpToolButton_toggled(self, checked): |
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
392 | """ |
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
393 | Private slot handling a change of the regexp selector. |
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
394 | |
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
395 | @param checked state of the regexp selector |
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
396 | @type bool |
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
397 | """ |
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
398 | if checked: |
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
399 | # only one of regexp or escape can be selected |
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
400 | self.escapeToolButton.setChecked(False) |
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
401 | |
10492
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
402 | @pyqtSlot() |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
403 | def on_filtersConfigButton_clicked(self): |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
404 | """ |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
405 | Private slot to edit the list of defined file filter entries. |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
406 | """ |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
407 | from .FindFileFiltersEditDialog import FindFileFiltersEditDialog |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
408 | |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
409 | dlg = FindFileFiltersEditDialog(self.__filters, self) |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
410 | if dlg.exec() == QDialog.DialogCode.Accepted: |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
411 | filters = dlg.getFilters() |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
412 | Preferences.getSettings().setValue( |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
413 | "FindFileWidget/FileFilters", json.dumps(filters) |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
414 | ) |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
415 | self.__populateFiltersSelector() |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
416 | |
8614 | 417 | @pyqtSlot(str) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
418 | def on_findtextCombo_editTextChanged(self, text): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
419 | """ |
846
869c200be26e
Fixed an omission in the find and replace dialog and formatted it according PEP 8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
420 | Private slot to handle the editTextChanged signal of the find |
869c200be26e
Fixed an omission in the find and replace dialog and formatted it according PEP 8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
421 | text combo. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
422 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
423 | @param text (ignored) |
10433
328f3ec4b77a
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10430
diff
changeset
|
424 | @type str |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
425 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
426 | self.__enableFindButton() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
427 | |
8614 | 428 | @pyqtSlot(str) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
429 | def on_replacetextCombo_editTextChanged(self, text): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
430 | """ |
846
869c200be26e
Fixed an omission in the find and replace dialog and formatted it according PEP 8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
431 | Private slot to handle the editTextChanged signal of the replace |
869c200be26e
Fixed an omission in the find and replace dialog and formatted it according PEP 8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
432 | text combo. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
433 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
434 | @param text (ignored) |
10433
328f3ec4b77a
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10430
diff
changeset
|
435 | @type str |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
436 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
437 | self.__enableFindButton() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
438 | |
8614 | 439 | @pyqtSlot(str) |
4589
b648ccbdbef9
Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4278
diff
changeset
|
440 | def on_dirPicker_editTextChanged(self, text): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
441 | """ |
846
869c200be26e
Fixed an omission in the find and replace dialog and formatted it according PEP 8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
442 | Private slot to handle the textChanged signal of the directory |
4589
b648ccbdbef9
Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4278
diff
changeset
|
443 | picker. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
444 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
445 | @param text (ignored) |
10433
328f3ec4b77a
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10430
diff
changeset
|
446 | @type str |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
447 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
448 | self.__enableFindButton() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
449 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
450 | @pyqtSlot() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
451 | def on_projectButton_clicked(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
452 | """ |
7109
6191abce8002
FindFileDialog: fixed a situation where the Find button is not enabled when it should.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6942
diff
changeset
|
453 | Private slot to handle the selection of the 'Project' radio button. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
454 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
455 | self.__enableFindButton() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
456 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
457 | @pyqtSlot() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
458 | def on_dirButton_clicked(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
459 | """ |
7109
6191abce8002
FindFileDialog: fixed a situation where the Find button is not enabled when it should.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6942
diff
changeset
|
460 | Private slot to handle the selection of the 'Directory' radio button. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
461 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
462 | self.__enableFindButton() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
463 | |
7109
6191abce8002
FindFileDialog: fixed a situation where the Find button is not enabled when it should.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6942
diff
changeset
|
464 | @pyqtSlot() |
6191abce8002
FindFileDialog: fixed a situation where the Find button is not enabled when it should.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6942
diff
changeset
|
465 | def on_openFilesButton_clicked(self): |
7139
9bb36ec2d1b5
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7109
diff
changeset
|
466 | """ |
9bb36ec2d1b5
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7109
diff
changeset
|
467 | Private slot to handle the selection of the 'Open Files' radio button. |
9bb36ec2d1b5
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7109
diff
changeset
|
468 | """ |
9bb36ec2d1b5
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7109
diff
changeset
|
469 | self.__enableFindButton() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
470 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
471 | @pyqtSlot() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
472 | def on_filterCheckBox_clicked(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
473 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
474 | Private slot to handle the selection of the file filter check box. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
475 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
476 | self.__enableFindButton() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
477 | |
10492
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
478 | @pyqtSlot(int) |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
479 | def on_filterComboBox_currentIndexChanged(self, index): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
480 | """ |
10492
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
481 | Private slot to handle the selection of a file filter. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
482 | |
10492
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
483 | @param index index of the selected entry |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
484 | @type int |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
485 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
486 | self.__enableFindButton() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
487 | |
8614 | 488 | @pyqtSlot() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
489 | def __enableFindButton(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
490 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
491 | Private slot called to enable the find button. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
492 | """ |
7264
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
493 | if ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
494 | self.findtextCombo.currentText() == "" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
495 | or ( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
496 | self.dirButton.isChecked() |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
497 | and ( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
498 | self.dirPicker.currentText() == "" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
499 | or not os.path.exists(os.path.abspath(self.dirPicker.currentText())) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
500 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
501 | ) |
10492
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
502 | or ( |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
503 | self.filterCheckBox.isChecked() |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
504 | and self.filterComboBox.currentText() == "" |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
505 | ) |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
506 | or (self.projectButton.isChecked() and not self.__project.isOpen()) |
7264
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
507 | ): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
508 | self.findButton.setEnabled(False) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
509 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
510 | self.findButton.setEnabled(True) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
511 | |
855
d8c4113a9274
Fixed an issue of the find/replace in file dialog where a replace would change the eol as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
846
diff
changeset
|
512 | def __stripEol(self, txt): |
d8c4113a9274
Fixed an issue of the find/replace in file dialog where a replace would change the eol as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
846
diff
changeset
|
513 | """ |
d8c4113a9274
Fixed an issue of the find/replace in file dialog where a replace would change the eol as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
846
diff
changeset
|
514 | Private method to strip the eol part. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
515 | |
8614 | 516 | @param txt line of text that should be treated |
517 | @type str | |
518 | @return text with eol stripped | |
519 | @rtype str | |
855
d8c4113a9274
Fixed an issue of the find/replace in file dialog where a replace would change the eol as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
846
diff
changeset
|
520 | """ |
10435
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
521 | return txt.rstrip("\n\r") |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
522 | |
10492
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
523 | def __buildReFileFilter(self, fileFilter): |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
524 | """ |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
525 | Private method to convert a file filter expression into a valid re search |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
526 | pattern. |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
527 | |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
528 | @param fileFilter file filter expression |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
529 | @type str |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
530 | @return re search pattern with dot, question mark and star converted |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
531 | @rtype str |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
532 | """ |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
533 | return "^{0}$".format( |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
534 | fileFilter.strip().replace(".", r"\.").replace("*", ".*").replace("?", ".") |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
535 | ) |
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
536 | |
8614 | 537 | @pyqtSlot() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
538 | def __stopSearch(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
539 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
540 | Private slot to handle the stop button being pressed. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
541 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
542 | self.__cancelSearch = True |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
543 | |
8614 | 544 | @pyqtSlot() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
545 | def __doSearch(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
546 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
547 | Private slot to handle the find button being pressed. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
548 | """ |
7264
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
549 | if ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
550 | self.__replaceMode |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
551 | and not ericApp().getObject("ViewManager").checkAllDirty() |
7264
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
552 | ): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
553 | return |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
554 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
555 | self.__cancelSearch = False |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
556 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
557 | if self.filterCheckBox.isChecked(): |
10492
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
558 | fileFilter = self.filterComboBox.currentData() |
7264
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
559 | fileFilterList = [ |
10492
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
560 | self.__buildReFileFilter(filter) for filter in fileFilter.split(";") |
7264
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
561 | ] |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
562 | filterRe = re.compile("|".join(fileFilterList)) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
563 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
564 | if self.projectButton.isChecked(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
565 | if self.filterCheckBox.isChecked(): |
7992
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
566 | files = [ |
9517
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
567 | self.__project.getRelativePath(file) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
568 | for file in self.__getFileList( |
9517
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
569 | self.__project.getProjectPath(), |
7992
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
570 | filterRe, |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
571 | excludeHiddenDirs=self.excludeHiddenCheckBox.isChecked(), |
7992
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
572 | ) |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
573 | ] |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
574 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
575 | files = [] |
9517
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
576 | for row in range(self.fileTypeList.count()): |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
577 | itm = self.fileTypeList.item(row) |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
578 | if itm.checkState() == Qt.CheckState.Checked: |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
579 | files += self.__project.getProjectData( |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
580 | dataKey=itm.data(Qt.ItemDataRole.UserRole) |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
581 | ) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
582 | elif self.dirButton.isChecked(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
583 | if not self.filterCheckBox.isChecked(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
584 | filters = [] |
9517
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
585 | if self.__project.isOpen() and os.path.abspath( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
586 | self.dirPicker.currentText() |
9517
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
587 | ).startswith(self.__project.getProjectPath()): |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
588 | for row in range(self.fileTypeList.count()): |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
589 | itm = self.fileTypeList.item(row) |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
590 | if itm.checkState() == Qt.CheckState.Checked: |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
591 | filters.extend( |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
592 | [ |
10492
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
593 | self.__buildReFileFilter(assoc) |
9517
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
594 | for assoc in self.__project.getFiletypeAssociations( |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
595 | itm.data(Qt.ItemDataRole.UserRole) |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
596 | ) |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
597 | ] |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
598 | ) |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
599 | else: |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
600 | for row in range(self.fileTypeList.count()): |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
601 | itm = self.fileTypeList.item(row) |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
602 | if itm.checkState() == Qt.CheckState.Checked: |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
603 | fileType = itm.data(Qt.ItemDataRole.UserRole) |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
604 | if fileType == "SOURCES": |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
605 | filters.extend( |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
606 | [ |
10492
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
607 | self.__buildReFileFilter(assoc) |
10373
093dcebe5ecb
Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10050
diff
changeset
|
608 | for assoc in Preferences.getEditorLexerAssocs() |
9517
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
609 | if assoc |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
610 | not in self.__project.getFileCategoryExtension( |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
611 | fileType, reverse=True |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
612 | ) |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
613 | ] |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
614 | ) |
9517
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
615 | else: |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
616 | filters.extend( |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
617 | [ |
10492
53eac4c7d10b
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10486
diff
changeset
|
618 | self.__buildReFileFilter(ext) |
9517
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
619 | for ext in self.__project.getFileCategoryExtension( |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
620 | # __IGNORE_WARNING__ |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
621 | fileType |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
622 | ) |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
623 | ] |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
624 | ) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
625 | filterString = "|".join(filters) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
626 | filterRe = re.compile(filterString) |
846
869c200be26e
Fixed an omission in the find and replace dialog and formatted it according PEP 8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
627 | files = self.__getFileList( |
4589
b648ccbdbef9
Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4278
diff
changeset
|
628 | os.path.abspath(self.dirPicker.currentText()), |
7992
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
629 | filterRe, |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
630 | excludeHiddenDirs=self.excludeHiddenCheckBox.isChecked(), |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
631 | excludeHiddenFiles=self.excludeHiddenCheckBox.isChecked(), |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
632 | ) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
633 | elif self.openFilesButton.isChecked(): |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8347
diff
changeset
|
634 | vm = ericApp().getObject("ViewManager") |
2214
4ce1ebcc3806
Added actions to open the find in files and replace in files dialogs in a mode that searches open files only.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1640
diff
changeset
|
635 | vm.checkAllDirty() |
4ce1ebcc3806
Added actions to open the find in files and replace in files dialogs in a mode that searches open files only.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1640
diff
changeset
|
636 | files = vm.getOpenFilenames() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
637 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
638 | self.findList.clear() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
639 | QApplication.processEvents() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
640 | self.findProgress.setMaximum(len(files)) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
641 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
642 | # retrieve the values |
10435
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
643 | esc = self.escapeToolButton.isChecked() |
8846
4196ec4c37a5
Some optimizations to the find location and find in file panes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8809
diff
changeset
|
644 | reg = self.regexpToolButton.isChecked() |
4196ec4c37a5
Some optimizations to the find location and find in file panes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8809
diff
changeset
|
645 | wo = self.wordToolButton.isChecked() |
4196ec4c37a5
Some optimizations to the find location and find in file panes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8809
diff
changeset
|
646 | cs = self.caseToolButton.isChecked() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
647 | ct = self.findtextCombo.currentText() |
10435
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
648 | txt = Utilities.unslash(ct) if esc else ct |
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
649 | txt = txt if reg else re.escape(txt) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
650 | if wo: |
432
497e188ee86e
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
293
diff
changeset
|
651 | txt = "\\b{0}\\b".format(txt) |
7192
a22eee00b052
Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7139
diff
changeset
|
652 | flags = re.UNICODE |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
653 | if not cs: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
654 | flags |= re.IGNORECASE |
6
52e8c820d0dd
Removed some superfluous unicode() calls.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
655 | try: |
52e8c820d0dd
Removed some superfluous unicode() calls.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
656 | search = re.compile(txt, flags) |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7
diff
changeset
|
657 | except re.error as why: |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8347
diff
changeset
|
658 | EricMessageBox.critical( |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3012
diff
changeset
|
659 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3186
diff
changeset
|
660 | self.tr("Invalid search expression"), |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
661 | self.tr( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
662 | """<p>The search expression is not valid.</p>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
663 | """<p>Error: {0}</p>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
664 | ).format(str(why)), |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
665 | ) |
6
52e8c820d0dd
Removed some superfluous unicode() calls.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
666 | self.stopButton.setEnabled(False) |
52e8c820d0dd
Removed some superfluous unicode() calls.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
667 | self.findButton.setEnabled(True) |
52e8c820d0dd
Removed some superfluous unicode() calls.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
668 | return |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
669 | # reset the findtextCombo |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
670 | if ct in self.searchHistory: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
671 | self.searchHistory.remove(ct) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
672 | self.searchHistory.insert(0, ct) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
673 | self.findtextCombo.clear() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
674 | self.findtextCombo.addItems(self.searchHistory) |
8636
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
675 | Preferences.getSettings().setValue( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
676 | "FindFileWidget/SearchHistory", self.searchHistory[:30] |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
677 | ) |
8636
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
678 | Preferences.getSettings().setValue( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
679 | "FindFileWidget/ExcludeHidden", self.excludeHiddenCheckBox.isChecked() |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
680 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
681 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
682 | if self.__replaceMode: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
683 | replTxt = self.replacetextCombo.currentText() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
684 | if replTxt in self.replaceHistory: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
685 | self.replaceHistory.remove(replTxt) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
686 | self.replaceHistory.insert(0, replTxt) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
687 | self.replacetextCombo.clear() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
688 | self.replacetextCombo.addItems(self.replaceHistory) |
8637
394377638256
Replaced the direct access to 'Preferences.Prefs.settings' with 'Preferences.getSettings()'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8636
diff
changeset
|
689 | Preferences.getSettings().setValue( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
690 | "FindFileWidget/ReplaceHistory", self.replaceHistory[:30] |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
691 | ) |
10435
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
692 | if esc: |
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
693 | replTxt = Utilities.unslash(replTxt) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
694 | |
268
f6f53503b8d6
Changed the Find in Files dialog to remember the history of the search string, replace string and the search directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
248
diff
changeset
|
695 | if self.dirButton.isChecked(): |
4589
b648ccbdbef9
Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4278
diff
changeset
|
696 | searchDir = self.dirPicker.currentText() |
293
9ecc02b50325
Fixed a variable naming issue in FindFileDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
268
diff
changeset
|
697 | if searchDir in self.dirHistory: |
9ecc02b50325
Fixed a variable naming issue in FindFileDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
268
diff
changeset
|
698 | self.dirHistory.remove(searchDir) |
9ecc02b50325
Fixed a variable naming issue in FindFileDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
268
diff
changeset
|
699 | self.dirHistory.insert(0, searchDir) |
4589
b648ccbdbef9
Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4278
diff
changeset
|
700 | self.dirPicker.clear() |
b648ccbdbef9
Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4278
diff
changeset
|
701 | self.dirPicker.addItems(self.dirHistory) |
8614 | 702 | self.dirPicker.setText(self.dirHistory[0]) |
8636
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
703 | Preferences.getSettings().setValue( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
704 | "FindFileWidget/DirectoryHistory", self.dirHistory[:30] |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
705 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
706 | |
489
844a0a278269
Fixed an issue in the find in files dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
476
diff
changeset
|
707 | # set the button states |
844a0a278269
Fixed an issue in the find in files dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
476
diff
changeset
|
708 | self.stopButton.setEnabled(True) |
844a0a278269
Fixed an issue in the find in files dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
476
diff
changeset
|
709 | self.findButton.setEnabled(False) |
8809
29471a3867ac
Added a 'Clear' button to the 'search in files' and 'search location' panes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8637
diff
changeset
|
710 | self.clearButton.setEnabled(False) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
711 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
712 | # now go through all the files |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
713 | self.__populating = True |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
714 | self.findList.setUpdatesEnabled(False) |
3343
f7a6d271bb40
Modified the find in files dialog to show some statistics when done.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3192
diff
changeset
|
715 | occurrences = 0 |
f7a6d271bb40
Modified the find in files dialog to show some statistics when done.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3192
diff
changeset
|
716 | fileOccurrences = 0 |
8220
006ee31b4835
Applied some more code simplifications suggested by the new Simplify checker (Y113: use enumerate()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
717 | for progress, file in enumerate(files, start=1): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
718 | self.__lastFileItem = None |
3343
f7a6d271bb40
Modified the find in files dialog to show some statistics when done.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3192
diff
changeset
|
719 | found = False |
8614 | 720 | if self.__cancelSearch: |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
721 | break |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
722 | |
8260
2161475d9639
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8235
diff
changeset
|
723 | fn = ( |
9517
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
724 | os.path.join(self.__project.getProjectPath(), file) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
725 | if self.projectButton.isChecked() |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
726 | else file |
8260
2161475d9639
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8235
diff
changeset
|
727 | ) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
728 | # read the file and split it into textlines |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
729 | try: |
5603
4f2dd0850803
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5558
diff
changeset
|
730 | text, encoding, hashStr = Utilities.readEncodedFileWithHash(fn) |
855
d8c4113a9274
Fixed an issue of the find/replace in file dialog where a replace would change the eol as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
846
diff
changeset
|
731 | lines = text.splitlines(True) |
10050
3750abc45d5e
Corrected some code style issues detected by the extended checkers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9653
diff
changeset
|
732 | except (OSError, UnicodeError): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
733 | self.findProgress.setValue(progress) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
734 | continue |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
735 | |
8932
a21e80dde10e
Don't process events after each file to prevent a slow search.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
8917
diff
changeset
|
736 | now = time.monotonic() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
737 | # now perform the search and display the lines found |
8220
006ee31b4835
Applied some more code simplifications suggested by the new Simplify checker (Y113: use enumerate()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
738 | for count, line in enumerate(lines, start=1): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
739 | if self.__cancelSearch: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
740 | break |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
741 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
742 | contains = search.search(line) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
743 | if contains: |
3343
f7a6d271bb40
Modified the find in files dialog to show some statistics when done.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3192
diff
changeset
|
744 | occurrences += 1 |
f7a6d271bb40
Modified the find in files dialog to show some statistics when done.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3192
diff
changeset
|
745 | found = True |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
746 | start = contains.start() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
747 | end = contains.end() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
748 | if self.__replaceMode: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
749 | rline = search.sub(replTxt, line) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
750 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
751 | rline = "" |
10435
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
752 | line = Utilities.slash(line) if esc else self.__stripEol(line) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
753 | if len(line) > 1024: |
432
497e188ee86e
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
293
diff
changeset
|
754 | line = "{0} ...".format(line[:1024]) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
755 | if self.__replaceMode: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
756 | if len(rline) > 1024: |
432
497e188ee86e
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
293
diff
changeset
|
757 | rline = "{0} ...".format(line[:1024]) |
10435
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
758 | line = "- {0}\n+ {1}".format( |
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
759 | line, |
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
760 | "\n ".join( |
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
761 | Utilities.slash(rl) for rl in rline.splitlines(True) |
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
762 | ) |
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
763 | if esc |
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
764 | else self.__stripEol(rline), |
c712d09cc839
Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10433
diff
changeset
|
765 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
766 | self.__createItem(file, count, line, start, end, rline, hashStr) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
767 | |
8932
a21e80dde10e
Don't process events after each file to prevent a slow search.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
8917
diff
changeset
|
768 | if time.monotonic() - now > 0.01: |
a21e80dde10e
Don't process events after each file to prevent a slow search.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
8917
diff
changeset
|
769 | QApplication.processEvents() |
a21e80dde10e
Don't process events after each file to prevent a slow search.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
8917
diff
changeset
|
770 | now = time.monotonic() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
771 | |
3343
f7a6d271bb40
Modified the find in files dialog to show some statistics when done.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3192
diff
changeset
|
772 | if found: |
f7a6d271bb40
Modified the find in files dialog to show some statistics when done.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3192
diff
changeset
|
773 | fileOccurrences += 1 |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
774 | self.findProgress.setValue(progress) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
775 | |
42
23b45a742e17
Fixed a bunch of issues including a workaround for a bug in the Python email package (s. EmailDialog.py).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
13
diff
changeset
|
776 | if not files: |
23b45a742e17
Fixed a bunch of issues including a workaround for a bug in the Python email package (s. EmailDialog.py).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
13
diff
changeset
|
777 | self.findProgress.setMaximum(1) |
23b45a742e17
Fixed a bunch of issues including a workaround for a bug in the Python email package (s. EmailDialog.py).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
13
diff
changeset
|
778 | self.findProgress.setValue(1) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
779 | |
3343
f7a6d271bb40
Modified the find in files dialog to show some statistics when done.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3192
diff
changeset
|
780 | resultFormat = self.tr("{0} / {1}", "occurrences / files") |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
781 | self.findProgressLabel.setPath( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
782 | resultFormat.format( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
783 | self.tr("%n occurrence(s)", "", occurrences), |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
784 | self.tr("%n file(s)", "", fileOccurrences), |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
785 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
786 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
787 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
788 | self.findList.setUpdatesEnabled(True) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
789 | self.findList.sortItems( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
790 | self.findList.sortColumn(), self.findList.header().sortIndicatorOrder() |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
791 | ) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
792 | self.findList.resizeColumnToContents(1) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
793 | if self.__replaceMode: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
794 | self.findList.header().resizeSection(0, self.__section0Size + 30) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
795 | self.findList.header().setStretchLastSection(True) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
796 | self.__populating = False |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
797 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
798 | self.stopButton.setEnabled(False) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
799 | self.findButton.setEnabled(True) |
8809
29471a3867ac
Added a 'Clear' button to the 'search in files' and 'search location' panes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8637
diff
changeset
|
800 | self.clearButton.setEnabled(self.findList.topLevelItemCount() != 0) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
801 | |
8809
29471a3867ac
Added a 'Clear' button to the 'search in files' and 'search location' panes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8637
diff
changeset
|
802 | @pyqtSlot() |
29471a3867ac
Added a 'Clear' button to the 'search in files' and 'search location' panes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8637
diff
changeset
|
803 | def __clearResults(self): |
29471a3867ac
Added a 'Clear' button to the 'search in files' and 'search location' panes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8637
diff
changeset
|
804 | """ |
29471a3867ac
Added a 'Clear' button to the 'search in files' and 'search location' panes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8637
diff
changeset
|
805 | Private slot to clear the current search results. |
29471a3867ac
Added a 'Clear' button to the 'search in files' and 'search location' panes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8637
diff
changeset
|
806 | """ |
29471a3867ac
Added a 'Clear' button to the 'search in files' and 'search location' panes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8637
diff
changeset
|
807 | self.findList.clear() |
29471a3867ac
Added a 'Clear' button to the 'search in files' and 'search location' panes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8637
diff
changeset
|
808 | self.replaceButton.setEnabled(False) |
29471a3867ac
Added a 'Clear' button to the 'search in files' and 'search location' panes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8637
diff
changeset
|
809 | self.clearButton.setEnabled(False) |
8846
4196ec4c37a5
Some optimizations to the find location and find in file panes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8809
diff
changeset
|
810 | self.findProgressLabel.setPath("") |
4196ec4c37a5
Some optimizations to the find location and find in file panes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8809
diff
changeset
|
811 | self.findProgress.setValue(0) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
812 | |
8614 | 813 | @pyqtSlot(QTreeWidgetItem, int) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
814 | def on_findList_itemDoubleClicked(self, itm, column): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
815 | """ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
894
diff
changeset
|
816 | Private slot to handle the double click on a file item. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
817 | |
8636
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
818 | It emits a signal depending on the file extension. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
819 | |
8614 | 820 | @param itm the double clicked tree item |
821 | @type QTreeWidgetItem | |
822 | @param column column that was double clicked (ignored) | |
823 | @type int | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
824 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
825 | if itm.parent(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
826 | file = itm.parent().text(0) |
7
c679fb30c8f3
Change code dealing with QVariant (and QSettings) to use the PyQt4 QVariant v2 API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6
diff
changeset
|
827 | line = itm.data(0, self.lineRole) |
c679fb30c8f3
Change code dealing with QVariant (and QSettings) to use the PyQt4 QVariant v2 API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6
diff
changeset
|
828 | start = itm.data(0, self.startRole) |
c679fb30c8f3
Change code dealing with QVariant (and QSettings) to use the PyQt4 QVariant v2 API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6
diff
changeset
|
829 | end = itm.data(0, self.endRole) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
830 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
831 | file = itm.text(0) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
832 | line = 1 |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
833 | start = 0 |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
834 | end = 0 |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
835 | |
8636
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
836 | fileName = ( |
9517
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
837 | os.path.join(self.__project.getProjectPath(), file) |
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
838 | if self.__project.isOpen() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
839 | else file |
8636
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
840 | ) |
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
841 | fileExt = os.path.splitext(fileName)[1] |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
842 | |
8636
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
843 | if fileExt == ".ui": |
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
844 | self.designerFile.emit(fileName) |
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
845 | elif fileExt == ".ts": |
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
846 | self.linguistFile.emit(fileName) |
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
847 | elif fileExt == ".qm": |
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
848 | self.trpreview.emit([fileName]) |
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
849 | elif fileExt in (".egj", ".e5g"): |
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
850 | self.umlFile.emit(fileName) |
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
851 | elif fileExt == ".svg": |
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
852 | self.svgFile.emit(fileName) |
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
853 | elif fileExt[1:] in QImageReader.supportedImageFormats(): |
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
854 | self.pixmapFile.emit(fileName) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
855 | else: |
8636
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
856 | if Utilities.MimeTypes.isTextFile(fileName): |
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
857 | self.sourceFile.emit(fileName, line, "", start, end) |
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
858 | else: |
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
859 | QDesktopServices.openUrl(QUrl(fileName)) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
860 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
861 | def __getFileList( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
862 | self, path, filterRe, excludeHiddenDirs=False, excludeHiddenFiles=False |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
863 | ): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
864 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
865 | Private method to get a list of files to search. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
866 | |
7992
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
867 | @param path the root directory to search in |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
868 | @type str |
846
869c200be26e
Fixed an omission in the find and replace dialog and formatted it according PEP 8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
869 | @param filterRe regular expression defining the filter |
7992
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
870 | criteria |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
871 | @type regexp object |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
872 | @param excludeHiddenDirs flag indicating to exclude hidden directories |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
873 | @type bool |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
874 | @param excludeHiddenFiles flag indicating to exclude hidden files |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
875 | @type bool |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
876 | @return list of files to be processed |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
877 | @rtype list of str |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
878 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
879 | path = os.path.abspath(path) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
880 | files = [] |
7992
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
881 | for dirname, dirs, filenames in os.walk(path): |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
882 | files.extend( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
883 | [ |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
884 | os.path.join(dirname, f) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
885 | for f in filenames |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
886 | if ( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
887 | not (excludeHiddenFiles and f.startswith(".")) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
888 | and re.match(filterRe, f) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
889 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
890 | ] |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
891 | ) |
7992
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
892 | if excludeHiddenDirs: |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
893 | for d in dirs[:]: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
894 | if d.startswith("."): |
7992
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
895 | dirs.remove(d) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
896 | return files |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
897 | |
9037
907540e4f741
Created new branch <external_find>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8943
diff
changeset
|
898 | def __setSearchDirectory(self, searchDir): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
899 | """ |
9037
907540e4f741
Created new branch <external_find>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8943
diff
changeset
|
900 | Private slot to set the name of the directory to search in. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
901 | |
8614 | 902 | @param searchDir name of the directory to search in |
903 | @type str | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
904 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
905 | self.dirButton.setChecked(True) |
9624
b47dfa7a137d
Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9586
diff
changeset
|
906 | self.dirPicker.setEditText(FileSystemUtilities.toNativeSeparators(searchDir)) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
907 | |
8614 | 908 | @pyqtSlot() |
9037
907540e4f741
Created new branch <external_find>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8943
diff
changeset
|
909 | def __setOpenFiles(self): |
2214
4ce1ebcc3806
Added actions to open the find in files and replace in files dialogs in a mode that searches open files only.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1640
diff
changeset
|
910 | """ |
9037
907540e4f741
Created new branch <external_find>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8943
diff
changeset
|
911 | Private slot to set the mode to search in open files. |
2214
4ce1ebcc3806
Added actions to open the find in files and replace in files dialogs in a mode that searches open files only.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1640
diff
changeset
|
912 | """ |
4ce1ebcc3806
Added actions to open the find in files and replace in files dialogs in a mode that searches open files only.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1640
diff
changeset
|
913 | self.openFilesButton.setChecked(True) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
914 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
915 | @pyqtSlot() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
916 | def on_replaceButton_clicked(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
917 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
918 | Private slot to perform the requested replace actions. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
919 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
920 | self.findProgress.setMaximum(self.findList.topLevelItemCount()) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
921 | self.findProgress.setValue(0) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
922 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
923 | for index in range(self.findList.topLevelItemCount()): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
924 | itm = self.findList.topLevelItem(index) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
925 | if itm.checkState(0) in [ |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
926 | Qt.CheckState.PartiallyChecked, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
927 | Qt.CheckState.Checked, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
928 | ]: |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
929 | file = itm.text(0) |
682
91114a975eda
Added a check to the find and replace dialog to make sure, that no external changes were done between the find run and the replace run.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
654
diff
changeset
|
930 | origHash = itm.data(0, self.md5Role) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
931 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
932 | if self.projectButton.isChecked(): |
9517
d73c3a1e432b
Continued refactoring of the project browser related code in order to extract some as plugins later on.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9516
diff
changeset
|
933 | fn = os.path.join(self.__project.getProjectPath(), file) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
934 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
935 | fn = file |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
936 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
937 | # read the file and split it into textlines |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
938 | try: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
939 | text, encoding, hashStr = Utilities.readEncodedFileWithHash(fn) |
855
d8c4113a9274
Fixed an issue of the find/replace in file dialog where a replace would change the eol as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
846
diff
changeset
|
940 | lines = text.splitlines(True) |
10050
3750abc45d5e
Corrected some code style issues detected by the extended checkers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9653
diff
changeset
|
941 | except (OSError, UnicodeError) as err: |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8347
diff
changeset
|
942 | EricMessageBox.critical( |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3012
diff
changeset
|
943 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3186
diff
changeset
|
944 | self.tr("Replace in Files"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3186
diff
changeset
|
945 | self.tr( |
846
869c200be26e
Fixed an omission in the find and replace dialog and formatted it according PEP 8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
946 | """<p>Could not read the file <b>{0}</b>.""" |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
947 | """ Skipping it.</p><p>Reason: {1}</p>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
948 | ).format(fn, str(err)), |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
949 | ) |
8220
006ee31b4835
Applied some more code simplifications suggested by the new Simplify checker (Y113: use enumerate()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
950 | self.findProgress.setValue(index) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
951 | continue |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
952 | |
682
91114a975eda
Added a check to the find and replace dialog to make sure, that no external changes were done between the find run and the replace run.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
654
diff
changeset
|
953 | # Check the original and the current hash. Skip the file, |
91114a975eda
Added a check to the find and replace dialog to make sure, that no external changes were done between the find run and the replace run.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
654
diff
changeset
|
954 | # if hashes are different. |
5603
4f2dd0850803
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5558
diff
changeset
|
955 | if origHash != hashStr: |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8347
diff
changeset
|
956 | EricMessageBox.critical( |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3012
diff
changeset
|
957 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3186
diff
changeset
|
958 | self.tr("Replace in Files"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3186
diff
changeset
|
959 | self.tr( |
846
869c200be26e
Fixed an omission in the find and replace dialog and formatted it according PEP 8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
960 | """<p>The current and the original hash of the""" |
869c200be26e
Fixed an omission in the find and replace dialog and formatted it according PEP 8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
961 | """ file <b>{0}</b> are different. Skipping it.""" |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
962 | """</p><p>Hash 1: {1}</p><p>Hash 2: {2}</p>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
963 | ).format(fn, origHash, hashStr), |
682
91114a975eda
Added a check to the find and replace dialog to make sure, that no external changes were done between the find run and the replace run.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
654
diff
changeset
|
964 | ) |
8220
006ee31b4835
Applied some more code simplifications suggested by the new Simplify checker (Y113: use enumerate()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
965 | self.findProgress.setValue(index) |
682
91114a975eda
Added a check to the find and replace dialog to make sure, that no external changes were done between the find run and the replace run.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
654
diff
changeset
|
966 | continue |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
967 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
968 | # replace the lines authorized by the user |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
969 | for cindex in range(itm.childCount()): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
970 | citm = itm.child(cindex) |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7992
diff
changeset
|
971 | if citm.checkState(0) == Qt.CheckState.Checked: |
7
c679fb30c8f3
Change code dealing with QVariant (and QSettings) to use the PyQt4 QVariant v2 API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6
diff
changeset
|
972 | line = citm.data(0, self.lineRole) |
c679fb30c8f3
Change code dealing with QVariant (and QSettings) to use the PyQt4 QVariant v2 API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6
diff
changeset
|
973 | rline = citm.data(0, self.replaceRole) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
974 | lines[line - 1] = rline |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
975 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
976 | # write the file |
855
d8c4113a9274
Fixed an issue of the find/replace in file dialog where a replace would change the eol as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
846
diff
changeset
|
977 | txt = "".join(lines) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
978 | try: |
45
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
42
diff
changeset
|
979 | Utilities.writeEncodedFile(fn, txt, encoding) |
10050
3750abc45d5e
Corrected some code style issues detected by the extended checkers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9653
diff
changeset
|
980 | except (OSError, UnicodeError, Utilities.CodingError) as err: |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8347
diff
changeset
|
981 | EricMessageBox.critical( |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3012
diff
changeset
|
982 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3186
diff
changeset
|
983 | self.tr("Replace in Files"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3186
diff
changeset
|
984 | self.tr( |
846
869c200be26e
Fixed an omission in the find and replace dialog and formatted it according PEP 8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
985 | """<p>Could not save the file <b>{0}</b>.""" |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
986 | """ Skipping it.</p><p>Reason: {1}</p>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
987 | ).format(fn, str(err)), |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
988 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
989 | |
8265
0090cfa83159
Converted enum names to use all uppercase letters (except for E5PathPickerModes to keep plug-ins using this compatible with previous eric releases).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8260
diff
changeset
|
990 | self.findProgress.setValue(index + 1) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
991 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
992 | self.findProgressLabel.setPath("") |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
993 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
994 | self.findList.clear() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
995 | self.replaceButton.setEnabled(False) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
996 | self.findButton.setEnabled(True) |
8809
29471a3867ac
Added a 'Clear' button to the 'search in files' and 'search location' panes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8637
diff
changeset
|
997 | self.clearButton.setEnabled(False) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
998 | |
8614 | 999 | @pyqtSlot(QPoint) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1000 | def __contextMenuRequested(self, pos): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1001 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1002 | Private slot to handle the context menu request. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1003 | |
8614 | 1004 | @param pos position the context menu shall be shown |
1005 | @type QPoint | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1006 | """ |
10486
157f119cd10d
Corrected a code style issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10484
diff
changeset
|
1007 | if self.findList.topLevelItemCount() and ( |
157f119cd10d
Corrected a code style issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10484
diff
changeset
|
1008 | self.findList.selectedItems() or self.__replaceMode |
10484
ad7a6d699a0d
Find File Widget
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10469
diff
changeset
|
1009 | ): |
ad7a6d699a0d
Find File Widget
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10469
diff
changeset
|
1010 | menu = QMenu(self) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1011 | |
10484
ad7a6d699a0d
Find File Widget
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10469
diff
changeset
|
1012 | if self.findList.selectedItems(): |
ad7a6d699a0d
Find File Widget
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10469
diff
changeset
|
1013 | menu.addAction(self.tr("Open"), self.__openFile) |
ad7a6d699a0d
Find File Widget
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10469
diff
changeset
|
1014 | menu.addAction( |
ad7a6d699a0d
Find File Widget
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10469
diff
changeset
|
1015 | self.tr("Copy Path to Clipboard"), self.__copyToClipboard |
ad7a6d699a0d
Find File Widget
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10469
diff
changeset
|
1016 | ) |
ad7a6d699a0d
Find File Widget
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10469
diff
changeset
|
1017 | if self.__replaceMode: |
ad7a6d699a0d
Find File Widget
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10469
diff
changeset
|
1018 | menu.addSeparator() |
ad7a6d699a0d
Find File Widget
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10469
diff
changeset
|
1019 | menu.addAction(self.tr("Select All"), self.__selectAll) |
ad7a6d699a0d
Find File Widget
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10469
diff
changeset
|
1020 | menu.addAction(self.tr("Deselect All"), self.__deselectAll) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1021 | |
10484
ad7a6d699a0d
Find File Widget
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10469
diff
changeset
|
1022 | menu.exec(QCursor.pos()) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1023 | |
8614 | 1024 | @pyqtSlot() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1025 | def __openFile(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1026 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1027 | Private slot to open the currently selected entry. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1028 | """ |
10484
ad7a6d699a0d
Find File Widget
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10469
diff
changeset
|
1029 | selectedItems = self.findList.selectedItems() |
ad7a6d699a0d
Find File Widget
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10469
diff
changeset
|
1030 | if selectedItems: |
ad7a6d699a0d
Find File Widget
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10469
diff
changeset
|
1031 | self.on_findList_itemDoubleClicked(selectedItems[0], 0) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1032 | |
8614 | 1033 | @pyqtSlot() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1034 | def __copyToClipboard(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1035 | """ |
8614 | 1036 | Private slot to copy the path of an entry to the clipboard. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1037 | """ |
10484
ad7a6d699a0d
Find File Widget
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10469
diff
changeset
|
1038 | selectedItems = self.findList.selectedItems() |
ad7a6d699a0d
Find File Widget
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10469
diff
changeset
|
1039 | if selectedItems: |
ad7a6d699a0d
Find File Widget
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10469
diff
changeset
|
1040 | itm = selectedItems[0] |
ad7a6d699a0d
Find File Widget
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10469
diff
changeset
|
1041 | fn = itm.parent().text(0) if itm.parent() else itm.text(0) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1042 | |
10484
ad7a6d699a0d
Find File Widget
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10469
diff
changeset
|
1043 | cb = QApplication.clipboard() |
ad7a6d699a0d
Find File Widget
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10469
diff
changeset
|
1044 | cb.setText(fn) |
9037
907540e4f741
Created new branch <external_find>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8943
diff
changeset
|
1045 | |
9574 | 1046 | @pyqtSlot() |
1047 | def __deselectAll(self): | |
1048 | """ | |
1049 | Private slot to deselect all entries. | |
1050 | """ | |
1051 | self.__selectAll(check=False) | |
1052 | ||
1053 | @pyqtSlot() | |
1054 | def __selectAll(self, check=True): | |
1055 | """ | |
1056 | Private slot to select all entries. | |
9586
2750e76fc366
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9575
diff
changeset
|
1057 | |
2750e76fc366
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9575
diff
changeset
|
1058 | @param check flag indicating the desired check state (defaults to True) |
2750e76fc366
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9575
diff
changeset
|
1059 | @type bool (optional) |
9574 | 1060 | """ |
1061 | if self.__replaceMode: | |
1062 | for index in range(self.findList.topLevelItemCount()): | |
1063 | itm = self.findList.topLevelItem(index) | |
1064 | itm.setCheckState( | |
1065 | 0, | |
1066 | Qt.CheckState.Checked if check else Qt.CheckState.Unchecked, | |
1067 | ) | |
1068 | ||
9038
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1069 | |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1070 | class FindFileDialog(QDialog): |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1071 | """ |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1072 | Class implementing a dialog to search for text in files and replace it |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1073 | with some other text. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1074 | |
9038
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1075 | The occurrences found are displayed in a tree showing the file name, |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1076 | the line number and the text found. The file will be opened upon a double |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1077 | click onto the respective entry of the list. If the widget is in replace |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1078 | mode the line below shows the text after replacement. Replacements can |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1079 | be authorized by ticking them on. Pressing the replace button performs |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1080 | all ticked replacement operations. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1081 | |
9038
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1082 | @signal sourceFile(str, int, str, int, int) emitted to open a source file |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1083 | at a specificline |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1084 | @signal designerFile(str) emitted to open a Qt-Designer file |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1085 | @signal linguistFile(str) emitted to open a Qt-Linguist (*.ts) file |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1086 | @signal trpreview([str]) emitted to preview Qt-Linguist (*.qm) files |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1087 | @signal pixmapFile(str) emitted to open a pixmap file |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1088 | @signal svgFile(str) emitted to open a SVG file |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1089 | @signal umlFile(str) emitted to open an eric UML file |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1090 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1091 | |
9038
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1092 | sourceFile = pyqtSignal(str, int, str, int, int) |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1093 | designerFile = pyqtSignal(str) |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1094 | linguistFile = pyqtSignal(str) |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1095 | trpreview = pyqtSignal(list) |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1096 | pixmapFile = pyqtSignal(str) |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1097 | svgFile = pyqtSignal(str) |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1098 | umlFile = pyqtSignal(str) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1099 | |
9038
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1100 | def __init__(self, project, parent=None): |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1101 | """ |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1102 | Constructor |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1103 | |
9038
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1104 | @param project reference to the project object |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1105 | @type Project |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1106 | @param parent parent widget of this dialog (defaults to None) |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1107 | @type QWidget (optional) |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1108 | """ |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1109 | super().__init__(parent) |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1110 | self.setWindowFlags(Qt.WindowType.Window) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1111 | |
9038
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1112 | self.__layout = QVBoxLayout() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1113 | |
9038
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1114 | self.__findWidget = FindFileWidget(project, self) |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1115 | self.__layout.addWidget(self.__findWidget) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1116 | |
9038
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1117 | self.__buttonBox = QDialogButtonBox( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1118 | QDialogButtonBox.StandardButton.Close, Qt.Orientation.Horizontal, self |
9038
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1119 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1120 | self.__buttonBox.button(QDialogButtonBox.StandardButton.Close).setAutoDefault( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1121 | False |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1122 | ) |
9038
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1123 | self.__layout.addWidget(self.__buttonBox) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1124 | |
9038
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1125 | self.setLayout(self.__layout) |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1126 | self.resize(600, 800) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1127 | |
9039
3c8aa997bad8
Added capability to configure use of an external "Find Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9038
diff
changeset
|
1128 | # connect the widgets |
9038
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1129 | self.__findWidget.sourceFile.connect(self.sourceFile) |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1130 | self.__findWidget.designerFile.connect(self.designerFile) |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1131 | self.__findWidget.linguistFile.connect(self.linguistFile) |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1132 | self.__findWidget.trpreview.connect(self.trpreview) |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1133 | self.__findWidget.pixmapFile.connect(self.pixmapFile) |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1134 | self.__findWidget.svgFile.connect(self.svgFile) |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1135 | self.__findWidget.umlFile.connect(self.umlFile) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1136 | |
9038
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1137 | self.__buttonBox.accepted.connect(self.accept) |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1138 | self.__buttonBox.rejected.connect(self.reject) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1139 | |
9559
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
1140 | def populateFileCategories(self): |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
1141 | """ |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
1142 | Public method to populate the search file categories list. |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
1143 | """ |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
1144 | self.__findWidget.populateFileCategories() |
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9517
diff
changeset
|
1145 | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1146 | def activate(self, replaceMode=False, txt="", searchDir="", openFiles=False): |
9038
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1147 | """ |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1148 | Public method to activate the dialog with a given mode, a text |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1149 | to search for and some search parameters. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1150 | |
9038
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1151 | @param replaceMode flag indicating replacement mode (defaults to False) |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1152 | @type bool (optional) |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1153 | @param txt text to be searched for (defaults to "") |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1154 | @type str (optional) |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1155 | @param searchDir directory to search in (defaults to "") |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1156 | @type str (optional) |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1157 | @param openFiles flag indicating to operate on open files only |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1158 | (defaults to False) |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1159 | @type bool (optional) |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1160 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1161 | self.__findWidget.activate( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1162 | replaceMode=replaceMode, txt=txt, searchDir=searchDir, openFiles=openFiles |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1163 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
1164 | |
9038
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1165 | self.raise_() |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1166 | self.activateWindow() |
90bcfdd63d47
Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9037
diff
changeset
|
1167 | self.show() |