@@ -40,6 +40,14 @@ def __init__(self, parent):
4040 ('Text files' , '*.txt' ),
4141 ]
4242 self .initial_dir = os .path .expanduser ('~' )
43+ self .curr_file = None
44+ def __savefiledata__ (self , f_name , data ):
45+ print ('Saving' , f_name )
46+ self .initial_dir = os .path .dirname (f_name )
47+ f_obj = open (f_name , 'w' )
48+ f_obj .write (data )
49+ f_obj .close ()
50+ self .curr_file = f_name
4351 def widget_raw (self ):
4452 ## Return the raw Tk text widget
4553 return self .widget
@@ -63,28 +71,29 @@ def get_text(self, *args, **kwargs):
6371 def open_file (self , * args , ** kwargs ):
6472 ## Asks for a file to open and shows it in text widget
6573 #args and kwargs to this function are thrown away
66- global initial_dir
6774 f_name = tkfd .askopenfilename (filetypes = self .ftypes , initialdir = self .initial_dir )
6875 if not verify_f_name (f_name ):
6976 return
7077 print ('Opening' , f_name )
7178 self .initial_dir = os .path .dirname (f_name )
7279 f_text = open (f_name , 'r' ).read ()
7380 self .set_text (text = f_text )
81+ self .curr_file = f_name
7482 def save_file (self , * args , ** kwargs ):
83+ if verify_f_name (self .curr_file ):
84+ #Save file as currently open file
85+ self .__savefiledata__ (self .curr_file , self .get_text (0.0 ))
86+ else :
87+ #No file currently open
88+ self .saveas_file ()
89+ def saveas_file (self , * args , ** kwargs ):
7590 ## Asks for a file to save the contents of the text widget
7691 ## in and saves it there
7792 #args and kwargs to this function are thrown away
78- global initial_dir
7993 f_name = tkfd .asksaveasfilename (filetypes = self .ftypes , initialdir = self .initial_dir )
8094 if not verify_f_name (f_name ):
8195 return 0
82- print ('Saving' , f_name )
83- self .initial_dir = os .path .dirname (f_name )
84- text = self .get_text (0.0 )
85- f_obj = open (f_name , 'w' )
86- f_obj .write (text )
87- f_obj .close ()
96+ self .__savefiledata__ (f_name , self .get_text (0.0 ))
8897 return 1
8998 def new_file (self , * args , ** kwargs ):
9099 ## Clears the text widget
@@ -97,6 +106,7 @@ def new_file(self, *args, **kwargs):
97106 return
98107 #User has saved/pressed no
99108 self .clear_text (0.0 , 'end' )
109+ self .curr_file = None
100110
101111
102112class MenuBar :
0 commit comments