3275: PageView reworking, changes by B. Malengier and N.Hall

Specifically: improve new treeview by using a linked list implementation so 
 iters can be quickly iterated over
Also: progressdialog on long personview loads.


svn: r14002
This commit is contained in:
Benny Malengier
2010-01-09 11:10:32 +00:00
parent afe85ad0d5
commit de2d669763
9 changed files with 412 additions and 178 deletions

View File

@@ -89,12 +89,17 @@ class DbLoader(CLIDbLoader):
DBErrorDialog(str(msg.value))
def _begin_progress(self):
self.uistate.window.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH))
self.uistate.set_busy_cursor(1)
self.uistate.progress.show()
self.uistate.pulse_progressbar(0)
def _pulse_progress(self, value):
self.uistate.pulse_progressbar(value)
def _end_progress(self):
self.uistate.set_busy_cursor(0)
self.uistate.progress.hide()
def import_file(self):
# First thing first: import is a batch transaction
# so we will lose the undo history. Warn the user.
@@ -222,14 +227,13 @@ class DbLoader(CLIDbLoader):
def do_import(self, dialog, importer, filename):
self.import_info = None
dialog.destroy()
self.uistate.window.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH))
self.uistate.progress.show()
self._begin_progress()
try:
#an importer can return an object with info, object.info_text()
#returns that info. Otherwise None is set to import_info
self.import_info = importer(self.dbstate.db, filename,
self.uistate.pulse_progressbar)
self._pulse_progress)
dirname = os.path.dirname(filename) + os.path.sep
config.set('paths.recent-import-dir', dirname)
except UnicodeError, msg:
@@ -240,6 +244,7 @@ class DbLoader(CLIDbLoader):
"encoding, and import again") + "\n\n %s" % msg)
except Exception:
_LOG.error("Failed to import database.", exc_info=True)
self._end_progress()
def import_info_text(self):
"""
@@ -308,6 +313,7 @@ class DbLoader(CLIDbLoader):
self._dberrordialog(msg)
except Exception:
self.dbstate.no_database()
self._end_progress()
return True
#-------------------------------------------------------------------------