mirror of https://github.com/python/cpython
gh-57795: IDLE: Enter the selected text when opening the "Replace" dialog (GH-17593)
Co-authored-by: Roger Serwy <roger.serwy@gmail.com> Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
This commit is contained in:
parent
1ddd773293
commit
712afab5ac
|
@ -25,7 +25,8 @@ def replace(text, insert_tags=None):
|
|||
if not hasattr(engine, "_replacedialog"):
|
||||
engine._replacedialog = ReplaceDialog(root, engine)
|
||||
dialog = engine._replacedialog
|
||||
dialog.open(text, insert_tags=insert_tags)
|
||||
searchphrase = text.get("sel.first", "sel.last")
|
||||
dialog.open(text, searchphrase, insert_tags=insert_tags)
|
||||
|
||||
|
||||
class ReplaceDialog(SearchDialogBase):
|
||||
|
@ -51,27 +52,17 @@ class ReplaceDialog(SearchDialogBase):
|
|||
self.replvar = StringVar(root)
|
||||
self.insert_tags = None
|
||||
|
||||
def open(self, text, insert_tags=None):
|
||||
def open(self, text, searchphrase=None, *, insert_tags=None):
|
||||
"""Make dialog visible on top of others and ready to use.
|
||||
|
||||
Also, highlight the currently selected text and set the
|
||||
search to include the current selection (self.ok).
|
||||
Also, set the search to include the current selection
|
||||
(self.ok).
|
||||
|
||||
Args:
|
||||
text: Text widget being searched.
|
||||
searchphrase: String phrase to search.
|
||||
"""
|
||||
SearchDialogBase.open(self, text)
|
||||
try:
|
||||
first = text.index("sel.first")
|
||||
except TclError:
|
||||
first = None
|
||||
try:
|
||||
last = text.index("sel.last")
|
||||
except TclError:
|
||||
last = None
|
||||
first = first or text.index("insert")
|
||||
last = last or first
|
||||
self.show_hit(first, last)
|
||||
SearchDialogBase.open(self, text, searchphrase)
|
||||
self.ok = True
|
||||
self.insert_tags = insert_tags
|
||||
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Enter the selected text when opening the "Replace" dialog.
|
Loading…
Reference in New Issue