4669: Long transactions can cause unwanted effects in TreeViews

svn: r17422
This commit is contained in:
Michiel Nauta
2011-05-05 20:02:48 +00:00
parent 4f9b943705
commit 66efd796c5
4 changed files with 17 additions and 2 deletions

View File

@@ -261,7 +261,7 @@ class Tags(DbGUIElement):
view = self.uistate.viewmanager.active_page
selected = view.selected_handles()
pmon = progressdlg.ProgressMonitor(progressdlg.GtkProgressDialog,
popup_time=2)
("", self.uistate.window, gtk.DIALOG_MODAL), popup_time=2)
status = progressdlg.LongOpStatus(msg=_("Adding Tags"),
total_steps=len(selected),
interval=len(selected)//20)
@@ -496,7 +496,7 @@ class OrganizeTagsDialog(object):
links = [link for link in self.db.find_backlink_handles(tag_handle)]
pmon = progressdlg.ProgressMonitor(progressdlg.GtkProgressDialog,
popup_time=2)
("", self.uistate.window, gtk.DIALOG_MODAL), popup_time=2)
status = progressdlg.LongOpStatus(msg=_("Removing Tags"),
total_steps=len(links),
interval=len(links)//20)

View File

@@ -579,6 +579,8 @@ class FlatBaseModel(gtk.GenericTreeModel):
Add a row. This is called after object with handle is created.
Row is only added if search/filter data is such that it must be shown
"""
if self.node_map.get_path(handle) is not None:
return # row is already displayed
data = self.map(handle)
insert_val = (map(conv_unicode_tosrtkey_ongtk, self.sort_func(data)),
handle)

View File

@@ -666,6 +666,8 @@ class TreeBaseModel(gtk.GenericTreeModel):
"""
Add a row to the model.
"""
if self.get_node(handle) is not None:
return # row already exists
cput = time.clock()
if not self.search or \
(self.search and self.search.match(handle, self.db)):