Lines Matching refs:self
37 def __init__(self, root, engine):
51 self.replvar = StringVar(root)
52 self.insert_tags = None
54 def open(self, text, insert_tags=None):
58 search to include the current selection (self.ok).
63 SearchDialogBase.open(self, text)
74 self.show_hit(first, last)
75 self.ok = True
76 self.insert_tags = insert_tags
78 def create_entries(self):
80 SearchDialogBase.create_entries(self)
81 self.replent = self.make_entry("Replace with:", self.replvar)[0]
83 def create_command_buttons(self):
89 SearchDialogBase.create_command_buttons(self)
90 self.make_button("Find", self.find_it)
91 self.make_button("Replace", self.replace_it)
92 self.make_button("Replace+Find", self.default_command, isdef=True)
93 self.make_button("Replace All", self.replace_all)
95 def find_it(self, event=None):
97 self.do_find(False)
99 def replace_it(self, event=None):
104 if self.do_find(self.ok):
105 self.do_replace()
107 def default_command(self, event=None):
113 if self.do_find(self.ok):
114 if self.do_replace(): # Only find next match if replace succeeded.
116 self.do_find(False)
118 def _replace_expand(self, m, repl):
120 if self.engine.isre():
124 self.engine.report_error(repl, 'Invalid Replace Expression')
131 def replace_all(self, event=None):
141 prog = self.engine.getprog()
144 repl = self.replvar.get()
145 text = self.text
146 res = self.engine.search_text(text, prog)
148 self.bell()
154 if self.engine.iswrap():
161 while res := self.engine.search_forward(
166 new = self._replace_expand(m, repl)
179 text.insert(first, new, self.insert_tags)
184 self.show_hit(first, last)
185 self.close()
187 def do_find(self, ok=False):
192 if not self.engine.getprog():
194 text = self.text
195 res = self.engine.search_text(text, None, ok)
197 self.bell()
203 self.show_hit(first, last)
204 self.ok = True
207 def do_replace(self):
209 prog = self.engine.getprog()
212 text = self.text
225 new = self._replace_expand(m, self.replvar.get())
233 text.insert(first, new, self.insert_tags)
235 self.show_hit(first, text.index("insert"))
236 self.ok = False
239 def show_hit(self, first, last):
250 text = self.text
262 def close(self, event=None):
264 SearchDialogBase.close(self, event)
265 self.text.tag_remove("hit", "1.0", "end")
266 self.insert_tags = None