src/eric7/UI/FindFileWidget.py

Wed, 13 Jul 2022 14:55:47 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 13 Jul 2022 14:55:47 +0200
branch
eric7
changeset 9221
bf71ee032bb4
parent 9209
b99e7fd55fd3
child 9413
80c06d472826
permissions
-rw-r--r--

Reformatted the source code using the 'Black' utility.

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

eric ide

mercurial