Lines Matching refs:self
22 # Open returns focus to self.editwin if aborted.
25 def __init__(self, editwin):
26 self.editwin = editwin
27 self.text = editwin.text
28 self.__id_open = self.text.bind("<<open-window-from-file>>", self.open)
29 self.__id_save = self.text.bind("<<save-window>>", self.save)
30 self.__id_saveas = self.text.bind("<<save-window-as-file>>",
31 self.save_as)
32 self.__id_savecopy = self.text.bind("<<save-copy-of-window-as-file>>",
33 self.save_a_copy)
34 self.fileencoding = 'utf-8'
35 self.__id_print = self.text.bind("<<print-window>>", self.print_window)
37 def close(self):
39 self.text.unbind("<<open-window-from-file>>", self.__id_open)
40 self.text.unbind("<<save-window>>", self.__id_save)
41 self.text.unbind("<<save-window-as-file>>",self.__id_saveas)
42 self.text.unbind("<<save-copy-of-window-as-file>>", self.__id_savecopy)
43 self.text.unbind("<<print-window>>", self.__id_print)
45 self.editwin = None
46 self.text = None
47 self.filename_change_hook = None
49 def get_saved(self):
50 return self.editwin.get_saved()
52 def set_saved(self, flag):
53 self.editwin.set_saved(flag)
55 def reset_undo(self):
56 self.editwin.reset_undo()
60 def set_filename_change_hook(self, hook):
61 self.filename_change_hook = hook
66 def set_filename(self, filename):
68 self.filename = None
69 self.dirname = filename
71 self.filename = filename
72 self.dirname = None
73 self.set_saved(1)
74 if self.filename_change_hook:
75 self.filename_change_hook()
77 def open(self, event=None, editFile=None):
78 flist = self.editwin.flist
82 filename = self.askopenfile()
90 # pass self.loadfile to flist.open so it will load the file
93 if (self.editwin and
94 not getattr(self.editwin, 'interp', None) and
95 not self.filename and
96 self.get_saved()):
97 flist.open(filename, self.loadfile)
101 if self.text:
102 self.text.focus_set()
106 if self.get_saved():
107 reply = self.maybesave()
109 self.text.focus_set()
112 filename = self.askopenfile()
116 self.loadfile(filename)
118 self.text.focus_set()
123 def loadfile(self, filename):
133 self.editwin.text.update()
140 parent=self.editwin.text)
147 messagebox.showerror("I/O Error", str(err), parent=self.text)
152 parent=self.text)
162 parent=self.text)
166 self.text.delete("1.0", "end")
167 self.set_filename(None)
168 self.fileencoding = fileencoding
169 self.eol_convention = eol_convention
170 self.text.insert("1.0", chars)
171 self.reset_undo()
172 self.set_filename(filename)
176 self.set_saved(False)
177 self.text.mark_set("insert", "1.0")
178 self.text.yview("insert")
179 self.updaterecentfileslist(filename)
182 def maybesave(self):
183 if self.get_saved():
186 self.filename or "this untitled document")
191 parent=self.text)
194 self.save(None)
195 if not self.get_saved():
201 self.text.focus_set()
204 def save(self, event):
205 if not self.filename:
206 self.save_as(event)
208 if self.writefile(self.filename):
209 self.set_saved(True)
211 self.editwin.store_file_breaks()
214 self.text.focus_set()
217 def save_as(self, event):
218 filename = self.asksavefile()
220 if self.writefile(filename):
221 self.set_filename(filename)
222 self.set_saved(1)
224 self.editwin.store_file_breaks()
227 self.text.focus_set()
228 self.updaterecentfileslist(filename)
231 def save_a_copy(self, event):
232 filename = self.asksavefile()
234 self.writefile(filename)
235 self.text.focus_set()
236 self.updaterecentfileslist(filename)
239 def writefile(self, filename):
240 text = self.fixnewlines()
241 chars = self.encode(text)
250 parent=self.text)
253 def fixnewlines(self):
259 if hasattr(self.editwin, "interp"): # Saving shell.
260 text = self.editwin.get_prompt_text('1.0', self.text.index('end-1c'))
262 if self.text.get("end-2c") != '\n':
263 self.text.insert("end-1c", "\n") # Changes 'end-1c' value.
264 text = self.text.get('1.0', "end-1c")
265 if self.eol_convention != "\n":
266 text = text.replace("\n", self.eol_convention)
269 def encode(self, chars):
275 if self.fileencoding == 'utf-8-sig':
295 parent=self.text)
300 def print_window(self, event):
305 parent=self.text)
307 self.text.focus_set()
310 saved = self.get_saved()
312 filename = self.filename
318 if not self.writefile(tempfilename):
342 messagebox.showerror("Print status", output, parent=self.text)
345 messagebox.showinfo("Print status", message, parent=self.text)
361 def askopenfile(self):
362 dir, base = self.defaultfilename("open")
363 if not self.opendialog:
364 self.opendialog = filedialog.Open(parent=self.text,
365 filetypes=self.filetypes)
366 filename = self.opendialog.show(initialdir=dir, initialfile=base)
369 def defaultfilename(self, mode="open"):
370 if self.filename:
371 return os.path.split(self.filename)
372 elif self.dirname:
373 return self.dirname, ""
381 def asksavefile(self):
382 dir, base = self.defaultfilename("save")
383 if not self.savedialog:
384 self.savedialog = filedialog.SaveAs(
385 parent=self.text,
386 filetypes=self.filetypes,
387 defaultextension=self.defaultextension)
388 filename = self.savedialog.show(initialdir=dir, initialfile=base)
391 def updaterecentfileslist(self,filename):
393 if self.editwin.flist:
394 self.editwin.update_recent_files_list(filename)
404 def __init__(self, text):
405 self.text = text
406 self.flist = None
407 self.text.bind("<Control-o>", self.open)
408 self.text.bind('<Control-p>', self.print)
409 self.text.bind("<Control-s>", self.save)
410 self.text.bind("<Alt-s>", self.saveas)
411 self.text.bind('<Control-c>', self.savecopy)
412 def get_saved(self): return 0
413 def set_saved(self, flag): pass
414 def reset_undo(self): pass
415 def open(self, event):
416 self.text.event_generate("<<open-window-from-file>>")
417 def print(self, event):
418 self.text.event_generate("<<print-window>>")
419 def save(self, event):
420 self.text.event_generate("<<save-window>>")
421 def saveas(self, event):
422 self.text.event_generate("<<save-window-as-file>>")
423 def savecopy(self, event):
424 self.text.event_generate("<<save-copy-of-window-as-file>>")