Updates to people list occur only on active display

svn: r1353
This commit is contained in:
Don Allingham 2003-03-17 02:28:43 +00:00
parent 3a3d861fc6
commit 50f66cbddd
5 changed files with 43 additions and 42 deletions

2
configure vendored
View File

@ -1621,7 +1621,7 @@ fi
LANGUAGES="sv pl de fr es it pt_BR ru da_DK cs ro" LANGUAGES="sv pl de fr es it pt_BR ru da_DK cs ro nl"
DISTLANGS= DISTLANGS=

View File

@ -18,7 +18,7 @@ AC_SUBST(VERSIONSTRING)
AC_PATH_PROG(MSGFMT, msgfmt) AC_PATH_PROG(MSGFMT, msgfmt)
AC_SUBST(MSGFMT) AC_SUBST(MSGFMT)
LANGUAGES="sv pl de fr es it pt_BR ru da_DK cs ro" LANGUAGES="sv pl de fr es it pt_BR ru da_DK cs ro nl"
AC_SUBST(LANGUAGES) AC_SUBST(LANGUAGES)
DISTLANGS= DISTLANGS=

View File

@ -586,10 +586,8 @@ class GrampsPreferences:
if status_bar == 0: if status_bar == 0:
self.top.get_widget("stat1").set_active(1) self.top.get_widget("stat1").set_active(1)
elif status_bar == 1:
self.top.get_widget("stat2").set_active(1)
else: else:
self.top.get_widget("stat3").set_active(1) self.top.get_widget("stat2").set_active(1)
if toolbar == 0: if toolbar == 0:
self.top.get_widget("tool1").set_active(1) self.top.get_widget("tool1").set_active(1)

View File

@ -79,7 +79,7 @@ class Marriage:
self.top = gtk.glade.XML(const.marriageFile,"marriageEditor") self.top = gtk.glade.XML(const.marriageFile,"marriageEditor")
top_window = self.get_widget("marriageEditor") top_window = self.get_widget("marriageEditor")
Utils.set_titles(top_window, self.top.get_window('title'), Utils.set_titles(top_window, self.top.get_widget('title'),
_('Marriage/Relationship Editor')) _('Marriage/Relationship Editor'))
self.icon_list = self.get_widget('iconlist') self.icon_list = self.get_widget('iconlist')

View File

