2007-04-01 Don Allingham <don@gramps-project.org>
* src/DataViews/_PedigreeView.py: display matches in statusbar * src/DataViews/_PersonView.py: display matches in statusbar * src/DataViews/_RelationView.py: display matches in statusbar * src/DisplayState.py: display matches in statusbar * src/DisplayModels/_BaseModel.py: display matches in statusbar * src/DisplayModels/_PeopleModel.py: display matches in statusbar * src/GrampsDbUtils/_GedcomParse.py: display matches in statusbar * src/PageView.py: display matches in statusbar * src/Filters/_SearchBar.py: display matches in statusbar * src/DbManager.py: fix default file name svn: r8346
This commit is contained in:
12
ChangeLog
12
ChangeLog
@ -1,3 +1,15 @@
|
|||||||
|
2007-04-01 Don Allingham <don@gramps-project.org>
|
||||||
|
* src/DataViews/_PedigreeView.py: display matches in statusbar
|
||||||
|
* src/DataViews/_PersonView.py: display matches in statusbar
|
||||||
|
* src/DataViews/_RelationView.py: display matches in statusbar
|
||||||
|
* src/DisplayState.py: display matches in statusbar
|
||||||
|
* src/DisplayModels/_BaseModel.py: display matches in statusbar
|
||||||
|
* src/DisplayModels/_PeopleModel.py: display matches in statusbar
|
||||||
|
* src/GrampsDbUtils/_GedcomParse.py: display matches in statusbar
|
||||||
|
* src/PageView.py: display matches in statusbar
|
||||||
|
* src/Filters/_SearchBar.py: display matches in statusbar
|
||||||
|
* src/DbManager.py: fix default file name
|
||||||
|
|
||||||
2007-04-01 Zsolt Foldvari <zfoldvar@users.sourceforge.net>
|
2007-04-01 Zsolt Foldvari <zfoldvar@users.sourceforge.net>
|
||||||
* src/GrampsWidgets.py (Statusbar._set_packing): Reverse packing style.
|
* src/GrampsWidgets.py (Statusbar._set_packing): Reverse packing style.
|
||||||
|
|
||||||
|
@ -468,6 +468,9 @@ class PedigreeView(PageView.PersonNavView):
|
|||||||
self.show_marriage_data = 0 # Hide marriage data by default
|
self.show_marriage_data = 0 # Hide marriage data by default
|
||||||
self.format_helper = FormattingHelper( self.dbstate)
|
self.format_helper = FormattingHelper( self.dbstate)
|
||||||
|
|
||||||
|
def change_page(self):
|
||||||
|
self.uistate.clear_filter_results()
|
||||||
|
|
||||||
def init_parent_signals_cb(self, widget, event):
|
def init_parent_signals_cb(self, widget, event):
|
||||||
# required to properly bootstrap the signal handlers.
|
# required to properly bootstrap the signal handlers.
|
||||||
# This handler is connected by build_widget. After the outside ViewManager
|
# This handler is connected by build_widget. After the outside ViewManager
|
||||||
|
@ -111,6 +111,9 @@ class PersonView(PageView.PersonNavView):
|
|||||||
PageView.PersonNavView.change_page(self)
|
PageView.PersonNavView.change_page(self)
|
||||||
self.edit_action.set_visible(True)
|
self.edit_action.set_visible(True)
|
||||||
self.edit_action.set_sensitive(not self.dbstate.db.readonly)
|
self.edit_action.set_sensitive(not self.dbstate.db.readonly)
|
||||||
|
self.uistate.show_filter_results(self.dbstate,
|
||||||
|
self.model.displayed,
|
||||||
|
self.model.total)
|
||||||
|
|
||||||
def set_active(self):
|
def set_active(self):
|
||||||
PageView.PersonNavView.set_active(self)
|
PageView.PersonNavView.set_active(self)
|
||||||
@ -535,6 +538,9 @@ class PersonView(PageView.PersonNavView):
|
|||||||
self.dbstate.change_active_person(active)
|
self.dbstate.change_active_person(active)
|
||||||
self._goto()
|
self._goto()
|
||||||
self.dirty = False
|
self.dirty = False
|
||||||
|
self.uistate.show_filter_results(self.dbstate,
|
||||||
|
self.model.displayed,
|
||||||
|
self.model.total)
|
||||||
else:
|
else:
|
||||||
self.dirty = True
|
self.dirty = True
|
||||||
|
|
||||||
|
@ -204,6 +204,9 @@ class RelationshipView(PageView.PersonNavView):
|
|||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
self.change_person(None)
|
self.change_person(None)
|
||||||
|
|
||||||
|
def change_page(self):
|
||||||
|
self.uistate.clear_filter_results()
|
||||||
|
|
||||||
def get_stock(self):
|
def get_stock(self):
|
||||||
"""
|
"""
|
||||||
|
@ -59,7 +59,12 @@ import gtk.glade
|
|||||||
import QuestionDialog
|
import QuestionDialog
|
||||||
|
|
||||||
|
|
||||||
DEFAULT_DIR = os.path.expanduser("~/grampsdb")
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# constants
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
DEFAULT_DIR = os.path.expanduser("~/.gramps/grampsdb")
|
||||||
DEFAULT_TITLE = _("Family Tree")
|
DEFAULT_TITLE = _("Family Tree")
|
||||||
NAME_FILE = "name.txt"
|
NAME_FILE = "name.txt"
|
||||||
META_NAME = "meta_data.db"
|
META_NAME = "meta_data.db"
|
||||||
@ -71,9 +76,16 @@ DATE_COL = 3
|
|||||||
OPEN_COL = 5
|
OPEN_COL = 5
|
||||||
|
|
||||||
class DbManager:
|
class DbManager:
|
||||||
|
"""
|
||||||
|
Database Manager. Opens a database manager window that allows users to
|
||||||
|
create, rename, delete and open databases.
|
||||||
|
"""
|
||||||
|
|
||||||
def __init__(self, dbstate, parent=None):
|
def __init__(self, dbstate, parent=None):
|
||||||
|
"""
|
||||||
|
Creates the top level window from the glade description, and extracts
|
||||||
|
the GTK widgets that are needed.
|
||||||
|
"""
|
||||||
self.glade = gtk.glade.XML(const.gladeFile, "dbmanager", "gramps")
|
self.glade = gtk.glade.XML(const.gladeFile, "dbmanager", "gramps")
|
||||||
self.top = self.glade.get_widget('dbmanager')
|
self.top = self.glade.get_widget('dbmanager')
|
||||||
if parent:
|
if parent:
|
||||||
@ -100,6 +112,9 @@ class DbManager:
|
|||||||
self.populate()
|
self.populate()
|
||||||
|
|
||||||
def connect_signals(self):
|
def connect_signals(self):
|
||||||
|
"""
|
||||||
|
Connects the signals to the buttons on the interface.
|
||||||
|
"""
|
||||||
self.remove.connect('clicked', self.remove_db)
|
self.remove.connect('clicked', self.remove_db)
|
||||||
self.new.connect('clicked', self.new_db)
|
self.new.connect('clicked', self.new_db)
|
||||||
self.rename.connect('clicked', self.rename_db)
|
self.rename.connect('clicked', self.rename_db)
|
||||||
@ -249,10 +264,12 @@ class DbManager:
|
|||||||
os.mkdir(new_path)
|
os.mkdir(new_path)
|
||||||
path_name = os.path.join(new_path, NAME_FILE)
|
path_name = os.path.join(new_path, NAME_FILE)
|
||||||
|
|
||||||
|
name_list = [ name[0] for name in self.current_names ]
|
||||||
|
|
||||||
i = 1
|
i = 1
|
||||||
while True:
|
while True:
|
||||||
title = "%s %d" % (DEFAULT_TITLE, i)
|
title = "%s %d" % (DEFAULT_TITLE, i)
|
||||||
if title not in self.current_names:
|
if title not in name_list:
|
||||||
break
|
break
|
||||||
i += 1
|
i += 1
|
||||||
|
|
||||||
@ -266,7 +283,3 @@ class DbManager:
|
|||||||
|
|
||||||
path = self.model.get_path(node)
|
path = self.model.get_path(node)
|
||||||
self.dblist.set_cursor(path, focus_column=self.column, start_editing=True)
|
self.dblist.set_cursor(path, focus_column=self.column, start_editing=True)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
a = DbManager()
|
|
||||||
a.run()
|
|
||||||
|
@ -153,6 +153,9 @@ class BaseModel(gtk.GenericTreeModel):
|
|||||||
self.sort_col = scol
|
self.sort_col = scol
|
||||||
self.skip = skip
|
self.skip = skip
|
||||||
|
|
||||||
|
self.total = 0
|
||||||
|
self.displayed = 0
|
||||||
|
|
||||||
self.node_map = NodeMap()
|
self.node_map = NodeMap()
|
||||||
|
|
||||||
if search:
|
if search:
|
||||||
@ -205,9 +208,11 @@ class BaseModel(gtk.GenericTreeModel):
|
|||||||
self.sort_data = []
|
self.sort_data = []
|
||||||
data = cursor.next()
|
data = cursor.next()
|
||||||
|
|
||||||
|
self.total = 0
|
||||||
while data:
|
while data:
|
||||||
key = locale.strxfrm(self.sort_func(data[1]))
|
key = locale.strxfrm(self.sort_func(data[1]))
|
||||||
self.sort_data.append((key,data[0]))
|
self.sort_data.append((key,data[0]))
|
||||||
|
self.total += 1
|
||||||
data = cursor.next()
|
data = cursor.next()
|
||||||
cursor.close()
|
cursor.close()
|
||||||
|
|
||||||
@ -216,6 +221,7 @@ class BaseModel(gtk.GenericTreeModel):
|
|||||||
return [ x[1] for x in self.sort_data ]
|
return [ x[1] for x in self.sort_data ]
|
||||||
|
|
||||||
def _rebuild_search(self,ignore=None):
|
def _rebuild_search(self,ignore=None):
|
||||||
|
self.total = 0
|
||||||
if self.db.is_open():
|
if self.db.is_open():
|
||||||
if self.search and self.search.text:
|
if self.search and self.search.text:
|
||||||
dlist = [h for h in self.sort_keys()\
|
dlist = [h for h in self.sort_keys()\
|
||||||
@ -224,11 +230,14 @@ class BaseModel(gtk.GenericTreeModel):
|
|||||||
else:
|
else:
|
||||||
dlist = [h for h in self.sort_keys() \
|
dlist = [h for h in self.sort_keys() \
|
||||||
if h not in self.skip and h != ignore]
|
if h not in self.skip and h != ignore]
|
||||||
|
self.displayed = len(dlist)
|
||||||
self.node_map.set_path_map(dlist)
|
self.node_map.set_path_map(dlist)
|
||||||
else:
|
else:
|
||||||
|
self.displayed = 0
|
||||||
self.node_map.clear_map()
|
self.node_map.clear_map()
|
||||||
|
|
||||||
def _rebuild_filter(self, ignore=None):
|
def _rebuild_filter(self, ignore=None):
|
||||||
|
self.total = 0
|
||||||
if self.db.is_open():
|
if self.db.is_open():
|
||||||
if self.search:
|
if self.search:
|
||||||
dlist = self.search.apply(self.db,
|
dlist = self.search.apply(self.db,
|
||||||
@ -238,8 +247,10 @@ class BaseModel(gtk.GenericTreeModel):
|
|||||||
dlist = [ k for k in self.sort_keys() \
|
dlist = [ k for k in self.sort_keys() \
|
||||||
if k != ignore ]
|
if k != ignore ]
|
||||||
|
|
||||||
|
self.displayed = len(dlist)
|
||||||
self.node_map.set_path_map(dlist)
|
self.node_map.set_path_map(dlist)
|
||||||
else:
|
else:
|
||||||
|
self.displayed = 0
|
||||||
self.node_map.clear_map()
|
self.node_map.clear_map()
|
||||||
|
|
||||||
def add_row_by_handle(self,handle):
|
def add_row_by_handle(self,handle):
|
||||||
|
@ -273,6 +273,9 @@ class PeopleModel(gtk.GenericTreeModel):
|
|||||||
|
|
||||||
self.mapper = NodeTreeMap()
|
self.mapper = NodeTreeMap()
|
||||||
|
|
||||||
|
self.total = 0
|
||||||
|
self.displayed = 0
|
||||||
|
|
||||||
if filter_info and filter_info != (1, (0, u'', False)):
|
if filter_info and filter_info != (1, (0, u'', False)):
|
||||||
if filter_info[0] == PeopleModel.GENERIC:
|
if filter_info[0] == PeopleModel.GENERIC:
|
||||||
data_filter = filter_info[1]
|
data_filter = filter_info[1]
|
||||||
@ -325,15 +328,19 @@ class PeopleModel(gtk.GenericTreeModel):
|
|||||||
cursor = self.db.get_person_cursor()
|
cursor = self.db.get_person_cursor()
|
||||||
node = cursor.first()
|
node = cursor.first()
|
||||||
|
|
||||||
|
self.total = 0
|
||||||
|
self.displayed = 0
|
||||||
|
|
||||||
while node:
|
while node:
|
||||||
#for node in self.db.get_person_cursor_iter():
|
#for node in self.db.get_person_cursor_iter():
|
||||||
|
self.total += 1
|
||||||
handle, d = node
|
handle, d = node
|
||||||
if not (handle in skip or (dfilter and not dfilter.match(handle))):
|
if not (handle in skip or (dfilter and not dfilter.match(handle))):
|
||||||
name_data = d[PeopleModel._NAME_COL]
|
name_data = d[PeopleModel._NAME_COL]
|
||||||
|
|
||||||
group_name = ngn(self.db, name_data)
|
group_name = ngn(self.db, name_data)
|
||||||
sorted_name = nsn(name_data)
|
sorted_name = nsn(name_data)
|
||||||
|
self.displayed += 1
|
||||||
self.mapper.assign_sort_name(handle, sorted_name, group_name)
|
self.mapper.assign_sort_name(handle, sorted_name, group_name)
|
||||||
node = cursor.next()
|
node = cursor.next()
|
||||||
cursor.close()
|
cursor.close()
|
||||||
@ -343,11 +350,17 @@ class PeopleModel(gtk.GenericTreeModel):
|
|||||||
ngn = NameDisplay.displayer.name_grouping_data
|
ngn = NameDisplay.displayer.name_grouping_data
|
||||||
nsn = NameDisplay.displayer.raw_sorted_name
|
nsn = NameDisplay.displayer.raw_sorted_name
|
||||||
|
|
||||||
|
plist = self.db.get_person_handles()
|
||||||
|
|
||||||
|
self.total = len(plist)
|
||||||
|
|
||||||
if dfilter:
|
if dfilter:
|
||||||
handle_list = dfilter.apply(self.db, self.db.get_person_handles())
|
handle_list = dfilter.apply(self.db, self.db.get_person_handles())
|
||||||
else:
|
else:
|
||||||
handle_list = self.db.get_person_handles()
|
handle_list = self.db.get_person_handles()
|
||||||
|
|
||||||
|
self.displayed = len(handle_list)
|
||||||
|
|
||||||
self.mapper.clear_sort_names()
|
self.mapper.clear_sort_names()
|
||||||
|
|
||||||
status = LongOpStatus(msg="Loading People",
|
status = LongOpStatus(msg="Loading People",
|
||||||
@ -378,6 +391,9 @@ class PeopleModel(gtk.GenericTreeModel):
|
|||||||
self.lru_bdate = LRU(_CACHE_SIZE)
|
self.lru_bdate = LRU(_CACHE_SIZE)
|
||||||
self.lru_ddate = LRU(_CACHE_SIZE)
|
self.lru_ddate = LRU(_CACHE_SIZE)
|
||||||
|
|
||||||
|
self.total = 0
|
||||||
|
self.displayed = 0
|
||||||
|
|
||||||
if dfilter:
|
if dfilter:
|
||||||
self.dfilter = dfilter
|
self.dfilter = dfilter
|
||||||
|
|
||||||
|
@ -275,6 +275,7 @@ class DisplayState(GrampsDb.GrampsDBCallback):
|
|||||||
self.gwm = ManagedWindow.GrampsWindowManager(uimanager)
|
self.gwm = ManagedWindow.GrampsWindowManager(uimanager)
|
||||||
self.widget = None
|
self.widget = None
|
||||||
self.warnbtn = warnbtn
|
self.warnbtn = warnbtn
|
||||||
|
self.last_bar = self.status.insert(min_width=150)
|
||||||
|
|
||||||
formatter = logging.Formatter('%(levelname)s %(name)s: %(message)s')
|
formatter = logging.Formatter('%(levelname)s %(name)s: %(message)s')
|
||||||
self.rh = WarnHandler(capacity=400,button=warnbtn)
|
self.rh = WarnHandler(capacity=400,button=warnbtn)
|
||||||
@ -337,6 +338,15 @@ class DisplayState(GrampsDb.GrampsDBCallback):
|
|||||||
self.status_text(text)
|
self.status_text(text)
|
||||||
gobject.timeout_add(5000,self.modify_statusbar,dbstate)
|
gobject.timeout_add(5000,self.modify_statusbar,dbstate)
|
||||||
|
|
||||||
|
def show_filter_results(self, dbstate, matched, total):
|
||||||
|
text = _("%d/%d matched") % (matched, total)
|
||||||
|
self.status.pop(1, self.last_bar)
|
||||||
|
self.status.push(1, text, self.last_bar)
|
||||||
|
|
||||||
|
def clear_filter_results(self):
|
||||||
|
self.status.pop(1, self.last_bar)
|
||||||
|
self.status.push(1, '', self.last_bar)
|
||||||
|
|
||||||
def modify_statusbar(self,dbstate,active=None):
|
def modify_statusbar(self,dbstate,active=None):
|
||||||
self.status.pop(self.status_id)
|
self.status.pop(self.status_id)
|
||||||
if dbstate.active == None:
|
if dbstate.active == None:
|
||||||
|
@ -136,7 +136,7 @@ class SearchBar:
|
|||||||
inv = self.filter_model.get_value(node,2)
|
inv = self.filter_model.get_value(node,2)
|
||||||
return (index, text, inv)
|
return (index, text, inv)
|
||||||
|
|
||||||
def apply_filter(self,current_model=None):
|
def apply_filter(self, current_model=None):
|
||||||
self.apply_text = unicode(self.filter_text.get_text())
|
self.apply_text = unicode(self.filter_text.get_text())
|
||||||
self.filter_button.set_sensitive(False)
|
self.filter_button.set_sensitive(False)
|
||||||
self.uistate.status_text(_('Updating display...'))
|
self.uistate.status_text(_('Updating display...'))
|
||||||
|
@ -115,6 +115,7 @@ from BasicUtils import NameDisplay, UpdateCallback
|
|||||||
import Utils
|
import Utils
|
||||||
import Mime
|
import Mime
|
||||||
import LdsUtils
|
import LdsUtils
|
||||||
|
import Utils
|
||||||
|
|
||||||
from _GedcomInfo import *
|
from _GedcomInfo import *
|
||||||
from _GedcomTokens import *
|
from _GedcomTokens import *
|
||||||
@ -2562,7 +2563,7 @@ class GedcomParser(UpdateCallback):
|
|||||||
|
|
||||||
self.__parse_level(sub_state, self.event_parse_tbl, self.__undefined)
|
self.__parse_level(sub_state, self.event_parse_tbl, self.__undefined)
|
||||||
|
|
||||||
family_event_name(event, state.family)
|
family_event_name(event, state.family, self.dbase)
|
||||||
self.dbase.commit_event(event, self.trans)
|
self.dbase.commit_event(event, self.trans)
|
||||||
event_ref.ref = event.handle
|
event_ref.ref = event.handle
|
||||||
state.family.add_event_ref(event_ref)
|
state.family.add_event_ref(event_ref)
|
||||||
@ -2606,7 +2607,7 @@ class GedcomParser(UpdateCallback):
|
|||||||
else:
|
else:
|
||||||
state.family.type.set(RelLib.FamilyRelType.MARRIED)
|
state.family.type.set(RelLib.FamilyRelType.MARRIED)
|
||||||
|
|
||||||
family_event_name(event, state.family)
|
family_event_name(event, state.family, self.dbase)
|
||||||
|
|
||||||
self.dbase.commit_event(event, self.trans)
|
self.dbase.commit_event(event, self.trans)
|
||||||
event_ref.ref = event.handle
|
event_ref.ref = event.handle
|
||||||
@ -4406,8 +4407,11 @@ class GedcomParser(UpdateCallback):
|
|||||||
event_ref = RelLib.EventRef()
|
event_ref = RelLib.EventRef()
|
||||||
event.set_gramps_id(self.emapper.find_next())
|
event.set_gramps_id(self.emapper.find_next())
|
||||||
event.set_type(event_type)
|
event.set_type(event_type)
|
||||||
|
|
||||||
if description and description != 'Y':
|
if description and description != 'Y':
|
||||||
event.set_description(description)
|
event.set_description(description)
|
||||||
|
else:
|
||||||
|
person_event_name(event, state.person)
|
||||||
self.dbase.add_event(event, self.trans)
|
self.dbase.add_event(event, self.trans)
|
||||||
|
|
||||||
sub_state = GedcomUtils.CurrentState()
|
sub_state = GedcomUtils.CurrentState()
|
||||||
@ -4430,6 +4434,9 @@ class GedcomParser(UpdateCallback):
|
|||||||
event.set_type(event_type)
|
event.set_type(event_type)
|
||||||
if description and description != 'Y':
|
if description and description != 'Y':
|
||||||
event.set_description(description)
|
event.set_description(description)
|
||||||
|
else:
|
||||||
|
family_event_name(event, state.family, self.dbase)
|
||||||
|
|
||||||
self.dbase.add_event(event, self.trans)
|
self.dbase.add_event(event, self.trans)
|
||||||
|
|
||||||
sub_state = GedcomUtils.CurrentState()
|
sub_state = GedcomUtils.CurrentState()
|
||||||
@ -4440,7 +4447,7 @@ class GedcomParser(UpdateCallback):
|
|||||||
|
|
||||||
self.__parse_level(sub_state, event_map, self.__undefined)
|
self.__parse_level(sub_state, event_map, self.__undefined)
|
||||||
|
|
||||||
family_event_name(event, state.family)
|
family_event_name(event, state.family, self.dbase)
|
||||||
self.dbase.commit_event(event, self.trans)
|
self.dbase.commit_event(event, self.trans)
|
||||||
|
|
||||||
event_ref.set_reference_handle(event.handle)
|
event_ref.set_reference_handle(event.handle)
|
||||||
@ -4482,22 +4489,20 @@ class GedcomParser(UpdateCallback):
|
|||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
def person_event_name(event, person):
|
def person_event_name(event, person):
|
||||||
if event.get_type().is_custom():
|
if not event.get_description():
|
||||||
if not event.get_description():
|
text = EVENT_PERSON_STR % {
|
||||||
text = EVENT_PERSON_STR % {
|
'event_name' : str(event.get_type()),
|
||||||
'event_name' : str(event.get_type()),
|
'person' : NameDisplay.displayer.display(person),
|
||||||
'person' : NameDisplay.displayer.display(person),
|
}
|
||||||
}
|
event.set_description(text)
|
||||||
event.set_description(text)
|
|
||||||
|
|
||||||
def family_event_name(event, family):
|
def family_event_name(event, family, dbase):
|
||||||
if event.get_type().is_custom():
|
if not event.get_description():
|
||||||
if not event.get_description():
|
text = EVENT_FAMILY_STR % {
|
||||||
text = EVENT_FAMILY_STR % {
|
'event_name' : str(event.get_type()),
|
||||||
'event_name' : str(event.get_type()),
|
'family' : Utils.family_name(family, dbase),
|
||||||
'family' : "<TBD>",
|
}
|
||||||
}
|
event.set_description(text)
|
||||||
event.set_description(text)
|
|
||||||
|
|
||||||
def encode_filename(name):
|
def encode_filename(name):
|
||||||
enc = sys.getfilesystemencoding()
|
enc = sys.getfilesystemencoding()
|
||||||
|
@ -161,7 +161,7 @@ class PageView:
|
|||||||
self.additional_action_groups.append(group)
|
self.additional_action_groups.append(group)
|
||||||
|
|
||||||
def change_page(self):
|
def change_page(self):
|
||||||
pass
|
self.uistate.clear_filter_results()
|
||||||
|
|
||||||
def edit(self,obj):
|
def edit(self,obj):
|
||||||
pass
|
pass
|
||||||
@ -564,7 +564,8 @@ class ListView(BookMarkView):
|
|||||||
self.vbox.set_border_width(4)
|
self.vbox.set_border_width(4)
|
||||||
self.vbox.set_spacing(4)
|
self.vbox.set_spacing(4)
|
||||||
|
|
||||||
self.search_bar = SearchBar(self.dbstate,self.uistate, self.build_tree)
|
self.search_bar = SearchBar(self.dbstate,self.uistate,
|
||||||
|
self.search_build_tree)
|
||||||
filter_box = self.search_bar.build()
|
filter_box = self.search_bar.build()
|
||||||
|
|
||||||
self.list = gtk.TreeView()
|
self.list = gtk.TreeView()
|
||||||
@ -604,6 +605,9 @@ class ListView(BookMarkView):
|
|||||||
else:
|
else:
|
||||||
return self.vbox
|
return self.vbox
|
||||||
|
|
||||||
|
def search_build_tree(self):
|
||||||
|
self.build_tree()
|
||||||
|
|
||||||
def row_changed(self,obj):
|
def row_changed(self,obj):
|
||||||
"""Called with a row is changed. Check the selected objects from
|
"""Called with a row is changed. Check the selected objects from
|
||||||
the person_tree to get the IDs of the selected objects. Set the
|
the person_tree to get the IDs of the selected objects. Set the
|
||||||
@ -733,6 +737,9 @@ class ListView(BookMarkView):
|
|||||||
self.dirty = False
|
self.dirty = False
|
||||||
else:
|
else:
|
||||||
self.dirty = True
|
self.dirty = True
|
||||||
|
self.uistate.show_filter_results(self.dbstate,
|
||||||
|
self.model.displayed,
|
||||||
|
self.model.total)
|
||||||
|
|
||||||
def filter_toggle_action(self,obj):
|
def filter_toggle_action(self,obj):
|
||||||
if obj.get_active():
|
if obj.get_active():
|
||||||
|
@ -151,8 +151,9 @@ def wasHistory_broken():
|
|||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
|
|
||||||
def family_name(family,db,noname=_("unknown")):
|
def family_name(family, db, noname=_("unknown")):
|
||||||
"""Builds a name for the family from the parents names"""
|
"""Builds a name for the family from the parents names"""
|
||||||
|
|
||||||
father_handle = family.get_father_handle()
|
father_handle = family.get_father_handle()
|
||||||
mother_handle = family.get_mother_handle()
|
mother_handle = family.get_mother_handle()
|
||||||
father = db.get_person_from_handle(father_handle)
|
father = db.get_person_from_handle(father_handle)
|
||||||
@ -171,7 +172,7 @@ def family_name(family,db,noname=_("unknown")):
|
|||||||
name = noname
|
name = noname
|
||||||
return name
|
return name
|
||||||
|
|
||||||
def family_upper_name(family,db):
|
def family_upper_name(family, db):
|
||||||
"""Builds a name for the family from the parents names"""
|
"""Builds a name for the family from the parents names"""
|
||||||
father_handle = family.get_father_handle()
|
father_handle = family.get_father_handle()
|
||||||
mother_handle = family.get_mother_handle()
|
mother_handle = family.get_mother_handle()
|
||||||
@ -187,7 +188,6 @@ def family_upper_name(family,db):
|
|||||||
name = mother.get_primary_name().get_upper_name()
|
name = mother.get_primary_name().get_upper_name()
|
||||||
return name
|
return name
|
||||||
|
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
@ -1070,7 +1070,6 @@ class ViewManager:
|
|||||||
self.state.db.enable_signals()
|
self.state.db.enable_signals()
|
||||||
self.state.signal_change()
|
self.state.signal_change()
|
||||||
|
|
||||||
print filename
|
|
||||||
Config.set(Config.RECENT_FILE, filename)
|
Config.set(Config.RECENT_FILE, filename)
|
||||||
|
|
||||||
self.relationship = self.RelClass(self.state.db)
|
self.relationship = self.RelClass(self.state.db)
|
||||||
|
Reference in New Issue
Block a user