4641: Interface for indicating if GrampsBar gramplets have data

svn: r17054
This commit is contained in:
Nick Hall
2011-04-05 22:45:31 +00:00
parent abd4b31786
commit 893477536d
14 changed files with 359 additions and 7 deletions

View File

@@ -56,6 +56,7 @@ class Sources(Gramplet):
"""
for source_ref in obj.get_source_references():
self.add_source_ref(source_ref)
self.set_has_data(self.model.count > 0)
def add_source_ref(self, source_ref):
"""
@@ -80,6 +81,16 @@ class Sources(Gramplet):
except Errors.WindowActiveError:
pass
def get_has_data(self, obj):
"""
Return True if the gramplet has data, else return False.
"""
if obj is None:
return False
if obj.get_source_references():
return True
return False
class PersonSources(Sources):
"""
Displays the sources for a person.
@@ -91,6 +102,11 @@ class PersonSources(Sources):
def active_changed(self, handle):
self.update()
def update_has_data(self):
active_handle = self.get_active('Person')
active = self.dbstate.db.get_person_from_handle(active_handle)
self.set_has_data(self.get_has_data(active))
def main(self):
active_handle = self.get_active('Person')
active = self.dbstate.db.get_person_from_handle(active_handle)
@@ -98,6 +114,8 @@ class PersonSources(Sources):
self.model.clear()
if active:
self.display_sources(active)
else:
self.set_has_data(False)
class EventSources(Sources):
"""
@@ -108,6 +126,11 @@ class EventSources(Sources):
self.connect_signal('Event', self.update)
self.update()
def update_has_data(self):
active_handle = self.get_active('Event')
active = self.dbstate.db.get_event_from_handle(active_handle)
self.set_has_data(self.get_has_data(active))
def main(self):
active_handle = self.get_active('Event')
active = self.dbstate.db.get_event_from_handle(active_handle)
@@ -115,6 +138,8 @@ class EventSources(Sources):
self.model.clear()
if active:
self.display_sources(active)
else:
self.set_has_data(False)
class FamilySources(Sources):
"""
@@ -125,6 +150,11 @@ class FamilySources(Sources):
self.connect_signal('Family', self.update)
self.update()
def update_has_data(self):
active_handle = self.get_active('Family')
active = self.dbstate.db.get_family_from_handle(active_handle)
self.set_has_data(self.get_has_data(active))
def main(self):
active_handle = self.get_active('Family')
active = self.dbstate.db.get_family_from_handle(active_handle)
@@ -132,6 +162,8 @@ class FamilySources(Sources):
self.model.clear()
if active:
self.display_sources(active)
else:
self.set_has_data(False)
class PlaceSources(Sources):
"""
@@ -142,6 +174,11 @@ class PlaceSources(Sources):
self.connect_signal('Place', self.update)
self.update()
def update_has_data(self):
active_handle = self.get_active('Place')
active = self.dbstate.db.get_place_from_handle(active_handle)
self.set_has_data(self.get_has_data(active))
def main(self):
active_handle = self.get_active('Place')
active = self.dbstate.db.get_place_from_handle(active_handle)
@@ -149,6 +186,8 @@ class PlaceSources(Sources):
self.model.clear()
if active:
self.display_sources(active)
else:
self.set_has_data(False)
class MediaSources(Sources):
"""
@@ -159,6 +198,11 @@ class MediaSources(Sources):
self.connect_signal('Media', self.update)
self.update()
def update_has_data(self):
active_handle = self.get_active('Media')
active = self.dbstate.db.get_object_from_handle(active_handle)
self.set_has_data(self.get_has_data(active))
def main(self):
active_handle = self.get_active('Media')
active = self.dbstate.db.get_object_from_handle(active_handle)
@@ -166,4 +210,6 @@ class MediaSources(Sources):
self.model.clear()
if active:
self.display_sources(active)
else:
self.set_has_data(False)