@ -743,7 +743,7 @@ class Gramps:
def read_file(self,filename): def read_file(self,filename):
filename = os.path.normpath(os.path.abspath(filename)) filename = os.path.normpath(os.path.abspath(filename))
base = os.path.basename(filename) base = os.path.basename(filename)
if base == const.xmlFile: if base == const.xmlFile:
filename = os.path.dirname(filename) filename = os.path.dirname(filename)
@ -757,15 +757,12 @@ class Gramps:
"a gramps.zodb file.")) "a gramps.zodb file."))
return return
self.status_text(_("Loading %s ...") % filename)
if self.load_database(filename) == 1: if self.load_database(filename) == 1:
if filename[-1] == '/': if filename[-1] == '/':
filename = filename[:-1] filename = filename[:-1]
name = os.path.basename(filename) name = os.path.basename(filename)
self.topWindow.set_title("%s - GRAMPS" % name) self.topWindow.set_title("%s - GRAMPS" % name)
else: else:
self.status_text("")
GrampsCfg.save_last_file("") GrampsCfg.save_last_file("")
def on_ok_button2_clicked(self,obj): def on_ok_button2_clicked(self,obj):
@ -949,20 +946,33 @@ class Gramps:
self.person_model = self.pl_page[0].model self.person_model = self.pl_page[0].model
self.ptabs.set_current_page(0) self.ptabs.set_current_page(0)
return return
id = self.active_person.getId() id = self.active_person.getId()
if self.id2col.has_key(id): if self.id2col.has_key(id):
(model,iter) = self.id2col[id] (model,iter) = self.id2col[id]
self.ptabs.set_current_page(self.model2page[model]) else:
if not self.model_used.has_key(model) or self.model_used[model] == 0: val = self.db.getPersonDisplay(id)
self.model_used[model] = 1 pg = val[5]
self.apply_filter(model) if pg:
pg = pg[0]
model.selection.unselect_all() else:
model.selection.select_iter(iter); pg = '@'
itpath = model.model.get_path(iter) model = self.alpha_page[pg]
col = model.tree.get_column(0) iter = None
model.tree.scroll_to_cell(itpath,col,1,0.5,0.0)
self.ptabs.set_current_page(self.model2page[model])
if not self.model_used.has_key(model) or self.model_used[model] == 0 or not iter:
self.model_used[model] = 1
self.apply_filter(model)
(model,iter) = self.id2col[id]
model.selection.unselect_all()
model.selection.select_iter(iter);
itpath = model.model.get_path(iter)
col = model.tree.get_column(0)
model.tree.scroll_to_cell(itpath,col,1,0.5,0.0)
def change_active_person(self,person): def change_active_person(self,person):
self.active_person = person self.active_person = person
self.modify_statusbar() self.modify_statusbar()
@ -1133,7 +1143,8 @@ class Gramps:
class_init = mi.get_data("function") class_init = mi.get_data("function")
self.DataFilter = class_init(qualifer) self.DataFilter = class_init(qualifer)
self.DataFilter.set_invert(invert_filter) self.DataFilter.set_invert(invert_filter)
self.apply_filter() self.model_used = {}
self.apply_filter(self.person_model)
def on_filter_name_changed(self,obj): def on_filter_name_changed(self,obj):
filter = obj.get_data("filter") filter = obj.get_data("filter")
@ -1304,15 +1315,19 @@ class Gramps:
return 1 return 1
def load_database(self,name): def load_database(self,name):
filename = "%s/%s" % (name,const.xmlFile) filename = "%s/%s" % (name,const.xmlFile)
if not os.path.isfile(filename) and zodb_ok: if not os.path.isfile(filename) and zodb_ok:
filename = "%s/%s" % (name,const.zodbFile) filename = "%s/%s" % (name,const.zodbFile)
self.clear_database(1) self.clear_database(1)
else: else:
self.clear_database(0) self.clear_database(0)
self.status_text(_("Loading %s ...") % name)
if self.db.load(filename,self.load_progress) == 0: if self.db.load(filename,self.load_progress) == 0:
self.status_text('')
return 0 return 0
self.status_text('')
return self.post_load(name) return self.post_load(name)
def load_revision(self,f,name,revision): def load_revision(self,f,name,revision):
@ -1334,21 +1349,7 @@ class Gramps:
def complete_rebuild(self): def complete_rebuild(self):
self.id2col = {} self.id2col = {}
self.model_used = {} self.model_used = {}
for key in self.db.getPersonKeys():
person = self.db.getPerson(key)
val = self.db.getPersonDisplay(key)
pg = val[5]
if pg:
pg = pg[0]
else:
pg = ''
if pg != '@':
if not self.alpha_page.has_key(pg):
self.create_new_panel(pg)
self.apply_filter() self.apply_filter()
self.goto_active_person() self.goto_active_person()
self.modify_statusbar() self.modify_statusbar()
@ -1357,6 +1358,8 @@ class Gramps:
self.status_text(_('Updating display...')) self.status_text(_('Updating display...'))
datacomp = self.DataFilter.compare datacomp = self.DataFilter.compare
if current_model == None:
self.id2col = {}
for key in self.db.getPersonKeys(): for key in self.db.getPersonKeys():
person = self.db.getPerson(key) person = self.db.getPerson(key)
@ -1365,8 +1368,8 @@ class Gramps:
if pg: if pg:
pg = pg[0] pg = pg[0]
else: else:
pg = '' pg = '@'
if datacomp(person): if datacomp(person):
if self.id2col.has_key(key): if self.id2col.has_key(key):
continue continue
@ -1377,15 +1380,15 @@ class Gramps:
else: else:
model = self.default_list model = self.default_list
if current_model == None or current_model == model: if current_model == model:
iter = model.add([val[0],val[1],val[2],val[3],val[4],val[5], iter = model.add([val[0],val[1],val[2],val[3],val[4],val[5],
val[6],val[7]],key) val[6],val[7]],key)
self.id2col[key] = (model,iter) self.id2col[key] = (model,iter)
else: else:
if self.id2col.has_key(key): if self.id2col.has_key(key):
(model,iter) = self.id2col[key] (model,iter) = self.id2col[key]
if current_model == None or current_model == model: model.remove(iter)
model.remove(iter)
for i in self.pl_page: for i in self.pl_page:
i.sort() i.sort()
self.modify_statusbar() self.modify_statusbar()