* src/DbPrompter.py: Add display messages during load

* src/GrampsBSDDB.py: Add display messages during load
* src/gramps_main.py: Add display messages during load


svn: r3820
This commit is contained in:
Don Allingham 2004-12-19 23:37:40 +00:00
parent df47a1bcea
commit 879093c9f3
4 changed files with 34 additions and 16 deletions

View File

@ -1,4 +1,7 @@
2004-12-19 Don Allingham <dallingham@users.sourceforge.net> 2004-12-19 Don Allingham <dallingham@users.sourceforge.net>
* src/DbPrompter.py: Add display messages during load
* src/GrampsBSDDB.py: Add display messages during load
* src/gramps_main.py: Add display messages during load
* src/DisplayModels.py: use a dictionary to handle reverse * src/DisplayModels.py: use a dictionary to handle reverse
indices instead of list.index function. Drastically reduces indices instead of list.index function. Drastically reduces
time are larger lists. time are larger lists.

View File

@ -386,7 +386,15 @@ def open_native(parent,filename,filetype):
parent.db = GrampsBSDDB.GrampsBSDDB() parent.db = GrampsBSDDB.GrampsBSDDB()
msgxml = gtk.glade.XML(const.gladeFile, "load_message","gramps") msgxml = gtk.glade.XML(const.gladeFile, "load_message","gramps")
msg_top = msgxml.get_widget('load_message') msg_top = msgxml.get_widget('load_message')
parent.read_file(filename) msg_label = msgxml.get_widget('message')
def update_msg(msg):
msg_label.set_text("<i>%s</i>" % msg)
msg_label.set_use_markup(True)
while gtk.events_pending():
gtk.main_iteration()
parent.read_file(filename,update_msg)
msg_top.destroy() msg_top.destroy()
success = True success = True
elif filetype == const.app_gramps_xml: elif filetype == const.app_gramps_xml:

View File

@ -27,6 +27,7 @@ Provides the Berkeley DB (BSDDB) database backend for GRAMPS
import os import os
import time import time
import locale import locale
from gettext import gettext as _
from RelLib import * from RelLib import *
from GrampsDbBase import * from GrampsDbBase import *
@ -120,7 +121,6 @@ class GrampsBSDDB(GrampsDbBase):
self.name_group = db.DB(self.env) self.name_group = db.DB(self.env)
self.name_group.set_flags(db.DB_DUP) self.name_group.set_flags(db.DB_DUP)
self.name_group.open(name, "name_group", db.DB_HASH, flags=db.DB_CREATE) self.name_group.open(name, "name_group", db.DB_HASH, flags=db.DB_CREATE)
self.id_trans = db.DB(self.env) self.id_trans = db.DB(self.env)
self.id_trans.set_flags(db.DB_DUP) self.id_trans.set_flags(db.DB_DUP)
self.id_trans.open(name, "idtrans", db.DB_HASH, flags=db.DB_CREATE) self.id_trans.open(name, "idtrans", db.DB_HASH, flags=db.DB_CREATE)

View File

@ -1068,7 +1068,7 @@ class Gramps:
os.rmdir(tmpdir_path) os.rmdir(tmpdir_path)
self.import_tool_callback() self.import_tool_callback()
def read_file(self,filename): def read_file(self,filename,callback=None):
self.topWindow.set_resizable(gtk.FALSE) self.topWindow.set_resizable(gtk.FALSE)
filename = os.path.normpath(os.path.abspath(filename)) filename = os.path.normpath(os.path.abspath(filename))
@ -1090,7 +1090,7 @@ class Gramps:
return 0 return 0
try: try:
if self.load_database(filename) == 1: if self.load_database(filename,callback) == 1:
if filename[-1] == '/': if filename[-1] == '/':
filename = filename[:-1] filename = filename[:-1]
name = os.path.basename(filename) name = os.path.basename(filename)
@ -1540,17 +1540,12 @@ class Gramps:
else: else:
return GrampsCfg.get_nameof()(person) return GrampsCfg.get_nameof()(person)
def load_progress(self,value):
self.statusbar.set_progress_percentage(value)
while gtk.events_pending():
gtk.main_iteration()
def status_text(self,text): def status_text(self,text):
self.statusbar.set_status(text) self.statusbar.set_status(text)
while gtk.events_pending(): while gtk.events_pending():
gtk.main_iteration() gtk.main_iteration()
def post_load(self,name): def post_load(self,name,callback=None):
self.db.set_save_path(name) self.db.set_save_path(name)
res = self.db.get_researcher() res = self.db.get_researcher()
owner = GrampsCfg.get_researcher() owner = GrampsCfg.get_researcher()
@ -1558,22 +1553,31 @@ class Gramps:
if res.get_name() == "" and owner.get_name(): if res.get_name() == "" and owner.get_name():
self.db.set_researcher(owner) self.db.set_researcher(owner)
if callback:
callback(_('Setting up bookmarks...'))
self.setup_bookmarks() self.setup_bookmarks()
GrampsGconfKeys.save_last_file(name) GrampsGconfKeys.save_last_file(name)
self.gtop.get_widget("filter").set_text("") self.gtop.get_widget("filter").set_text("")
self.statusbar.set_progress_percentage(1.0) if callback:
callback(_('Building Person list...'))
self.people_view.change_db(self.db) self.people_view.change_db(self.db)
if callback:
callback(_('Building Place list...'))
self.place_view.change_db(self.db) self.place_view.change_db(self.db)
if callback:
callback(_('Building Source list...'))
self.source_view.change_db(self.db) self.source_view.change_db(self.db)
if callback:
callback(_('Building Media list...'))
self.media_view.change_db(self.db) self.media_view.change_db(self.db)
self.relationship = self.RelClass(self.db) self.relationship = self.RelClass(self.db)
self.change_active_person(self.find_initial_person()) self.change_active_person(self.find_initial_person())
self.goto_active_person() self.goto_active_person()
self.statusbar.set_progress_percentage(0.0) if callback:
callback(_('Setup complete'))
return 1 return 1
def find_initial_person(self): def find_initial_person(self):
@ -1585,18 +1589,21 @@ class Gramps:
person = self.db.get_person_from_handle(the_ids[0]) person = self.db.get_person_from_handle(the_ids[0])
return person return person
def load_database(self,name): def load_database(self,name,callback=None):
filename = name filename = name
self.status_text(_("Loading %s...") % name) self.status_text(_("Loading %s...") % name)
if self.db.load(filename,self.load_progress) == 0: if callback:
callback(_('Opening database...'))
if self.db.load(filename,callback) == 0:
self.status_text('') self.status_text('')
return 0 return 0
self.status_text('') self.status_text('')
val = self.post_load(name) val = self.post_load(name,callback)
return val return val
def setup_bookmarks(self): def setup_bookmarks(self):