2007-10-05 James G. Sack <jgsack@san.rr.com>

* src/GrampsDb/_GrampsDbBase.py:
	* src/GrampsDb/_GrampsGEDDB.py:
	* src/GrampsDb/_GrampsXMLDB.py:
	* src/GrampsDb/_GrampsInMemDB.py:
	* src/Bookmarks.py:
	issue #1261: creating bookmark does not lead to save of xml


svn: r9078
This commit is contained in:
Benny Malengier
2007-10-05 09:25:31 +00:00
parent 6d521544b6
commit 58dfe133c6
6 changed files with 31 additions and 8 deletions

View File

@@ -1,3 +1,11 @@
2007-10-05 James G. Sack <jgsack@san.rr.com>
* src/GrampsDb/_GrampsDbBase.py:
* src/GrampsDb/_GrampsGEDDB.py:
* src/GrampsDb/_GrampsXMLDB.py:
* src/GrampsDb/_GrampsInMemDB.py:
* src/Bookmarks.py:
issue #1261: creating bookmark does not lead to save of xml
2007-10-03 Brian Matherly <brian@gramps-project.org> 2007-10-03 Brian Matherly <brian@gramps-project.org>
* src/plugins/NarrativeWeb.py: 0001238: Web report: sort references for * src/plugins/NarrativeWeb.py: 0001238: Web report: sort references for
places and media (use remove case sensitive sort and use normalized strings places and media (use remove case sensitive sort and use normalized strings

View File

@@ -109,7 +109,7 @@ class Bookmarks :
def display(self): def display(self):
""" """
Redraw teh display Redraw the display
""" """
self.redraw() self.redraw()
@@ -122,6 +122,11 @@ class Bookmarks :
self.uistate.uimanager.remove_action_group(self.action_group) self.uistate.uimanager.remove_action_group(self.action_group)
self.active = DISABLED self.active = DISABLED
def redraw_and_report_change(self):
"""Create the pulldown menu and set bookmarks to changed"""
self.dbstate.db.report_bm_change()
self.redraw()
def redraw(self): def redraw(self):
"""Create the pulldown menu""" """Create the pulldown menu"""
text = StringIO() text = StringIO()
@@ -166,7 +171,7 @@ class Bookmarks :
"""appends the person to the bottom of the bookmarks""" """appends the person to the bottom of the bookmarks"""
if person_handle not in self.bookmarks.get(): if person_handle not in self.bookmarks.get():
self.bookmarks.append(person_handle) self.bookmarks.append(person_handle)
self.redraw() self.redraw_and_report_change()
def remove_handles(self, handle_list): def remove_handles(self, handle_list):
""" """
@@ -182,7 +187,7 @@ class Bookmarks :
self.bookmarks.remove(handle) self.bookmarks.remove(handle)
modified = True modified = True
if modified: if modified:
self.redraw() self.redraw_and_report_change()
def draw_window(self): def draw_window(self):
"""Draws the bookmark dialog box""" """Draws the bookmark dialog box"""
@@ -246,7 +251,7 @@ class Bookmarks :
if self.response == gtk.RESPONSE_HELP: if self.response == gtk.RESPONSE_HELP:
self.help_clicked() self.help_clicked()
if self.modified: if self.modified:
self.redraw() self.redraw_and_report_change()
self.top.destroy() self.top.destroy()
def delete_clicked(self, obj): def delete_clicked(self, obj):

View File

@@ -260,6 +260,7 @@ class GrampsDbBase(GrampsDBCallback):
self.repo_bookmarks = GrampsDbBookmarks() self.repo_bookmarks = GrampsDbBookmarks()
self.media_bookmarks = GrampsDbBookmarks() self.media_bookmarks = GrampsDbBookmarks()
self.note_bookmarks = GrampsDbBookmarks() self.note_bookmarks = GrampsDbBookmarks()
self._bm_changes = 0
self.path = "" self.path = ""
self.name_group = {} self.name_group = {}
self.surname_list = [] self.surname_list = []
@@ -2322,6 +2323,12 @@ class GrampsDbBase(GrampsDBCallback):
cursor.close() cursor.close()
return return
def report_bm_change(self):
self._bm_changes += 1;
def db_has_bm_changes(self):
return self._bm_changes > 0
class Transaction: class Transaction:
""" """

View File

@@ -90,8 +90,7 @@ class GrampsGEDDB(GrampsInMemDB):
log.warning("Failed to load Gedcom writer", exc_info=True) log.warning("Failed to load Gedcom writer", exc_info=True)
raise GrampsDbException("Failed to load Gedcom writer") raise GrampsDbException("Failed to load Gedcom writer")
if (not self.readonly) and ((len(self.undodb)>0) or if self.db_is_changed():
not self.abort_possible):
writer = GedcomWriter(self,self.get_default_person()) writer = GedcomWriter(self,self.get_default_person())
writer.export_data(self.full_name) writer.export_data(self.full_name)
self.db_is_open = False self.db_is_open = False

View File

@@ -378,3 +378,8 @@ class GrampsInMemDB(GrampsDbBase):
obj.unserialize(data) obj.unserialize(data)
return obj return obj
return None return None
def db_is_changed(self):
return not self.readonly and \
(len(self.undodb) > 0 or
not self.abort_possible)

View File

@@ -94,8 +94,7 @@ class GrampsXMLDB(GrampsInMemDB):
log.warning("Failed to load XML writer", exc_info=True) log.warning("Failed to load XML writer", exc_info=True)
raise GrampsDbException("Failed to load XML writer") raise GrampsDbException("Failed to load XML writer")
if (not self.readonly) and ((len(self.undodb)>0) or if self.db_is_changed() or self.db_has_bm_changes():
not self.abort_possible):
quick_write(self,self.full_name) quick_write(self,self.full_name)
self.db_is_open = False self.db_is_open = False
GrampsInMemDB.close(self) GrampsInMemDB.close(self)