1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
import gobject
import os
import tempfile
import string
import sys
global elapsed_time # seconds elapsed counter
global autosave_time # the timeout time in minutes
global temp_folder #the temporary folder
temp_folder= "/var/tmp/pyroom"
FILE_UNNAMED = _('* Unnamed *') ##repeted definition delete if possible
def autosave_init(self,mill=1000,autosavetime=3, tempfolder="/var/tmp/pyroom"):
"Init the internal timer"
global elapsed_time
global autosave_time
global temp_folder
timeout_id=gobject.timeout_add(mill,timeout, self)
#autosave_time=autosavetime if autosave_time==0 else autosave_time
elapsed_time=0 ## init the elapsed_time_var
#autosave_time=autosavetime
temp_folder=tempfolder
#print "->", autosave_time
def save_file(filename, text):
"""Save File Atom Function
it comes from atomic fuction in pyroom.py
(if they are integrated remove this code and include pyroom_py)
"""
out_file = open(filename,"w")
out_file.write(text)
out_file.close()
def autosave_quit(self):
"dispose the internal timer"
gobject.source_remove(timout_id)
def autosave_file(self, buffer_id):
"""AutoSave the Buffer to temp folder"""
buffer=self.buffers[buffer_id]
if not os.path.exists(temp_folder): #chech if the path exists
os.mkdir(temp_folder)
if buffer.tmp_filename==None:
if buffer.filename==FILE_UNNAMED:
buffer.tmp_filename=tempfile.mkstemp(suffix="",prefix="noname_"+"tmp_",dir=temp_folder,text=True)[1]
else:
buff_path,buff_name=os.path.split(buffer.filename)
print buff_path, buff_name #(debug)
buffer.tmp_filename=tempfile.mkstemp(suffix="",prefix=buff_name+"_tmp_",dir=temp_folder,text=True)[1]
save_file(buffer.tmp_filename, buffer.get_text(buffer.get_start_iter(),buffer.get_end_iter())) #really saves the fil
self.status.set_text(_('AutoSaving Buffer %d, to temp file %s') % (buffer_id, buffer.tmp_filename)) #inform the user of the saving operation
def timeout(self):
"the Timer Function"
global elapsed_time
global autosave_time
if (int(autosave_time)!=0):
elapsed_time=elapsed_time+1
print "elapsed time = %d , autosave_time = %d" % (elapsed_time, int(autosave_time)*60)
if (elapsed_time>=(int(autosave_time)*60)):
for buffer in self.buffers:
print "saving buffer" + str(buffer)
autosave_file(self,self.buffers.index(buffer))
elapsed_time=0
return True # coninue repeat timeout event
else:
print "Autosave Feature Disabled"
return False #stop timeout event
def kill_tempfile():
"""Kills all the temporary files"""
print "Cleaning Pyroom Temp Folder : ",temp_folder
response=raw_input("proceed [Yes/No]?")
if string.lower(response)=="yes":
killlist = os.listdir(temp_folder)
if len(killlist)==0 : sys.exit(0)
for killfile in killlist:
print "removing File :", os.path.join(temp_folder,killfile)
os.remove(os.path.join(temp_folder,killfile))
else:
print "Nothing deleted..."
sys.exit(0)
def set_autosave_time(autosavetime):
"""set the autosave timeout, useful in pyroom.py"""
global autosave_time
autosave_time=autosavetime
def get_autosave_time():
"""read the autosave timeout, useful in pyroom.py"""
global autosave_time
return autosave_time
|