From afa0df1e548b5a6d0efd8a0b6150824f611f5260 Mon Sep 17 00:00:00 2001 From: Don Allingham Date: Sun, 14 Aug 2005 04:31:29 +0000 Subject: [PATCH] * src/GrampsDbBase.py: keep track of open files * src/MediaView.py: convert MediaView to handle pluggable views * src/PersonView.py: update filter on page change * src/ViewManager.py: change_database handling * src/gramps.glade: remove unused blocks * src/gramps_main.py: Add in MediaView svn: r5075 --- gramps2/ChangeLog | 8 + gramps2/src/GrampsDbBase.py | 3 + gramps2/src/MediaView.py | 453 +- gramps2/src/PersonView.py | 31 +- gramps2/src/ViewManager.py | 183 +- gramps2/src/gramps.glade | 10460 ---------------------------------- gramps2/src/gramps_main.py | 5 +- 7 files changed, 231 insertions(+), 10912 deletions(-) diff --git a/gramps2/ChangeLog b/gramps2/ChangeLog index 0e3c6038b..9141065f9 100644 --- a/gramps2/ChangeLog +++ b/gramps2/ChangeLog @@ -1,3 +1,11 @@ +2005-08-13 Don Allingham + * src/GrampsDbBase.py: keep track of open files + * src/MediaView.py: convert MediaView to handle pluggable views + * src/PersonView.py: update filter on page change + * src/ViewManager.py: change_database handling + * src/gramps.glade: remove unused blocks + * src/gramps_main.py: Add in MediaView + 2005-08-12 Don Allingham * src/ViewManager.py: set up about box and other HELP menu items * src/const.py.in: strings for about box diff --git a/gramps2/src/GrampsDbBase.py b/gramps2/src/GrampsDbBase.py index cfeff806e..cb80be2bf 100644 --- a/gramps2/src/GrampsDbBase.py +++ b/gramps2/src/GrampsDbBase.py @@ -1508,6 +1508,7 @@ class DbState(GrampsDBCallback.GrampsDBCallback): def __init__(self): GrampsDBCallback.GrampsDBCallback.__init__(self) self.db = GrampsDbBase() + self.open = False self.active = None def change_active_person(self,person): @@ -1526,8 +1527,10 @@ class DbState(GrampsDBCallback.GrampsDBCallback): def change_database(self,db): self.db = db + self.open = True self.emit('database-changed',(self.db,)) def no_database(self): self.db = GrampsDbBase() + self.open = False self.emit('no-database') diff --git a/gramps2/src/MediaView.py b/gramps2/src/MediaView.py index 83fd10732..e642a82b1 100644 --- a/gramps2/src/MediaView.py +++ b/gramps2/src/MediaView.py @@ -1,4 +1,3 @@ -# # Gramps - a GTK+/GNOME based genealogy program # # Copyright (C) 2001-2005 Donald N. Allingham @@ -20,15 +19,6 @@ # $Id$ -#------------------------------------------------------------------------- -# -# standard python modules -# -#------------------------------------------------------------------------- -import os -import gc -from gettext import gettext as _ - #------------------------------------------------------------------------- # # GTK/Gnome modules @@ -43,15 +33,20 @@ import gtk.gdk # #------------------------------------------------------------------------- import RelLib -import Utils -import GrampsKeys -import const +import PageView +import DisplayModels import ImageSelect import ImgManip -import RelImage -import DisplayModels -import GrampsMime -from QuestionDialog import QuestionDialog, ErrorDialog, WarningDialog +import const +import Utils +from QuestionDialog import QuestionDialog, ErrorDialog + +#------------------------------------------------------------------------- +# +# internationalization +# +#------------------------------------------------------------------------- +from gettext import gettext as _ column_names = [ _('Title'), @@ -62,297 +57,99 @@ column_names = [ _('Date'), ] -_HANDLE_COL = len(column_names) #------------------------------------------------------------------------- # # MediaView # #------------------------------------------------------------------------- -class MediaView: - def __init__(self,parent,db,glade,update): - self.parent = parent - self.parent.connect('database-changed',self.change_db) - self.db = db - self.list = glade.get_widget("media_list") - self.mid = glade.get_widget("mid") - self.mtype = glade.get_widget("mtype") - self.mdesc = glade.get_widget("mdesc") - self.mpath = glade.get_widget("mpath") - self.mdetails = glade.get_widget("mdetails") - self.preview = glade.get_widget("preview") - self.topWindow = glade.get_widget("gramps") - self.renderer = gtk.CellRendererText() - self.model = DisplayModels.MediaModel(self.db) - self.sort_col = 0 +class MediaView(PageView.ListView): + def __init__(self,dbstate,uistate): - self.selection = self.list.get_selection() - self.list.set_model(self.model) + signal_map = { + 'media-add' : self.row_add, + 'media-update' : self.row_update, + 'media-delete' : self.row_delete, + 'media-rebuild' : self.build_tree, + } - DND_TARGETS = [ - ('STRING', 0, 0), - ('text/plain',0,0), - ('text/uri-list',0,2), - ('application/x-rootwin-drop',0,1)] + PageView.ListView.__init__(self,'Media View',dbstate,uistate, + column_names,len(column_names), + DisplayModels.MediaModel, + signal_map) - self.list.enable_model_drag_source( - gtk.gdk.BUTTON1_MASK, - DND_TARGETS, - gtk.gdk.ACTION_DEFAULT|gtk.gdk.ACTION_COPY - ) + def column_order(self): + return self.dbstate.db.get_media_column_order() - self.list.drag_source_set( - gtk.gdk.BUTTON1_MASK|gtk.gdk.BUTTON3_MASK, - DND_TARGETS, - gtk.gdk.ACTION_COPY - ) + def get_stock(self): + return 'gramps-media' - self.list.enable_model_drag_dest( - DND_TARGETS, - gtk.gdk.ACTION_DEFAULT - ) - self.list.drag_dest_set( - gtk.DEST_DEFAULT_ALL, - DND_TARGETS, - gtk.gdk.ACTION_COPY|gtk.gdk.ACTION_MOVE - ) + def build_widget(self): + base = PageView.ListView.build_widget(self) + vbox = gtk.VBox() + vbox.set_border_width(4) + vbox.set_spacing(4) - self.list.connect("drag-data-received", self.on_drag_data_received) - self.list.connect("drag-data-get", self.on_drag_data_get) - self.list.connect("drag-begin", self.on_drag_begin) - self.list.connect("drag-drop", self.on_drag_drop) + self.image = gtk.Image() + self.image.set_size_request(int(const.thumbScale), + int(const.thumbScale)) +# label = gtk.Label('%s' % _('Preview')) +# label.set_use_markup(True) +# frame = gtk.Frame() +# frame.set_label_widget(label) +# frame.add(self.image) + vbox.pack_start(self.image,False) + vbox.pack_start(base,True) - self.list.connect('button-press-event',self.on_button_press_event) - self.list.connect('key-press-event',self.key_press) + self.selection.connect('changed',self.row_change) + return vbox - self.selection.connect('changed',self.on_select_row) - self.update = update - self.columns = [] - self.build_columns() - self.build_tree() - - def column_clicked(self,obj,data): - if self.sort_col != data: - order = gtk.SORT_ASCENDING - else: - if (self.columns[data].get_sort_order() == gtk.SORT_DESCENDING - or self.columns[data].get_sort_indicator() == False): - order = gtk.SORT_ASCENDING - else: - order = gtk.SORT_DESCENDING - self.sort_col = data + def row_change(self,obj): handle = self.first_selected() - self.model = DisplayModels.MediaModel(self.parent.db, - self.sort_col,order) - self.list.set_model(self.model) - - colmap = self.parent.db.get_place_column_order() - - if handle: - path = self.model.on_get_path(handle) - self.selection.select_path(path) - self.list.scroll_to_cell(path,None,1,0.5,0) - for i in range(0,len(self.columns)): - self.columns[i].set_sort_indicator(i==colmap[data][1]-1) - self.columns[self.sort_col].set_sort_order(order) - - def first_selected(self): - mlist = [] - self.selection.selected_foreach(self.blist,mlist) - if mlist: - return mlist[0] - else: - return None - - def blist(self,store,path,iter,list): - handle = store.get_value(iter,_HANDLE_COL) - list.append(handle) - - def build_columns(self): - for column in self.columns: - self.list.remove_column(column) - - column = gtk.TreeViewColumn(_('Title'), self.renderer,text=0) - column.set_resizable(True) - column.connect('clicked',self.column_clicked,0) - column.set_clickable(True) - column.set_min_width(225) - self.list.append_column(column) - self.columns = [column] - - index = 1 - for pair in self.parent.db.get_media_column_order(): - if not pair[0]: - continue - name = column_names[pair[1]] - column = gtk.TreeViewColumn(name, self.renderer, text=pair[1]) - column.set_resizable(True) - column.set_min_width(75) - column.set_clickable(True) - column.connect('clicked',self.column_clicked,index) - self.columns.append(column) - self.list.append_column(column) - index += 1 - - def media_add(self,handle_list): - for handle in handle_list: - self.model.add_row_by_handle(handle) - - def media_update(self,handle_list): - for handle in handle_list: - self.model.update_row_by_handle(handle) - - def media_delete(self,handle_list): - for handle in handle_list: - self.model.delete_row_by_handle(handle) - - def change_db(self,db): - db.connect('media-add', self.media_add) - db.connect('media-update', self.media_update) - db.connect('media-delete', self.media_delete) - db.connect('media-rebuild',self.build_tree) - - self.db = db - self.build_columns() - self.build_tree() - - def build_tree(self): - self.model = DisplayModels.MediaModel(self.parent.db) - self.list.set_model(self.model) - self.selection = self.list.get_selection() - - def on_select_row(self,obj): - fexists = 1 - - store,node = self.selection.get_selected() - if not node: - return - - handle = store.get_value(node,_HANDLE_COL) - - mobj = self.db.get_object_from_handle(handle) - mtype = mobj.get_mime_type() - path = mobj.get_path() - if mtype: - type_name = Utils.get_mime_description(mtype) - if mtype[0:5] == "image": - image = ImgManip.get_thumbnail_image(path) - else: - image = Utils.find_mime_type_pixbuf(mtype) - else: - image = Utils.find_mime_type_pixbuf('text/plain') - type_name = _('Note') - self.preview.set_from_pixbuf(image) - del image - gc.collect() - - self.mid.set_text(mobj.get_gramps_id()) - self.mtype.set_text(type_name) - self.mdesc.set_text(mobj.get_description()) - if len(path) == 0 or fexists == 0: - self.mpath.set_text(_("The file no longer exists")) - else: - self.mpath.set_text(path) - self.mdetails.set_text(Utils.get_detail_text(mobj,0)) - - def on_button_press_event(self,obj,event): - if event.type == gtk.gdk._2BUTTON_PRESS and event.button == 1: - self.on_edit_clicked(obj) - return 1 - elif event.button == 3: - self.build_context_menu(event) - return 1 - return 0 - - def key_press(self,obj,event): - if event.keyval == gtk.gdk.keyval_from_name("Return") \ - and not event.state: - self.on_edit_clicked(obj) - return 1 - return 0 - - def build_context_menu(self,event): - menu = gtk.Menu() - menu.set_title(_("Media Object")) - - store,node = self.selection.get_selected() - if node: - handle = store.get_value(node,_HANDLE_COL) - obj = self.db.get_object_from_handle(handle) - self.obj = obj - mime_type = obj.get_mime_type() - - Utils.add_menuitem(menu,_("View in the default viewer"),None, - self.popup_view_photo) - - if mime_type and mime_type[0:5] == "image": - Utils.add_menuitem(menu,_("Edit with the GIMP"), - None,self.popup_edit_photo) - item = gtk.MenuItem() - item.show() - menu.append(item) - sel_sensitivity = 1 - else: - sel_sensitivity = 0 - - entries = [ - (gtk.STOCK_ADD, self.on_add_clicked,1), - (gtk.STOCK_REMOVE, self.on_delete_clicked,sel_sensitivity), - (_("Edit properties"), self.on_edit_clicked,sel_sensitivity), - ] - - for stock_id,callback,sensitivity in entries: - item = gtk.ImageMenuItem(stock_id) - if callback: - item.connect("activate",callback) - item.set_sensitive(sensitivity) - item.show() - menu.append(item) - menu.popup(None,None,None,event.button,event.time) - - def popup_view_photo(self, obj): - Utils.view_photo(self.obj) + obj = self.dbstate.db.get_object_from_handle(handle) + pix = ImgManip.get_thumbnail_image(obj.get_path()) + self.image.set_from_pixbuf(pix) - def popup_edit_photo(self, obj): - if os.fork() == 0: - os.execvp(const.editor,[const.editor, self.obj.get_path()]) - - def popup_change_description(self, obj): - ImageSelect.GlobalMediaProperties(self.db,self.obj,self,self.topWindow) + def ui_definition(self): + return ''' + + + + + + + + + + + + + + + + + + + + + + ''' - def on_add_clicked(self,obj): + def on_double_click(self,obj,event): + handle = self.first_selected() + place = self.dbstate.db.get_place_from_handle(handle) + #EditPlace.EditPlace(place,self.dbstate, self.uistate) + + def add(self,obj): """Add a new media object to the media list""" import AddMedia - am = AddMedia.AddMediaObject(self.db) + am = AddMedia.AddMediaObject(self.dbstate.db) am.run() - def on_edit_clicked(self,obj): - """Edit the properties of an existing media object in the media list""" + def remove(self,obj): + handle = self.first_selected() + the_lists = Utils.get_media_referents(handle,self.dbstate.db) - list_store, node = self.selection.get_selected() - if node: - handle = list_store.get_value(node,_HANDLE_COL) - obj = self.db.get_object_from_handle(handle) - if obj.get_mime_type(): - ImageSelect.GlobalMediaProperties(self.db,obj,self,self.topWindow) - else: - import NoteEdit - NoteEdit.NoteEditor(obj,self.parent,self.topWindow, - self.note_callback) - - def note_callback(self,data): - trans = self.db.transaction_begin() - self.db.commit_media_object(data,trans) - self.db.transaction_commit(trans,_("Edit Media Object")) - - def on_delete_clicked(self,obj): - store,node = self.selection.get_selected() - if not node: - return - - handle = store.get_value(node,_HANDLE_COL) - the_lists = Utils.get_media_referents(handle,self.db) - - ans = ImageSelect.DeleteMediaQuery(handle,self.db,the_lists) + ans = ImageSelect.DeleteMediaQuery(handle,self.dbstate.db,the_lists) if filter(None,the_lists): # quick test for non-emptiness msg = _('This media object is currently being used. ' 'If you delete this object, it will be removed from ' @@ -364,75 +161,15 @@ class MediaView: QuestionDialog(_('Delete Media Object?'),msg, _('_Delete Media Object'),ans.query_response) - def on_drag_drop(self, tree, context, x, y, time): - self.list.emit_stop_by_name('drag-drop') - return 1 + def edit(self,obj): + handle = self.first_selected() + + obj = self.dbstate.db.get_object_from_handle(handle) + if obj.get_mime_type(): + ImageSelect.GlobalMediaProperties(self.dbstate.db, + obj,self,self.topWindow) + else: + import NoteEdit + NoteEdit.NoteEditor(obj,self.parent,self.topWindow, + self.note_callback) - def on_drag_begin(self,obj,context): - store,node = self.selection.get_selected() - if not node: - return - if (const.dnd_images): - handle = store.get_value(node,_HANDLE_COL) - obj = self.db.get_object_from_handle(handle) - if obj.get_path(): - image = ImgManip.get_thumbnail_image(obj.get_path()) - context.set_icon_pixbuf(image,0,0) - - def on_drag_data_get(self, w, context, selection_data, info, time): - if info == 1: - return - - store,node = self.selection.get_selected() - if not node: - return - handle = store.get_value(node,_HANDLE_COL) - selection_data.set(selection_data.target, 8, handle) - - def on_drag_data_received(self,w, context, x, y, data, info, time): - import urlparse - - self.list.emit_stop_by_name('drag-data-received') - if data and data.format == 8: - d = data.data.replace('\0',' ').strip() - protocol,site,name, j,k,l = urlparse.urlparse(d) - if protocol == "file": - mime = GrampsMime.get_type(name) - photo = RelLib.MediaObject() - photo.set_path(name) - photo.set_mime_type(mime) - description = os.path.basename(name) - photo.set_description(description) - trans = self.db.transaction_begin() - self.db.add_object(photo,trans) - - self.db.commit_media_object(photo,trans) - self.db.transaction_commit(trans,_("Add Media Object")) - self.build_tree() - if GrampsKeys.get_media_global(): - ImageSelect.GlobalMediaProperties(self.db,photo, - self,self.topWindow) - elif protocol != "": - import urllib - u = urllib.URLopener() - try: - tfile,headers = u.retrieve(d) - except IOError, msg: - ErrorDialog(_('Image import failed'),str(msg)) - return - mime = GrampsMime.get_type(tfile) - photo = RelLib.MediaObject() - photo.set_mime_type(mime) - photo.set_description(d) - photo.set_path(tfile) - trans = self.db.transaction_begin() - self.db.add_object(photo,trans) - oref = RelLib.MediaRef() - oref.set_reference_handle(photo.get_handle()) - - self.db.commit_media_object(photo,trans) - self.db.transaction_commit(trans,_("Add Media Object")) - - if GrampsKeys.get_media_global(): - ImageSelect.GlobalMediaProperties(self.db,photo, - self,self.topWindow) diff --git a/gramps2/src/PersonView.py b/gramps2/src/PersonView.py index 853ecbcb1..8ffeb3d39 100644 --- a/gramps2/src/PersonView.py +++ b/gramps2/src/PersonView.py @@ -75,6 +75,9 @@ class PersonView(PageView.PersonNavView): dbstate.connect('database-changed',self.change_db) dbstate.connect('active-changed',self.goto_active_person) + def change_page(self): + self.on_filter_name_changed(None) + def define_actions(self): """ Required define_actions function for PageView. Builds the action @@ -91,12 +94,17 @@ class PersonView(PageView.PersonNavView): PageView.PersonNavView.define_actions(self) - self.add_action('Add', gtk.STOCK_ADD, "_Add", callback=self.add) - self.add_action('Edit', gtk.STOCK_EDIT, "_Edit", callback=self.edit) - self.add_action('Remove', gtk.STOCK_REMOVE,"_Remove",callback=self.remove) - self.add_action('HomePerson',gtk.STOCK_HOME, "_Home", callback=self.home) + self.add_action('Add', gtk.STOCK_ADD, "_Add", + callback=self.add) + self.add_action('Edit', gtk.STOCK_EDIT, "_Edit", + callback=self.edit) + self.add_action('Remove', gtk.STOCK_REMOVE, "_Remove", + callback=self.remove) + self.add_action('HomePerson', gtk.STOCK_HOME, "_Home", + callback=self.home) - self.add_toggle_action('Filter', None, '_Filter', callback=self.filter_toggle) + self.add_toggle_action('Filter', None, '_Filter', + callback=self.filter_toggle) def get_stock(self): """ @@ -129,9 +137,7 @@ class PersonView(PageView.PersonNavView): self.filterbar.pack_start(self.filter_invert,False) self.filterbar.pack_end(self.filter_button,False) - self.filter_text.hide() - self.filter_text.set_sensitive(0) - self.filter_label.hide() + self.filter_text.set_sensitive(False) self.person_tree = gtk.TreeView() self.person_tree.set_rules_hint(True) @@ -159,8 +165,9 @@ class PersonView(PageView.PersonNavView): self.person_selection.set_mode(gtk.SELECTION_MULTIPLE) self.person_selection.connect('changed',self.row_changed) - self.vbox.set_focus_chain([self.person_tree,self.filter_list, self.filter_text, - self.filter_invert, self.filter_button]) + self.vbox.set_focus_chain([self.person_tree, self.filter_list, + self.filter_text, self.filter_invert, + self.filter_button]) self.setup_filter() return self.vbox @@ -686,12 +693,12 @@ class PersonView(PageView.PersonNavView): qual = mime_filter.need_param if qual: self.filter_text.show() - self.filter_text.set_sensitive(1) + self.filter_text.set_sensitive(True) self.filter_label.show() self.filter_label.set_text(mime_filter.get_rules()[0].labels[0]) else: self.filter_text.hide() - self.filter_text.set_sensitive(0) + self.filter_text.set_sensitive(False) self.filter_label.hide() def apply_filter(self,current_model=None): diff --git a/gramps2/src/ViewManager.py b/gramps2/src/ViewManager.py index 2794e3436..2b0bd2799 100644 --- a/gramps2/src/ViewManager.py +++ b/gramps2/src/ViewManager.py @@ -185,7 +185,7 @@ class ViewManager: self.notebook.connect('switch-page',self.change_page) self.uistate = DisplayState.DisplayState(self.window, self.statusbar, - self.uimanager, self.state) + self.uimanager, self.state) person_nav = Navigation.PersonNavigation(self.uistate) self.navigation_type[PageView.NAVIGATION_PERSON] = (person_nav,None) @@ -193,8 +193,7 @@ class ViewManager: def init_interface(self): self.create_pages() - self.change_page(None,None,0) - #self.state.no_database() + self.change_page(None,None) self.actiongroup.set_visible(False) def set_color(self,obj): @@ -217,21 +216,21 @@ class ViewManager: self.actiongroup = gtk.ActionGroup('MainWindow') self.fileactions = gtk.ActionGroup('FileWindow') self.fileactions.add_actions([ - ('FileMenu', None, '_File'), - ('New', gtk.STOCK_NEW, '_New', "n", None, self.on_new_activate), - ('Open', gtk.STOCK_OPEN, '_Open', "o", None, self.on_open_activate), - ('OpenRecent', gtk.STOCK_OPEN, 'Open _Recent'), - ('Quit', gtk.STOCK_QUIT, '_Quit', "q", None, gtk.main_quit), - ('ViewMenu', None, '_View'), - ('Preferences',gtk.STOCK_PREFERENCES,'_Preferences'), + ('FileMenu', None, '_File'), + ('New', gtk.STOCK_NEW, '_New', "n", None, self.new_activate), + ('Open', gtk.STOCK_OPEN, '_Open', "o", None, self.open_activate), + ('OpenRecent', gtk.STOCK_OPEN, 'Open _Recent'), + ('Quit', gtk.STOCK_QUIT, '_Quit', "q", None, gtk.main_quit), + ('ViewMenu', None, '_View'), + ('Preferences', gtk.STOCK_PREFERENCES, '_Preferences'), ('ColumnEdit', gtk.STOCK_PROPERTIES, '_Column Editor'), - ('HelpMenu', None, '_Help'), - ('HomePage', None, _('GRAMPS _home page'), None, None, self.home_page_activate), - ('MailingLists',None, _('GRAMPS _mailing lists'), None, None, self.mailing_lists_activate), - ('ReportBug', None, _('_Report a bug'), None, None, self.report_bug_activate), - ('About', gtk.STOCK_ABOUT, '_About', None, None, self.about), - ('FAQ', None, '_FAQ', None, None, self.faq_activate), - ('UserManual', gtk.STOCK_HELP, '_User Manual', 'F1', None, self.manual_activate), + ('HelpMenu', None, '_Help'), + ('HomePage', None, _('GRAMPS _home page'), None, None, self.home_page_activate), + ('MailingLists', None, _('GRAMPS _mailing lists'), None, None, self.mailing_lists_activate), + ('ReportBug', None, _('_Report a bug'), None, None, self.report_bug_activate), + ('About', gtk.STOCK_ABOUT, '_About', None, None, self.about), + ('FAQ', None, '_FAQ', None, None, self.faq_activate), + ('UserManual', gtk.STOCK_HELP, '_User Manual', 'F1', None, self.manual_activate), ]) self.actiongroup.add_actions([ @@ -242,8 +241,8 @@ class ViewManager: ('Undo', gtk.STOCK_UNDO, '_Undo', 'z' ), ('CmpMerge', None, '_Compare and merge'), ('FastMerge', None, '_Fast merge'), - ('ScratchPad', gtk.STOCK_PASTE, '_ScratchPad', None, None, self.on_scratchpad), - ('Import', gtk.STOCK_CONVERT, '_Import', None, None, self.on_import), + ('ScratchPad', gtk.STOCK_PASTE, '_ScratchPad', None, None, self.scratchpad), + ('Import', gtk.STOCK_CONVERT, '_Import', None, None, self.import_data), ('Reports', gtk.STOCK_DND_MULTIPLE, '_Reports'), ('Tools', gtk.STOCK_EXECUTE, '_Tools'), ('EditMenu', None, '_Edit'), @@ -356,44 +355,52 @@ class ViewManager: button.set_border_width(4) button.set_relief(gtk.RELIEF_NONE) button.set_alignment(0,0.5) - button.connect('clicked',lambda x,y : self.notebook.set_current_page(y), - index) + button.connect('clicked', + lambda x,y : self.notebook.set_current_page(y), index) self.set_color(button) button.show() index += 1 self.bbox.pack_start(button,False) - def change_page(self,obj,page,num): - for mergeid in self.merge_ids: - self.uimanager.remove_ui(mergeid) - if self.active_page: - groups = self.active_page.get_actions() - for grp in groups: - self.uimanager.remove_action_group(grp) + def change_page(self,obj,page,num=-1): + if num == -1: + num = self.notebook.get_current_page() + if self.state.open == True: - if len(self.pages) > 0: - self.active_page = self.pages[num] + for mergeid in self.merge_ids: + self.uimanager.remove_ui(mergeid) + + if self.active_page: + groups = self.active_page.get_actions() + for grp in groups: + self.uimanager.remove_action_group(grp) - old_nav = self.navigation_type[self.prev_nav] - if old_nav[0] != None: - old_nav[0].disable + if len(self.pages) > 0: + self.active_page = self.pages[num] - nav_type = self.navigation_type[self.active_page.navigation_type()] - if nav_type[0] != None: - nav_type[0].enable() - - groups = self.active_page.get_actions() + old_nav = self.navigation_type[self.prev_nav] + if old_nav[0] != None: + old_nav[0].disable() - for grp in groups: - self.uimanager.insert_action_group(grp,1) - self.merge_ids = [self.uimanager.add_ui_from_string(self.active_page.ui_definition())] - for ui in self.active_page.additional_ui_definitions(): - mergeid = self.uimanager.add_ui_from_string(ui) - self.merge_ids.append(mergeid) + nav_type = self.navigation_type[self.active_page.navigation_type()] + if nav_type[0] != None: + nav_type[0].enable() - self.active_page.change_page() + groups = self.active_page.get_actions() - def on_open_activate(self,obj): + for grp in groups: + self.uimanager.insert_action_group(grp,1) + + ui = self.active_page.ui_definition() + self.merge_ids = [self.uimanager.add_ui_from_string(ui)] + + for ui in self.active_page.additional_ui_definitions(): + mergeid = self.uimanager.add_ui_from_string(ui) + self.merge_ids.append(mergeid) + + self.pages[num].change_page() + + def open_activate(self,obj): choose = gtk.FileChooserDialog(_('GRAMPS: Open database'), self.uistate.window, @@ -410,8 +417,14 @@ class ViewManager: add_gedcom_filter(choose) format_list = [const.app_gramps,const.app_gramps_xml,const.app_gedcom] + # Add more data type selections if opening existing db - for (importData,mime_filter,mime_type,native_format,format_name) in PluginMgr.import_list: + for data in PluginMgr.import_list: + mime_filter = data[1] + mime_type = data[2] + native_format = data[2] + format_name = data[3] + if not native_format: choose.add_filter(mime_filter) format_list.append(mime_type) @@ -480,7 +493,7 @@ class ViewManager: choose.destroy() return False - def on_new_activate(self,obj): + def new_activate(self,obj): choose = gtk.FileChooserDialog(_('GRAMPS: Create GRAMPS database'), self.uistate.window, @@ -522,8 +535,10 @@ class ViewManager: self.state.db.close() except: pass - self.state.db = GrampsBSDDB.GrampsBSDDB() + self.state.change_database(GrampsBSDDB.GrampsBSDDB()) self.read_file(filename) + self.state.db.request_rebuild() + self.change_page(None,None) # Add the file to the recent items #RecentFiles.recent_files(filename,const.app_gramps) #self.parent.build_recent_menu() @@ -544,7 +559,7 @@ class ViewManager: success = False if filetype == const.app_gramps: - self.state.db = GrampsBSDDB.GrampsBSDDB() + self.state.change_database(GrampsBSDDB.GrampsBSDDB()) msgxml = gtk.glade.XML(const.gladeFile, "load_message","gramps") msg_top = msgxml.get_widget('load_message') msg_label = msgxml.get_widget('message') @@ -556,13 +571,19 @@ class ViewManager: gtk.main_iteration() success = self.read_file(filename,update_msg) + self.state.db.request_rebuild() + self.change_page(None,None) msg_top.destroy() elif filetype == const.app_gramps_xml: - self.state.db = GrampsXMLDB.GrampsXMLDB() + self.state.change_database(GrampsXMLDB.GrampsXMLDB()) success = self.read_file(filename) + self.state.db.request_rebuild() + self.change_page(None,None) elif filetype == const.app_gedcom: - self.state.db = GrampsGEDDB.GrampsGEDDB() + self.state.change_database(GrampsGEDDB.GrampsGEDDB()) success = self.read_file(filename) + self.state.db.request_rebuild() + self.change_page(None,None) #if success: # Add the file to the recent items @@ -579,13 +600,13 @@ class ViewManager: ErrorDialog(_('Cannot open database'), _('The selected file is a directory, not ' 'a file.\nA GRAMPS database must be a file.')) - return 0 + return False elif os.path.exists(filename): if not os.access(filename,os.R_OK): ErrorDialog(_('Cannot open database'), _('You do not have read access to the selected ' 'file.')) - return 0 + return False elif not os.access(filename,os.W_OK): mode = "r" QuestionDialog.WarningDialog(_('Read only database'), @@ -598,24 +619,26 @@ class ViewManager: filename = filename[:-1] name = os.path.basename(filename) if self.state.db.readonly: - self.uistate.window.set_title("%s (%s) - GRAMPS" % (name,_('Read Only'))) + msg = "%s (%s) - GRAMPS" % (name,_('Read Only')) + self.uistate.window.set_title(msg) else: - self.uistate.window.set_title("%s - GRAMPS" % name) + msg = "%s - GRAMPS" % name + self.uistate.window.set_title(msg) else: GrampsKeys.save_last_file("") QuestionDialog.ErrorDialog(_('Cannot open database'), _('The database file specified could not be opened.')) - return 0 + return False except ( IOError, OSError, Errors.FileVersionError), msg: QuestionDialog.ErrorDialog(_('Cannot open database'),str(msg)) - return 0 + return False except (db.DBAccessError,db.DBError), msg: QuestionDialog.ErrorDialog(_('Cannot open database'), _('%s could not be opened.' % filename) + '\n' + msg[1]) - return 0 + return False except Exception: DisplayTrace.DisplayTrace() - return 0 + return False # Undo/Redo always start with standard labels and insensitive state #self.undo_callback(None) @@ -625,19 +648,16 @@ class ViewManager: return True def load_database(self,name,callback=None,mode="w"): - - filename = name - - if self.state.db.load(filename,callback,mode) == 0: - return 0 - val = self.post_load(name,callback) - return val + if not self.state.db.load(name,callback,mode): + return False + return self.post_load(name,callback) def post_load(self,name,callback=None): if not self.state.db.version_supported(): raise Errors.FileVersionError( - "The database version is not supported by this version of GRAMPS.\n" - "Please upgrade to the corresponding version or use XML for porting" + "The database version is not supported by this " + "version of GRAMPS.\nPlease upgrade to the " + "corresponding version or use XML for porting" "data between different database versions.") self.state.db.set_save_path(name) @@ -660,14 +680,9 @@ class ViewManager: GrampsKeys.save_last_file(name) self.relationship = self.RelClass(self.state.db) - self.state.emit("database-changed", (self.state.db,)) - self.state.change_active_person(self.find_initial_person()) - #self.goto_active_person() - - #if callback: - # callback(_('Setup complete')) - #self.enable_buttons(True) + self.change_page(None,None) + self.actiongroup.set_visible(True) return True def find_initial_person(self): @@ -679,11 +694,11 @@ class ViewManager: person = self.state.db.get_person_from_handle(the_ids[0]) return person - def on_scratchpad(self,obj): + def scratchpad(self,obj): import ScratchPad ScratchPad.ScratchPadWindow(self.state, self) - def on_import(self,obj): + def import_data(self,obj): choose = gtk.FileChooserDialog(_('GRAMPS: Import database'), self.uistate.window, gtk.FILE_CHOOSER_ACTION_OPEN, @@ -701,7 +716,12 @@ class ViewManager: format_list = [const.app_gramps,const.app_gramps_xml,const.app_gedcom] # Add more data type selections if opening existing db - for (importData,mime_filter,mime_type,native_format,format_name) in PluginMgr.import_list: + for data in PluginMgr.import_list: + mime_filter = data[1] + mime_type = data[2] + native_format = data[3] + format_name = data[4] + if not native_format: choose.add_filter(mime_filter) format_list.append(mime_type) @@ -714,7 +734,8 @@ class ViewManager: # then home. default_dir = GrampsKeys.get_last_import_dir() if len(default_dir)<=1: - default_dir = os.path.split(GrampsKeys.get_lastfile())[0] + os.path.sep + base_path = os.path.split(GrampsKeys.get_lastfile())[0] + default_dir = base_path + os.path.sep if len(default_dir)<=1: default_dir = GrampsKeys.get_last_export_dir() if len(default_dir)<=1: @@ -831,7 +852,7 @@ class GrampsFormatWidget(gtk.ComboBox): for format,label in format_list: self.store.append(row=[label]) - self.set_active(0) + self.set_active(False) def get_value(self): active = self.get_active() diff --git a/gramps2/src/gramps.glade b/gramps2/src/gramps.glade index 2165df801..157f54e31 100644 --- a/gramps2/src/gramps.glade +++ b/gramps2/src/gramps.glade @@ -4,4465 +4,6 @@ - - - - GRAMPS - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - True - False - gramps.png - True - False - False - GDK_WINDOW_TYPE_HINT_NORMAL - GDK_GRAVITY_NORTH_WEST - True - True - - - - - - True - True - - - - 2 - True - GTK_SHADOW_OUT - - - - True - - - - True - _File - True - - - - - - - True - _New - True - - - - - - True - gtk-new - 1 - 0.5 - 0.5 - 0 - 0 - - - - - - - - True - _Open... - True - - - - - - True - gtk-open - 1 - 0.5 - 0.5 - 0 - 0 - - - - - - - - True - Open _Recent - True - - - - - - - True - - - - - - True - _Import... - True - - - - - - True - gtk-convert - 1 - 0.5 - 0.5 - 0 - 0 - - - - - - - - True - Save _As... - True - - - - - - True - gtk-save-as - 1 - 0.5 - 0.5 - 0 - 0 - - - - - - - - True - E_xport... - True - - - - - - True - gtk-save-as - 1 - 0.5 - 0.5 - 0 - 0 - - - - - - - - True - - - - - - True - A_bandon changes and quit - True - - - - - - - True - _Quit - True - - - - - - True - gtk-quit - 1 - 0.5 - 0.5 - 0 - 0 - - - - - - - - - - - - True - _Edit - True - - - - - - - True - _Undo - True - - - - - - True - gtk-undo - 1 - 0.5 - 0.5 - 0 - 0 - - - - - - - - True - - - - - - True - Add a new item - _Add... - True - - - - - - True - gtk-add - 1 - 0.5 - 0.5 - 0 - 0 - - - - - - - - True - Remove the currently selected item - R_emove - True - - - - - - True - gtk-remove - 1 - 0.5 - 0.5 - 0 - 0 - - - - - - - - True - Edit the selected item - E_dit... - True - - - - - - - True - - - - - - True - Compare and _Merge... - True - - - - - - True - gtk-convert - 1 - 0.5 - 0.5 - 0 - 0 - - - - - - - - True - Fast Mer_ge - True - - - - - - - True - - - - - - True - Prefere_nces... - True - - - - - True - gtk-preferences - 1 - 0.5 - 0.5 - 0 - 0 - - - - - - - - True - _Column Editor... - True - - - - - True - gtk-properties - 1 - 0.5 - 0.5 - 0 - 0 - - - - - - - - True - Set _Home person... - True - - - - - True - gtk-home - 1 - 0.5 - 0.5 - 0 - 0 - - - - - - - - - - - - True - _View - True - - - - - - - True - _Filter - True - True - - - - - - - True - _Sidebar - True - True - - - - - - - True - _Toolbar - True - True - - - - - - - - - - - True - _Go - True - - - - - - True - _Bookmarks - True - - - - - - - True - _Add bookmark - True - - - - - - True - gtk-index - 1 - 0.5 - 0.5 - 0 - 0 - - - - - - - - True - _Edit bookmarks... - True - - - - - - True - gnome-stock-book-open - 1 - 0.5 - 0.5 - 0 - 0 - - - - - - - - True - - - - - - True - _Go to bookmark - True - - - - - - - - - - True - _Reports - True - - - - - - True - _Tools - True - - - - - - True - _Windows - True - - - - - - True - _Help - True - - - - - - - True - _User manual - True - - - - - - True - gtk-help - 1 - 0.5 - 0.5 - 0 - 0 - - - - - - - - True - _FAQ - True - - - - - True - gnome-stock-book-open - 1 - 0.5 - 0.5 - 0 - 0 - - - - - - - - True - - - - - - True - GRAMPS _home page - True - - - - - True - gtk-jump-to - 1 - 0.5 - 0.5 - 0 - 0 - - - - - - - - True - GRAMPS _mailing lists - True - - - - - True - gnome-stock-mail - 1 - 0.5 - 0.5 - 0 - 0 - - - - - - - - True - _Report a bug - True - - - - - - - True - - - - - - True - _Show plugin status... - True - - - - - - - True - _Open example database - True - - - - - - - True - _About - True - - - - - True - gnome-stock-about - 1 - 0.5 - 0.5 - 0 - 0 - - - - - - - - - - - - - BONOBO_DOCK_TOP - 0 - 0 - 0 - BONOBO_DOCK_ITEM_BEH_EXCLUSIVE|BONOBO_DOCK_ITEM_BEH_NEVER_VERTICAL - - - - - - 1 - True - GTK_SHADOW_OUT - - - - True - GTK_ORIENTATION_HORIZONTAL - GTK_TOOLBAR_BOTH - True - True - - - - True - Open database - Open - True - gtk-open - True - True - False - - - - False - True - - - - - - True - True - True - True - - - False - False - - - - - - True - Go back in history - Back - True - gtk-go-back - True - True - True - - - - - False - True - - - - - - True - Go forward in history - Forward - True - gtk-go-forward - True - True - False - - - - - False - True - - - - - - True - Make the Home Person the active person - Home - True - gtk-home - True - True - False - - - - False - True - - - - - - True - True - True - True - - - False - False - - - - - - True - Open Scratch Pad - ScratchPad - True - gtk-paste - True - True - True - - - - False - True - - - - - - True - Generate reports - Reports - True - gtk-dnd-multiple - True - True - True - - - - False - True - - - - - - True - Run tools - Tools - True - tools.png - True - True - True - - - - False - True - - - - - - True - True - True - True - - - False - False - - - - - - True - Add a new item - Add - True - gtk-add - True - True - False - - - - False - True - - - - - - True - Remove the currently selected item - Remove - True - gtk-remove - True - True - False - - - - False - True - - - - - - True - Edit the selected item - Edit - True - edit.png - True - True - True - - - - False - True - - - - - - - BONOBO_DOCK_TOP - 1 - 0 - 0 - BONOBO_DOCK_ITEM_BEH_EXCLUSIVE - - - - - - True - False - 0 - - - - True - True - False - - - - 10 - True - False - 0 - - - - True - True - GTK_RELIEF_NONE - True - - - - - True - 0 - 0.5 - 0 - 0 - 0 - 0 - 0 - 0 - - - - True - False - 2 - - - - True - people48.png - 0 - 0.5 - 6 - 0 - - - 0 - False - False - - - - - - True - <b>People</b> - True - True - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - - - - 0 - False - False - - - - - - True - True - GTK_RELIEF_NONE - True - - - - - True - 0 - 0.5 - 0 - 0 - 0 - 0 - 0 - 0 - - - - True - False - 2 - - - - True - family48.png - 0.5 - 0.5 - 6 - 0 - - - 0 - False - False - - - - - - True - <b>Family</b> - True - True - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - - - - 0 - False - False - - - - - - True - True - GTK_RELIEF_NONE - True - - - - - True - 0 - 0.5 - 0 - 0 - 0 - 0 - 0 - 0 - - - - True - False - 2 - - - - True - gramps.png - 0.5 - 0.5 - 6 - 0 - - - 0 - False - False - - - - - - True - <b>Pedigree</b> - True - True - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - - - - 0 - False - False - - - - - - True - True - GTK_RELIEF_NONE - True - - - - - True - 0 - 0.5 - 0 - 0 - 0 - 0 - 0 - 0 - - - - True - False - 2 - - - - True - sources.png - 0.5 - 0.5 - 6 - 0 - - - 0 - False - False - - - - - - True - <b>Sources</b> - True - True - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - - - - 0 - False - False - - - - - - True - True - GTK_RELIEF_NONE - True - - - - - True - 0 - 0.5 - 0 - 0 - 0 - 0 - 0 - 0 - - - - True - False - 2 - - - - True - repos.png - 0.5 - 0.5 - 6 - 0 - - - 0 - False - False - - - - - - True - <b>Reposi- -tories</b> - True - True - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - - - - 0 - False - False - - - - - - True - True - GTK_RELIEF_NONE - True - - - - - True - 0 - 0.5 - 0 - 0 - 0 - 0 - 0 - 0 - - - - True - False - 2 - - - - True - place.png - 0.5 - 0.5 - 6 - 0 - - - 0 - False - False - - - - - - True - <b>Places</b> - True - True - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - - - - 0 - False - False - - - - - - True - True - GTK_RELIEF_NONE - True - - - - - True - 0 - 0.5 - 0 - 0 - 0 - 0 - 0 - 0 - - - - True - False - 2 - - - - True - media.png - 0.5 - 0.5 - 6 - 0 - - - 0 - False - False - - - - - - True - <b>Media</b> - True - True - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - - - - 0 - False - False - - - - - - True - True - GTK_RELIEF_NONE - True - - - - - True - 0 - 0.5 - 0 - 0 - 0 - 0 - 0 - 0 - - - - True - False - 2 - - - - True - events.png - 0.5 - 0.5 - 6 - 0 - - - 0 - False - False - - - - - - True - <b>Events</b> - True - True - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - - - - 0 - False - False - - - - - - - 5 - False - True - - - - - - 3 - 750 - True - True - True - False - GTK_POS_TOP - False - False - - - - - True - False - 0 - - - - True - False - 6 - - - - True - False - True - - - 0 - False - False - - - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - - True - True - True - 0 - - True - * - False - - - - 0 - True - True - - - - - - True - True - Invert - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - False - False - - - - - - True - Apply filter using the selected controls - True - _Apply - True - GTK_RELIEF_NORMAL - True - - - - 0 - False - False - - - - - 6 - False - True - - - - - - True - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - True - True - True - False - False - True - False - False - False - - - - - 0 - True - True - - - - - False - True - - - - - - True - False - 3 - - - - True - people24.png - 0.5 - 0.5 - 0 - 0 - - - 0 - True - True - - - - - - True - <b>People</b> - False - True - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - tab - - - - - - 6 - True - 8 - 6 - False - 6 - 12 - - - - True - Exchange the current spouse with the active person - True - GTK_RELIEF_NORMAL - True - - - - True - False - 0 - - - - True - GTK_ARROW_UP - GTK_SHADOW_OUT - 0.5 - 0.5 - 0 - 0 - - - 0 - True - True - - - - - - True - GTK_ARROW_DOWN - GTK_SHADOW_OUT - 0.5 - 0.5 - 0 - 0 - - - 0 - True - True - - - - - - - 2 - 3 - 1 - 2 - fill - - - - - - - True - True - 6 - - - - True - Adds a new person to the database and to a new relationship - True - GTK_RELIEF_NORMAL - True - - - - True - gtk-new - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - Selects an existing person from the database and adds to a new relationship - True - GTK_RELIEF_NORMAL - True - - - - True - gtk-index - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - Removes the currently selected spouse - True - GTK_RELIEF_NORMAL - True - - - - True - gtk-remove - 1 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - 2 - 3 - 4 - 5 - fill - fill - - - - - - True - False - 6 - - - - True - Make the active person's parents the active family - True - GTK_RELIEF_NORMAL - True - - - - True - gtk-go-forward - 1 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - Adds a new set of parents to the active person - True - GTK_RELIEF_NORMAL - True - - - - True - gtk-add - 1 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - Deletes the selected parents from the active person - True - GTK_RELIEF_NORMAL - True - - - - True - gtk-remove - 1 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - 5 - 6 - 1 - 2 - fill - fill - - - - - - True - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - True - Double-click to edit the relationship to the selected parents - True - False - True - False - True - False - False - False - - - - - 4 - 5 - 4 - 5 - fill - - - - - - True - False - 6 - - - - True - Make the selected spouse's parents the active family - True - GTK_RELIEF_NORMAL - True - - - - True - gtk-go-forward - 1 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - Adds a new set of parents to the selected spouse - True - GTK_RELIEF_NORMAL - True - - - - True - gtk-add - 1 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - Deletes the selected parents from the selected spouse - True - GTK_RELIEF_NORMAL - True - - - - True - gtk-remove - 1 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - 5 - 6 - 4 - 5 - fill - fill - - - - - - True - <b>_Children</b> - True - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - chlist - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 6 - 6 - 7 - fill - - - - - - - True - <b>_Active person</b> - True - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - ap_data - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 3 - 0 - 1 - fill - - - - - - - True - <b>Active person's _parents</b> - True - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - ap_parents - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 3 - 6 - 0 - 1 - fill - - - - - - - True - <b>Relati_onship</b> - True - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - sp_list - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 3 - 3 - 4 - fill - - - - - - - True - <b>Spo_use's parents</b> - True - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - sp_parents - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 3 - 6 - 3 - 4 - fill - - - - - - - True - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - 5 - True - True - True - True - True - True - False - False - False - - - - - 1 - 5 - 7 - 8 - fill - - - - - - True - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - True - Double-click to edit the relationship to the selected parents - True - False - True - False - True - False - False - False - - - - - 4 - 5 - 1 - 2 - fill - - - - - - True - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - True - Double-click to edit the active person - True - False - True - False - True - False - False - False - - - - - 1 - 2 - 1 - 2 - fill - - - - - - True - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - True - Double-click to edit the relationship information, Shift-click to edit the person - True - False - True - True - True - False - False - False - - - - - 1 - 2 - 4 - 5 - fill - - - - - - True - False - 6 - - - - True - Make the selected child the active person - True - GTK_RELIEF_NORMAL - True - - - - True - gtk-go-back - 1 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - Adds a new child to the database and to the current family - True - GTK_RELIEF_NORMAL - True - - - - True - gtk-new - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - Selects an existing person from the database and adds as a child to the current family - True - GTK_RELIEF_NORMAL - True - - - - True - gtk-index - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - Deletes the selected child from the selected family - True - GTK_RELIEF_NORMAL - True - - - - True - gtk-remove - 1 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - 5 - 6 - 7 - 8 - fill - fill - - - - - False - True - - - - - - True - False - 3 - - - - True - family24.png - 0.5 - 0.5 - 0 - 0 - - - 0 - True - True - - - - - - True - <b>Family</b> - False - True - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - tab - - - - - - 6 - True - 8 - 6 - False - 6 - 12 - - - - True - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - True - Double-click to edit the relationship information, Shift-click to edit the person - True - False - True - True - True - False - False - False - - - - - 4 - 5 - 4 - 5 - fill - - - - - - True - <b>_Children</b> - True - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - chlist2 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 6 - 6 - 7 - fill - - - - - - - True - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - 5 - True - True - True - True - True - True - False - False - False - - - - - 1 - 5 - 7 - 8 - fill - - - - - - True - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - True - Double-click to edit the relationship to the selected parents - True - False - True - False - True - False - False - False - - - - - 4 - 5 - 1 - 2 - fill - - - - - - True - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - True - Double-click to edit the relationship to the selected parents - True - False - True - False - True - False - False - False - - - - - 1 - 2 - 1 - 2 - fill - - - - - - True - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - True - Double-click to edit the active person - True - False - True - False - True - False - False - False - - - - - 1 - 2 - 4 - 5 - fill - - - - - - True - False - 6 - - - - True - Make the selected child the active person - True - GTK_RELIEF_NORMAL - True - - - - True - gtk-go-up - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - Adds a new child to the database and to the current family - True - GTK_RELIEF_NORMAL - True - - - - True - gtk-new - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - Selects an existing person from the database and adds as a child to the current family - True - GTK_RELIEF_NORMAL - True - - - - True - gtk-index - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - Deletes the selected child from the selected family - True - GTK_RELIEF_NORMAL - True - - - - True - gtk-remove - 1 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - 5 - 6 - 7 - 8 - fill - fill - - - - - - True - <b>Spo_use's parents</b> - True - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - sp_parents2 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 3 - 6 - 0 - 1 - fill - - - - - - - True - False - 6 - - - - True - Make the selected spouse's parents the active family - True - GTK_RELIEF_NORMAL - True - - - - True - gtk-go-down - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - Adds a new set of parents to the selected spouse - True - GTK_RELIEF_NORMAL - True - - - - True - gtk-add - 1 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - Deletes the selected parents from the selected spouse - True - GTK_RELIEF_NORMAL - True - - - - True - gtk-remove - 1 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - 5 - 6 - 1 - 2 - fill - fill - - - - - - True - <b>Relati_onship</b> - True - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - sp_list2 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 3 - 6 - 3 - 4 - fill - - - - - - - True - True - 6 - - - - True - Adds a new person to the database and to a new relationship - True - GTK_RELIEF_NORMAL - True - - - - True - gtk-new - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - Selects an existing person from the database and adds to a new relationship - True - GTK_RELIEF_NORMAL - True - - - - True - gtk-index - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - Removes the currently selected spouse - True - GTK_RELIEF_NORMAL - True - - - - True - gtk-remove - 1 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - 5 - 6 - 4 - 5 - fill - fill - - - - - - True - <b>_Active person</b> - True - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - ap_data2 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 3 - 3 - 4 - fill - - - - - - - True - <b>Active person's _parents</b> - True - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - ap_parents2 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 3 - 0 - 1 - fill - - - - - - - True - False - 6 - - - - True - Make the active person's parents the active family - True - GTK_RELIEF_NORMAL - True - - - - True - gtk-go-down - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - Adds a new set of parents to the active person - True - GTK_RELIEF_NORMAL - True - - - - True - gtk-add - 1 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - - True - Deletes the selected parents from the active person - True - GTK_RELIEF_NORMAL - True - - - - True - gtk-remove - 1 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - 2 - 3 - 1 - 2 - fill - fill - - - - - - True - Exchange the current spouse with the active person - True - GTK_RELIEF_NORMAL - True - - - - True - gtk-go-back - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 2 - 3 - 4 - 5 - fill - - - - - - False - True - - - - - - True - False - 3 - - - - True - family24.png - 0.5 - 0.5 - 0 - 0 - - - 0 - True - True - - - - - - True - <b>Family</b> - False - True - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - tab - - - - - - True - GTK_POLICY_NEVER - GTK_POLICY_NEVER - GTK_SHADOW_NONE - GTK_CORNER_TOP_LEFT - - - - True - True - False - 0 - 0 - 100 - 100 - 1 - - - - - - False - True - - - - - - True - False - 3 - - - - True - ped24.png - 0.5 - 0.5 - 0 - 0 - - - 0 - True - True - - - - - - True - <b>Pedigree</b> - False - True - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - tab - - - - - - True - False - 0 - - - - True - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - True - True - True - True - False - True - False - False - False - - - - - 0 - True - True - - - - - False - True - - - - - - True - False - 3 - - - - True - sources24.png - 0.5 - 0.5 - 0 - 0 - - - 0 - True - True - - - - - - True - <b>Sources</b> - False - True - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - tab - - - - - - True - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - True - True - True - True - False - True - False - False - False - - - - - False - True - - - - - - True - False - 3 - - - - True - repos24.png - 0.5 - 0.5 - 0 - 0 - - - 0 - True - True - - - - - - True - <b>Repositories</b> - False - True - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - tab - - - - - - True - False - 0 - - - - True - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - True - True - True - True - False - True - False - False - False - - - - - 0 - True - True - - - - - False - True - - - - - - True - False - 3 - - - - True - place24.png - 0.5 - 0.5 - 0 - 0 - - - 0 - True - True - - - - - - True - <b>Places</b> - False - True - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - tab - - - - - - True - False - 0 - - - - True - False - 0 - - - - 6 - True - 0 - 0.5 - GTK_SHADOW_ETCHED_IN - - - - 96 - 96 - True - 0.5 - 0.5 - 0 - 0 - - - - - - True - <b>Preview</b> - False - True - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - label_item - - - - - 5 - False - False - - - - - - 6 - True - 6 - 3 - False - 0 - 12 - - - - True - Details: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 2 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 5 - 6 - 5 - fill - - - - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 4 - 5 - - - - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 5 - 6 - - - - - - - True - Path: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 2 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 4 - 5 - 5 - fill - - - - - - - True - Type: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 2 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 2 - 3 - 5 - fill - - - - - - - True - ID: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 2 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 1 - 2 - 5 - fill - - - - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 1 - 2 - - - - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 2 - 3 - - - - - - - True - - False - False - GTK_JUSTIFY_LEFT - True - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 3 - 4 - - - - - - - True - Title: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0 - 0 - 2 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 3 - 4 - 5 - fill - fill - - - - - - True - <b>Information</b> - False - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 3 - 0 - 1 - fill - - - - - - 5 - True - True - - - - - 5 - False - True - - - - - - 6 - True - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - True - True - True - True - False - True - False - False - False - - - - - 0 - True - True - - - - - False - True - - - - - - True - False - 3 - - - - True - media24.png - 0.5 - 0.5 - 0 - 0 - - - 0 - True - True - - - - - - True - <b>Media</b> - False - True - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - tab - - - - - - True - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - True - True - True - True - False - True - False - False - False - - - - - False - True - - - - - - True - False - 3 - - - - True - events24.png - 0.5 - 0.5 - 0 - 0 - - - 0 - True - True - - - - - - True - <b>Events</b> - False - True - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - False - False - - - - - tab - - - - - 0 - True - True - - - - - - - 0 - True - True - - - - - - True - True - True - - - 0 - True - True - - - True @@ -7897,6007 +3438,6 @@ tories</b> - - True - - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - True - False - gramps.png - True - False - False - GDK_WINDOW_TYPE_HINT_DIALOG - GDK_GRAVITY_NORTH_WEST - True - False - - - - - True - False - 0 - - - - True - GTK_BUTTONBOX_END - - - - True - Abandon changes and close window - True - True - gtk-cancel - True - GTK_RELIEF_NORMAL - True - 0 - - - - - - - True - Accept changes and close window - True - True - True - gtk-ok - True - GTK_RELIEF_NORMAL - True - 0 - - - - - - - True - True - True - gtk-help - True - GTK_RELIEF_NORMAL - True - -11 - - - - - - 2 - False - True - GTK_PACK_END - - - - - - True - - False - True - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 10 - False - False - - - - - - True - True - True - True - GTK_POS_TOP - False - False - - - - - True - False - 0 - - - - True - 1 - 1 - False - 0 - 0 - - - - 12 - True - 17 - 11 - False - 6 - 12 - - - - True - _Given name: - True - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - givenName - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 1 - 2 - fill - - - - - - - True - _Family name: - True - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - surname - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 2 - 3 - fill - - - - - - - True - Famil_y prefix: - True - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - prefix - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 3 - 4 - fill - - - - - - - True - S_uffix: - True - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - suffix - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 4 - 5 - fill - - - - - - - True - _Title: - True - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - title - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 5 - 6 - fill - - - - - - - True - Nic_kname: - True - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - nickname - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 6 - 7 - fill - - - - - - - True - T_ype: - True - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 7 - 8 - fill - - - - - - - True - _Date: - True - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - birthDate - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 13 - 14 - fill - - - - - - - True - An optional suffix to the name, such as "Jr." or "III" - True - True - True - 0 - - True - * - False - - - 2 - 4 - 4 - 5 - - - - - - - True - A title used to refer to the person, such as "Dr." or "Rev." - True - True - True - 0 - - True - * - False - - - 2 - 4 - 5 - 6 - - - - - - - True - A name that the person was more commonly known by - True - True - True - 0 - - True - * - False - - - 2 - 5 - 6 - 7 - - - - - - - True - <b>Preferred name</b> - False - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 5 - 0 - 1 - fill - - - - - - - True - False - 0 - - - - True - True - _male - True - GTK_RELIEF_NORMAL - True - False - False - True - - - - 0 - True - True - - - - - - True - True - fema_le - True - GTK_RELIEF_NORMAL - True - False - False - True - genderMale - - - - 0 - True - True - - - - - - True - True - u_nknown - True - GTK_RELIEF_NORMAL - True - False - False - True - genderMale - - - - 0 - True - True - - - - - 1 - 5 - 10 - 11 - fill - fill - - - - - - True - <b>Birth</b> - False - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 5 - 12 - 13 - fill - - - - - - - True - GRAMPS _ID: - True - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - gid - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 7 - 8 - 10 - 11 - fill - - - - - - - True - True - False - True - 0 - - True - * - False - - - 8 - 11 - 10 - 11 - - - - - - - True - _Place: - True - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - birth_place - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 14 - 15 - fill - - - - - - - True - <b>Death</b> - False - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 6 - 11 - 12 - 13 - fill - - - - - - - True - D_ate: - True - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - deathDate - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - Date: - - - - 7 - 8 - 13 - 14 - fill - - - - - - - True - Plac_e: - True - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - death_place - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 7 - 8 - 14 - 15 - fill - - - - - - - True - True - True - True - 0 - - True - * - False - - - 2 - 5 - 14 - 15 - - - - - - - True - True - True - True - 0 - - True - * - False - - - 8 - 11 - 14 - 15 - - - - - - - True - False - True - True - - - 2 - 5 - 7 - 8 - fill - fill - - - - - - True - False - 0 - - - - True - True - True - True - 0 - - True - * - False - - - 0 - True - True - - - - - - True - Invoke date editor - True - GTK_RELIEF_NONE - True - - - - True - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - 2 - 4 - 13 - 14 - fill - fill - - - - - - True - An optional prefix for the family name that is not used in sorting, such as "de" or "van" - True - True - True - 0 - - True - * - False - - - 2 - 4 - 3 - 4 - - - - - - - True - The person's given name - True - True - True - True - 0 - - True - * - False - - - - 2 - 5 - 1 - 2 - - - - - - - True - True - True - True - 0 - - True - * - False - - - 2 - 4 - 2 - 3 - - - - - - - True - Edit the preferred name - True - GTK_RELIEF_NORMAL - True - - - - - True - edit_sm.png - 0.5 - 0.5 - 0 - 0 - - - - - 4 - 5 - 2 - 3 - shrink - shrink - - - - - - True - <b>Gender</b> - False - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 5 - 9 - 10 - - - - - - - True - <b>Identification</b> - False - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 6 - 11 - 9 - 10 - - - - - - - True - 0 - 0.5 - GTK_SHADOW_ETCHED_IN - - - - True - True - False - - - - True - 0.5 - 0.5 - 0 - 0 - - - - - - - - True - <b>Image</b> - False - True - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - label_item - - - - - 6 - 11 - 0 - 8 - fill - fill - - - - - - 6 - True - True - Information i_s complete - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 0 - 5 - 16 - 17 - - - - - - - - True - True - Information is pri_vate - True - GTK_RELIEF_NORMAL - True - False - False - True - - - 6 - 11 - 16 - 17 - - - - - - - - True - 2 - 3 - False - 6 - 6 - - - - True - _Date: - True - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 0 - 1 - fill - - - - - - - True - _Place: - True - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - birth_place - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 1 - 2 - fill - - - - - - - True - True - True - True - 0 - - True - * - False - - - 1 - 3 - 1 - 2 - - - - - - - 1 - True - Invoke birth event editor - True - GTK_RELIEF_NORMAL - True - - - - - True - edit_sm.png - 0.5 - 0.5 - 0 - 0 - - - - - 2 - 3 - 0 - 1 - shrink|fill - - - - - - - True - False - 0 - - - - True - True - True - True - 0 - - True - * - False - - - 0 - True - True - - - - - - True - Invoke date editor - True - GTK_RELIEF_NONE - True - - - - True - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - 1 - 2 - 0 - 1 - fill - - - - - 1 - 5 - 13 - 15 - expand|shrink|fill - fill - - - - - - True - 2 - 3 - False - 6 - 6 - - - - True - D_ate: - True - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - deathDate - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 0 - 1 - fill - - - - - - - True - False - 0 - - - - True - True - True - True - 0 - - True - * - False - - - 0 - True - True - - - - - - True - Invoke date editor - True - GTK_RELIEF_NONE - True - - - - - True - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - 1 - 2 - 0 - 1 - fill - - - - - - 1 - True - Invoke death event editor - True - GTK_RELIEF_NORMAL - True - - - - - True - edit_sm.png - 0.5 - 0.5 - 0 - 0 - - - - - 2 - 3 - 0 - 1 - fill - - - - - - - True - Plac_e: - True - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - death_place - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 1 - 2 - fill - - - - - - - True - True - True - True - 0 - - True - * - False - - - 1 - 3 - 1 - 2 - - - - - - 7 - 11 - 13 - 15 - fill - fill - - - - - 0 - 1 - 0 - 1 - fill - - - - - 0 - True - True - - - - - False - True - - - - - - True - General - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 6 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - True - False - 0 - - - - True - False - 0 - - - - 12 - True - 7 - 6 - False - 3 - 12 - - - - True - Name: - False - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 6 - 7 - fill - - - - - - - True - Confidence: - False - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 4 - 5 - 6 - 7 - fill - - - - - - - True - Family prefix: - False - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 4 - 5 - 2 - 3 - fill - - - - - - - True - Suffix: - False - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 3 - 4 - fill - - - - - - - True - Family name: - False - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 2 - 3 - fill - - - - - - - True - Given name: - False - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 1 - 2 - fill - - - - - - - True - Title: - False - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 4 - 5 - 1 - 2 - fill - - - - - - - True - Type: - False - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 4 - 5 - 3 - 4 - fill - - - - - - - True - <b>Alternate name</b> - False - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 6 - 0 - 1 - fill - - - - - - - True - <b>Primary source</b> - False - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 6 - 5 - 6 - fill - - - - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 6 - 7 - - - - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 3 - 4 - - - - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 2 - 3 - - - - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 1 - 2 - - - - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 5 - 6 - 6 - 7 - - - - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 5 - 6 - 3 - 4 - - - - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 5 - 6 - 2 - 3 - - - - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 5 - 6 - 1 - 2 - - - - - - 0 - True - True - - - - - - True - GTK_BUTTONBOX_DEFAULT_STYLE - 2 - - - 0 - False - True - - - - - 5 - False - True - - - - - - 6 - True - False - 6 - - - - True - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - True - True - True - True - False - False - True - False - False - False - - - - - 0 - True - True - - - - - - True - False - 6 - - - - True - Create an alternate name for this person - True - GTK_RELIEF_NORMAL - True - - - - - True - gtk-add - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - True - - - - - - True - False - Edit the selected name - True - GTK_RELIEF_NORMAL - True - - - - - True - edit_sm.png - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - True - - - - - - True - False - Delete the selected name - True - GTK_RELIEF_NORMAL - True - - - - - True - gtk-remove - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - True - - - - - - - - - 0 - False - True - - - - - 0 - True - True - - - - - False - True - - - - - - True - Names - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 6 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - True - False - 0 - - - - True - False - 0 - - - - 12 - True - 9 - 6 - False - 3 - 12 - - - - True - <b>Event</b> - False - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 6 - 0 - 1 - fill - - - - - - - True - Description: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 5 - 6 - fill - - - - - - - True - Cause: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 4 - 5 - fill - - - - - - - True - Place: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 3 - 4 - fill - - - - - - - True - Type: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 1 - 2 - fill - - - - - - - True - Date: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 2 - 3 - fill - - - - - - - True - <b>Primary source</b> - False - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 6 - 7 - 8 - fill - - - - - - - True - Name: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 8 - 9 - fill - - - - - - - True - Confidence: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 4 - 5 - 8 - 9 - fill - - - - - - - True - - False - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 6 - 2 - 3 - fill - - - - - - - True - - False - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 6 - 3 - 4 - fill - - - - - - - True - - False - False - GTK_JUSTIFY_CENTER - True - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 6 - 4 - 5 - fill - - - - - - - True - - False - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 6 - 5 - 6 - fill - - - - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 6 - 1 - 2 - - - - - - - True - - False - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 8 - 9 - - - - - - - True - - False - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 5 - 6 - 8 - 9 - - - - - - 0 - False - True - - - - - - 6 - True - False - 6 - - - - True - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - True - True - True - True - False - True - True - False - False - False - - - - - 0 - True - True - - - - - - True - False - 6 - - - - True - Create a new event - True - GTK_RELIEF_NORMAL - True - - - - - True - gtk-add - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - True - - - - - - True - False - Edit the selected event - True - GTK_RELIEF_NORMAL - True - - - - - True - edit_sm.png - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - True - - - - - - True - False - Delete the selected event - True - GTK_RELIEF_NORMAL - True - - - - - True - gtk-remove - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - True - - - - - - - - - 3 - False - True - - - - - 0 - True - True - - - - - 0 - True - True - - - - - False - True - - - - - - True - Events - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 6 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - True - False - 0 - - - - True - False - 0 - - - - 12 - True - 6 - 5 - False - 3 - 12 - - - - True - <b>Attributes</b> - False - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 5 - 0 - 1 - fill - - - - - - - True - Type: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 1 - 2 - fill - - - - - - - True - Value: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 2 - 3 - fill - - - - - - - True - <b>Primary source</b> - False - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 5 - 4 - 5 - fill - - - - - - - True - Name: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 5 - 6 - fill - - - - - - - True - Confidence: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 3 - 4 - 5 - 6 - fill - - - - - - - True - - False - False - GTK_JUSTIFY_CENTER - True - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 5 - 2 - 3 - fill - - - - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 5 - 6 - - - - - - - True - - False - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 4 - 5 - 5 - 6 - - - - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 5 - 1 - 2 - fill - - - - - - 0 - False - True - - - - - - 6 - True - False - 6 - - - - True - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - True - True - True - False - False - True - False - False - False - - - - - 0 - True - True - - - - - - True - False - 6 - - - - True - Create a new attribute - True - GTK_RELIEF_NORMAL - True - - - - - True - gtk-add - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - True - - - - - - True - False - Edit the selected attribute - True - GTK_RELIEF_NORMAL - True - - - - - True - edit_sm.png - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - True - - - - - - True - False - Delete the selected attribute - True - GTK_RELIEF_NORMAL - True - - - - - True - gtk-remove - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - True - - - - - - - - - 0 - False - True - - - - - 0 - True - True - - - - - 0 - True - True - - - - - False - True - - - - - - True - Attributes - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 6 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - True - False - 0 - - - - 12 - True - 9 - 6 - False - 3 - 12 - - - - True - City/County: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 3 - 4 - fill - - - - - - - True - Date: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 1 - 2 - fill - - - - - - - True - Address: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 2 - 3 - fill - - - - - - - True - Country: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 4 - 5 - fill - - - - - - - True - Name: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 8 - 9 - fill - - - - - - - True - Confidence: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 4 - 5 - 8 - 9 - fill - - - - - - - True - ZIP/Postal code: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 4 - 5 - 4 - 5 - fill - - - - - - - True - State/Province: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 4 - 5 - 3 - 4 - fill - - - - - - - True - <b>Addresses</b> - False - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 6 - 0 - 1 - fill - - - - - - - True - <b>Primary source</b> - False - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 6 - 7 - 8 - fill - - - - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 3 - 4 - fill - - - - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 8 - 9 - fill - - - - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 5 - 6 - 3 - 4 - fill - - - - - - - True - - False - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 5 - 6 - 8 - 9 - fill - - - - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 5 - 6 - 4 - 5 - - - - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 4 - 5 - - - - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 6 - 1 - 2 - fill - - - - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 6 - 2 - 3 - fill - - - - - - - True - Phone: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 5 - 6 - fill - - - - - - - True - - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 5 - 6 - fill - - - - - - 0 - False - True - - - - - - True - False - 0 - - - - True - GTK_BUTTONBOX_DEFAULT_STYLE - 2 - - - 0 - False - True - - - - - 5 - False - False - - - - - - True - False - 0 - - - - 6 - True - False - 6 - - - - True - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - True - True - True - False - False - True - False - False - False - - - - - 0 - True - True - - - - - - True - False - 6 - - - - True - Create a new address - True - GTK_RELIEF_NORMAL - True - - - - - True - gtk-add - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - True - - - - - - True - False - Edit the selected address - True - GTK_RELIEF_NORMAL - True - - - - - True - edit_sm.png - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - True - - - - - - True - False - Delete the selected address - True - GTK_RELIEF_NORMAL - True - - - - - True - gtk-remove - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - True - - - - - - - - - 0 - False - True - - - - - 0 - True - True - - - - - 0 - True - True - - - - - False - True - - - - - - True - Addresses - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 6 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - True - False - 0 - - - - 6 - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - True - Enter miscellaneous relevant data and documentation - True - True - False - True - GTK_JUSTIFY_LEFT - GTK_WRAP_WORD - True - 6 - 0 - 0 - 6 - 6 - 6 - - - - - - 0 - True - True - - - - - - 12 - True - 2 - 3 - False - 12 - 24 - - - - True - <b>Format</b> - True - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - flowed - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 3 - 0 - 1 - fill - - - - - - - True - Multiple spaces, tabs, and single line breaks are replaced with single spaces. Two consecutive line breaks mark a new paragraph. - True - _Flowed - True - GTK_RELIEF_NORMAL - True - True - False - True - - - 1 - 2 - 1 - 2 - - - - - - - - True - Formatting is preserved, except for the leading whitespace. Multiple spaces, tabs, and all line breaks are respected. - True - _Preformatted - True - GTK_RELIEF_NORMAL - True - False - False - True - flowed - - - 2 - 3 - 1 - 2 - - - - - - - 0 - False - True - - - - - False - True - - - - - - True - Notes - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 6 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - 6 - True - False - 6 - - - - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - True - True - True - False - False - True - False - False - False - - - - - 0 - True - True - - - - - - True - False - 6 - - - - True - Add a source - True - GTK_RELIEF_NORMAL - True - - - - True - gtk-add - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - True - - - - - - True - Edit the selected source - True - GTK_RELIEF_NORMAL - True - - - - True - edit_sm.png - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - True - - - - - - True - Remove the selected source - True - GTK_RELIEF_NORMAL - True - - - - True - gtk-remove - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - True - - - - - - - - - 0 - False - True - - - - - False - True - - - - - - True - Sources - False - False - GTK_JUSTIFY_LEFT - False - False - 0.5 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - True - False - 0 - - - - 6 - True - False - 6 - - - - True - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - True - True - False - 0 - 0 - 100 - 100 - 1 - - - - - 0 - True - True - - - - - - True - False - 6 - - - - True - Add a new media object to the database and place it in this gallery - True - GTK_RELIEF_NORMAL - True - - - - - True - gtk-add - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - True - - - - - - True - Select an existing media object from the database and place it in this gallery - True - GTK_RELIEF_NORMAL - True - - - - - True - gtk-index - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - True - - - - - - True - Edit the properties of the selected object - True - GTK_RELIEF_NORMAL - True - - - - - True - edit_sm.png - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - True - - - - - - True - Remove the selected object from this gallery only - True - GTK_RELIEF_NORMAL - True - - - - - True - gtk-remove - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - True - - - - - 0 - False - True - - - - - 0 - True - True - - - - - False - True - - - - - - True - Gallery - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 6 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - True - False - 0 - - - - 12 - True - 3 - 3 - False - 3 - 12 - - - - True - Web address: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 1 - 2 - fill - - - - - - - True - Description: - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 2 - 3 - fill - - - - - - - True - - False - False - GTK_JUSTIFY_LEFT - True - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 2 - 3 - fill - - - - - - - True - - False - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 2 - 3 - 1 - 2 - - - - - - - True - <b>Internet addresses</b> - False - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 3 - 0 - 1 - fill - - - - - - 0 - False - True - - - - - - 6 - True - False - 6 - - - - True - True - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_SHADOW_IN - GTK_CORNER_TOP_LEFT - - - - True - True - True - False - False - True - False - False - False - - - - - 0 - True - True - - - - - - True - False - 6 - - - - True - Add an internet reference about this person - True - GTK_RELIEF_NORMAL - True - - - - - True - gtk-add - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - True - - - - - - True - False - Edit the selected internet address - True - GTK_RELIEF_NORMAL - True - - - - - True - edit_sm.png - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - True - - - - - - True - Go to this web page - True - GTK_RELIEF_NORMAL - True - - - - - True - gtk-jump-to - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - True - - - - - - True - False - Delete selected reference - True - GTK_RELIEF_NORMAL - True - - - - - True - gtk-remove - 4 - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - True - - - - - - - - - 0 - False - True - - - - - 0 - True - True - - - - - False - True - - - - - - True - Internet - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 6 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - - 12 - True - 15 - 4 - False - 6 - 12 - - - - True - <b>LDS baptism</b> - False - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 4 - 0 - 1 - fill - - - - - - - True - _Date: - True - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - ldsbapdate - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 1 - 2 - fill - - - - - - - True - LDS _temple: - True - False - GTK_JUSTIFY_CENTER - False - False - 1 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - Temple: - - - - 1 - 2 - 2 - 3 - fill - - - - - - - True - True - Sources... - True - GTK_RELIEF_NORMAL - True - - - - 3 - 4 - 2 - 3 - fill - - - - - - - True - _Place: - True - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - lds_bap_place - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - 1 - 2 - 3 - 4 - fill - - - - - - - True - True - True - True - 0 - - True - * - False - - - 2 - 3 - 3 - 4 - - - - - - - True - True - Note... - True - GTK_RELIEF_NORMAL - True - - - - 3 - 4 - 3 - 4 - fill - - - - - - - True - <b>Endowment</b> - False - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 4 - 5 - 6 - fill - - - - - - - True - D_ate: - True - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - endowdate - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - Date: - - - - 1 - 2 - 6 - 7 - fill - - - - - - - True - LDS te_mple: - True - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 7 - 8 - fill - - - - - - - True - P_lace: - True - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - lds_end_place - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - 1 - 2 - 8 - 9 - fill - - - - - - - True - True - True - True - 0 - - True - * - False - - - 2 - 3 - 8 - 9 - - - - - - - True - True - Sources... - True - GTK_RELIEF_NORMAL - True - - - - 3 - 4 - 7 - 8 - fill - - - - - - - True - True - Note... - True - GTK_RELIEF_NORMAL - True - - - - 3 - 4 - 8 - 9 - fill - - - - - - - True - Dat_e: - True - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - sealdate - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 11 - 12 - fill - - - - - - - True - LD_S temple: - True - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 12 - 13 - fill - - - - - - - True - True - Sources... - True - GTK_RELIEF_NORMAL - True - - - - 3 - 4 - 12 - 13 - fill - - - - - - - True - Pla_ce: - True - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - lds_seal_place - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - - - - 1 - 2 - 13 - 14 - fill - - - - - - - True - True - True - True - 0 - - True - * - False - - - 2 - 3 - 13 - 14 - - - - - - - True - True - Note... - True - GTK_RELIEF_NORMAL - True - - - - 3 - 4 - 13 - 14 - fill - - - - - - - True - Pa_rents: - True - False - GTK_JUSTIFY_CENTER - False - False - 0 - 0.5 - 0 - 0 - sealparents - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 1 - 2 - 14 - 15 - fill - - - - - - - True - <b>Sealed to parents</b> - False - True - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 4 - 10 - 11 - fill - - - - - - - True - False - True - - - 3 - 4 - 1 - 2 - fill - fill - - - - - - True - False - True - - - 3 - 4 - 6 - 7 - fill - fill - - - - - - True - False - True - - - 3 - 4 - 11 - 12 - fill - fill - - - - - - True - False - True - - - 2 - 3 - 14 - 15 - fill - fill - - - - - - True - False - True - - - 2 - 3 - 2 - 3 - fill - fill - - - - - - True - False - True - - - 2 - 3 - 7 - 8 - fill - fill - - - - - - True - False - True - - - 2 - 3 - 12 - 13 - fill - fill - - - - - - True - False - 0 - - - - True - True - True - True - 0 - - True - * - False - - - 0 - True - True - - - - - - True - Invoke date editor - True - GTK_RELIEF_NONE - True - - - - True - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - 2 - 3 - 1 - 2 - fill - fill - - - - - - True - False - 0 - - - - True - True - True - True - 0 - - True - * - False - - - 0 - True - True - - - - - - True - Invoke date editor - True - GTK_RELIEF_NONE - True - - - - True - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - 2 - 3 - 6 - 7 - fill - fill - - - - - - True - False - 0 - - - - True - True - True - True - 0 - - True - * - False - - - 0 - True - True - - - - - - True - Invoke date editor - True - GTK_RELIEF_NONE - True - - - - True - 0.5 - 0.5 - 0 - 0 - - - - - 0 - False - False - - - - - 2 - 3 - 11 - 12 - fill - fill - - - - - False - True - - - - - - LDS - False - False - GTK_JUSTIFY_CENTER - False - False - 0.5 - 0.5 - 6 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - tab - - - - - 0 - True - True - - - - - - True diff --git a/gramps2/src/gramps_main.py b/gramps2/src/gramps_main.py index 984ca66ba..fa3aafdb7 100755 --- a/gramps2/src/gramps_main.py +++ b/gramps2/src/gramps_main.py @@ -41,6 +41,7 @@ import MapView import PlaceView import EventView import SourceView +import MediaView import ArgHandler import DisplayTrace import GrampsKeys @@ -62,6 +63,7 @@ def register_stock_icons (): items = [ ('people48.png',('gramps-person','Person',gtk.gdk.CONTROL_MASK,0,'')), ('family48.png',('gramps-family','Family',gtk.gdk.CONTROL_MASK,0,'')), + ('media.png',('gramps-media','Media',gtk.gdk.CONTROL_MASK,0,'')), ('ped24.png',('gramps-pedigree','Pedigree',gtk.gdk.CONTROL_MASK,0,'')), ('repos.png',('gramps-repository','Repositories', gtk.gdk.CONTROL_MASK,0,'')), @@ -155,13 +157,14 @@ class Gramps: vm.register_view(EventView.EventView) vm.register_view(SourceView.SourceView) vm.register_view(PlaceView.PlaceView) + vm.register_view(MediaView.MediaView) vm.register_view(MapView.MapView) vm.register_view(RepositoryView.RepositoryView) ArgHandler.ArgHandler(state,vm,args) vm.init_interface() - state.emit("database-changed", (state.db,)) + state.db.request_rebuild() state.change_active_person(state.db.get_default_person()) # Don't show main window until ArgHandler is done.