delete = gtk.Button("-") ; delete.show()
clear = gtk.Button("C") ; clear.show()
text = gtk.ToggleButton("T") ; text.show(); text.set_sensitive(False)
- name = gtk.Label("1.2.3.4.5") ; name.show()
+ name = gtk.Button("1.2.3.4.5") ; name.show()
bar.add(back)
bar.add(fore)
delete.connect("clicked", self.delete)
clear.connect("clicked", self.clear)
text.connect("toggled", self.text_change)
+ name.connect("clicked", self.setname)
self.name = name
self.page = page
self.line = None
def refresh(self, area, ev):
self.redraw()
def redraw(self):
- self.name.set_text(self.names[self.pagenum])
+ self.name.set_label(self.names[self.pagenum])
self.page.window.draw_rectangle(self.bg, True, 0, 0,
480,640)
for l in self.lines:
# don't add after a blank page
return
self.save_page()
- newname = self.names[self.pagenum]
+ newname = self.choose_unique(self.names[self.pagenum])
+
+ self.names = self.names[0:self.pagenum+1] + [ newname ] + \
+ self.names[self.pagenum+1:]
+ self.pagenum += 1;
+ self.lines = []
+ self.redraw()
+ return
+ def choose_unique(self, newname):
while newname in self.pages:
new2 = inc_name(newname)
if new2 not in self.pages:
newname = newname + ".1"
else:
newname = newname + ".0.1"
-
- self.names = self.names[0:self.pagenum+1] + [ newname ] + \
- self.names[self.pagenum+1:]
- self.pagenum += 1;
- self.lines = []
- self.redraw()
- return
+ return newname
def delete(self,b):
self.flush_text()
if len(self.names) <= 1:
self.redraw()
return
+ def rename(self, newname):
+ # Rename current page and rename the file
+ # Maybe we should resort the name list, but then we need to update
+ # pagenum which is awkward.
+ if self.names[self.pagenum] == newname:
+ return
+ newname = self.choose_unique(newname)
+ oldpath = self.page_dir + "/" + self.names[self.pagenum]
+ newpath = self.page_dir + "/" + newname
+ try :
+ os.rename(oldpath, newpath)
+ self.names[self.pagenum] = newname
+ self.name.set_label(self.names[self.pagenum])
+ except:
+ pass
+
+ def setname(self,b):
+ if self.textstr:
+ if len(self.textstr) > 0:
+ self.rename(self.textstr)
+
def clear(self,b):
while len(self.lines) > 0:
self.hist.append(self.lines.pop())