src/eric7/QScintilla/SearchReplaceWidget.py

Fri, 19 May 2023 15:09:24 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Fri, 19 May 2023 15:09:24 +0200
branch
eric7
changeset 10040
b5ef1a93cd1a
parent 10039
3a47235d3469
child 10187
cd500ea7f787
permissions
-rw-r--r--

Editor, Search & Replace widget:
- Changed the logic in replace mode such, that the find text is copied to the replace text entry, when it receives the focus and is empty. (see issue 502).

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

eric ide

mercurial