src/eric7/QScintilla/SearchReplaceWidget.py

Sat, 02 Sep 2023 12:33:58 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 02 Sep 2023 12:33:58 +0200
branch
eric7
changeset 10187
cd500ea7f787
parent 10040
b5ef1a93cd1a
child 10211
7caa05cd6168
permissions
-rw-r--r--

Editor - Search & Replace widget
- Corrected the enable state handling of the "Replace Selection" and "Replace Selection and Search Next" (see issue 509).

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

eric ide

mercurial