src/eric7/UI/FindFileWidget.py

Thu, 21 Dec 2023 19:50:01 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 21 Dec 2023 19:50:01 +0100
branch
eric7
changeset 10433
328f3ec4b77a
parent 10430
e440aaf179ce
child 10435
c712d09cc839
permissions
-rw-r--r--

Converted some source code documentation to the new style.

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
9653
e67609152c5e Updated copyright for 2023.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9624
diff changeset
3 # Copyright (c) 2002 - 2023 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
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 import os
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 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
12 import time
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
14 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
15 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
16 from PyQt6.QtWidgets import (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
17 QApplication,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
18 QComboBox,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
19 QDialog,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
20 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
21 QListWidgetItem,
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
22 QMenu,
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
23 QTreeWidgetItem,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
24 QVBoxLayout,
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
25 QWidget,
7264
bedbe458d792 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
26 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
28 from eric7 import Preferences, Utilities
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
29 from eric7.EricGui import EricPixmapCache
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
30 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
31 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
32 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
33 from eric7.SystemUtilities import FileSystemUtilities
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
35 from .Ui_FindFileWidget import Ui_FindFileWidget
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3186
diff changeset
37
10430
e440aaf179ce Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10373
diff changeset
38 # TODO: add support for search and replace strings with escape codes
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
39 class FindFileWidget(QWidget, Ui_FindFileWidget):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 """
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
41 Class implementing a widget to search for text in files and replace it
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
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
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
44 The occurrences found are displayed in a tree showing the file name,
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
45 the line number and the text found. The file will be opened upon a double
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
46 click onto the respective entry of the list. If the widget is in replace
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
47 mode the line below shows the text after replacement. Replacements can
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
48 be authorized by ticking them on. Pressing the replace button performs
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
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
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
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
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
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
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
80 @type Project
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
81 @param parent parent widget of this dialog (defaults to None)
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
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
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
87 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
88
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
89 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
90 self.wordToolButton.setIcon(EricPixmapCache.getIcon("wholeWord"))
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.regexpToolButton.setIcon(EricPixmapCache.getIcon("regexp"))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
92
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
93 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
94 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
95 self.dirPicker.setSizeAdjustPolicy(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
96 QComboBox.SizeAdjustPolicy.AdjustToMinimumContentsLengthWithIcon
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
97 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
98
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
99 self.stopButton.setEnabled(False)
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
100 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
101 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
102 self.stopButton.setAutoDefault(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
103
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 self.findButton.setEnabled(False)
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
105 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
106 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
107 self.findButton.setAutoDefault(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
108
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
109 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
110 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
111 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
112 self.clearButton.setAutoDefault(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
113
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
114 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
115 self.replaceButton.setAutoDefault(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
116
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
117 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
118
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 self.findProgressLabel.setMaximumWidth(550)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
120
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
121 self.searchHistory = Preferences.toList(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
122 Preferences.getSettings().value("FindFileWidget/SearchHistory")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
123 )
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
124 self.findtextCombo.lineEdit().setClearButtonEnabled(True)
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
125 self.findtextCombo.lineEdit().returnPressed.connect(self.__doSearch)
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
126 self.findtextCombo.setCompleter(None)
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
127 self.findtextCombo.addItems(self.searchHistory)
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
128 self.findtextCombo.setEditText("")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
129
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
130 self.replaceHistory = Preferences.toList(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
131 Preferences.getSettings().value("FindFileWidget/ReplaceHistory")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
132 )
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
133 self.replacetextCombo.lineEdit().setClearButtonEnabled(True)
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
134 self.replacetextCombo.lineEdit().returnPressed.connect(self.__doSearch)
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
135 self.replacetextCombo.setCompleter(None)
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
136 self.replacetextCombo.addItems(self.replaceHistory)
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
137 self.replacetextCombo.setEditText("")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
138
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
139 self.dirHistory = Preferences.toList(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
140 Preferences.getSettings().value("FindFileWidget/DirectoryHistory")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
141 )
4589
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4278
diff changeset
142 self.dirPicker.addItems(self.dirHistory)
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
143 self.dirPicker.setText("")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
144
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
145 self.excludeHiddenCheckBox.setChecked(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
146 Preferences.toBool(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
147 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
148 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
149 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
150
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
151 self.__project = project
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
152
9559
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
153 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
154
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
155 # 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
156 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
157
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
158 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
159 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
160
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
161 self.__standardListFont = self.findList.font()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 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
163 self.findList.header().setSortIndicator(0, Qt.SortOrder.AscendingOrder)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 self.__section0Size = self.findList.header().sectionSize(0)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 self.findList.setExpandsOnDoubleClick(False)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 self.__cancelSearch = False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 self.__lastFileItem = None
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 self.__populating = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
170
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
171 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
172 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
173
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
174 self.__replaceMode = True
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
175 self.__toggleReplaceMode()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
176
9559
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
177 def populateFileCategories(self):
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
178 """
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
179 Public method to populate the search file categories list.
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
180 """
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
181 # step 1: remember checked entries categories
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
182 checkedCategories = []
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
183 for row in range(self.fileTypeList.count()):
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
184 itm = self.fileTypeList.item(row)
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
185 if itm.checkState() == Qt.CheckState.Checked:
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
186 checkedCategories.append(itm.data(Qt.ItemDataRole.UserRole))
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
187
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
188 # step 2: clear the list
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
189 self.fileTypeList.clear()
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
190
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
191 # step 3: populate the file type list
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
192 for fileCategory in [
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
193 c
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
194 for c in self.__project.getFileCategories()
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
195 if c not in ("TRANSLATIONS", "OTHERS")
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
196 ]:
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
197 itm = QListWidgetItem(
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
198 self.__project.getFileCategoryType(fileCategory), self.fileTypeList
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
199 )
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
200 itm.setData(Qt.ItemDataRole.UserRole, fileCategory)
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
201 itm.setFlags(itm.flags() | Qt.ItemFlag.ItemIsUserCheckable)
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
202 if bool(checkedCategories):
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
203 itm.setCheckState(
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
204 Qt.CheckState.Checked
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
205 if fileCategory in checkedCategories
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
206 else Qt.CheckState.Unchecked
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 else:
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
209 # first time population
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
210 itm.setCheckState(
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
211 Qt.CheckState.Checked
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
212 if fileCategory == "SOURCES"
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
213 else Qt.CheckState.Unchecked
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
214 )
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
215
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
216 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
217 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218 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
219
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
220 @param file filename of file
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
221 @type str
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
222 @param line line number
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
223 @type int
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
224 @param text text found
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
225 @type str
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
226 @param start start position of match
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
227 @type int
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
228 @param end end position of match
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
229 @type int
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
230 @param replTxt text with replacements applied (defaults to "")
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
231 @type str (optional)
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
232 @param md5 MD5 hash of the file (defaults to "")
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
233 @type str (optional)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
234 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
235 if self.__lastFileItem is None:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
236 # It's a new file
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
237 self.__lastFileItem = QTreeWidgetItem(self.findList, [file])
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
238 self.__lastFileItem.setFirstColumnSpanned(True)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
239 self.__lastFileItem.setExpanded(True)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
240 if self.__replaceMode:
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
241 self.__lastFileItem.setFlags(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
242 self.__lastFileItem.flags()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
243 | Qt.ItemFlag.ItemIsUserCheckable
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
244 | Qt.ItemFlag.ItemIsAutoTristate
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
245 )
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
246 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
247
1640
1699d46026cd Fixed a compatibility issue with Qt 4.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
248 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
249 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
250 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
251 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
252 )
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
253 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
254 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
255 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
256 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
257 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
258 itm.setData(0, self.replaceRole, replTxt)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
259 if self.__replaceMode:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
260 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
261 itm.setCheckState(0, Qt.CheckState.Checked)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
262 self.replaceButton.setEnabled(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
263
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
264 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
265 """
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
266 Public method to activate the widget with a given mode, a text
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
267 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
268
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
269 @param replaceMode flag indicating replacement mode (defaults to False)
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
270 @type bool (optional)
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
271 @param txt text to be searched for (defaults to "")
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
272 @type str (optional)
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
273 @param searchDir directory to search in (defaults to "")
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
274 @type str (optional)
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
275 @param openFiles flag indicating to operate on open files only
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
276 (defaults to False)
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
277 @type bool (optional)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
278 """
9559
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
279 self.populateFileCategories()
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
280
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
281 if self.__project.isOpen():
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
282 self.projectButton.setEnabled(True)
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
283 self.projectButton.setChecked(True)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
284 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
285 self.projectButton.setEnabled(False)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
286 self.dirButton.setChecked(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
287
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
288 self.findtextCombo.setEditText(txt)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
289 self.findtextCombo.lineEdit().selectAll()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
290 self.findtextCombo.setFocus()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
291
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
292 if self.__replaceMode != replaceMode:
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
293 self.__toggleReplaceMode()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
294
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
295 if searchDir:
9037
907540e4f741 Created new branch <external_find>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8943
diff changeset
296 self.__setSearchDirectory(searchDir)
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
297 if openFiles:
9037
907540e4f741 Created new branch <external_find>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8943
diff changeset
298 self.__setOpenFiles()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
299
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
300 @pyqtSlot()
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
301 def __toggleReplaceMode(self):
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
302 """
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
303 Private slot to toggle the dialog mode.
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
304 """
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
305 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
306
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
307 # change some interface elements and properties
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
308 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
309 self.clearButton.setEnabled(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
310
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
311 if self.__replaceMode:
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
312 self.replaceButton.show()
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
313 self.replaceLabel.show()
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
314 self.replacetextCombo.show()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
315
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
316 self.replaceButton.setEnabled(False)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
317 self.replacetextCombo.setEditText("")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
318
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
319 font = Preferences.getEditorOtherFonts("MonospacedFont")
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
320 self.findList.setFont(font)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
321
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
322 self.modeToggleButton.setIcon(EricPixmapCache.getIcon("1uparrow"))
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
323 else:
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
324 self.replaceLabel.hide()
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
325 self.replacetextCombo.hide()
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
326 self.replaceButton.hide()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
327
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
328 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
329
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
330 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
331
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
332 @pyqtSlot()
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
333 def __projectOpened(self):
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
334 """
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
335 Private slot to react to the opening of a project.
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
336 """
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
337 self.projectButton.setEnabled(True)
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
338 self.projectButton.setChecked(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
339
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
340 @pyqtSlot()
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
341 def __projectClosed(self):
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
342 """
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
343 Private slot to react to the closing of a project.
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
344 """
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
345 self.projectButton.setEnabled(False)
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
346 if self.projectButton.isChecked():
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
347 self.dirButton.setChecked(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
348
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
349 @pyqtSlot(str)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
350 def on_findtextCombo_editTextChanged(self, text):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
351 """
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
352 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
353 text combo.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
354
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
355 @param text (ignored)
10433
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10430
diff changeset
356 @type str
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
357 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
358 self.__enableFindButton()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
359
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
360 @pyqtSlot(str)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
361 def on_replacetextCombo_editTextChanged(self, text):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
362 """
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
363 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
364 text combo.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
365
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
366 @param text (ignored)
10433
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10430
diff changeset
367 @type str
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
368 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
369 self.__enableFindButton()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
370
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
371 @pyqtSlot(str)
4589
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4278
diff changeset
372 def on_dirPicker_editTextChanged(self, text):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
373 """
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
374 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
375 picker.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
376
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
377 @param text (ignored)
10433
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10430
diff changeset
378 @type str
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
379 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
380 self.__enableFindButton()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
381
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
382 @pyqtSlot()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
383 def on_projectButton_clicked(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
384 """
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
385 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
386 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
387 self.__enableFindButton()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
388
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
389 @pyqtSlot()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
390 def on_dirButton_clicked(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
391 """
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
392 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
393 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
394 self.__enableFindButton()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
395
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
396 @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
397 def on_openFilesButton_clicked(self):
7139
9bb36ec2d1b5 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7109
diff changeset
398 """
9bb36ec2d1b5 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7109
diff changeset
399 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
400 """
9bb36ec2d1b5 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7109
diff changeset
401 self.__enableFindButton()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
402
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
403 @pyqtSlot()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
404 def on_filterCheckBox_clicked(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
405 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
406 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
407 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
408 self.__enableFindButton()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
409
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
410 @pyqtSlot(str)
489
844a0a278269 Fixed an issue in the find in files dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 476
diff changeset
411 def on_filterEdit_textEdited(self, text):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
412 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
413 Private slot to handle the textChanged signal of the file filter edit.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
414
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
415 @param text (ignored)
10433
328f3ec4b77a Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10430
diff changeset
416 @type str
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
417 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
418 self.__enableFindButton()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
419
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
420 @pyqtSlot()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
421 def __enableFindButton(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
422 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
423 Private slot called to enable the find button.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
424 """
7264
bedbe458d792 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
425 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
426 self.findtextCombo.currentText() == ""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
427 or (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
428 self.dirButton.isChecked()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
429 and (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
430 self.dirPicker.currentText() == ""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
431 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
432 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
433 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
434 or (self.filterCheckBox.isChecked() and self.filterEdit.text() == "")
7264
bedbe458d792 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
435 ):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
436 self.findButton.setEnabled(False)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
437 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
438 self.findButton.setEnabled(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
439
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
440 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
441 """
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
442 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
443
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
444 @param txt line of text that should be treated
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
445 @type str
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
446 @return text with eol stripped
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
447 @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
448 """
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
449 return txt.replace("\r", "").replace("\n", "")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
450
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
451 @pyqtSlot()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
452 def __stopSearch(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
453 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
454 Private slot to handle the stop button being pressed.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
455 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
456 self.__cancelSearch = True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
457
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
458 @pyqtSlot()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
459 def __doSearch(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
460 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
461 Private slot to handle the find button being pressed.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
462 """
7264
bedbe458d792 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
463 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
464 self.__replaceMode
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
465 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
466 ):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
467 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
468
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
469 self.__cancelSearch = False
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 if self.filterCheckBox.isChecked():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
472 fileFilter = self.filterEdit.text()
7264
bedbe458d792 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
473 fileFilterList = [
bedbe458d792 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
474 "^{0}$".format(filter.replace(".", r"\.").replace("*", ".*"))
bedbe458d792 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
475 for filter in fileFilter.split(";")
bedbe458d792 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
476 ]
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
477 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
478
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
479 if self.projectButton.isChecked():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
480 if self.filterCheckBox.isChecked():
7992
0d1e35a10a0b Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7945
diff changeset
481 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
482 self.__project.getRelativePath(file)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
483 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
484 self.__project.getProjectPath(),
7992
0d1e35a10a0b Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7945
diff changeset
485 filterRe,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
486 excludeHiddenDirs=self.excludeHiddenCheckBox.isChecked(),
7992
0d1e35a10a0b Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7945
diff changeset
487 )
0d1e35a10a0b Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7945
diff changeset
488 ]
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
489 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
490 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
491 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
492 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
493 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
494 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
495 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
496 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
497 elif self.dirButton.isChecked():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
498 if not self.filterCheckBox.isChecked():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
499 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
500 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
501 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
502 ).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
503 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
504 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
505 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
506 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
507 [
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
508 "^{0}$".format(
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
509 assoc.replace(".", r"\.").replace("*", ".*")
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
510 )
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
511 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
512 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
513 )
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
514 ]
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
515 )
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
516 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
517 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
518 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
519 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
520 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
521 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
522 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
523 [
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
524 "^{0}$".format(
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
525 assoc.replace(".", r"\.").replace("*", ".*")
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
526 )
10373
093dcebe5ecb Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10050
diff changeset
527 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
528 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
529 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
530 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
531 )
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
532 ]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
533 )
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
534 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
535 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
536 [
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
537 "^{0}$".format(
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
538 ext.replace(".", r"\.").replace("*", ".*")
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
539 )
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
540 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
541 # __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
542 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
543 )
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
544 ]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
545 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
546 filterString = "|".join(filters)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
547 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
548 files = self.__getFileList(
4589
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4278
diff changeset
549 os.path.abspath(self.dirPicker.currentText()),
7992
0d1e35a10a0b Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7945
diff changeset
550 filterRe,
0d1e35a10a0b Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7945
diff changeset
551 excludeHiddenDirs=self.excludeHiddenCheckBox.isChecked(),
0d1e35a10a0b Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7945
diff changeset
552 excludeHiddenFiles=self.excludeHiddenCheckBox.isChecked(),
0d1e35a10a0b Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7945
diff changeset
553 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
554 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
555 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
556 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
557 files = vm.getOpenFilenames()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
558
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
559 self.findList.clear()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
560 QApplication.processEvents()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
561 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
562
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
563 # retrieve the values
8846
4196ec4c37a5 Some optimizations to the find location and find in file panes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8809
diff changeset
564 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
565 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
566 cs = self.caseToolButton.isChecked()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
567 ct = self.findtextCombo.currentText()
8235
78e6d29eb773 Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator) (batch 3).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8220
diff changeset
568 txt = ct if reg else re.escape(ct)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
569 if wo:
432
497e188ee86e Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 293
diff changeset
570 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
571 flags = re.UNICODE
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
572 if not cs:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
573 flags |= re.IGNORECASE
6
52e8c820d0dd Removed some superfluous unicode() calls.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
574 try:
52e8c820d0dd Removed some superfluous unicode() calls.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
575 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
576 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
577 EricMessageBox.critical(
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3012
diff changeset
578 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3186
diff changeset
579 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
580 self.tr(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
581 """<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
582 """<p>Error: {0}</p>"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
583 ).format(str(why)),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
584 )
6
52e8c820d0dd Removed some superfluous unicode() calls.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
585 self.stopButton.setEnabled(False)
52e8c820d0dd Removed some superfluous unicode() calls.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
586 self.findButton.setEnabled(True)
52e8c820d0dd Removed some superfluous unicode() calls.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
587 return
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
588 # reset the findtextCombo
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
589 if ct in self.searchHistory:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
590 self.searchHistory.remove(ct)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
591 self.searchHistory.insert(0, ct)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
592 self.findtextCombo.clear()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
593 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
594 Preferences.getSettings().setValue(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
595 "FindFileWidget/SearchHistory", self.searchHistory[:30]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
596 )
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
597 Preferences.getSettings().setValue(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
598 "FindFileWidget/ExcludeHidden", self.excludeHiddenCheckBox.isChecked()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
599 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
600
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
601 if self.__replaceMode:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
602 replTxt = self.replacetextCombo.currentText()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
603 if replTxt in self.replaceHistory:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
604 self.replaceHistory.remove(replTxt)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
605 self.replaceHistory.insert(0, replTxt)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
606 self.replacetextCombo.clear()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
607 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
608 Preferences.getSettings().setValue(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
609 "FindFileWidget/ReplaceHistory", self.replaceHistory[:30]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
610 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
611
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
612 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
613 searchDir = self.dirPicker.currentText()
293
9ecc02b50325 Fixed a variable naming issue in FindFileDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 268
diff changeset
614 if searchDir in self.dirHistory:
9ecc02b50325 Fixed a variable naming issue in FindFileDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 268
diff changeset
615 self.dirHistory.remove(searchDir)
9ecc02b50325 Fixed a variable naming issue in FindFileDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 268
diff changeset
616 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
617 self.dirPicker.clear()
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4278
diff changeset
618 self.dirPicker.addItems(self.dirHistory)
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
619 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
620 Preferences.getSettings().setValue(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
621 "FindFileWidget/DirectoryHistory", self.dirHistory[:30]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
622 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
623
489
844a0a278269 Fixed an issue in the find in files dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 476
diff changeset
624 # set the button states
844a0a278269 Fixed an issue in the find in files dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 476
diff changeset
625 self.stopButton.setEnabled(True)
844a0a278269 Fixed an issue in the find in files dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 476
diff changeset
626 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
627 self.clearButton.setEnabled(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
628
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
629 # now go through all the files
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
630 self.__populating = True
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
631 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
632 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
633 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
634 for progress, file in enumerate(files, start=1):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
635 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
636 found = False
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
637 if self.__cancelSearch:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
638 break
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
639
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
640 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
641 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
642 if self.projectButton.isChecked()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
643 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
644 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
645 # read the file and split it into textlines
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
646 try:
5603
4f2dd0850803 Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5558
diff changeset
647 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
648 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
649 except (OSError, UnicodeError):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
650 self.findProgress.setValue(progress)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
651 continue
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
652
8932
a21e80dde10e Don't process events after each file to prevent a slow search.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 8917
diff changeset
653 now = time.monotonic()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
654 # 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
655 for count, line in enumerate(lines, start=1):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
656 if self.__cancelSearch:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
657 break
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
658
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
659 contains = search.search(line)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
660 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
661 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
662 found = True
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
663 start = contains.start()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
664 end = contains.end()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
665 if self.__replaceMode:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
666 rline = search.sub(replTxt, line)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
667 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
668 rline = ""
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
669 line = self.__stripEol(line)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
670 if len(line) > 1024:
432
497e188ee86e Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 293
diff changeset
671 line = "{0} ...".format(line[:1024])
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
672 if self.__replaceMode:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
673 if len(rline) > 1024:
432
497e188ee86e Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 293
diff changeset
674 rline = "{0} ...".format(line[:1024])
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
675 line = "- {0}\n+ {1}".format(line, self.__stripEol(rline))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
676 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
677
8932
a21e80dde10e Don't process events after each file to prevent a slow search.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 8917
diff changeset
678 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
679 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
680 now = time.monotonic()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
681
3343
f7a6d271bb40 Modified the find in files dialog to show some statistics when done.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3192
diff changeset
682 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
683 fileOccurrences += 1
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
684 self.findProgress.setValue(progress)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
685
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
686 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
687 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
688 self.findProgress.setValue(1)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
689
3343
f7a6d271bb40 Modified the find in files dialog to show some statistics when done.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3192
diff changeset
690 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
691 self.findProgressLabel.setPath(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
692 resultFormat.format(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
693 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
694 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
695 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
696 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
697
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
698 self.findList.setUpdatesEnabled(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
699 self.findList.sortItems(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
700 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
701 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
702 self.findList.resizeColumnToContents(1)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
703 if self.__replaceMode:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
704 self.findList.header().resizeSection(0, self.__section0Size + 30)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
705 self.findList.header().setStretchLastSection(True)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
706 self.__populating = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
707
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
708 self.stopButton.setEnabled(False)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
709 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
710 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
711
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
712 @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
713 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
714 """
29471a3867ac Added a 'Clear' button to the 'search in files' and 'search location' panes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8637
diff changeset
715 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
716 """
29471a3867ac Added a 'Clear' button to the 'search in files' and 'search location' panes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8637
diff changeset
717 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
718 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
719 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
720 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
721 self.findProgress.setValue(0)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
722
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
723 @pyqtSlot(QTreeWidgetItem, int)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
724 def on_findList_itemDoubleClicked(self, itm, column):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
725 """
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 894
diff changeset
726 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
727
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
728 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
729
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
730 @param itm the double clicked tree item
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
731 @type QTreeWidgetItem
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
732 @param column column that was double clicked (ignored)
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
733 @type int
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
734 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
735 if itm.parent():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
736 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
737 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
738 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
739 end = itm.data(0, self.endRole)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
740 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
741 file = itm.text(0)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
742 line = 1
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
743 start = 0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
744 end = 0
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
745
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
746 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
747 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
748 if self.__project.isOpen()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
749 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
750 )
c0a3a6e40815 Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8632
diff changeset
751 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
752
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
753 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
754 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
755 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
756 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
757 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
758 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
759 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
760 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
761 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
762 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
763 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
764 self.pixmapFile.emit(fileName)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
765 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
766 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
767 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
768 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
769 QDesktopServices.openUrl(QUrl(fileName))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
770
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
771 def __getFileList(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
772 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
773 ):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
774 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
775 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
776
7992
0d1e35a10a0b Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7945
diff changeset
777 @param path the root directory to search in
0d1e35a10a0b Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7945
diff changeset
778 @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
779 @param filterRe regular expression defining the filter
7992
0d1e35a10a0b Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7945
diff changeset
780 criteria
0d1e35a10a0b Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7945
diff changeset
781 @type regexp object
0d1e35a10a0b Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7945
diff changeset
782 @param excludeHiddenDirs flag indicating to exclude hidden directories
0d1e35a10a0b Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7945
diff changeset
783 @type bool
0d1e35a10a0b Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7945
diff changeset
784 @param excludeHiddenFiles flag indicating to exclude hidden files
0d1e35a10a0b Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7945
diff changeset
785 @type bool
0d1e35a10a0b Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7945
diff changeset
786 @return list of files to be processed
0d1e35a10a0b Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7945
diff changeset
787 @rtype list of str
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
788 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
789 path = os.path.abspath(path)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
790 files = []
7992
0d1e35a10a0b Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7945
diff changeset
791 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
792 files.extend(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
793 [
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
794 os.path.join(dirname, f)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
795 for f in filenames
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
796 if (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
797 not (excludeHiddenFiles and f.startswith("."))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
798 and re.match(filterRe, f)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
799 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
800 ]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
801 )
7992
0d1e35a10a0b Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7945
diff changeset
802 if excludeHiddenDirs:
0d1e35a10a0b Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7945
diff changeset
803 for d in dirs[:]:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
804 if d.startswith("."):
7992
0d1e35a10a0b Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7945
diff changeset
805 dirs.remove(d)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
806 return files
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
807
9037
907540e4f741 Created new branch <external_find>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8943
diff changeset
808 def __setSearchDirectory(self, searchDir):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
809 """
9037
907540e4f741 Created new branch <external_find>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8943
diff changeset
810 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
811
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
812 @param searchDir name of the directory to search in
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
813 @type str
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
814 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
815 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
816 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
817
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
818 @pyqtSlot()
9037
907540e4f741 Created new branch <external_find>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8943
diff changeset
819 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
820 """
9037
907540e4f741 Created new branch <external_find>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8943
diff changeset
821 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
822 """
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
823 self.openFilesButton.setChecked(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
824
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
825 @pyqtSlot()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
826 def on_replaceButton_clicked(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
827 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
828 Private slot to perform the requested replace actions.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
829 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
830 self.findProgress.setMaximum(self.findList.topLevelItemCount())
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
831 self.findProgress.setValue(0)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
832
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
833 for index in range(self.findList.topLevelItemCount()):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
834 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
835 if itm.checkState(0) in [
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
836 Qt.CheckState.PartiallyChecked,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
837 Qt.CheckState.Checked,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
838 ]:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
839 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
840 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
841
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
842 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
843 fn = os.path.join(self.__project.getProjectPath(), file)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
844 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
845 fn = file
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
846
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
847 # read the file and split it into textlines
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
848 try:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
849 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
850 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
851 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
852 EricMessageBox.critical(
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3012
diff changeset
853 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3186
diff changeset
854 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
855 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
856 """<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
857 """ 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
858 ).format(fn, str(err)),
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
859 )
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
860 self.findProgress.setValue(index)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
861 continue
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
862
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
863 # 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
864 # 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
865 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
866 EricMessageBox.critical(
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3012
diff changeset
867 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3186
diff changeset
868 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
869 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
870 """<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
871 """ 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
872 """</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
873 ).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
874 )
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
875 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
876 continue
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
877
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
878 # replace the lines authorized by the user
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
879 for cindex in range(itm.childCount()):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
880 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
881 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
882 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
883 rline = citm.data(0, self.replaceRole)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
884 lines[line - 1] = rline
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
885
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
886 # 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
887 txt = "".join(lines)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
888 try:
45
9a18f4dbb493 Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 42
diff changeset
889 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
890 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
891 EricMessageBox.critical(
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3012
diff changeset
892 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3186
diff changeset
893 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
894 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
895 """<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
896 """ 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
897 ).format(fn, str(err)),
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
898 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
899
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
900 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
901
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
902 self.findProgressLabel.setPath("")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
903
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
904 self.findList.clear()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
905 self.replaceButton.setEnabled(False)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
906 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
907 self.clearButton.setEnabled(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
908
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
909 @pyqtSlot(QPoint)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
910 def __contextMenuRequested(self, pos):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
911 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
912 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
913
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
914 @param pos position the context menu shall be shown
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
915 @type QPoint
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
916 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
917 menu = QMenu(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
918
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3186
diff changeset
919 menu.addAction(self.tr("Open"), self.__openFile)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
920 menu.addAction(self.tr("Copy Path to Clipboard"), self.__copyToClipboard)
9574
aeed6b4313ad Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9559
diff changeset
921 if self.__replaceMode:
aeed6b4313ad Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9559
diff changeset
922 menu.addSeparator()
aeed6b4313ad Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9559
diff changeset
923 menu.addAction(self.tr("Select All"), self.__selectAll)
aeed6b4313ad Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9559
diff changeset
924 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
925
7759
51aa6c6b66f7 Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
926 menu.exec(QCursor.pos())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
927
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
928 @pyqtSlot()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
929 def __openFile(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
930 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
931 Private slot to open the currently selected entry.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
932 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
933 itm = self.findList.selectedItems()[0]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
934 self.on_findList_itemDoubleClicked(itm, 0)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
935
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
936 @pyqtSlot()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
937 def __copyToClipboard(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
938 """
8614
4a3a68e51b92 Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
939 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
940 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
941 itm = self.findList.selectedItems()[0]
8235
78e6d29eb773 Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator) (batch 3).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8220
diff changeset
942 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
943
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
944 cb = QApplication.clipboard()
654
72d4c6f31157 Fixed an issue in the FindFileDialog class replacing text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
945 cb.setText(fn)
9037
907540e4f741 Created new branch <external_find>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8943
diff changeset
946
9574
aeed6b4313ad Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9559
diff changeset
947 @pyqtSlot()
aeed6b4313ad Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9559
diff changeset
948 def __deselectAll(self):
aeed6b4313ad Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9559
diff changeset
949 """
aeed6b4313ad Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9559
diff changeset
950 Private slot to deselect all entries.
aeed6b4313ad Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9559
diff changeset
951 """
aeed6b4313ad Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9559
diff changeset
952 self.__selectAll(check=False)
aeed6b4313ad Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9559
diff changeset
953
aeed6b4313ad Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9559
diff changeset
954 @pyqtSlot()
aeed6b4313ad Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9559
diff changeset
955 def __selectAll(self, check=True):
aeed6b4313ad Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9559
diff changeset
956 """
aeed6b4313ad Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9559
diff changeset
957 Private slot to select all entries.
9586
2750e76fc366 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9575
diff changeset
958
2750e76fc366 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9575
diff changeset
959 @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
960 @type bool (optional)
9574
aeed6b4313ad Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9559
diff changeset
961 """
aeed6b4313ad Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9559
diff changeset
962 if self.__replaceMode:
aeed6b4313ad Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9559
diff changeset
963 for index in range(self.findList.topLevelItemCount()):
aeed6b4313ad Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9559
diff changeset
964 itm = self.findList.topLevelItem(index)
aeed6b4313ad Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9559
diff changeset
965 itm.setCheckState(
aeed6b4313ad Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9559
diff changeset
966 0,
aeed6b4313ad Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9559
diff changeset
967 Qt.CheckState.Checked if check else Qt.CheckState.Unchecked,
aeed6b4313ad Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9559
diff changeset
968 )
aeed6b4313ad Find In Files
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9559
diff changeset
969
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
970
90bcfdd63d47 Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9037
diff changeset
971 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
972 """
90bcfdd63d47 Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9037
diff changeset
973 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
974 with some other text.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
975
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
976 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
977 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
978 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
979 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
980 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
981 all ticked replacement operations.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
982
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
983 @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
984 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
985 @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
986 @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
987 @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
988 @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
989 @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
990 @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
991 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
992
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
993 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
994 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
995 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
996 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
997 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
998 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
999 umlFile = pyqtSignal(str)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1000
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
1001 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
1002 """
90bcfdd63d47 Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9037
diff changeset
1003 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1004
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
1005 @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
1006 @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
1007 @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
1008 @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
1009 """
90bcfdd63d47 Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9037
diff changeset
1010 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
1011 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
1012
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
1013 self.__layout = QVBoxLayout()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1014
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
1015 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
1016 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
1017
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
1018 self.__buttonBox = QDialogButtonBox(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1019 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
1020 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1021 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
1022 False
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1023 )
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
1024 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
1025
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
1026 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
1027 self.resize(600, 800)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1028
9039
3c8aa997bad8 Added capability to configure use of an external "Find Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9038
diff changeset
1029 # 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
1030 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
1031 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
1032 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
1033 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
1034 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
1035 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
1036 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
1037
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
1038 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
1039 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
1040
9559
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
1041 def populateFileCategories(self):
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
1042 """
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
1043 Public method to populate the search file categories list.
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
1044 """
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
1045 self.__findWidget.populateFileCategories()
34fc53e6159d Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9517
diff changeset
1046
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1047 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
1048 """
90bcfdd63d47 Added capability to configure use of an external "Find/Replace In Files" dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9037
diff changeset
1049 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
1050 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
1051
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
1052 @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
1053 @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
1054 @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
1055 @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
1056 @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
1057 @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
1058 @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
1059 (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
1060 @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
1061 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1062 self.__findWidget.activate(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1063 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
1064 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1065
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
1066 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
1067 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
1068 self.show()

eric ide

mercurial