* various: Add undo functionality

svn: r3065
This commit is contained in:
Don Allingham
2004-03-30 04:50:24 +00:00
parent feef42099d
commit 8592fa2cc9
25 changed files with 854 additions and 809 deletions

View File

@ -68,8 +68,8 @@ class SourceView:
self.db = db
self.update = update
self.list = glade.get_widget("source_list")
self.list.connect('button-press-event',self.button_press)
self.selection = self.list.get_selection()
colno = 0
self.renderer = gtk.CellRendererText()
@ -80,12 +80,6 @@ class SourceView:
self.columns = []
self.build_columns()
def load_sources(self,id=None):
pass
def on_click(self,column):
self.click_col = column
def build_columns(self):
for column in self.columns:
self.list.remove_column(column)
@ -112,25 +106,18 @@ class SourceView:
self.list.append_column(column)
index += 1
def on_click(self,column):
self.click_col = column
def change_db(self,db):
self.build_columns()
self.build_tree()
def goto(self,id):
iter = self.map[id]
self.list.get_selection().select_iter(iter)
itpath = self.model.get_path (iter)
col = self.list.get_column (0)
self.list.scroll_to_cell (itpath, col, gtk.TRUE, 0.5, 0)
def build_tree(self):
self.list.set_model(None)
self.model = gtk.TreeModelSort(DisplayModels.SourceModel(self.parent.db))
self.list.set_model(self.model)
self.selection = self.list.get_selection()
self.list.connect('button-press-event',self.button_press)
def button_press(self,obj,event):
if event.type == gtk.gdk._2BUTTON_PRESS and event.button == 1:
@ -182,7 +169,6 @@ class SourceView:
self.topWindow,self.new_after_edit)
def on_delete_clicked(self,obj):
store,iter = self.selection.get_selected()
if not iter:
return
@ -191,7 +177,7 @@ class SourceView:
source = self.db.get_source(id)
if self.is_used(source):
ans = EditSource.DelSrcQuery(source,self.db,self.update)
ans = EditSource.DelSrcQuery(source,self.db,self.build_tree)
QuestionDialog(_('Delete %s?') % source.get_title(),
_('This source is currently being used. Deleting it '
@ -200,8 +186,10 @@ class SourceView:
_('_Delete Source'),
ans.query_response,self.topWindow)
else:
self.db.remove_source_id(source.get_id())
self.update(0)
trans = self.db.start_transaction()
self.db.remove_source_id(source.get_id(),trans)
self.db.add_transaction(trans)
self.build_tree()
def is_used(self,source):
for key in self.db.get_place_id_keys():
@ -258,8 +246,7 @@ class SourceView:
def new_after_edit(self,source):
self.db.add_source(source)
self.update(0)
self.build_tree()
def update_display(self,place):
self.db.build_source_display(place.get_id())
self.update(0)
self.build_tree()