diff --git a/ChangeLog b/ChangeLog index b64cbea36..b356fd1b2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2007-03-27 Zsolt Foldvari + * src/GrampsDb/_DbUtils.py (db_copy): include missing Note table; + handling Note bookmarks. + * src/GrampsDb/_GrampsDbWriteXML.py: + * src/GrampsDb/_GrampsDBDir.py: + * src/GrampsDb/_GrampsBSDDB.py: + * src/Bookmarks.py: + * src/GrampsDbUtils/_ReadXML.py: + Handling Note bookmarks. + 2007-03-27 Zsolt Foldvari * src/GrampsDbUtils/_ReadGrdb.py (importData): include missing Note table; handle Note bookmarks. diff --git a/src/Bookmarks.py b/src/Bookmarks.py index cd9adcf5f..c09ae91da 100644 --- a/src/Bookmarks.py +++ b/src/Bookmarks.py @@ -390,13 +390,12 @@ class NoteBookmarks(ListBookmarks) : goto_handle) def make_label(self,handle): - #obj = self.dbstate.db.get_place_from_handle(handle) - #name = obj.get_title() - return "" #("%s [%s]" % (name, obj.gramps_id), obj) + obj = self.dbstate.db.get_note_from_handle(handle) + name = obj.get().replace('\n', ' ')[:80] + return ("%s [%s]" % (name, obj.gramps_id), obj) def connect_signals(self): - pass - #self.dbstate.db.connect('place-delete', self.remove_handles) + self.dbstate.db.connect('note-delete', self.remove_handles) def make_callback(n,f): return lambda x: f(n) diff --git a/src/DisplayModels/_NoteModel.py b/src/DisplayModels/_NoteModel.py index 892a54876..c04027f56 100644 --- a/src/DisplayModels/_NoteModel.py +++ b/src/DisplayModels/_NoteModel.py @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id: _PlaceModel.py 8011 2007-01-29 19:13:15Z dallingham $ +# $Id$ #------------------------------------------------------------------------- # diff --git a/src/GrampsDb/_DbUtils.py b/src/GrampsDb/_DbUtils.py index 748e2d796..5646f68b7 100644 --- a/src/GrampsDb/_DbUtils.py +++ b/src/GrampsDb/_DbUtils.py @@ -237,6 +237,9 @@ def db_copy(from_db,to_db,callback): 'Repository': {'cursor_func': from_db.get_repository_cursor, 'add_func' : to_db.add_repository, }, + 'Note': {'cursor_func': from_db.get_note_cursor, + 'add_func': to_db.add_note, + }, } # Start batch transaction to use async TXN and other tricks @@ -269,6 +272,7 @@ def db_copy(from_db,to_db,callback): to_db.place_bookmarks = from_db.place_bookmarks to_db.media_bookmarks = from_db.media_bookmarks to_db.repo_bookmarks = from_db.repo_bookmarks + to_db.note_bookmarks = from_db.note_bookmarks # Copy name formats to_db.name_formats = from_db.name_formats diff --git a/src/GrampsDb/_GrampsBSDDB.py b/src/GrampsDb/_GrampsBSDDB.py index dc478a9f6..3d5299205 100644 --- a/src/GrampsDb/_GrampsBSDDB.py +++ b/src/GrampsDb/_GrampsBSDDB.py @@ -506,6 +506,8 @@ class GrampsBSDDB(GrampsDbBase,UpdateCallback): default=[])) self.place_bookmarks.set(self.metadata.get('place_bookmarks', default=[])) + self.note_bookmarks.set(self.metadata.get('note_bookmarks', + default=[])) # Custom type values self.family_event_names = set(self.metadata.get('fevent_names', @@ -1050,6 +1052,8 @@ class GrampsBSDDB(GrampsDbBase,UpdateCallback): txn=the_txn) self.metadata.put('media_bookmarks',self.media_bookmarks.get(), txn=the_txn) + self.metadata.put('note_bookmarks',self.note_bookmarks.get(), + txn=the_txn) # gender stats self.metadata.put('gender_stats',self.genderStats.save_stats(), diff --git a/src/GrampsDb/_GrampsDBDir.py b/src/GrampsDb/_GrampsDBDir.py index 88ff814ab..866ac1180 100644 --- a/src/GrampsDb/_GrampsDBDir.py +++ b/src/GrampsDb/_GrampsDBDir.py @@ -513,6 +513,8 @@ class GrampsDBDir(GrampsDbBase,UpdateCallback): default=[])) self.place_bookmarks.set(self.metadata.get('place_bookmarks', default=[])) + self.note_bookmarks.set(self.metadata.get('note_bookmarks', + default=[])) # Custom type values self.family_event_names = set(self.metadata.get('fevent_names', @@ -1019,6 +1021,8 @@ class GrampsDBDir(GrampsDbBase,UpdateCallback): txn=the_txn) self.metadata.put('media_bookmarks',self.media_bookmarks.get(), txn=the_txn) + self.metadata.put('note_bookmarks',self.note_bookmarks.get(), + txn=the_txn) # gender stats self.metadata.put('gender_stats',self.genderStats.save_stats(), diff --git a/src/GrampsDb/_GrampsDbWriteXML.py b/src/GrampsDb/_GrampsDbWriteXML.py index d06e3c0f4..caab3acbe 100644 --- a/src/GrampsDb/_GrampsDbWriteXML.py +++ b/src/GrampsDb/_GrampsDbWriteXML.py @@ -355,9 +355,11 @@ class GrampsDbXmlWriter(object): bm_place_len = len(self.db.place_bookmarks.get()) bm_repo_len = len(self.db.repo_bookmarks.get()) bm_obj_len = len(self.db.media_bookmarks.get()) + bm_note_len = len(self.db.note_bookmarks.get()) bm_len = bm_person_len + bm_family_len + bm_event_len \ - + bm_source_len + bm_place_len + bm_repo_len + bm_obj_len + + bm_source_len + bm_place_len + bm_repo_len \ + + bm_obj_len + bm_note_len if bm_len > 0: self.g.write(" \n") @@ -383,6 +385,10 @@ class GrampsDbXmlWriter(object): for handle in self.db.get_repo_bookmarks().get(): self.g.write(' \n' % handle ) + for handle in self.db.get_note_bookmarks().get(): + self.g.write(' \n' + % handle ) + self.g.write(" \n") def write_name_formats(self): diff --git a/src/GrampsDbUtils/_ReadXML.py b/src/GrampsDbUtils/_ReadXML.py index 448351360..dd3be54b9 100644 --- a/src/GrampsDbUtils/_ReadXML.py +++ b/src/GrampsDbUtils/_ReadXML.py @@ -883,6 +883,9 @@ class GrampsParser(UpdateCallback): elif target == 'repository': self.db.check_repository_from_handle(handle,self.trans) self.db.repo_bookmarks.append(handle) + elif target == 'note': + self.db.check_note_from_handle(handle,self.trans) + self.db.note_bookmarks.append(handle) def start_format(self,attrs): number = int(attrs['number'])