Sun, 26 Dec 2021 18:49:26 +0100
Corrected some code style issues.
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 | |
7923
91e843545d9a
Updated copyright for 2021.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7900
diff
changeset
|
3 | # Copyright (c) 2002 - 2021 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 |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | |
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
|
13 | 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
|
14 | 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
|
15 | from PyQt6.QtWidgets import ( |
8614 | 16 | QWidget, QApplication, QMenu, QTreeWidgetItem, QComboBox |
7264
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
17 | ) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
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
|
19 | 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
|
20 | 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
|
21 | from EricWidgets.EricPathPicker import EricPathPickerModes |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | |
8614 | 23 | from .Ui_FindFileWidget import Ui_FindFileWidget |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | |
8614 | 25 | import Preferences |
26 | import UI.PixmapCache | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | 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
|
28 | |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3186
diff
changeset
|
29 | |
8614 | 30 | class FindFileWidget(QWidget, Ui_FindFileWidget): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | """ |
8614 | 32 | Class implementing a widget to search for text in files and replace it |
33 | with some other text. | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | |
8614 | 35 | The occurrences found are displayed in a tree showing the file name, |
36 | the line number and the text found. The file will be opened upon a double | |
37 | click onto the respective entry of the list. If the widget is in replace | |
38 | mode the line below shows the text after replacement. Replacements can | |
39 | be authorized by ticking them on. Pressing the replace button performs | |
40 | all ticked replacement operations. | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | |
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
|
42 | @signal sourceFile(str, int, str, int, int) emitted to open a source file |
8614 | 43 | at a specificline |
501
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
500
diff
changeset
|
44 | @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
|
45 | @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
|
46 | @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
|
47 | @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
|
48 | @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
|
49 | @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
|
50 | """ |
476
121633976eca
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
458
diff
changeset
|
51 | 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
|
52 | 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
|
53 | 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
|
54 | 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
|
55 | 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
|
56 | 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
|
57 | umlFile = pyqtSignal(str) |
476
121633976eca
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
458
diff
changeset
|
58 | |
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
|
59 | 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
|
60 | 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
|
61 | 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
|
62 | 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
|
63 | md5Role = Qt.ItemDataRole.UserRole + 5 |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | |
8614 | 65 | def __init__(self, project, parent=None): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | Constructor |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | @param project reference to the project object |
8614 | 70 | @type Project |
71 | @param parent parent widget of this dialog (defaults to None) | |
72 | @type QWidget (optional) | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | """ |
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
|
74 | super().__init__(parent) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | self.setupUi(self) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | |
8614 | 77 | self.layout().setContentsMargins(0, 3, 0, 0) |
78 | ||
8846
4196ec4c37a5
Some optimizations to the find location and find in file panes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8809
diff
changeset
|
79 | 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
|
80 | 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
|
81 | self.regexpToolButton.setIcon(UI.PixmapCache.getIcon("regexp")) |
4196ec4c37a5
Some optimizations to the find location and find in file panes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8809
diff
changeset
|
82 | |
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
|
83 | 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
|
84 | 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
|
85 | self.dirPicker.setSizeAdjustPolicy( |
8149
3fefc0c430f2
Changed sze adjuyt policy of some combo boxes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8143
diff
changeset
|
86 | QComboBox.SizeAdjustPolicy.AdjustToMinimumContentsLengthWithIcon) |
3186
a05eff845522
Changed all the file or directory selection buttons to QToolButton and gave them an icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
87 | |
8614 | 88 | self.stopButton.setEnabled(False) |
89 | self.stopButton.clicked.connect(self.__stopSearch) | |
90 | self.stopButton.setIcon(UI.PixmapCache.getIcon("stopLoading")) | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | self.findButton.setEnabled(False) |
8614 | 93 | self.findButton.clicked.connect(self.__doSearch) |
94 | self.findButton.setIcon(UI.PixmapCache.getIcon("find")) | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | |
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
|
96 | 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
|
97 | 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
|
98 | self.clearButton.setIcon(UI.PixmapCache.getIcon("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
|
99 | |
8614 | 100 | self.replaceButton.setIcon(UI.PixmapCache.getIcon("editReplace")) |
101 | ||
102 | self.modeToggleButton.clicked.connect(self.__toggleReplaceMode) | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
104 | self.findProgressLabel.setMaximumWidth(550) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | |
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
|
106 | self.searchHistory = Preferences.toList( |
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
|
107 | Preferences.getSettings().value( |
8614 | 108 | "FindFileWidget/SearchHistory")) |
109 | self.findtextCombo.lineEdit().setClearButtonEnabled(True) | |
110 | self.findtextCombo.lineEdit().returnPressed.connect(self.__doSearch) | |
111 | self.findtextCombo.setCompleter(None) | |
112 | self.findtextCombo.addItems(self.searchHistory) | |
113 | self.findtextCombo.setEditText("") | |
114 | ||
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
|
115 | self.replaceHistory = Preferences.toList( |
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
|
116 | Preferences.getSettings().value( |
8614 | 117 | "FindFileWidget/ReplaceHistory")) |
118 | self.replacetextCombo.lineEdit().setClearButtonEnabled(True) | |
119 | self.replacetextCombo.lineEdit().returnPressed.connect(self.__doSearch) | |
120 | self.replacetextCombo.setCompleter(None) | |
121 | self.replacetextCombo.addItems(self.replaceHistory) | |
122 | self.replacetextCombo.setEditText("") | |
123 | ||
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
|
124 | self.dirHistory = Preferences.toList( |
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
|
125 | Preferences.getSettings().value( |
8614 | 126 | "FindFileWidget/DirectoryHistory")) |
4589
b648ccbdbef9
Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4278
diff
changeset
|
127 | self.dirPicker.addItems(self.dirHistory) |
8614 | 128 | self.dirPicker.setText("") |
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 | |
7992
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
130 | self.excludeHiddenCheckBox.setChecked(Preferences.toBool( |
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
|
131 | Preferences.getSettings().value( |
8614 | 132 | "FindFileWidget/ExcludeHidden", True) |
7992
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
133 | )) |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
134 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135 | self.project = project |
8614 | 136 | self.project.projectOpened.connect(self.__projectOpened) |
137 | self.project.projectClosed.connect(self.__projectClosed) | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
138 | |
8614 | 139 | self.__standardListFont = self.findList.font() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
140 | 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
|
141 | self.findList.header().setSortIndicator(0, Qt.SortOrder.AscendingOrder) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142 | self.__section0Size = self.findList.header().sectionSize(0) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
143 | self.findList.setExpandsOnDoubleClick(False) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
144 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
145 | # Qt Designer form files |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
146 | self.filterForms = r'.*\.ui$' |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
147 | self.formsExt = ['*.ui'] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
148 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
149 | # Corba interface files |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
150 | self.filterInterfaces = r'.*\.idl$' |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
151 | self.interfacesExt = ['*.idl'] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | |
5986
1e78a1aa438b
Some more protobuf related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5603
diff
changeset
|
153 | # Protobuf protocol files |
1e78a1aa438b
Some more protobuf related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5603
diff
changeset
|
154 | self.filterProtocols = r'.*\.proto$' |
1e78a1aa438b
Some more protobuf related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5603
diff
changeset
|
155 | self.protocolsExt = ['*.proto'] |
1e78a1aa438b
Some more protobuf related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5603
diff
changeset
|
156 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
157 | # Qt resources files |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
158 | self.filterResources = r'.*\.qrc$' |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
159 | self.resourcesExt = ['*.qrc'] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
160 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
161 | self.__cancelSearch = False |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
162 | self.__lastFileItem = None |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
163 | self.__populating = False |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
164 | |
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
|
165 | 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
|
166 | self.customContextMenuRequested.connect(self.__contextMenuRequested) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
167 | |
8614 | 168 | self.__replaceMode = True |
169 | self.__toggleReplaceMode() | |
170 | ||
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
|
171 | 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
|
172 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
173 | Private method to create an entry in the file list. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
174 | |
8614 | 175 | @param file filename of file |
176 | @type str | |
177 | @param line line number | |
178 | @type int | |
179 | @param text text found | |
180 | @type str | |
181 | @param start start position of match | |
182 | @type int | |
183 | @param end end position of match | |
184 | @type int | |
185 | @param replTxt text with replacements applied (defaults to "") | |
186 | @type str (optional) | |
187 | @param md5 MD5 hash of the file (defaults to "") | |
188 | @type str (optional) | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
189 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
190 | if self.__lastFileItem is None: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
191 | # It's a new file |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
192 | self.__lastFileItem = QTreeWidgetItem(self.findList, [file]) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
193 | self.__lastFileItem.setFirstColumnSpanned(True) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
194 | self.__lastFileItem.setExpanded(True) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
195 | if self.__replaceMode: |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
196 | self.__lastFileItem.setFlags( |
3034
7ce719013078
Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3030
diff
changeset
|
197 | self.__lastFileItem.flags() | |
8324
83084f088655
Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8318
diff
changeset
|
198 | Qt.ItemFlag.ItemIsUserCheckable | |
8347
ca9ef7600df7
Corrected the useof ItemIsTristate, which is obsolete.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8327
diff
changeset
|
199 | Qt.ItemFlag.ItemIsAutoTristate) |
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
|
200 | self.__lastFileItem.setData(0, self.md5Role, md5) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
201 | |
1640
1699d46026cd
Fixed a compatibility issue with Qt 4.8.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
202 | 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
|
203 | 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
|
204 | 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
|
205 | 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
|
206 | 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
|
207 | 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
|
208 | 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
|
209 | itm.setData(0, self.replaceRole, replTxt) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
210 | if self.__replaceMode: |
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
|
211 | itm.setFlags(itm.flags() | |
8324
83084f088655
Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8318
diff
changeset
|
212 | 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
|
213 | itm.setCheckState(0, Qt.CheckState.Checked) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
214 | self.replaceButton.setEnabled(True) |
8614 | 215 | |
216 | def activate(self, replaceMode=False, txt="", searchDir="", | |
217 | openFiles=False): | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
218 | """ |
8614 | 219 | Public method to activate the widget with a given mode, a text |
220 | to search for and some search parameters. | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
221 | |
8614 | 222 | @param replaceMode flag indicating replacement mode (defaults to False) |
223 | @type bool (optional) | |
224 | @param txt text to be searched for (defaults to "") | |
225 | @type str (optional) | |
226 | @param searchDir directory to search in (defaults to "") | |
227 | @type str (optional) | |
228 | @param openFiles flag indicating to operate on open files only | |
229 | (defaults to False) | |
230 | @type bool (optional) | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
231 | """ |
8614 | 232 | if self.project.isOpen(): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
233 | self.projectButton.setEnabled(True) |
8614 | 234 | self.projectButton.setChecked(True) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
235 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
236 | self.projectButton.setEnabled(False) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
237 | self.dirButton.setChecked(True) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
238 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
239 | self.findtextCombo.setEditText(txt) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
240 | self.findtextCombo.lineEdit().selectAll() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
241 | self.findtextCombo.setFocus() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
242 | |
8614 | 243 | if self.__replaceMode != replaceMode: |
244 | self.__toggleReplaceMode() | |
245 | ||
246 | if searchDir: | |
247 | self.setSearchDirectory(searchDir) | |
248 | if openFiles: | |
249 | self.setOpenFiles() | |
250 | ||
251 | @pyqtSlot() | |
252 | def __toggleReplaceMode(self): | |
253 | """ | |
254 | Private slot to toggle the dialog mode. | |
255 | """ | |
256 | self.__replaceMode = not self.__replaceMode | |
257 | ||
258 | # change some interface elements and properties | |
259 | 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
|
260 | 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
|
261 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
262 | if self.__replaceMode: |
8614 | 263 | self.replaceButton.show() |
264 | self.replaceLabel.show() | |
265 | self.replacetextCombo.show() | |
266 | ||
267 | self.replaceButton.setEnabled(False) | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
268 | self.replacetextCombo.setEditText("") |
8614 | 269 | |
270 | font = Preferences.getEditorOtherFonts("MonospacedFont") | |
271 | self.findList.setFont(font) | |
272 | ||
273 | self.modeToggleButton.setIcon(UI.PixmapCache.getIcon("1uparrow")) | |
274 | else: | |
275 | self.replaceLabel.hide() | |
276 | self.replacetextCombo.hide() | |
277 | self.replaceButton.hide() | |
278 | ||
279 | self.findList.setFont(self.__standardListFont) | |
280 | ||
281 | self.modeToggleButton.setIcon(UI.PixmapCache.getIcon("1downarrow")) | |
282 | ||
283 | @pyqtSlot() | |
284 | def __projectOpened(self): | |
285 | """ | |
286 | Private slot to react to the opening of a project. | |
287 | """ | |
288 | self.projectButton.setEnabled(True) | |
289 | self.projectButton.setChecked(True) | |
290 | ||
291 | @pyqtSlot() | |
292 | def __projectClosed(self): | |
293 | """ | |
294 | Private slot to react to the closing of a project. | |
295 | """ | |
296 | self.projectButton.setEnabled(False) | |
297 | if self.projectButton.isChecked(): | |
298 | self.dirButton.setChecked(True) | |
299 | ||
300 | @pyqtSlot(str) | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
301 | def on_findtextCombo_editTextChanged(self, text): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
302 | """ |
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
|
303 | 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
|
304 | text combo. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
305 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
306 | @param text (ignored) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
307 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
308 | self.__enableFindButton() |
8614 | 309 | |
310 | @pyqtSlot(str) | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
311 | def on_replacetextCombo_editTextChanged(self, text): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
312 | """ |
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
|
313 | 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
|
314 | text combo. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
315 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
316 | @param text (ignored) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
317 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
318 | self.__enableFindButton() |
8614 | 319 | |
320 | @pyqtSlot(str) | |
4589
b648ccbdbef9
Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4278
diff
changeset
|
321 | def on_dirPicker_editTextChanged(self, text): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
322 | """ |
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
|
323 | 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
|
324 | picker. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
325 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
326 | @param text (ignored) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
327 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
328 | self.__enableFindButton() |
8614 | 329 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
330 | @pyqtSlot() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
331 | def on_projectButton_clicked(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
332 | """ |
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
|
333 | 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
|
334 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
335 | self.__enableFindButton() |
8614 | 336 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
337 | @pyqtSlot() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
338 | def on_dirButton_clicked(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
339 | """ |
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
|
340 | 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
|
341 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
342 | self.__enableFindButton() |
8614 | 343 | |
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
|
344 | @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
|
345 | def on_openFilesButton_clicked(self): |
7139
9bb36ec2d1b5
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7109
diff
changeset
|
346 | """ |
9bb36ec2d1b5
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7109
diff
changeset
|
347 | 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
|
348 | """ |
9bb36ec2d1b5
Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7109
diff
changeset
|
349 | self.__enableFindButton() |
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 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
351 | @pyqtSlot() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
352 | def on_filterCheckBox_clicked(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
353 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
354 | 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
|
355 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
356 | self.__enableFindButton() |
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 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
358 | @pyqtSlot(str) |
489
844a0a278269
Fixed an issue in the find in files dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
476
diff
changeset
|
359 | def on_filterEdit_textEdited(self, text): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
360 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
361 | Private slot to handle the textChanged signal of the file filter edit. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
362 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
363 | @param text (ignored) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
364 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
365 | self.__enableFindButton() |
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
|
366 | |
8614 | 367 | @pyqtSlot() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
368 | def __enableFindButton(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
369 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
370 | Private slot called to enable the find button. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
371 | """ |
7264
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
372 | if ( |
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
373 | self.findtextCombo.currentText() == "" or |
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
374 | (self.dirButton.isChecked() and |
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
375 | (self.dirPicker.currentText() == "" or |
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
376 | not os.path.exists(os.path.abspath( |
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
377 | self.dirPicker.currentText())))) or |
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
378 | (self.filterCheckBox.isChecked() and |
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
379 | self.filterEdit.text() == "") |
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
380 | ): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
381 | self.findButton.setEnabled(False) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
382 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
383 | self.findButton.setEnabled(True) |
8614 | 384 | |
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
|
385 | 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
|
386 | """ |
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
|
387 | Private method to strip the eol part. |
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
|
388 | |
8614 | 389 | @param txt line of text that should be treated |
390 | @type str | |
391 | @return text with eol stripped | |
392 | @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
|
393 | """ |
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
|
394 | return txt.replace("\r", "").replace("\n", "") |
8632
f25cd4b94eb0
Changed the Find File dialog to an integrated widget (right side)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8614
diff
changeset
|
395 | |
8614 | 396 | @pyqtSlot() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
397 | def __stopSearch(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
398 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
399 | Private slot to handle the stop button being pressed. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
400 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
401 | self.__cancelSearch = True |
8614 | 402 | |
403 | @pyqtSlot() | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
404 | def __doSearch(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
405 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
406 | Private slot to handle the find button being pressed. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
407 | """ |
7264
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
408 | if ( |
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
409 | self.__replaceMode and |
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
|
410 | not ericApp().getObject("ViewManager").checkAllDirty() |
7264
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
411 | ): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
412 | return |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
413 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
414 | self.__cancelSearch = False |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
415 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
416 | if self.filterCheckBox.isChecked(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
417 | fileFilter = self.filterEdit.text() |
7264
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
418 | fileFilterList = [ |
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
419 | "^{0}$".format(filter.replace(".", r"\.").replace("*", ".*")) |
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
420 | for filter in fileFilter.split(";") |
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
421 | ] |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
422 | filterRe = re.compile("|".join(fileFilterList)) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
423 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
424 | if self.projectButton.isChecked(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
425 | if self.filterCheckBox.isChecked(): |
7992
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
426 | files = [ |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
427 | self.project.getRelativePath(file) |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
428 | for file in |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
429 | self.__getFileList( |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
430 | self.project.getProjectPath(), |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
431 | filterRe, |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
432 | excludeHiddenDirs=self.excludeHiddenCheckBox |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
433 | .isChecked(), |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
434 | ) |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
435 | ] |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
436 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
437 | files = [] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
438 | if self.sourcesCheckBox.isChecked(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
439 | files += self.project.pdata["SOURCES"] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
440 | if self.formsCheckBox.isChecked(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
441 | files += self.project.pdata["FORMS"] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
442 | if self.interfacesCheckBox.isChecked(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
443 | files += self.project.pdata["INTERFACES"] |
5986
1e78a1aa438b
Some more protobuf related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5603
diff
changeset
|
444 | if self.protocolsCheckBox.isChecked(): |
1e78a1aa438b
Some more protobuf related changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5603
diff
changeset
|
445 | files += self.project.pdata["PROTOCOLS"] |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
446 | if self.resourcesCheckBox.isChecked(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
447 | files += self.project.pdata["RESOURCES"] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
448 | elif self.dirButton.isChecked(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
449 | if not self.filterCheckBox.isChecked(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
450 | filters = [] |
7992
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
451 | if ( |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
452 | self.project.isOpen() and |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
453 | os.path.abspath(self.dirPicker.currentText()).startswith( |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
454 | self.project.getProjectPath()) |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
455 | ): |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
456 | if self.sourcesCheckBox.isChecked(): |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
457 | filters.extend([ |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
458 | "^{0}$".format( |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
459 | assoc.replace(".", r"\.").replace("*", ".*") |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
460 | ) for assoc in |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
461 | self.project.getFiletypeAssociations("SOURCES") |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
462 | ]) |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
463 | if self.formsCheckBox.isChecked(): |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
464 | filters.extend([ |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
465 | "^{0}$".format( |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
466 | assoc.replace(".", r"\.").replace("*", ".*") |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
467 | ) for assoc in |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
468 | self.project.getFiletypeAssociations("FORMS") |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
469 | ]) |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
470 | if self.interfacesCheckBox.isChecked(): |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
471 | filters.extend([ |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
472 | "^{0}$".format( |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
473 | assoc.replace(".", r"\.").replace("*", ".*") |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
474 | ) for assoc in |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
475 | self.project.getFiletypeAssociations("INTERFACES") |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
476 | ]) |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
477 | if self.protocolsCheckBox.isChecked(): |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
478 | filters.extend([ |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
479 | "^{0}$".format( |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
480 | assoc.replace(".", r"\.").replace("*", ".*") |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
481 | ) for assoc in |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
482 | self.project.getFiletypeAssociations("PROTOCOLS") |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
483 | ]) |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
484 | if self.resourcesCheckBox.isChecked(): |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
485 | filters.extend([ |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
486 | "^{0}$".format( |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
487 | assoc.replace(".", r"\.").replace("*", ".*") |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
488 | ) for assoc in |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
489 | self.project.getFiletypeAssociations("RESOURCES") |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
490 | ]) |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
491 | else: |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
492 | if self.sourcesCheckBox.isChecked(): |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
493 | filters.extend([ |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
494 | "^{0}$".format( |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
495 | assoc.replace(".", r"\.").replace("*", ".*")) |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
496 | for assoc in list( |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
497 | Preferences.getEditorLexerAssocs().keys()) |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
498 | if assoc not in |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
499 | self.formsExt + self.interfacesExt + |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
500 | self.protocolsExt + self.resourcesExt |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
501 | ]) |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
502 | if self.formsCheckBox.isChecked(): |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
503 | filters.append(self.filterForms) |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
504 | if self.interfacesCheckBox.isChecked(): |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
505 | filters.append(self.filterInterfaces) |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
506 | if self.protocolsCheckBox.isChecked(): |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
507 | filters.append(self.filterProtocols) |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
508 | if self.resourcesCheckBox.isChecked(): |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
509 | filters.append(self.filterResources) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
510 | filterString = "|".join(filters) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
511 | 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
|
512 | files = self.__getFileList( |
4589
b648ccbdbef9
Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4278
diff
changeset
|
513 | os.path.abspath(self.dirPicker.currentText()), |
7992
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
514 | filterRe, |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
515 | excludeHiddenDirs=self.excludeHiddenCheckBox.isChecked(), |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
516 | excludeHiddenFiles=self.excludeHiddenCheckBox.isChecked(), |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
517 | ) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
518 | 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
|
519 | 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
|
520 | 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
|
521 | files = vm.getOpenFilenames() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
522 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
523 | self.findList.clear() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
524 | QApplication.processEvents() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
525 | QApplication.processEvents() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
526 | self.findProgress.setMaximum(len(files)) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
527 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
528 | # 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
|
529 | 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
|
530 | 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
|
531 | cs = self.caseToolButton.isChecked() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
532 | 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
|
533 | txt = ct if reg else re.escape(ct) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
534 | if wo: |
432
497e188ee86e
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
293
diff
changeset
|
535 | 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
|
536 | flags = re.UNICODE |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
537 | if not cs: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
538 | flags |= re.IGNORECASE |
6
52e8c820d0dd
Removed some superfluous unicode() calls.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
539 | try: |
52e8c820d0dd
Removed some superfluous unicode() calls.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
540 | 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
|
541 | 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
|
542 | EricMessageBox.critical( |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3012
diff
changeset
|
543 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3186
diff
changeset
|
544 | self.tr("Invalid search expression"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3186
diff
changeset
|
545 | self.tr("""<p>The search expression is not valid.</p>""" |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3186
diff
changeset
|
546 | """<p>Error: {0}</p>""").format(str(why))) |
6
52e8c820d0dd
Removed some superfluous unicode() calls.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
547 | self.stopButton.setEnabled(False) |
52e8c820d0dd
Removed some superfluous unicode() calls.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
548 | self.findButton.setEnabled(True) |
52e8c820d0dd
Removed some superfluous unicode() calls.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
549 | return |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
550 | # reset the findtextCombo |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
551 | if ct in self.searchHistory: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
552 | self.searchHistory.remove(ct) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
553 | self.searchHistory.insert(0, ct) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
554 | self.findtextCombo.clear() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
555 | 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
|
556 | Preferences.getSettings().setValue( |
8614 | 557 | "FindFileWidget/SearchHistory", |
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
|
558 | self.searchHistory[:30]) |
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
|
559 | Preferences.getSettings().setValue( |
8614 | 560 | "FindFileWidget/ExcludeHidden", |
7992
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
561 | self.excludeHiddenCheckBox.isChecked()) |
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
|
562 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
563 | if self.__replaceMode: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
564 | replTxt = self.replacetextCombo.currentText() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
565 | if replTxt in self.replaceHistory: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
566 | self.replaceHistory.remove(replTxt) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
567 | self.replaceHistory.insert(0, replTxt) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
568 | self.replacetextCombo.clear() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
569 | 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
|
570 | Preferences.getSettings().setValue( |
8614 | 571 | "FindFileWidget/ReplaceHistory", |
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
|
572 | self.replaceHistory[:30]) |
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
|
573 | |
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
|
574 | 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
|
575 | searchDir = self.dirPicker.currentText() |
293
9ecc02b50325
Fixed a variable naming issue in FindFileDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
268
diff
changeset
|
576 | if searchDir in self.dirHistory: |
9ecc02b50325
Fixed a variable naming issue in FindFileDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
268
diff
changeset
|
577 | self.dirHistory.remove(searchDir) |
9ecc02b50325
Fixed a variable naming issue in FindFileDialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
268
diff
changeset
|
578 | 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
|
579 | self.dirPicker.clear() |
b648ccbdbef9
Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4278
diff
changeset
|
580 | self.dirPicker.addItems(self.dirHistory) |
8614 | 581 | 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
|
582 | Preferences.getSettings().setValue( |
8614 | 583 | "FindFileWidget/DirectoryHistory", |
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
|
584 | self.dirHistory[:30]) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
585 | |
489
844a0a278269
Fixed an issue in the find in files dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
476
diff
changeset
|
586 | # set the button states |
844a0a278269
Fixed an issue in the find in files dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
476
diff
changeset
|
587 | self.stopButton.setEnabled(True) |
844a0a278269
Fixed an issue in the find in files dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
476
diff
changeset
|
588 | 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
|
589 | self.clearButton.setEnabled(False) |
489
844a0a278269
Fixed an issue in the find in files dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
476
diff
changeset
|
590 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
591 | # now go through all the files |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
592 | self.__populating = True |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
593 | 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
|
594 | 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
|
595 | 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
|
596 | for progress, file in enumerate(files, start=1): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
597 | 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
|
598 | found = False |
8614 | 599 | if self.__cancelSearch: |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
600 | break |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
601 | |
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
|
602 | 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
|
603 | os.path.join(self.project.getProjectPath(), 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
|
604 | if self.projectButton.isChecked() else |
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
|
605 | file |
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
|
606 | ) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
607 | # read the file and split it into textlines |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
608 | try: |
5603
4f2dd0850803
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5558
diff
changeset
|
609 | 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
|
610 | 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
|
611 | except (UnicodeError, OSError): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
612 | self.findProgress.setValue(progress) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
613 | continue |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
614 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
615 | # 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
|
616 | for count, line in enumerate(lines, start=1): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
617 | if self.__cancelSearch: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
618 | break |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
619 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
620 | contains = search.search(line) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
621 | 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
|
622 | 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
|
623 | found = True |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
624 | start = contains.start() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
625 | end = contains.end() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
626 | if self.__replaceMode: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
627 | rline = search.sub(replTxt, line) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
628 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
629 | 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
|
630 | line = self.__stripEol(line) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
631 | if len(line) > 1024: |
432
497e188ee86e
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
293
diff
changeset
|
632 | line = "{0} ...".format(line[:1024]) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
633 | if self.__replaceMode: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
634 | if len(rline) > 1024: |
432
497e188ee86e
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
293
diff
changeset
|
635 | rline = "{0} ...".format(line[:1024]) |
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
|
636 | line = "- {0}\n+ {1}".format( |
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
|
637 | line, self.__stripEol(rline)) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
894
diff
changeset
|
638 | self.__createItem(file, count, line, start, end, |
5603
4f2dd0850803
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5558
diff
changeset
|
639 | rline, hashStr) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
640 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
641 | QApplication.processEvents() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
642 | |
3343
f7a6d271bb40
Modified the find in files dialog to show some statistics when done.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3192
diff
changeset
|
643 | 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
|
644 | fileOccurrences += 1 |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
645 | self.findProgress.setValue(progress) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
646 | |
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
|
647 | 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
|
648 | 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
|
649 | self.findProgress.setValue(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
|
650 | |
3343
f7a6d271bb40
Modified the find in files dialog to show some statistics when done.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3192
diff
changeset
|
651 | resultFormat = self.tr("{0} / {1}", "occurrences / files") |
f7a6d271bb40
Modified the find in files dialog to show some statistics when done.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3192
diff
changeset
|
652 | self.findProgressLabel.setPath(resultFormat.format( |
f7a6d271bb40
Modified the find in files dialog to show some statistics when done.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3192
diff
changeset
|
653 | self.tr("%n occurrence(s)", "", occurrences), |
f7a6d271bb40
Modified the find in files dialog to show some statistics when done.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3192
diff
changeset
|
654 | self.tr("%n file(s)", "", fileOccurrences))) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
655 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
656 | self.findList.setUpdatesEnabled(True) |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
894
diff
changeset
|
657 | self.findList.sortItems(self.findList.sortColumn(), |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
658 | self.findList.header().sortIndicatorOrder()) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
659 | self.findList.resizeColumnToContents(1) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
660 | if self.__replaceMode: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
661 | self.findList.header().resizeSection(0, self.__section0Size + 30) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
662 | self.findList.header().setStretchLastSection(True) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
663 | self.__populating = False |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
664 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
665 | self.stopButton.setEnabled(False) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
666 | 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
|
667 | self.clearButton.setEnabled(self.findList.topLevelItemCount() != 0) |
29471a3867ac
Added a 'Clear' button to the 'search in files' and 'search location' panes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8637
diff
changeset
|
668 | |
29471a3867ac
Added a 'Clear' button to the 'search in files' and 'search location' panes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8637
diff
changeset
|
669 | @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
|
670 | 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
|
671 | """ |
29471a3867ac
Added a 'Clear' button to the 'search in files' and 'search location' panes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8637
diff
changeset
|
672 | 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
|
673 | """ |
29471a3867ac
Added a 'Clear' button to the 'search in files' and 'search location' panes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8637
diff
changeset
|
674 | 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
|
675 | 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
|
676 | 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
|
677 | 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
|
678 | self.findProgress.setValue(0) |
8614 | 679 | |
680 | @pyqtSlot(QTreeWidgetItem, int) | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
681 | def on_findList_itemDoubleClicked(self, itm, column): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
682 | """ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
894
diff
changeset
|
683 | Private slot to handle the double click on a file item. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
684 | |
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
|
685 | It emits a signal depending on the file extension. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
686 | |
8614 | 687 | @param itm the double clicked tree item |
688 | @type QTreeWidgetItem | |
689 | @param column column that was double clicked (ignored) | |
690 | @type int | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
691 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
692 | if itm.parent(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
693 | 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
|
694 | 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
|
695 | 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
|
696 | end = itm.data(0, self.endRole) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
697 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
698 | file = itm.text(0) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
699 | line = 1 |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
700 | start = 0 |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
701 | end = 0 |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
702 | |
8636
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
703 | 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
|
704 | os.path.join(self.project.getProjectPath(), 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
|
705 | if self.project.isOpen() 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
|
706 | 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
|
707 | ) |
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
708 | fileExt = os.path.splitext(fileName)[1] |
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
709 | |
c0a3a6e40815
Extended the supported file type specific signals in the two 'Find' related widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8632
diff
changeset
|
710 | 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
|
711 | 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
|
712 | 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
|
713 | 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
|
714 | 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
|
715 | 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
|
716 | 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
|
717 | 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
|
718 | 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
|
719 | 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
|
720 | 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
|
721 | self.pixmapFile.emit(fileName) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
722 | 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
|
723 | 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
|
724 | 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
|
725 | 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
|
726 | QDesktopServices.openUrl(QUrl(fileName)) |
8614 | 727 | |
7992
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
728 | def __getFileList(self, path, filterRe, excludeHiddenDirs=False, |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
729 | excludeHiddenFiles=False): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
730 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
731 | Private method to get a list of files to search. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
732 | |
7992
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
733 | @param path the root directory to search in |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
734 | @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
|
735 | @param filterRe regular expression defining the filter |
7992
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
736 | criteria |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
737 | @type regexp object |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
738 | @param excludeHiddenDirs flag indicating to exclude hidden directories |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
739 | @type bool |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
740 | @param excludeHiddenFiles flag indicating to exclude hidden files |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
741 | @type bool |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
742 | @return list of files to be processed |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
743 | @rtype list of str |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
744 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
745 | path = os.path.abspath(path) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
746 | files = [] |
7992
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
747 | for dirname, dirs, filenames in os.walk(path): |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
748 | files.extend([ |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
749 | os.path.join(dirname, f) for f in filenames |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
750 | if (not (excludeHiddenFiles and f.startswith(".")) and |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
751 | re.match(filterRe, f)) |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
752 | ]) |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
753 | if excludeHiddenDirs: |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
754 | for d in dirs[:]: |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
755 | if d .startswith("."): |
0d1e35a10a0b
Find File Dialog
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7945
diff
changeset
|
756 | dirs.remove(d) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
757 | return files |
8614 | 758 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
759 | def setSearchDirectory(self, searchDir): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
760 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
761 | Public slot to set the name of the directory to search in. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
762 | |
8614 | 763 | @param searchDir name of the directory to search in |
764 | @type str | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
765 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
766 | 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
|
767 | self.dirPicker.setEditText(Utilities.toNativeSeparators(searchDir)) |
8614 | 768 | |
769 | @pyqtSlot() | |
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
|
770 | def setOpenFiles(self): |
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
|
771 | """ |
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
|
772 | Public slot to set the mode to search in open files. |
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
|
773 | """ |
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
|
774 | self.openFilesButton.setChecked(True) |
8614 | 775 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
776 | @pyqtSlot() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
777 | def on_replaceButton_clicked(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
778 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
779 | Private slot to perform the requested replace actions. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
780 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
781 | self.findProgress.setMaximum(self.findList.topLevelItemCount()) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
782 | self.findProgress.setValue(0) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
783 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
784 | for index in range(self.findList.topLevelItemCount()): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
785 | itm = self.findList.topLevelItem(index) |
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
|
786 | if itm.checkState(0) in [Qt.CheckState.PartiallyChecked, |
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
|
787 | Qt.CheckState.Checked]: |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
788 | 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
|
789 | origHash = itm.data(0, self.md5Role) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
790 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
791 | 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
|
792 | fn = os.path.join(self.project.getProjectPath(), file) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
793 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
794 | fn = file |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
795 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
796 | # read the file and split it into textlines |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
797 | try: |
7264
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
798 | text, encoding, hashStr = ( |
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
|
799 | Utilities.readEncodedFileWithHash(fn) |
7264
bedbe458d792
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
800 | ) |
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
|
801 | 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
|
802 | 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
|
803 | EricMessageBox.critical( |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3012
diff
changeset
|
804 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3186
diff
changeset
|
805 | 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
|
806 | 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
|
807 | """<p>Could not read the file <b>{0}</b>.""" |
3034
7ce719013078
Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3030
diff
changeset
|
808 | """ Skipping it.</p><p>Reason: {1}</p>""") |
3039
8dd0165d805d
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
809 | .format(fn, str(err)) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
810 | ) |
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
|
811 | self.findProgress.setValue(index) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
812 | continue |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
813 | |
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
|
814 | # 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
|
815 | # 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
|
816 | 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
|
817 | EricMessageBox.critical( |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3012
diff
changeset
|
818 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3186
diff
changeset
|
819 | 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
|
820 | 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
|
821 | """<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
|
822 | """ file <b>{0}</b> are different. Skipping it.""" |
3034
7ce719013078
Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3030
diff
changeset
|
823 | """</p><p>Hash 1: {1}</p><p>Hash 2: {2}</p>""") |
5603
4f2dd0850803
Continued fixing code style issues detected by the extended style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5558
diff
changeset
|
824 | .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
|
825 | ) |
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
|
826 | 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
|
827 | continue |
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
|
828 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
829 | # replace the lines authorized by the user |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
830 | for cindex in range(itm.childCount()): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
831 | 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
|
832 | 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
|
833 | 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
|
834 | rline = citm.data(0, self.replaceRole) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
835 | lines[line - 1] = rline |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
836 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
837 | # 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
|
838 | txt = "".join(lines) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
839 | try: |
45
9a18f4dbb493
Did a lot of encoding related stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
42
diff
changeset
|
840 | 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
|
841 | 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
|
842 | EricMessageBox.critical( |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3012
diff
changeset
|
843 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3186
diff
changeset
|
844 | 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
|
845 | 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
|
846 | """<p>Could not save the file <b>{0}</b>.""" |
3034
7ce719013078
Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3030
diff
changeset
|
847 | """ Skipping it.</p><p>Reason: {1}</p>""") |
3039
8dd0165d805d
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
848 | .format(fn, str(err)) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
849 | ) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
850 | |
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
|
851 | self.findProgress.setValue(index + 1) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
852 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
853 | self.findProgressLabel.setPath("") |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
854 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
855 | self.findList.clear() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
856 | self.replaceButton.setEnabled(False) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
857 | 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
|
858 | self.clearButton.setEnabled(False) |
8614 | 859 | |
860 | @pyqtSlot(QPoint) | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
861 | def __contextMenuRequested(self, pos): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
862 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
863 | Private slot to handle the context menu request. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
864 | |
8614 | 865 | @param pos position the context menu shall be shown |
866 | @type QPoint | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
867 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
868 | menu = QMenu(self) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
869 | |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3186
diff
changeset
|
870 | menu.addAction(self.tr("Open"), self.__openFile) |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3186
diff
changeset
|
871 | menu.addAction(self.tr("Copy Path to Clipboard"), |
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
|
872 | self.__copyToClipboard) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
873 | |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
874 | menu.exec(QCursor.pos()) |
8614 | 875 | |
876 | @pyqtSlot() | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
877 | def __openFile(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
878 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
879 | Private slot to open the currently selected entry. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
880 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
881 | itm = self.findList.selectedItems()[0] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
882 | self.on_findList_itemDoubleClicked(itm, 0) |
8614 | 883 | |
884 | @pyqtSlot() | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
885 | def __copyToClipboard(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
886 | """ |
8614 | 887 | 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
|
888 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
889 | 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
|
890 | fn = itm.parent().text(0) if itm.parent() else itm.text(0) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
891 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
892 | cb = QApplication.clipboard() |
654
72d4c6f31157
Fixed an issue in the FindFileDialog class replacing text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
564
diff
changeset
|
893 | cb.setText(fn) |