src/eric7/QScintilla/SearchReplaceWidget.py

Thu, 13 Apr 2023 19:33:10 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 13 Apr 2023 19:33:10 +0200
branch
eric7
changeset 9977
a5acf678c367
parent 9972
68ac01294544
child 9981
932af5154428
permissions
-rw-r--r--

Fixed an issue with search and replace in selection if the replacement text modifies the lines range of the selected text (see issue 496)

0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
9653
e67609152c5e Updated copyright for 2023.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9482
diff changeset
3 # Copyright (c) 2008 - 2023 Detlev Offenbach <detlev@die-offenbachs.de>
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the search and replace widget.
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
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
10 import contextlib
8129
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
11
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
12 from PyQt6.QtCore import QEvent, Qt, pyqtSignal, pyqtSlot
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
13 from PyQt6.QtWidgets import (
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
14 QFrame,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
15 QHBoxLayout,
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
16 QLayout,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
17 QScrollArea,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
18 QSizePolicy,
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
19 QToolButton,
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
20 QWidget,
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
21 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
23 from eric7 import Preferences
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
24 from eric7.EricGui import EricPixmapCache
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
25 from eric7.EricGui.EricAction import EricAction
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
26 from eric7.EricWidgets import EricMessageBox
143
06952f173018 Fixed the F3 not working when focus is in search widget issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
27
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
28 from .Editor import Editor
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
29 from .Ui_SearchReplaceWidget import Ui_SearchReplaceWidget
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
31
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
32 class SearchReplaceWidget(QWidget, Ui_SearchReplaceWidget):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 Class implementing the search and replace widget.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
35
501
5c615a85241a Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 500
diff changeset
36 @signal searchListChanged() emitted to indicate a change of the search list
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
38
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
39 searchListChanged = pyqtSignal()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
40
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
41 def __init__(self, vm, parent=None, sliding=False):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
44
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 @param vm reference to the viewmanager object
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
46 @type ViewManager
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
47 @param parent parent widget of this widget (defaults to None)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
48 @type QWidget (optional)
2362
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
49 @param sliding flag indicating the widget is embedded in the
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
50 sliding widget (defaults to False)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
51 @type bool (optional)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 """
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
53 super().__init__(parent)
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
54 self.setupUi(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
55
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
56 self.__viewmanager = vm
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
57 self.__isMiniEditor = vm is parent
2362
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
58 self.__sliding = sliding
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
59 if sliding:
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
60 self.__topWidget = parent
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
61
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
62 self.__findHistory = vm.getSRHistory("search")
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
63 self.__replaceHistory = vm.getSRHistory("replace")
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
64 whatsThis = self.tr(
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
65 """<b>Find and Replace</b>
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
66 <p>This dialog is used to find some text and replace it with another text.
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
67 By checking the various checkboxes, the search can be made more specific.
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
68 The search string might be a regular expression. In a regular expression,
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
69 special characters interpreted are:</p>
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 """
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
71 )
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
72 whatsThis += self.tr(
6571
feb72cfc7807 Editor: fixed am issue related to replacing found text using a match and fixed some typos in some help text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6116
diff changeset
73 """<table border="0">
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 <tr><td><code>.</code></td><td>Matches any character</td></tr>
6573
ccac2d1f6858 SearchReplaceWidget: changed the regexp search to use QScintilla's POSIX mode
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6571
diff changeset
75 <tr><td><code>(</code></td><td>This marks the start of a region for tagging a
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
76 match.</td></tr>
6573
ccac2d1f6858 SearchReplaceWidget: changed the regexp search to use QScintilla's POSIX mode
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6571
diff changeset
77 <tr><td><code>)</code></td><td>This marks the end of a tagged region.
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
78 </td></tr>
1232
ed31e909cf2e Harmonisation of some display strings related to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
79 <tr><td><code>\\n</code></td>
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
80 <td>Where <code>n</code> is 1 through 9 refers to the first through ninth
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
81 tagged region when replacing. For example, if the search string was
6573
ccac2d1f6858 SearchReplaceWidget: changed the regexp search to use QScintilla's POSIX mode
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6571
diff changeset
82 <code>Fred([1-9])XXX</code> and the replace string was
6571
feb72cfc7807 Editor: fixed am issue related to replacing found text using a match and fixed some typos in some help text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6116
diff changeset
83 <code>Sam\\1YYY</code>, when applied to <code>Fred2XXX</code> this would
feb72cfc7807 Editor: fixed am issue related to replacing found text using a match and fixed some typos in some help text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6116
diff changeset
84 generate <code>Sam2YYY</code>.</td></tr>
feb72cfc7807 Editor: fixed am issue related to replacing found text using a match and fixed some typos in some help text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6116
diff changeset
85 <tr><td><code>\\&lt;</code></td>
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
86 <td>This matches the start of a word using Scintilla's definitions of words.
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
87 </td></tr>
6571
feb72cfc7807 Editor: fixed am issue related to replacing found text using a match and fixed some typos in some help text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6116
diff changeset
88 <tr><td><code>\\&gt;</code></td>
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
89 <td>This matches the end of a word using Scintilla's definition of words.
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
90 </td></tr>
1232
ed31e909cf2e Harmonisation of some display strings related to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
91 <tr><td><code>\\x</code></td>
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
92 <td>This allows you to use a character x that would otherwise have a special
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
93 meaning. For example, \\[ would be interpreted as [ and not as the start of a
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
94 character set.</td></tr>
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 <tr><td><code>[...]</code></td>
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
96 <td>This indicates a set of characters, for example, [abc] means any of the
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
97 characters a, b or c. You can also use ranges, for example [a-z] for any lower
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
98 case character.</td></tr>
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 <tr><td><code>[^...]</code></td>
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
100 <td>The complement of the characters in the set. For example, [^A-Za-z] means
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
101 any character except an alphabetic character.</td></tr>
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 <tr><td><code>^</code></td>
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
103 <td>This matches the start of a line (unless used inside a set, see above).
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
104 </td></tr>
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 <tr><td><code>$</code></td> <td>This matches the end of a line.</td></tr>
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 <tr><td><code>*</code></td>
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
107 <td>This matches 0 or more times. For example, <code>Sa*m</code> matches
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
108 <code>Sm</code>, <code>Sam</code>, <code>Saam</code>, <code>Saaam</code>
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
109 and so on.</td></tr>
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 <tr><td><code>+</code></td>
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 <td>This matches 1 or more times. For example, <code>Sa+m</code> matches
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 <code>Sam</code>, <code>Saam</code>, <code>Saaam</code> and so on.</td></tr>
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 </table>
6841
43af1e698c9d Editor: added extended regular expression support (C++11) as of QScintilla 2.11.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
114 <p>When using the Extended (C++11) regular expression mode more features are
43af1e698c9d Editor: added extended regular expression support (C++11) as of QScintilla 2.11.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
115 available, generally similar to regular expression support in JavaScript. See
43af1e698c9d Editor: added extended regular expression support (C++11) as of QScintilla 2.11.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
116 the documentation of your C++ runtime for details on what is supported.<p>
4435
9f6555d3c3c0 Fixed some code style issues and removed code no longer needed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4304
diff changeset
117 """
9f6555d3c3c0 Fixed some code style issues and removed code no longer needed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4304
diff changeset
118 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 self.setWhatsThis(whatsThis)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
120
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
121 # set icons
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
122 self.closeButton.setIcon(EricPixmapCache.getIcon("close"))
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
123 self.findPrevButton.setIcon(EricPixmapCache.getIcon("1leftarrow"))
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
124 self.findNextButton.setIcon(EricPixmapCache.getIcon("1rightarrow"))
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
125 self.extendButton.setIcon(EricPixmapCache.getIcon("2rightarrow"))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
126
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
127 self.replaceButton.setIcon(EricPixmapCache.getIcon("editReplace"))
9972
68ac01294544 Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9943
diff changeset
128 self.replaceSearchButton.setIcon(EricPixmapCache.getIcon("editReplaceSearch"))
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
129 self.replaceAllButton.setIcon(EricPixmapCache.getIcon("editReplaceAll"))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
130
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
131 # set line edit completers
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
132 self.findtextCombo.setCompleter(None)
9972
68ac01294544 Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9943
diff changeset
133 self.findtextCombo.lineEdit().returnPressed.connect(self.__findByReturnPressed)
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
134 self.replacetextCombo.setCompleter(None)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
135 self.replacetextCombo.lineEdit().returnPressed.connect(
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
136 self.on_replaceButton_clicked
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
137 )
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
138
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
139 self.__currentEditor = None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
140
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
141 self.findtextCombo.lineEdit().textEdited.connect(self.__quickSearch)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
142 self.caseCheckBox.toggled.connect(self.__updateQuickSearchMarkers)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
143 self.wordCheckBox.toggled.connect(self.__updateQuickSearchMarkers)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
144 self.regexpCheckBox.toggled.connect(self.__updateQuickSearchMarkers)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
145
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
146 self.__findtextComboStyleSheet = self.findtextCombo.styleSheet()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
147
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
148 # define actions
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: 8318
diff changeset
149 self.findNextAct = EricAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
150 self.tr("Find Next"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
151 self.tr("Find Next"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
152 0,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
153 0,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
154 self,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
155 "search_widget_find_next",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
156 )
3345
071afe8be2a1 Changed signal/slot usage to not use constructs like 'triggered[()].connect(...)' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
157 self.findNextAct.triggered.connect(self.on_findNextButton_clicked)
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: 8130
diff changeset
158 self.findNextAct.setShortcutContext(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
159 Qt.ShortcutContext.WidgetWithChildrenShortcut
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
160 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
161
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: 8318
diff changeset
162 self.findPrevAct = EricAction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
163 self.tr("Find Prev"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
164 self.tr("Find Prev"),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
165 0,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
166 0,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
167 self,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
168 "search_widget_find_prev",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
169 )
3345
071afe8be2a1 Changed signal/slot usage to not use constructs like 'triggered[()].connect(...)' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
170 self.findPrevAct.triggered.connect(self.on_findPrevButton_clicked)
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: 8130
diff changeset
171 self.findPrevAct.setShortcutContext(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
172 Qt.ShortcutContext.WidgetWithChildrenShortcut
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
173 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
174
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
175 self.replaceAndSearchAct = EricAction(
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
176 self.tr("Replace and Search"),
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
177 self.tr("Replace and Search"),
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
178 0,
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
179 0,
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
180 self,
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
181 "replace_widget_replace_search",
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
182 )
9972
68ac01294544 Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9943
diff changeset
183 self.replaceAndSearchAct.triggered.connect(self.on_replaceSearchButton_clicked)
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
184 self.replaceAndSearchAct.setEnabled(False)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
185 self.replaceAndSearchAct.setShortcutContext(
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
186 Qt.ShortcutContext.WidgetWithChildrenShortcut
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
187 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
188
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
189 self.replaceSelectionAct = EricAction(
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
190 self.tr("Replace Occurrence"),
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
191 self.tr("Replace Occurrence"),
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
192 0,
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
193 0,
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
194 self,
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
195 "replace_widget_replace_occurrence",
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
196 )
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
197 self.replaceSelectionAct.triggered.connect(self.on_replaceButton_clicked)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
198 self.replaceSelectionAct.setEnabled(False)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
199 self.replaceSelectionAct.setShortcutContext(
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
200 Qt.ShortcutContext.WidgetWithChildrenShortcut
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
201 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
202
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
203 self.replaceAllAct = EricAction(
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
204 self.tr("Replace All"),
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
205 self.tr("Replace All"),
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
206 0,
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
207 0,
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
208 self,
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
209 "replace_widget_replace_all",
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
210 )
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
211 self.replaceAllAct.triggered.connect(self.on_replaceAllButton_clicked)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
212 self.replaceAllAct.setEnabled(False)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
213 self.replaceAllAct.setShortcutContext(
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
214 Qt.ShortcutContext.WidgetWithChildrenShortcut
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
215 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
216
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
217 self.addAction(self.findNextAct)
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
218 self.addAction(self.findPrevAct)
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
219 self.addAction(self.replaceAndSearchAct)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
220 self.addAction(self.replaceSelectionAct)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
221 self.addAction(self.replaceAllAct)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
222
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
223 # disable search and replace buttons and actions
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
224 self.__setFindNextEnabled(False)
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
225 self.__setFindPrevEnabled(False)
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
226 self.__setReplaceAndSearchEnabled(False)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
227 self.__setReplaceSelectionEnabled(False)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
228 self.__setReplaceAllEnabled(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
229
4086
822f456652c5 Adjust size of the SearchReplaceWidget and SearchReplaceSlidingWidget to properlyreflect font size changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4068
diff changeset
230 self.adjustSize()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
231
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
232 self.havefound = False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
233 self.__pos = None
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
234 self.__findBackwards = False
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
235 self.__selections = []
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
236 self.__finding = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
237
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
238 def __setShortcuts(self):
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
239 """
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
240 Private method to set the local action's shortcuts to the same key
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
241 sequences as in the view manager.
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
242 """
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
243 if not self.__isMiniEditor:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
244 self.findNextAct.setShortcuts(self.__viewmanager.searchNextAct.shortcuts())
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
245 self.findPrevAct.setShortcuts(self.__viewmanager.searchPrevAct.shortcuts())
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
246
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
247 self.replaceAndSearchAct.setShortcuts(
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
248 self.__viewmanager.replaceAndSearchAct.shortcuts()
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
249 )
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
250 self.replaceSelectionAct.setShortcuts(
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
251 self.__viewmanager.replaceSelectionAct.shortcuts()
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
252 )
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
253 self.replaceAllAct.setShortcuts(
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
254 self.__viewmanager.replaceAllAct.shortcuts()
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
255 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
256
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
257 def __setFindNextEnabled(self, enable):
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
258 """
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
259 Private method to set the enabled state of "Find Next".
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
260
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
261 @param enable flag indicating the enable state to be set
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
262 @type bool
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
263 """
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
264 self.findNextButton.setEnabled(enable)
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
265 self.findNextAct.setEnabled(enable)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
266
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
267 def __setFindPrevEnabled(self, enable):
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
268 """
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
269 Private method to set the enabled state of "Find Prev".
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
270
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
271 @param enable flag indicating the enable state to be set
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
272 @type bool
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
273 """
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
274 self.findPrevButton.setEnabled(enable)
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
275 self.findPrevAct.setEnabled(enable)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
276
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
277 def __setReplaceAndSearchEnabled(self, enable):
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
278 """
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
279 Private method to set the enabled state of "Replace And Search".
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
280
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
281 @param enable flag indicating the enable state to be set
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
282 @type bool
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
283 """
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
284 self.replaceSearchButton.setEnabled(enable)
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
285 self.replaceAndSearchAct.setEnabled(enable)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
286
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
287 def __setReplaceSelectionEnabled(self, enable):
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
288 """
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
289 Private method to set the enabled state of "Replace Occurrence".
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
290
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
291 @param enable flag indicating the enable state to be set
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
292 @type bool
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
293 """
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
294 self.replaceButton.setEnabled(enable)
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
295 self.replaceSelectionAct.setEnabled(enable)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
296
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
297 def __setReplaceAllEnabled(self, enable):
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
298 """
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
299 Private method to set the enabled state of "Replace All".
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
300
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
301 @param enable flag indicating the enable state to be set
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
302 @type bool
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
303 """
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
304 self.replaceAllButton.setEnabled(enable)
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
305 self.replaceAllAct.setEnabled(enable)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
306
4068
cb91ccf0104d Fixed another issue with the editor search bar and replace bar related to resizing upon usage of large fonts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4061
diff changeset
307 def changeEvent(self, evt):
cb91ccf0104d Fixed another issue with the editor search bar and replace bar related to resizing upon usage of large fonts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4061
diff changeset
308 """
cb91ccf0104d Fixed another issue with the editor search bar and replace bar related to resizing upon usage of large fonts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4061
diff changeset
309 Protected method handling state changes.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
310
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
311 @param evt event containing the state change
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
312 @type QEvent
4068
cb91ccf0104d Fixed another issue with the editor search bar and replace bar related to resizing upon usage of large fonts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4061
diff changeset
313 """
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: 8130
diff changeset
314 if evt.type() == QEvent.Type.FontChange:
4086
822f456652c5 Adjust size of the SearchReplaceWidget and SearchReplaceSlidingWidget to properlyreflect font size changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4068
diff changeset
315 self.adjustSize()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
316
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
317 def __selectionBoundary(self, selections=None):
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
318 """
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
319 Private method to calculate the current selection boundary.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
320
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
321 @param selections optional parameter giving the selections to
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
322 calculate the boundary for (defaults to None)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
323 @type list of tuples of four int
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
324 @return tuple of start line and index and end line and index
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
325 @rtype tuple (int, int, int, int)
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
326 """
9977
a5acf678c367 Fixed an issue with search and replace in selection if the replacement text modifies the lines range of the selected text (see issue 496)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9972
diff changeset
327 aw = self.__viewmanager.activeWindow()
a5acf678c367 Fixed an issue with search and replace in selection if the replacement text modifies the lines range of the selected text (see issue 496)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9972
diff changeset
328
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
329 if selections is None:
9977
a5acf678c367 Fixed an issue with search and replace in selection if the replacement text modifies the lines range of the selected text (see issue 496)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9972
diff changeset
330 selectionMarkerRange = aw.getSearchSelectionHighlight()
a5acf678c367 Fixed an issue with search and replace in selection if the replacement text modifies the lines range of the selected text (see issue 496)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9972
diff changeset
331 if selectionMarkerRange == (0, 0, 0, 0):
a5acf678c367 Fixed an issue with search and replace in selection if the replacement text modifies the lines range of the selected text (see issue 496)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9972
diff changeset
332 selections = self.__selections
a5acf678c367 Fixed an issue with search and replace in selection if the replacement text modifies the lines range of the selected text (see issue 496)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9972
diff changeset
333 else:
a5acf678c367 Fixed an issue with search and replace in selection if the replacement text modifies the lines range of the selected text (see issue 496)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9972
diff changeset
334 selections = [selectionMarkerRange]
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
335 if selections:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
336 lineNumbers = [sel[0] for sel in selections] + [
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
337 sel[2] for sel in selections
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
338 ]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
339 indexNumbers = [sel[1] for sel in selections] + [
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
340 sel[3] for sel in selections
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
341 ]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
342 startLine, startIndex, endLine, endIndex = (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
343 min(lineNumbers),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
344 min(indexNumbers),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
345 max(lineNumbers),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
346 max(indexNumbers),
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
347 )
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
348 else:
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
349 startLine, startIndex, endLine, endIndex = -1, -1, -1, -1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
350
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
351 return startLine, startIndex, endLine, endIndex
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
352
8129
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
353 @pyqtSlot(str)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
354 def on_findtextCombo_editTextChanged(self, txt):
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 Private slot to enable/disable the find buttons.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
357
8129
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
358 @param txt text of the find text combo
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
359 @type str
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
360 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
361 enable = bool(txt)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
362
8129
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
363 self.__setFindNextEnabled(enable)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
364 self.__setFindPrevEnabled(enable)
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
365 self.extendButton.setEnabled(enable)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
366 self.__setReplaceSelectionEnabled(False)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
367 self.__setReplaceAndSearchEnabled(False)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
368 self.__setReplaceAllEnabled(enable)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
369
8129
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
370 @pyqtSlot(str)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
371 def __quickSearch(self, txt):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
372 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
373 Private slot to search for the entered text while typing.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
374
8129
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
375 @param txt text of the search edit
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
376 @type str
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
377 """
9931
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
378 if Preferences.getEditor("QuickSearchEnabled"):
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
379 aw = self.__viewmanager.activeWindow()
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
380 aw.hideFindIndicator()
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
381 if Preferences.getEditor("QuickSearchMarkersEnabled"):
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
382 self.__quickSearchMarkOccurrences(txt)
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
383
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
384 if self.selectionCheckBox.isChecked():
9931
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
385 lineFrom, indexFrom, lineTo, indexTo = self.__selectionBoundary()
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
386 aw.highlightSearchSelection(lineFrom, indexFrom, lineTo, indexTo)
9931
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
387 else:
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
388 lineFrom, indexFrom, lineTo, indexTo = 0, 0, -1, -1
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
389 posixMode = (
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
390 Preferences.getEditor("SearchRegexpMode") == 0
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
391 and self.regexpCheckBox.isChecked()
9931
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
392 )
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
393 cxx11Mode = (
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
394 Preferences.getEditor("SearchRegexpMode") == 1
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
395 and self.regexpCheckBox.isChecked()
9931
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
396 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
397
9931
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
398 self.__finding = True
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
399 ok = aw.findFirst(
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
400 txt,
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
401 self.regexpCheckBox.isChecked(),
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
402 self.caseCheckBox.isChecked(),
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
403 self.wordCheckBox.isChecked(),
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
404 self.wrapCheckBox.isChecked(),
9931
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
405 not self.__findBackwards,
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
406 lineFrom,
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
407 indexFrom,
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
408 posix=posixMode,
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
409 cxx11=cxx11Mode,
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
410 )
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
411 if ok:
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
412 sline, sindex, eline, eindex = aw.getSelection()
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
413 if (
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
414 (sline == lineFrom and sindex >= indexFrom)
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
415 or (sline > lineFrom and sline < lineTo)
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
416 or (sline == lineTo and sindex <= indexTo)
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
417 ):
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
418 aw.showFindIndicator(sline, sindex, eline, eindex)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
419
9931
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
420 self.__finding = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
421
9931
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
422 if not txt:
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
423 ok = True # reset the color in case of an empty text
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
424
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
425 self.__setSearchEditColors(ok)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
426
8129
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
427 def __quickSearchMarkOccurrences(self, txt):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
428 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
429 Private method to mark all occurrences of the search text.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
430
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
431 @param txt text to search for
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
432 @type str
8129
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
433 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
434 aw = self.__viewmanager.activeWindow()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
435
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
436 if self.selectionCheckBox.isChecked():
9931
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
437 lineFrom, indexFrom, lineTo, indexTo = self.__selectionBoundary()
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
438 else:
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
439 lineFrom, indexFrom, lineTo, indexTo = 0, 0, -1, -1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
440
8129
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
441 aw.clearSearchIndicators()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
442 posixMode = (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
443 Preferences.getEditor("SearchRegexpMode") == 0
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
444 and self.regexpCheckBox.isChecked()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
445 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
446 cxx11Mode = (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
447 Preferences.getEditor("SearchRegexpMode") == 1
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
448 and self.regexpCheckBox.isChecked()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
449 )
8129
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
450 ok = aw.findFirstTarget(
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
451 txt,
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
452 self.regexpCheckBox.isChecked(),
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
453 self.caseCheckBox.isChecked(),
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
454 self.wordCheckBox.isChecked(),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
455 lineFrom,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
456 indexFrom,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
457 lineTo,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
458 indexTo,
8129
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
459 posix=posixMode,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
460 cxx11=cxx11Mode,
8129
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
461 )
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
462 while ok:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
463 tgtPos, tgtLen = aw.getFoundTarget()
9931
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
464 if tgtLen == 0:
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
465 break
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
466 if len(self.__selections) > 1:
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
467 sline, sindex = aw.lineIndexFromPosition(tgtPos)
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
468 eline, eindex = aw.lineIndexFromPosition(tgtPos + tgtLen)
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
469 indicate = (
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
470 (sline == lineFrom and sindex >= indexFrom)
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
471 or (sline > lineFrom and sline < lineTo)
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
472 or (sline == lineTo and sindex <= indexTo)
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
473 )
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
474 else:
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
475 indicate = True
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
476 if indicate:
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
477 aw.setSearchIndicator(tgtPos, tgtLen)
8129
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
478 ok = aw.findNextTarget()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
479
8129
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
480 def __setSearchEditColors(self, ok):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
481 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
482 Private method to set the search edit colors.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
483
8129
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
484 @param ok flag indicating a match
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
485 @type bool
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
486 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
487 if not ok:
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
488 self.findtextCombo.setStyleSheet(
8858
a70a980e7d4f Changed the various search related combo boxes to show an error using style sheets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8847
diff changeset
489 "color: #000000; background-color: #ff6666;"
8847
8c5812ca27e1 Changed some widgets to work with style sheets instead of manipulating the palette.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
490 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
491 else:
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
492 self.findtextCombo.setStyleSheet(self.__findtextComboStyleSheet)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
493
8129
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
494 @pyqtSlot()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
495 def on_extendButton_clicked(self):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
496 """
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
497 Private slot to handle the quick search extend action.
8129
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
498 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
499 aw = self.__viewmanager.activeWindow()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
500 if aw is None:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
501 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
502
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
503 txt = self.findtextCombo.currentText()
8129
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
504 if not txt:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
505 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
506
8129
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
507 line, index = aw.getCursorPosition()
9931
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
508 word = aw.getWord(line, index)
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
509 self.findtextCombo.setEditText(word)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
510 self.findtextCombo.lineEdit().selectAll()
9931
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
511 self.__quickSearch(word)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
512
8129
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
513 @pyqtSlot(bool)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
514 def __updateQuickSearchMarkers(self, on):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
515 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
516 Private slot to handle the selection of the various check boxes.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
517
8129
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
518 @param on status of the check box (ignored)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
519 @type bool
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
520 """
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
521 txt = self.findtextCombo.currentText()
8129
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
522 self.__quickSearch(txt)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
523
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
524 @pyqtSlot()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
525 def on_findNextButton_clicked(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
526 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
527 Private slot to find the next occurrence of text.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
528 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
529 self.findNext()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
530
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
531 @pyqtSlot()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
532 def findNext(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
533 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
534 Public slot to find the next occurrence of text.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
535 """
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
536 if not self.havefound or not self.findtextCombo.currentText():
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
537 self.__viewmanager.showSearchWidget()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
538 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
539
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
540 self.__findBackwards = False
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
541 txt = self.findtextCombo.currentText()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
542
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
543 # This moves any previous occurrence of this statement to the head
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
544 # of the list and updates the combobox
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
545 if txt in self.__findHistory:
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
546 self.__findHistory.remove(txt)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
547 self.__findHistory.insert(0, txt)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
548 self.findtextCombo.clear()
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
549 self.findtextCombo.addItems(self.__findHistory)
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
550 self.searchListChanged.emit()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
551
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
552 ok = self.__findNextPrev(txt, False)
8129
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
553 self.__setSearchEditColors(ok)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
554 if ok:
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
555 self.__setReplaceSelectionEnabled(True)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
556 self.__setReplaceAndSearchEnabled(True)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
557 else:
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: 8318
diff changeset
558 EricMessageBox.information(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
559 self, self.windowTitle(), self.tr("'{0}' was not found.").format(txt)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
560 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
561
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
562 @pyqtSlot()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
563 def on_findPrevButton_clicked(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
564 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
565 Private slot to find the previous occurrence of text.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
566 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
567 self.findPrev()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
568
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
569 @pyqtSlot()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
570 def findPrev(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
571 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
572 Public slot to find the next previous of text.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
573 """
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
574 if not self.havefound or not self.findtextCombo.currentText():
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
575 self.show(self.__viewmanager.textForFind())
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
576 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
577
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
578 self.__findBackwards = True
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
579 txt = self.findtextCombo.currentText()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
580
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
581 # This moves any previous occurrence of this statement to the head
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
582 # of the list and updates the combobox
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
583 if txt in self.__findHistory:
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
584 self.__findHistory.remove(txt)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
585 self.__findHistory.insert(0, txt)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
586 self.findtextCombo.clear()
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
587 self.findtextCombo.addItems(self.__findHistory)
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 486
diff changeset
588 self.searchListChanged.emit()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
589
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
590 ok = self.__findNextPrev(txt, True)
8129
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
591 self.__setSearchEditColors(ok)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
592 if ok:
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
593 self.__setReplaceSelectionEnabled(True)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
594 self.__setReplaceAndSearchEnabled(True)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
595 else:
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: 8318
diff changeset
596 EricMessageBox.information(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
597 self, self.windowTitle(), self.tr("'{0}' was not found.").format(txt)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
598 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
599
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
600 @pyqtSlot()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
601 def __findByReturnPressed(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
602 """
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
603 Private slot to handle the returnPressed signal of the findtext
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
604 combobox.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
605 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
606 if self.__findBackwards:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
607 self.findPrev()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
608 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
609 self.findNext()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
610
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
611 def __markOccurrences(self, txt):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
612 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
613 Private method to mark all occurrences of the search text.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
614
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
615 @param txt text to search for
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
616 @type str
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
617 """
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
618 aw = self.__viewmanager.activeWindow()
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
619 if self.selectionCheckBox.isChecked():
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
620 lineFrom, indexFrom, lineTo, indexTo = self.__selectionBoundary()
9931
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
621 else:
e6e01a10c3a1 Corrected a few 'quick search' issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
622 lineFrom, indexFrom, lineTo, indexTo = 0, 0, -1, -1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
623 posixMode = (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
624 Preferences.getEditor("SearchRegexpMode") == 0
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
625 and self.regexpCheckBox.isChecked()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
626 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
627 cxx11Mode = (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
628 Preferences.getEditor("SearchRegexpMode") == 1
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
629 and self.regexpCheckBox.isChecked()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
630 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
631
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
632 aw.clearSearchIndicators()
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
633 ok = aw.findFirstTarget(
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
634 txt,
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
635 self.regexpCheckBox.isChecked(),
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
636 self.caseCheckBox.isChecked(),
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
637 self.wordCheckBox.isChecked(),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
638 lineFrom,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
639 indexFrom,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
640 lineTo,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
641 indexTo,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
642 posix=posixMode,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
643 cxx11=cxx11Mode,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
644 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
645 while ok:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
646 tgtPos, tgtLen = aw.getFoundTarget()
1120
5c90fd188a24 Fixed a bug in the search & replace widget causing and endless loop [issue19].
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1112
diff changeset
647 if tgtLen == 0:
5c90fd188a24 Fixed a bug in the search & replace widget causing and endless loop [issue19].
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1112
diff changeset
648 break
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
649 if len(self.__selections) > 1:
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
650 lineFrom, indexFrom = aw.lineIndexFromPosition(tgtPos)
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
651 lineTo, indexTo = aw.lineIndexFromPosition(tgtPos + tgtLen)
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
652 for sel in self.__selections:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
653 if lineFrom == sel[0] and indexFrom >= sel[1] and indexTo <= sel[3]:
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
654 indicate = True
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
655 break
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
656 else:
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
657 indicate = False
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
658 else:
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
659 indicate = True
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
660 if indicate:
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
661 aw.setSearchIndicator(tgtPos, tgtLen)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
662 ok = aw.findNextTarget()
8243
cc717c2ae956 Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
663 with contextlib.suppress(AttributeError):
4757
866050e987de Fixed a serious bug in the editor search widget causing a traceback in the mini editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
664 aw.updateMarkerMap()
8243
cc717c2ae956 Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
665 # ignore it for MiniEditor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
666
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
667 def __findNextPrev(self, txt, backwards):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
668 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
669 Private method to find the next occurrence of the search text.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
670
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
671 @param txt text to search for
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
672 @type str
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
673 @param backwards flag indicating a backwards search
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
674 @type bool
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
675 @return flag indicating success
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
676 @rtype bool
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
677 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
678 self.__finding = True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
679
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
680 if Preferences.getEditor("SearchMarkersEnabled"):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
681 self.__markOccurrences(txt)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
682
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
683 aw = self.__viewmanager.activeWindow()
3069
8a9579bbf583 Added support for find indicators to the editor (QScintilla >= 2.8).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3039
diff changeset
684 aw.hideFindIndicator()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
685 cline, cindex = aw.getCursorPosition()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
686
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
687 ok = True
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
688 lineFrom, indexFrom, lineTo, indexTo = aw.getSelection()
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
689 boundary = self.__selectionBoundary()
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
690 if self.selectionCheckBox.isChecked():
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
691 aw.highlightSearchSelection(*boundary)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
692 if backwards:
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
693 if (
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
694 self.selectionCheckBox.isChecked()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
695 and (lineFrom, indexFrom, lineTo, indexTo) == boundary
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
696 ):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
697 # initial call
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
698 line, index = boundary[2:]
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
699 else:
1530
e008f34c245b Fixed an issue searching backwards in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1527
diff changeset
700 if (lineFrom, indexFrom) == (-1, -1):
e008f34c245b Fixed an issue searching backwards in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1527
diff changeset
701 # no selection present
e008f34c245b Fixed an issue searching backwards in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1527
diff changeset
702 line = cline
e008f34c245b Fixed an issue searching backwards in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1527
diff changeset
703 index = cindex
e008f34c245b Fixed an issue searching backwards in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1527
diff changeset
704 else:
e008f34c245b Fixed an issue searching backwards in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1527
diff changeset
705 line = lineFrom
2663
37b3ec77f2c4 Fixed a bug causing an incorrect bachwards search if the search patterns are directly netx to each other.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2661
diff changeset
706 index = indexFrom
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
707 if (
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
708 self.selectionCheckBox.isChecked()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
709 and line == boundary[0]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
710 and index >= 0
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
711 and index < boundary[1]
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
712 ):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
713 ok = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
714
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
715 if ok and index < 0:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
716 line -= 1
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
717 if self.selectionCheckBox.isChecked():
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
718 if line < boundary[0]:
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
719 if self.wrapCheckBox.isChecked():
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
720 line, index = boundary[2:]
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
721 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
722 ok = False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
723 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
724 index = aw.lineLength(line)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
725 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
726 if line < 0:
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
727 if self.wrapCheckBox.isChecked():
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
728 line = aw.lines() - 1
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
729 index = aw.lineLength(line)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
730 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
731 ok = False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
732 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
733 index = aw.lineLength(line)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
734 else:
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
735 if (
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
736 self.selectionCheckBox.isChecked()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
737 and (lineFrom, indexFrom, lineTo, indexTo) == boundary
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
738 ):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
739 # initial call
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
740 line, index = boundary[:2]
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
741 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
742 line = lineTo
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
743 index = indexTo
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
744
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
745 if ok:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
746 posixMode = (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
747 Preferences.getEditor("SearchRegexpMode") == 0
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
748 and self.regexpCheckBox.isChecked()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
749 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
750 cxx11Mode = (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
751 Preferences.getEditor("SearchRegexpMode") == 1
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
752 and self.regexpCheckBox.isChecked()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
753 )
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
754 ok = aw.findFirst(
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
755 txt,
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
756 self.regexpCheckBox.isChecked(),
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
757 self.caseCheckBox.isChecked(),
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
758 self.wordCheckBox.isChecked(),
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
759 self.wrapCheckBox.isChecked(),
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
760 not backwards,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
761 line,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
762 index,
6841
43af1e698c9d Editor: added extended regular expression support (C++11) as of QScintilla 2.11.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
763 posix=posixMode,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
764 cxx11=cxx11Mode,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
765 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
766
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
767 if ok and self.selectionCheckBox.isChecked():
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
768 lineFrom, indexFrom, lineTo, indexTo = aw.getSelection()
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
769 if len(self.__selections) > 1:
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
770 for sel in self.__selections:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
771 if lineFrom == sel[0] and indexFrom >= sel[1] and indexTo <= sel[3]:
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
772 ok = True
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
773 break
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
774 else:
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
775 ok = False
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
776 elif (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
777 (lineFrom == boundary[0] and indexFrom >= boundary[1])
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
778 or (lineFrom > boundary[0] and lineFrom < boundary[2])
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
779 or (lineFrom == boundary[2] and indexFrom <= boundary[3])
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
780 ):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
781 ok = True
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
782 else:
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
783 ok = False
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
784 if not ok and len(self.__selections) > 1:
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
785 # try again
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
786 while not ok and (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
787 (backwards and lineFrom >= boundary[0])
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
788 or (not backwards and lineFrom <= boundary[2])
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
789 ):
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
790 for ind in range(len(self.__selections)):
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
791 if lineFrom == self.__selections[ind][0]:
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
792 after = indexTo > self.__selections[ind][3]
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
793 if backwards:
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
794 if after:
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
795 line, index = self.__selections[ind][2:]
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
796 else:
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
797 if ind > 0:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
798 line, index = self.__selections[ind - 1][2:]
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
799 else:
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
800 if after:
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
801 if ind < len(self.__selections) - 1:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
802 line, index = self.__selections[ind + 1][:2]
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
803 else:
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
804 line, index = self.__selections[ind][:2]
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
805 break
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
806 else:
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
807 break
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
808 ok = aw.findFirst(
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
809 txt,
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
810 self.regexpCheckBox.isChecked(),
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
811 self.caseCheckBox.isChecked(),
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
812 self.wordCheckBox.isChecked(),
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
813 self.wrapCheckBox.isChecked(),
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
814 not backwards,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
815 line,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
816 index,
6841
43af1e698c9d Editor: added extended regular expression support (C++11) as of QScintilla 2.11.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
817 posix=posixMode,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
818 cxx11=cxx11Mode,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
819 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
820 if ok:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
821 lineFrom, indexFrom, lineTo, indexTo = aw.getSelection()
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
822 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
823 lineFrom < boundary[0]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
824 or lineFrom > boundary[2]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
825 or indexFrom < boundary[1]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
826 or indexFrom > boundary[3]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
827 or indexTo < boundary[1]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
828 or indexTo > boundary[3]
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
829 ):
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
830 ok = False
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
831 break
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
832 if not ok:
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
833 if self.wrapCheckBox.isChecked():
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
834 # try it again
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
835 if backwards:
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
836 line, index = boundary[2:]
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
837 else:
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
838 line, index = boundary[:2]
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
839 ok = aw.findFirst(
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
840 txt,
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
841 self.regexpCheckBox.isChecked(),
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
842 self.caseCheckBox.isChecked(),
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
843 self.wordCheckBox.isChecked(),
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
844 self.wrapCheckBox.isChecked(),
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
845 not backwards,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
846 line,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
847 index,
6841
43af1e698c9d Editor: added extended regular expression support (C++11) as of QScintilla 2.11.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
848 posix=posixMode,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
849 cxx11=cxx11Mode,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
850 )
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
851 if ok:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
852 lineFrom, indexFrom, lineTo, indexTo = aw.getSelection()
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
853 if len(self.__selections) > 1:
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
854 for sel in self.__selections:
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
855 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
856 lineFrom == sel[0]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
857 and indexFrom >= sel[1]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
858 and indexTo <= sel[3]
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
859 ):
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
860 ok = True
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
861 break
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
862 else:
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
863 ok = False
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
864 elif (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
865 (lineFrom == boundary[0] and indexFrom >= boundary[1])
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
866 or (lineFrom > boundary[0] and lineFrom < boundary[2])
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
867 or (lineFrom == boundary[2] and indexFrom <= boundary[3])
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
868 ):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
869 ok = True
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
870 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
871 ok = False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
872 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
873 ok = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
874
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
875 if not ok:
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
876 aw.selectAll(False)
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
877 aw.setCursorPosition(cline, cindex)
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
878 aw.ensureCursorVisible()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
879
3069
8a9579bbf583 Added support for find indicators to the editor (QScintilla >= 2.8).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3039
diff changeset
880 if ok:
8a9579bbf583 Added support for find indicators to the editor (QScintilla >= 2.8).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3039
diff changeset
881 sline, sindex, eline, eindex = aw.getSelection()
8a9579bbf583 Added support for find indicators to the editor (QScintilla >= 2.8).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3039
diff changeset
882 aw.showFindIndicator(sline, sindex, eline, eindex)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
883
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
884 self.__finding = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
885
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
886 return ok
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
887
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
888 def __showFind(self, text=""):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
889 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
890 Private method to display this widget in find mode.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
891
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
892 @param text text to be shown in the findtext edit (defaults to "")
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
893 @type str (optional)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
894 """
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
895 # hide the replace related widgets
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
896 for widget in (
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
897 self.replaceLabel,
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
898 self.replacetextCombo,
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
899 self.replaceButton,
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
900 self.replaceSearchButton,
9972
68ac01294544 Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9943
diff changeset
901 self.replaceAllButton,
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
902 ):
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
903 widget.setVisible(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
904
8129
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
905 self.__setSearchEditColors(True)
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
906 self.findtextCombo.clear()
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
907 self.findtextCombo.addItems(self.__findHistory)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
908 self.findtextCombo.setEditText(text)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
909 self.findtextCombo.lineEdit().selectAll()
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
910 self.findtextCombo.setFocus()
1527
b60af978f526 Added the capability to replace just the selected occurence of the search text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
911 self.on_findtextCombo_editTextChanged(text)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
912
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
913 self.caseCheckBox.setChecked(False)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
914 self.wordCheckBox.setChecked(False)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
915 self.wrapCheckBox.setChecked(True)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
916 self.regexpCheckBox.setChecked(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
917
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
918 aw = self.__viewmanager.activeWindow()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
919 self.updateSelectionCheckBox(aw)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
920
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
921 self.havefound = True
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
922 self.__findBackwards = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
923
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
924 self.__setShortcuts()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
925
6116
f3d3c996c193 Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
926 def selectionChanged(self, editor):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
927 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
928 Public slot tracking changes of selected text.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
929
6116
f3d3c996c193 Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
930 @param editor reference to the editor
f3d3c996c193 Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
931 @type Editor
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
932 """
6116
f3d3c996c193 Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
933 self.updateSelectionCheckBox(editor)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
934
486
e4711a55e482 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 482
diff changeset
935 @pyqtSlot(Editor)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
936 def updateSelectionCheckBox(self, editor):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
937 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
938 Public slot to update the selection check box.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
939
6116
f3d3c996c193 Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
940 @param editor reference to the editor
f3d3c996c193 Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
941 @type Editor
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
942 """
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
943 from .MiniEditor import MiniScintilla
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
944
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
945 if not self.__finding and isinstance(editor, (Editor, MiniScintilla)):
9972
68ac01294544 Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9943
diff changeset
946 if self.__currentEditor is not None and self.__currentEditor is not editor:
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
947 self.__currentEditor.clearSearchSelectionHighlight()
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
948 self.__currentEditor = editor
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
949
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
950 if editor.hasSelectedText():
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
951 selections = editor.getSelections()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
952 line1, index1, line2, index2 = self.__selectionBoundary(selections)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
953 if line1 != line2:
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
954 self.selectionCheckBox.setEnabled(True)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
955 self.selectionCheckBox.setChecked(True)
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
956 self.__selections = selections
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
957 self.__currentEditor.clearSearchSelectionHighlight()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
958 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
959
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
960 self.selectionCheckBox.setEnabled(False)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
961 self.selectionCheckBox.setChecked(False)
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
962 self.__selections = []
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
963
9943
02a40e8bd135 Fixed an issue in the new Search & Replace widget caused by maintaining a reference to an already closed editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9938
diff changeset
964 @pyqtSlot(Editor)
02a40e8bd135 Fixed an issue in the new Search & Replace widget caused by maintaining a reference to an already closed editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9938
diff changeset
965 def editorClosed(self, editor):
02a40e8bd135 Fixed an issue in the new Search & Replace widget caused by maintaining a reference to an already closed editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9938
diff changeset
966 """
02a40e8bd135 Fixed an issue in the new Search & Replace widget caused by maintaining a reference to an already closed editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9938
diff changeset
967 Public slot to handle the closing of an editor.
02a40e8bd135 Fixed an issue in the new Search & Replace widget caused by maintaining a reference to an already closed editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9938
diff changeset
968
02a40e8bd135 Fixed an issue in the new Search & Replace widget caused by maintaining a reference to an already closed editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9938
diff changeset
969 @param editor reference to the closed editor
02a40e8bd135 Fixed an issue in the new Search & Replace widget caused by maintaining a reference to an already closed editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9938
diff changeset
970 @type Editor
02a40e8bd135 Fixed an issue in the new Search & Replace widget caused by maintaining a reference to an already closed editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9938
diff changeset
971 """
02a40e8bd135 Fixed an issue in the new Search & Replace widget caused by maintaining a reference to an already closed editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9938
diff changeset
972 if self.__currentEditor is not None and self.__currentEditor is editor:
02a40e8bd135 Fixed an issue in the new Search & Replace widget caused by maintaining a reference to an already closed editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9938
diff changeset
973 self.__currentEditor = None
02a40e8bd135 Fixed an issue in the new Search & Replace widget caused by maintaining a reference to an already closed editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9938
diff changeset
974
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
975 def replace(self):
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
976 """
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
977 Public method to replace the current selection.
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
978 """
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
979 if self.replaceButton.isEnabled():
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
980 self.__doReplace(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
981
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
982 def replaceSearch(self):
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
983 """
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
984 Public method to replace the current selection and search again.
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
985 """
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
986 if self.replaceSearchButton.isEnabled():
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
987 self.__doReplace(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
988
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
989 @pyqtSlot()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
990 def on_replaceButton_clicked(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
991 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
992 Private slot to replace one occurrence of text.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
993 """
1527
b60af978f526 Added the capability to replace just the selected occurence of the search text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
994 self.__doReplace(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
995
1527
b60af978f526 Added the capability to replace just the selected occurence of the search text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
996 @pyqtSlot()
b60af978f526 Added the capability to replace just the selected occurence of the search text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
997 def on_replaceSearchButton_clicked(self):
b60af978f526 Added the capability to replace just the selected occurence of the search text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
998 """
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
999 Private slot to replace one occurrence of text and search for the next
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
1000 one.
1527
b60af978f526 Added the capability to replace just the selected occurence of the search text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
1001 """
b60af978f526 Added the capability to replace just the selected occurence of the search text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
1002 self.__doReplace(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1003
1527
b60af978f526 Added the capability to replace just the selected occurence of the search text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
1004 def __doReplace(self, searchNext):
b60af978f526 Added the capability to replace just the selected occurence of the search text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
1005 """
b60af978f526 Added the capability to replace just the selected occurence of the search text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
1006 Private method to replace one occurrence of text.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1007
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
1008 @param searchNext flag indicating to search for the next occurrence
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
1009 (boolean).
1527
b60af978f526 Added the capability to replace just the selected occurence of the search text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
1010 """
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1011 self.__finding = True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1012
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1013 # Check enabled status due to dual purpose usage of this method
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1014 if (
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1015 not self.replaceButton.isEnabled()
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1016 and not self.replaceSearchButton.isEnabled()
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1017 ):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1018 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1019
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1020 ftxt = self.findtextCombo.currentText()
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1021 rtxt = self.replacetextCombo.currentText()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1022
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1023 # This moves any previous occurrence of this statement to the head
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1024 # of the list and updates the combobox
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1025 if rtxt in self.__replaceHistory:
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1026 self.__replaceHistory.remove(rtxt)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1027 self.__replaceHistory.insert(0, rtxt)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1028 self.replacetextCombo.clear()
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1029 self.replacetextCombo.addItems(self.__replaceHistory)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1030
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1031 aw = self.__viewmanager.activeWindow()
3069
8a9579bbf583 Added support for find indicators to the editor (QScintilla >= 2.8).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3039
diff changeset
1032 aw.hideFindIndicator()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1033 aw.replace(rtxt)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1034
1527
b60af978f526 Added the capability to replace just the selected occurence of the search text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
1035 if searchNext:
b60af978f526 Added the capability to replace just the selected occurence of the search text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
1036 ok = self.__findNextPrev(ftxt, self.__findBackwards)
8129
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
1037 self.__setSearchEditColors(ok)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1038
1527
b60af978f526 Added the capability to replace just the selected occurence of the search text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
1039 if not ok:
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1040 self.__setReplaceSelectionEnabled(False)
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1041 self.__setReplaceAndSearchEnabled(False)
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: 8318
diff changeset
1042 EricMessageBox.information(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1043 self,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1044 self.windowTitle(),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1045 self.tr("'{0}' was not found.").format(ftxt),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1046 )
1527
b60af978f526 Added the capability to replace just the selected occurence of the search text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
1047 else:
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1048 self.__setReplaceSelectionEnabled(False)
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1049 self.__setReplaceAndSearchEnabled(False)
8129
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
1050 self.__setSearchEditColors(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1051
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1052 self.__finding = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1053
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1054 def replaceAll(self):
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1055 """
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1056 Public method to replace all occurrences.
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1057 """
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1058 if self.replaceAllButton.isEnabled():
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1059 self.on_replaceAllButton_clicked()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1060
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1061 @pyqtSlot()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1062 def on_replaceAllButton_clicked(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1063 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1064 Private slot to replace all occurrences of text.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1065 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1066 self.__finding = True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1067
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1068 replacements = 0
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1069 ftxt = self.findtextCombo.currentText()
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1070 rtxt = self.replacetextCombo.currentText()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1071
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1072 # This moves any previous occurrence of this statement to the head
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1073 # of the list and updates the combobox
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1074 if ftxt in self.__findHistory:
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1075 self.__findHistory.remove(ftxt)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1076 self.__findHistory.insert(0, ftxt)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1077 self.findtextCombo.clear()
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1078 self.findtextCombo.addItems(self.__findHistory)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1079
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1080 if rtxt in self.__replaceHistory:
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1081 self.__replaceHistory.remove(rtxt)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1082 self.__replaceHistory.insert(0, rtxt)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1083 self.replacetextCombo.clear()
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1084 self.replacetextCombo.addItems(self.__replaceHistory)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1085
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1086 aw = self.__viewmanager.activeWindow()
3069
8a9579bbf583 Added support for find indicators to the editor (QScintilla >= 2.8).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3039
diff changeset
1087 aw.hideFindIndicator()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1088 cline, cindex = aw.getCursorPosition()
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
1089 boundary = self.__selectionBoundary()
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1090 if self.selectionCheckBox.isChecked():
2660
5b834d76f617 Added code to limit the search function of the editor to rectangular selections as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2650
diff changeset
1091 line, index = boundary[:2]
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1092 aw.highlightSearchSelection(*boundary)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1093 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1094 line = 0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1095 index = 0
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1096 posixMode = (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1097 Preferences.getEditor("SearchRegexpMode") == 0
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1098 and self.regexpCheckBox.isChecked()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1099 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1100 cxx11Mode = (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1101 Preferences.getEditor("SearchRegexpMode") == 1
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1102 and self.regexpCheckBox.isChecked()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1103 )
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
1104 ok = aw.findFirst(
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
1105 ftxt,
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1106 self.regexpCheckBox.isChecked(),
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1107 self.caseCheckBox.isChecked(),
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1108 self.wordCheckBox.isChecked(),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1109 False,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1110 True,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1111 line,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1112 index,
6841
43af1e698c9d Editor: added extended regular expression support (C++11) as of QScintilla 2.11.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
1113 posix=posixMode,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1114 cxx11=cxx11Mode,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1115 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1116
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1117 if ok and self.selectionCheckBox.isChecked():
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1118 lineFrom, indexFrom, lineTo, indexTo = aw.getSelection()
2661
0fd6f92ab2dd Added code to support a replace operation in rectangular selections in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2660
diff changeset
1119 if len(self.__selections) > 1:
0fd6f92ab2dd Added code to support a replace operation in rectangular selections in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2660
diff changeset
1120 for sel in self.__selections:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1121 if lineFrom == sel[0] and indexFrom >= sel[1] and indexTo <= sel[3]:
2661
0fd6f92ab2dd Added code to support a replace operation in rectangular selections in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2660
diff changeset
1122 ok = True
0fd6f92ab2dd Added code to support a replace operation in rectangular selections in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2660
diff changeset
1123 break
0fd6f92ab2dd Added code to support a replace operation in rectangular selections in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2660
diff changeset
1124 else:
0fd6f92ab2dd Added code to support a replace operation in rectangular selections in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2660
diff changeset
1125 ok = False
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1126 elif (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1127 (lineFrom == boundary[0] and indexFrom >= boundary[1])
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1128 or (lineFrom > boundary[0] and lineFrom < boundary[2])
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1129 or (lineFrom == boundary[2] and indexFrom <= boundary[3])
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1130 ):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1131 ok = True
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1132 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1133 ok = False
2661
0fd6f92ab2dd Added code to support a replace operation in rectangular selections in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2660
diff changeset
1134 if not ok and len(self.__selections) > 1:
0fd6f92ab2dd Added code to support a replace operation in rectangular selections in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2660
diff changeset
1135 # try again
0fd6f92ab2dd Added code to support a replace operation in rectangular selections in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2660
diff changeset
1136 while not ok and lineFrom <= boundary[2]:
0fd6f92ab2dd Added code to support a replace operation in rectangular selections in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2660
diff changeset
1137 for ind in range(len(self.__selections)):
0fd6f92ab2dd Added code to support a replace operation in rectangular selections in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2660
diff changeset
1138 if lineFrom == self.__selections[ind][0]:
0fd6f92ab2dd Added code to support a replace operation in rectangular selections in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2660
diff changeset
1139 after = indexTo > self.__selections[ind][3]
0fd6f92ab2dd Added code to support a replace operation in rectangular selections in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2660
diff changeset
1140 if after:
0fd6f92ab2dd Added code to support a replace operation in rectangular selections in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2660
diff changeset
1141 if ind < len(self.__selections) - 1:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1142 line, index = self.__selections[ind + 1][:2]
2661
0fd6f92ab2dd Added code to support a replace operation in rectangular selections in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2660
diff changeset
1143 else:
0fd6f92ab2dd Added code to support a replace operation in rectangular selections in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2660
diff changeset
1144 line, index = self.__selections[ind][:2]
0fd6f92ab2dd Added code to support a replace operation in rectangular selections in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2660
diff changeset
1145 break
0fd6f92ab2dd Added code to support a replace operation in rectangular selections in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2660
diff changeset
1146 else:
0fd6f92ab2dd Added code to support a replace operation in rectangular selections in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2660
diff changeset
1147 break
3030
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
1148 ok = aw.findFirst(
4a0a82ddd9d2 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
1149 ftxt,
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1150 self.regexpCheckBox.isChecked(),
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1151 self.caseCheckBox.isChecked(),
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1152 self.wordCheckBox.isChecked(),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1153 False,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1154 True,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1155 line,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1156 index,
6841
43af1e698c9d Editor: added extended regular expression support (C++11) as of QScintilla 2.11.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
1157 posix=posixMode,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1158 cxx11=cxx11Mode,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1159 )
2661
0fd6f92ab2dd Added code to support a replace operation in rectangular selections in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2660
diff changeset
1160 if ok:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1161 lineFrom, indexFrom, lineTo, indexTo = aw.getSelection()
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1162 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1163 lineFrom < boundary[0]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1164 or lineFrom > boundary[2]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1165 or indexFrom < boundary[1]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1166 or indexFrom > boundary[3]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1167 or indexTo < boundary[1]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1168 or indexTo > boundary[3]
7267
aedc309827c7 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
1169 ):
2661
0fd6f92ab2dd Added code to support a replace operation in rectangular selections in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2660
diff changeset
1170 ok = False
0fd6f92ab2dd Added code to support a replace operation in rectangular selections in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2660
diff changeset
1171 break
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1172
2661
0fd6f92ab2dd Added code to support a replace operation in rectangular selections in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2660
diff changeset
1173 if not ok:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1174 aw.selectAll(False)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1175 aw.setCursorPosition(cline, cindex)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1176 aw.ensureCursorVisible()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1177
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1178 found = ok
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1179
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1180 aw.beginUndoAction()
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1181 wordWrap = self.wrapCheckBox.isChecked()
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1182 self.wrapCheckBox.setChecked(False)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1183 while ok:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1184 aw.replace(rtxt)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1185 replacements += 1
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1186 ok = self.__findNextPrev(ftxt, self.__findBackwards)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1187 self.__finding = True
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1188 aw.endUndoAction()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1189 if wordWrap:
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1190 self.wrapCheckBox.setChecked(True)
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1191 self.__setReplaceSelectionEnabled(False)
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1192 self.__setReplaceAndSearchEnabled(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1193
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1194 if found:
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: 8318
diff changeset
1195 EricMessageBox.information(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1196 self,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1197 self.windowTitle(),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1198 self.tr("Replaced {0} occurrences.").format(replacements),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1199 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1200 else:
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: 8318
diff changeset
1201 EricMessageBox.information(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1202 self,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1203 self.windowTitle(),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1204 self.tr("Nothing replaced because '{0}' was not found.").format(ftxt),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1205 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1206
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1207 aw.setCursorPosition(cline, cindex)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1208 aw.ensureCursorVisible()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1209
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1210 self.__finding = False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1211
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1212 def __showReplace(self, text=""):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1213 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1214 Private slot to display this widget in replace mode.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1215
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1216 @param text text to be shown in the findtext edit (defaults to "")
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1217 @type str (optional)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1218 """
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1219 # hide the replace related widgets
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1220 for widget in (
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1221 self.replaceLabel,
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1222 self.replacetextCombo,
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1223 self.replaceButton,
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1224 self.replaceSearchButton,
9972
68ac01294544 Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9943
diff changeset
1225 self.replaceAllButton,
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1226 ):
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1227 widget.setVisible(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1228
8129
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
1229 self.__setSearchEditColors(True)
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1230 self.findtextCombo.clear()
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1231 self.findtextCombo.addItems(self.__findHistory)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1232 self.findtextCombo.setEditText(text)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1233 self.findtextCombo.lineEdit().selectAll()
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1234 self.findtextCombo.setFocus()
1527
b60af978f526 Added the capability to replace just the selected occurence of the search text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
1235 self.on_findtextCombo_editTextChanged(text)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1236
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1237 self.replacetextCombo.clear()
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1238 self.replacetextCombo.addItems(self.__replaceHistory)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1239 self.replacetextCombo.setEditText("")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1240
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1241 self.caseCheckBox.setChecked(False)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1242 self.wordCheckBox.setChecked(False)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1243 self.regexpCheckBox.setChecked(False)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1244 self.wrapCheckBox.setChecked(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1245
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1246 self.havefound = True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1247
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1248 aw = self.__viewmanager.activeWindow()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1249 self.updateSelectionCheckBox(aw)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1250 if aw.hasSelectedText():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1251 line1, index1, line2, index2 = aw.getSelection()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1252 if line1 == line2:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1253 aw.setSelection(line1, index1, line1, index1)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1254 self.findNext()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1255
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1256 self.__setShortcuts()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1257
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1258 def show(self, text="", replaceMode=False):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1259 """
3591
2f2a4a76dd22 Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3484
diff changeset
1260 Public slot to show the widget.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1261
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1262 @param text text to be shown in the findtext edit (defaults to "")
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1263 @type str (optional)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1264 @param replaceMode flag indicating to show the widget in 'replace' mode
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1265 (defaults to False)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1266 @type bool (optional)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1267 """
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1268 super().hide()
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1269 if replaceMode:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1270 self.__showReplace(text)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1271 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1272 self.__showFind(text)
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
1273 super().show()
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1274
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1275 self.activateWindow()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1276
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1277 @pyqtSlot()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1278 def on_closeButton_clicked(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1279 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1280 Private slot to close the widget.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1281 """
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1282 aw = self.__viewmanager.activeWindow()
3069
8a9579bbf583 Added support for find indicators to the editor (QScintilla >= 2.8).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3039
diff changeset
1283 if aw:
8a9579bbf583 Added support for find indicators to the editor (QScintilla >= 2.8).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3039
diff changeset
1284 aw.hideFindIndicator()
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1285 self.__currentEditor.clearSearchSelectionHighlight()
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1286 self.__currentEditor = None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1287
2362
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1288 if self.__sliding:
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1289 self.__topWidget.close()
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1290 else:
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1291 self.close()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1292
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1293 def keyPressEvent(self, event):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1294 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1295 Protected slot to handle key press events.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1296
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1297 @param event reference to the key press event
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1298 @type QKeyEvent
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1299 """
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: 8130
diff changeset
1300 if event.key() == Qt.Key.Key_Escape:
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1301 aw = self.__viewmanager.activeWindow()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1302 if aw:
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: 8130
diff changeset
1303 aw.setFocus(Qt.FocusReason.ActiveWindowFocusReason)
3069
8a9579bbf583 Added support for find indicators to the editor (QScintilla >= 2.8).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3039
diff changeset
1304 aw.hideFindIndicator()
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1305 if self.__currentEditor is not None:
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1306 self.__currentEditor.clearSearchSelectionHighlight()
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1307 self.__currentEditor = None
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1308 event.accept()
2362
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1309 if self.__sliding:
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1310 self.__topWidget.close()
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1311 else:
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1312 self.close()
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1313
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1314
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1315 class SearchReplaceSlidingWidget(QWidget):
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1316 """
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1317 Class implementing the search and replace widget with sliding behavior.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1318
2362
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1319 @signal searchListChanged() emitted to indicate a change of the search list
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1320 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1321
2362
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1322 searchListChanged = pyqtSignal()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1323
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1324 def __init__(self, vm, parent=None):
2362
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1325 """
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1326 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1327
2362
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1328 @param vm reference to the viewmanager object
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1329 @type ViewManager
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1330 @param parent parent widget of this widget (defaults to None)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1331 @type QWidget (optional)
2362
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1332 """
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
1333 super().__init__(parent)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1334
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1335 self.__searchReplaceWidget = SearchReplaceWidget(vm, self, True)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1336 self.__searchReplaceWidget.layout().setSizeConstraint(
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1337 QLayout.SizeConstraint.SetMinAndMaxSize
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1338 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1339
2362
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1340 self.__layout = QHBoxLayout(self)
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1341 self.setLayout(self.__layout)
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1342 self.__layout.setContentsMargins(0, 0, 0, 0)
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: 8130
diff changeset
1343 self.__layout.setAlignment(Qt.AlignmentFlag.AlignTop)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1344
2362
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1345 self.__leftButton = QToolButton(self)
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: 8130
diff changeset
1346 self.__leftButton.setArrowType(Qt.ArrowType.LeftArrow)
2362
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1347 self.__leftButton.setSizePolicy(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1348 QSizePolicy.Policy.Minimum, QSizePolicy.Policy.MinimumExpanding
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1349 )
2362
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1350 self.__leftButton.setAutoRepeat(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1351
2362
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1352 self.__scroller = QScrollArea(self)
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1353 self.__scroller.setWidget(self.__searchReplaceWidget)
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1354 self.__scroller.setSizePolicy(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1355 QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1356 )
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: 8130
diff changeset
1357 self.__scroller.setFrameShape(QFrame.Shape.NoFrame)
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: 8130
diff changeset
1358 self.__scroller.setVerticalScrollBarPolicy(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1359 Qt.ScrollBarPolicy.ScrollBarAlwaysOff
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1360 )
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: 8130
diff changeset
1361 self.__scroller.setHorizontalScrollBarPolicy(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1362 Qt.ScrollBarPolicy.ScrollBarAlwaysOff
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1363 )
2362
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1364 self.__scroller.setWidgetResizable(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1365
2362
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1366 self.__rightButton = QToolButton(self)
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: 8130
diff changeset
1367 self.__rightButton.setArrowType(Qt.ArrowType.RightArrow)
2362
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1368 self.__rightButton.setSizePolicy(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1369 QSizePolicy.Policy.Minimum, QSizePolicy.Policy.MinimumExpanding
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1370 )
2362
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1371 self.__rightButton.setAutoRepeat(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1372
2362
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1373 self.__layout.addWidget(self.__leftButton)
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1374 self.__layout.addWidget(self.__scroller)
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1375 self.__layout.addWidget(self.__rightButton)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1376
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1377 self.__searchReplaceWidget.searchListChanged.connect(self.searchListChanged)
3345
071afe8be2a1 Changed signal/slot usage to not use constructs like 'triggered[()].connect(...)' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1378 self.__leftButton.clicked.connect(self.__slideLeft)
071afe8be2a1 Changed signal/slot usage to not use constructs like 'triggered[()].connect(...)' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
1379 self.__rightButton.clicked.connect(self.__slideRight)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1380
4086
822f456652c5 Adjust size of the SearchReplaceWidget and SearchReplaceSlidingWidget to properlyreflect font size changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4068
diff changeset
1381 def changeEvent(self, evt):
822f456652c5 Adjust size of the SearchReplaceWidget and SearchReplaceSlidingWidget to properlyreflect font size changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4068
diff changeset
1382 """
822f456652c5 Adjust size of the SearchReplaceWidget and SearchReplaceSlidingWidget to properlyreflect font size changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4068
diff changeset
1383 Protected method handling state changes.
822f456652c5 Adjust size of the SearchReplaceWidget and SearchReplaceSlidingWidget to properlyreflect font size changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4068
diff changeset
1384
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1385 @param evt event containing the state change
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1386 @type QEvent
4086
822f456652c5 Adjust size of the SearchReplaceWidget and SearchReplaceSlidingWidget to properlyreflect font size changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4068
diff changeset
1387 """
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: 8130
diff changeset
1388 if evt.type() == QEvent.Type.FontChange:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1389 self.setMaximumHeight(self.__searchReplaceWidget.sizeHint().height())
4086
822f456652c5 Adjust size of the SearchReplaceWidget and SearchReplaceSlidingWidget to properlyreflect font size changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4068
diff changeset
1390 self.adjustSize()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1391
2362
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1392 def findNext(self):
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1393 """
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1394 Public slot to find the next occurrence of text.
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1395 """
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1396 self.__searchReplaceWidget.findNext()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1397
2362
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1398 def findPrev(self):
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1399 """
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1400 Public slot to find the next previous of text.
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1401 """
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1402 self.__searchReplaceWidget.findPrev()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1403
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1404 def replace(self):
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1405 """
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1406 Public method to replace the current selection.
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1407 """
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1408 self.__searchReplaceWidget.replace()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1409
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1410 def replaceSearch(self):
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1411 """
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1412 Public method to replace the current selection and search again.
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1413 """
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1414 self.__searchReplaceWidget.replaceSearch()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1415
5742
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1416 def replaceAll(self):
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1417 """
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1418 Public method to replace all occurrences.
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1419 """
dc9cd8059221 Added the capability to perform the various replace methods via keyboard shortcuts.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1420 self.__searchReplaceWidget.replaceAll()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1421
6116
f3d3c996c193 Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
1422 def selectionChanged(self, editor):
2362
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1423 """
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1424 Public slot tracking changes of selected text.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1425
6116
f3d3c996c193 Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
1426 @param editor reference to the editor
f3d3c996c193 Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
1427 @type Editor
2362
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1428 """
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1429 self.__searchReplaceWidget.updateSelectionCheckBox(editor)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1430
2362
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1431 @pyqtSlot(Editor)
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1432 def updateSelectionCheckBox(self, editor):
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1433 """
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1434 Public slot to update the selection check box.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1435
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1436 @param editor reference to the editor
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1437 @type Editor
2362
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1438 """
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1439 self.__searchReplaceWidget.updateSelectionCheckBox(editor)
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1440
9943
02a40e8bd135 Fixed an issue in the new Search & Replace widget caused by maintaining a reference to an already closed editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9938
diff changeset
1441 @pyqtSlot(Editor)
02a40e8bd135 Fixed an issue in the new Search & Replace widget caused by maintaining a reference to an already closed editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9938
diff changeset
1442 def editorClosed(self, editor):
02a40e8bd135 Fixed an issue in the new Search & Replace widget caused by maintaining a reference to an already closed editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9938
diff changeset
1443 """
02a40e8bd135 Fixed an issue in the new Search & Replace widget caused by maintaining a reference to an already closed editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9938
diff changeset
1444 Public slot to handle the closing of an editor.
02a40e8bd135 Fixed an issue in the new Search & Replace widget caused by maintaining a reference to an already closed editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9938
diff changeset
1445
02a40e8bd135 Fixed an issue in the new Search & Replace widget caused by maintaining a reference to an already closed editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9938
diff changeset
1446 @param editor reference to the closed editor
02a40e8bd135 Fixed an issue in the new Search & Replace widget caused by maintaining a reference to an already closed editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9938
diff changeset
1447 @type Editor
02a40e8bd135 Fixed an issue in the new Search & Replace widget caused by maintaining a reference to an already closed editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9938
diff changeset
1448 """
02a40e8bd135 Fixed an issue in the new Search & Replace widget caused by maintaining a reference to an already closed editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9938
diff changeset
1449 self.__searchReplaceWidget.editorClosed(editor)
02a40e8bd135 Fixed an issue in the new Search & Replace widget caused by maintaining a reference to an already closed editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9938
diff changeset
1450
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1451 def show(self, text="", replaceMode=False):
2362
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1452 """
3591
2f2a4a76dd22 Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3484
diff changeset
1453 Public slot to show the widget.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1454
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1455 @param text text to be shown in the findtext edit (defaults to "")
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1456 @type str (optional)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1457 @param replaceMode flag indicating to show the widget with replace mode enabled
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1458 (defaults to False)
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1459 @type bool (optional)
2362
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1460 """
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1461 self.__searchReplaceWidget.show(text=text, replaceMode=replaceMode)
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
1462 super().show()
9972
68ac01294544 Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9943
diff changeset
1463
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1464 self.__searchReplaceWidget.setMaximumHeight(
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1465 self.__searchReplaceWidget.sizeHint().height()
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1466 )
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1467
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1468 self.setMaximumHeight(self.__searchReplaceWidget.sizeHint().height())
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1469 self.adjustSize()
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1470
2365
7e176de4c462 Little improvement to the scroller widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2362
diff changeset
1471 self.__enableScrollerButtons()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1472
2362
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1473 def __slideLeft(self):
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1474 """
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
1475 Private slot to move the widget to the left, i.e. show contents to the
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
1476 right.
2362
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1477 """
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1478 self.__slide(True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1479
2362
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1480 def __slideRight(self):
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1481 """
3011
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
1482 Private slot to move the widget to the right, i.e. show contents to
18292228c724 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2965
diff changeset
1483 the left.
2362
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1484 """
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1485 self.__slide(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1486
2362
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1487 def __slide(self, toLeft):
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1488 """
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1489 Private method to move the sliding widget.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1490
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1491 @param toLeft flag indicating to move to the left
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1492 @type bool
2362
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1493 """
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1494 scrollBar = self.__scroller.horizontalScrollBar()
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1495 stepSize = scrollBar.singleStep()
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1496 if toLeft:
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1497 stepSize = -stepSize
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1498 newValue = scrollBar.value() + stepSize
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1499 if newValue < 0:
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1500 newValue = 0
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1501 elif newValue > scrollBar.maximum():
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1502 newValue = scrollBar.maximum()
68a92d01c1cc Made the search and replace widgets scrollable (customisation for smaller screens).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
1503 scrollBar.setValue(newValue)
2365
7e176de4c462 Little improvement to the scroller widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2362
diff changeset
1504 self.__enableScrollerButtons()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1505
2365
7e176de4c462 Little improvement to the scroller widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2362
diff changeset
1506 def __enableScrollerButtons(self):
7e176de4c462 Little improvement to the scroller widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2362
diff changeset
1507 """
7e176de4c462 Little improvement to the scroller widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2362
diff changeset
1508 Private method to set the enabled state of the scroll buttons.
7e176de4c462 Little improvement to the scroller widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2362
diff changeset
1509 """
7e176de4c462 Little improvement to the scroller widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2362
diff changeset
1510 scrollBar = self.__scroller.horizontalScrollBar()
7e176de4c462 Little improvement to the scroller widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2362
diff changeset
1511 self.__leftButton.setEnabled(scrollBar.value() > 0)
7e176de4c462 Little improvement to the scroller widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2362
diff changeset
1512 self.__rightButton.setEnabled(scrollBar.value() < scrollBar.maximum())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1513
2375
22e547cab2da Fixed an issue in the new widget scroller.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2365
diff changeset
1514 def resizeEvent(self, evt):
22e547cab2da Fixed an issue in the new widget scroller.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2365
diff changeset
1515 """
22e547cab2da Fixed an issue in the new widget scroller.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2365
diff changeset
1516 Protected method to handle resize events.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1517
9938
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1518 @param evt reference to the resize event
b8005dd4fc9b Editor, Mini Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9931
diff changeset
1519 @type QResizeEvent
2375
22e547cab2da Fixed an issue in the new widget scroller.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2365
diff changeset
1520 """
22e547cab2da Fixed an issue in the new widget scroller.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2365
diff changeset
1521 self.__enableScrollerButtons()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1522
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
1523 super().resizeEvent(evt)

eric ide

mercurial