* src/DisplayTabs.py: Set up for EditSourceRef

* src/GrampsMime.py: handle special mime types
* src/gramps.glade: add sourceref editor
* src/GrampsDb/_GedTokens.py: Unused tokens, FTM 3.0 tokens
* src/GrampsDb/_ReadGedcom.py: use TOKEN_IGNORE
* src/EditSourceRef.py: added


svn: r5942
This commit is contained in:
Don Allingham 2006-02-16 05:06:40 +00:00
parent c0cfdf9f43
commit 039b7f3591
7 changed files with 1168 additions and 131 deletions

View File

@ -1,3 +1,11 @@
2006-02-15 Don Allingham <don@gramps-project.org>
* src/DisplayTabs.py: Set up for EditSourceRef
* src/GrampsMime.py: handle special mime types
* src/gramps.glade: add sourceref editor
* src/GrampsDb/_GedTokens.py: Unused tokens, FTM 3.0 tokens
* src/GrampsDb/_ReadGedcom.py: use TOKEN_IGNORE
* src/EditSourceRef.py: added
2006-02-09 Don Allingham <don@gramps-project.org>
* src/DisplayState.py: Manage history on db change
* src/Navigation.py: Manage history on db change

View File

@ -1008,9 +1008,9 @@ class LocationEmbedList(EmbeddedList):
#-------------------------------------------------------------------------
class NoteTab(GrampsTab):
def __init__(self, dbstate, uistate, track, note_obj):
def __init__(self, dbstate, uistate, track, note_obj,title=_('Note')):
self.note_obj = note_obj
GrampsTab.__init__(self, dbstate, uistate, track, _('Note'))
GrampsTab.__init__(self, dbstate, uistate, track, title)
self.show_all()
def _update_label(self,*obj):
@ -1218,11 +1218,12 @@ class SourceEmbedList(EmbeddedList):
return ((1,0),(1,1),(1,2),(1,3))
def add_button_clicked(self,obj):
from Sources import SourceEditor
from EditSourceRef import EditSourceRef
sref = RelLib.SourceRef()
SourceEditor(self.dbstate, self.uistate, self.track, sref,
self.add_callback)
src = RelLib.Source()
EditSourceRef(self.dbstate, self.uistate, self.track,
src, sref, self.add_callback)
def add_callback(self,obj):
self.get_data().append(obj)

214
src/EditSourceRef.py Normal file
View File

@ -0,0 +1,214 @@
#
# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright (C) 2000-2006 Donald N. Allingham
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# $Id$
#-------------------------------------------------------------------------
#
# Python modules
#
#-------------------------------------------------------------------------
from gettext import gettext as _
try:
set()
except:
from sets import Set as set
#-------------------------------------------------------------------------
#
# GTK/Gnome modules
#
#-------------------------------------------------------------------------
import gtk
import gtk.glade
#-------------------------------------------------------------------------
#
# gramps modules
#
#-------------------------------------------------------------------------
import Sources
import Witness
import const
import Utils
import AutoComp
import RelLib
from DateHandler import parser as _dp, displayer as _dd
import DateEdit
import GrampsDisplay
import DisplayState
from QuestionDialog import WarningDialog, ErrorDialog
from WindowUtils import GladeIf
from DisplayTabs import *
from GrampsWidgets import *
#-------------------------------------------------------------------------
#
# EditSourceRef class
#
#-------------------------------------------------------------------------
class EditSourceRef(DisplayState.ManagedWindow):
def __init__(self, state, uistate, track,
source, source_ref, update):
self.db = state.db
self.state = state
self.uistate = uistate
self.source_ref = source_ref
self.source = source
DisplayState.ManagedWindow.__init__(self, uistate, track, source_ref)
if self.already_exist:
return
self.update = update
self.title = _('Source Reference Editor')
self.top = gtk.glade.XML(const.gladeFile, "source_ref_edit","gramps")
self.window = self.top.get_widget('source_ref_edit')
self.ref_note_field = self.top.get_widget('eer_ref_note')
self.role_combo = self.top.get_widget('eer_role_combo')
self.date_field = self.top.get_widget("eer_date")
self.place_field = self.top.get_widget("eer_place")
self.cause_field = self.top.get_widget("eer_cause")
self.ev_note_field = self.top.get_widget("eer_ev_note")
self.type_combo = self.top.get_widget("eer_type_combo")
self.general_label = self.top.get_widget("eer_general_tab")
self.ok = self.top.get_widget('ok')
self.expander = self.top.get_widget("src_expander")
self.warning = self.top.get_widget("warn_box")
self.notebook = self.top.get_widget('notebook')
if self.source:
self.source_added = False
if self.source_ref:
self.expander.set_expanded(False)
self.warning.show_all()
else:
self.source = RelLib.Source()
self.source.set_handle(self.db.create_id())
self.source_added = True
self.expander.set_expanded(True)
self.warning.hide()
if not self.source_ref:
self.source_ref = RelLib.SourceRef()
self.source_ref.set_reference_handle(self.source.get_handle())
self.privacy = PrivacyButton(self.top.get_widget('privacy'),
self.source_ref)
self.volume = MonitoredEntry(self.top.get_widget("volume"),
self.source.set_volume,
self.source.get_volume, False)
Utils.set_titles(self.window, self.top.get_widget('source_title'),
self.title)
self.date_check = DateEdit.DateEdit(
self.date, self.date_field,
self.top.get_widget("date_stat"), self.window)
self.date_field.set_text(_dd.display(self.date))
self._create_tabbed_pages()
self.show()
def _add_page(self,page):
self.notebook.insert_page(page)
self.notebook.set_tab_label(page,page.get_tab_widget())
return page
def _create_tabbed_pages(self):
"""
Creates the notebook tabs and inserts them into the main
window.
"""
self.srcref_list = self._add_page(SourceEmbedList(
self.state,self.uistate, self.track,
self.source.source_list))
self.note_tab = self._add_page(NoteTab(
self.state, self.uistate, self.track,
self.source.get_note_object()))
self.gallery_tab = self._add_page(GalleryTab(
self.state, self.uistate, self.track,
self.source.get_media_list()))
def build_menu_names(self,sourceref):
if self.source:
source_name = self.source.get_title()
submenu_label = _('Source: %s') % source_name
else:
submenu_label = _('New Source')
return (_('Source Reference Editor'),submenu_label)
def build_window_key(self,sourceref):
if self.source:
return self.source.get_handle()
else:
return id(self)
def on_help_clicked(self,obj):
pass
def on_ok_clicked(self,obj):
# first, save source if changed
etype = self.type_selector.get_values()
eplace_obj = get_place(self.place_field,self.pmap,self.db)
self.update_source(etype,self.date,eplace_obj)
trans = self.db.transaction_begin()
self.db.commit_source(self.source,trans)
if self.source_added:
self.db.transaction_commit(trans,_("Add Source"))
else:
self.db.transaction_commit(trans,_("Modify Source"))
# then, set properties of the source_ref
self.source_ref.set_role(self.role_selector.get_values())
self.source_ref.set_privacy(self.ref_privacy.get_active())
self.close(None)
if self.update:
self.update((self.source_ref,self.source))
def update_source(self,the_type,date,place):
if place:
if self.source.get_place_handle() != place.get_handle():
self.source.set_place_handle(place.get_handle())
else:
if self.source.get_place_handle():
self.source.set_place_handle("")
if self.source.get_type() != the_type:
self.source.set_type(the_type)
dobj = self.source.get_date_object()
if not dobj.is_equal(date):
self.source.set_date_object(date)

View File

@ -27,8 +27,7 @@ TOKEN_ADOP = 3
TOKEN_ADR1 = 4
TOKEN_ADR2 = 5
TOKEN_AFN = 6
TOKEN_AGE = 7
TOKEN_AGNC = 8
TOKEN_IGNORE = 7
TOKEN__AKA = 9
TOKEN__ALIA = 10
TOKEN_ALIA = 11
@ -51,13 +50,11 @@ TOKEN_CORP = 27
TOKEN_CTRY = 28
TOKEN_DATA = 29
TOKEN_DATE = 30
TOKEN__DATE2 = 31
TOKEN_DEAT = 32
TOKEN_DESI = 33
TOKEN_DEST = 34
TOKEN_ENDL = 35
TOKEN_EVEN = 36
TOKEN__EVENT_DEFN = 37
TOKEN_FAM = 38
TOKEN_FAMC = 39
TOKEN_FAMS = 40
@ -93,7 +90,6 @@ TOKEN__PRIMARY = 69
TOKEN__PRIV = 70
TOKEN_PUBL = 71
TOKEN_QUAY = 72
TOKEN_REFN = 73
TOKEN_RELI = 74
TOKEN_REPO = 75
TOKEN_RESI = 76
@ -124,117 +120,93 @@ TOKEN_VERS = 100
TOKEN_WIFE = 101
TOKEN__WITN = 102
TOKEN__WTN = 103
TOKEN__CHUR = 104
TOKEN_HEAD = 105
TOKEN_CALN = 106
TOKEN_MEDI = 107
tokens = {
"HEAD" : TOKEN_HEAD,
"MEDI" : TOKEN_MEDI,
"CALN" : TOKEN_CALN,
"ABBR" : TOKEN_ABBR,
"ADDR" : TOKEN_ADDR,
"ADOP" : TOKEN_ADOP,
"ADR1" : TOKEN_ADR1,
"ADR2" : TOKEN_ADR2,
"AFN" : TOKEN_AFN,
"AGE" : TOKEN_AGE,
"AGNC" : TOKEN_AGNC,
"_AKA" : TOKEN__AKA,
"_ALIA" : TOKEN__ALIA,
"ALIA" : TOKEN_ALIA,
"ANCI" : TOKEN_ANCI,
"ASSO" : TOKEN_ASSO,
"AUTH" : TOKEN_AUTH,
"BAPL" : TOKEN_BAPL,
"BIRT" : TOKEN_BIRT,
"_CAT" : TOKEN__CAT,
"CAUS" : TOKEN_CAUS,
"CHAN" : TOKEN_CHAN,
"CHAR" : TOKEN_CHAR,
"CHIL" : TOKEN_CHIL,
"CITY" : TOKEN_CITY,
"_COMM" : TOKEN__COMM,
"CONC" : TOKEN_CONC,
"CONT" : TOKEN_CONT,
"COPR" : TOKEN_COPR,
"CORP" : TOKEN_CORP,
"CTRY" : TOKEN_CTRY,
"DATA" : TOKEN_DATA,
"DATE" : TOKEN_DATE,
"_DATE2" : TOKEN__DATE2,
"DEAT" : TOKEN_DEAT,
"DESI" : TOKEN_DESI,
"DEST" : TOKEN_DEST,
"ENDL" : TOKEN_ENDL,
"EVEN" : TOKEN_EVEN,
"_EVENT_DEFN" : TOKEN__EVENT_DEFN,
"FAM" : TOKEN_FAM,
"FAMC" : TOKEN_FAMC,
"FAMS" : TOKEN_FAMS,
"FILE" : TOKEN_FILE,
"FORM" : TOKEN_FORM,
"_FREL" : TOKEN__FREL,
"GEDC" : TOKEN_GEDC,
"GIVN" : TOKEN_GIVN,
"_GODP" : TOKEN__GODP,
"HUSB" : TOKEN_HUSB,
"INDI" : TOKEN_INDI,
"LABL" : TOKEN_LABL,
"LANG" : TOKEN_LANG,
"_LOC" : TOKEN__LOC,
"_MARNM" : TOKEN__MARNM,
"_MREL" : TOKEN__MREL,
"_NAME" : TOKEN__NAME,
"NAME" : TOKEN_NAME,
"NCHI" : TOKEN_NCHI,
"NICK" : TOKEN_NICK,
"NOTE" : TOKEN_NOTE,
"NPFX" : TOKEN_NPFX,
"NSFX" : TOKEN_NSFX,
"OBJE" : TOKEN_OBJE,
"OFFI" : TOKEN_OFFI,
"PAGE" : TOKEN_PAGE,
"PEDI" : TOKEN_PEDI,
"PERI" : TOKEN_PERI,
"PHON" : TOKEN_PHON,
"PLAC" : TOKEN_PLAC,
"POST" : TOKEN_POST,
"_PRIMARY" : TOKEN__PRIMARY,
"_PRIV" : TOKEN__PRIV,
"PUBL" : TOKEN_PUBL,
"QUAY" : TOKEN_QUAY,
"REFN" : TOKEN_REFN,
"RELI" : TOKEN_RELI,
"REPO" : TOKEN_REPO,
"RESI" : TOKEN_RESI,
"RFN" : TOKEN_RFN,
"RIN" : TOKEN_RIN,
"_SCHEMA" : TOKEN__SCHEMA,
"SEX" : TOKEN_SEX,
"SLGC" : TOKEN_SLGC,
"SLGS" : TOKEN_SLGS,
"SOUR" : TOKEN_SOUR,
"SPFX" : TOKEN_SPFX,
"STAE" : TOKEN_STAE,
"_STAT" : TOKEN__STAT,
"STAT" : TOKEN_STAT,
"SUBM" : TOKEN_SUBM,
"SUBN" : TOKEN_SUBN,
"SURN" : TOKEN_SURN,
"TAXT" : TOKEN_TAXT,
"TEMP" : TOKEN_TEMP,
"TEXT" : TOKEN_TEXT,
"TIME" : TOKEN_TIME,
"TITL" : TOKEN_TITL,
"_TODO" : TOKEN__TODO,
"TRLR" : TOKEN_TRLR,
"TYPE" : TOKEN_TYPE,
"_UID" : TOKEN__UID,
"VERS" : TOKEN_VERS,
"WIFE" : TOKEN_WIFE,
"_WITN" : TOKEN__WITN,
"_WTN" : TOKEN__WTN,
"_CHUR" : TOKEN__CHUR,
"HEAD" : TOKEN_HEAD, "MEDI" : TOKEN_MEDI,
"CALN" : TOKEN_CALN, "ABBR" : TOKEN_ABBR,
"ABBREVIATION" : TOKEN_ABBR, "ADDR" : TOKEN_ADDR,
"ADDRESS" : TOKEN_ADDR, "ADOP" : TOKEN_ADOP,
"ADOPT" : TOKEN_ADOP, "ADR1" : TOKEN_ADR1,
"ADDRESS1" : TOKEN_ADR1, "ADR2" : TOKEN_ADR2,
"ADDRESS2" : TOKEN_ADR2, "AFN" : TOKEN_AFN,
"AGE" : TOKEN_IGNORE, "AGNC" : TOKEN_IGNORE,
"AGENCY" : TOKEN_AGNC, "_AKA" : TOKEN__AKA,
"_ALIA" : TOKEN__ALIA, "ALIA" : TOKEN_ALIA,
"ALIAS" : TOKEN_ALIA, "ANCI" : TOKEN_ANCI,
"ASSO" : TOKEN_ASSO, "ASSOCIATES" : TOKEN_ASSO,
"AUTH" : TOKEN_AUTH, "AUTHOR" : TOKEN_AUTH,
"BAPL" : TOKEN_BAPL, "BAPTISM-LDS" : TOKEN_BAPL,
"BIRT" : TOKEN_BIRT, "BIRTH" : TOKEN_BIRT,
"_CAT" : TOKEN_IGNORE, "CAUS" : TOKEN_CAUS,
"CAUSE" : TOKEN_CAUS, "CHAN" : TOKEN_CHAN,
"CHANGE" : TOKEN_CHAN, "CHAR" : TOKEN_CHAR,
"CHARACTER" : TOKEN_CHAR, "CHIL" : TOKEN_CHIL,
"CHILD" : TOKEN_CHIL, "CITY" : TOKEN_CITY,
"_COMM" : TOKEN__COMM, "CONC" : TOKEN_CONC,
"CONCATENTATE" : TOKEN_CONC, "CONT" : TOKEN_CONT,
"CONTINUATION" : TOKEN_CONT, "COPR" : TOKEN_COPR,
"COPYRIGHT" : TOKEN_COPR, "CORP" : TOKEN_CORP,
"CORPORATION" : TOKEN_CORP, "CTRY" : TOKEN_CTRY,
"COUNTRY" : TOKEN_CTRY, "DATA" : TOKEN_DATA,
"DATE" : TOKEN_DATE, "_DATE2" : TOKEN_IGNORE,
"DEAT" : TOKEN_DEAT, "DEATH" : TOKEN_DEAT,
"DESI" : TOKEN_DESI, "DEST" : TOKEN_DEST,
"DESTINATION" : TOKEN_DEST, "ENDL" : TOKEN_ENDL,
"ENDOWMENT" : TOKEN_ENDL, "EVEN" : TOKEN_EVEN,
"EVENT" : TOKEN_EVEN,
"FAM" : TOKEN_FAM, "FAMILY" : TOKEN_FAM,
"FAMC" : TOKEN_FAMC, "FAMILY_CHILD" : TOKEN_FAMC,
"FAMS" : TOKEN_FAMS, "FAMILY_SPOUSE" : TOKEN_FAMS,
"FILE" : TOKEN_FILE, "FORM" : TOKEN_FORM,
"_FREL" : TOKEN__FREL, "GEDC" : TOKEN_GEDC,
"GEDCOM" : TOKEN_GEDC, "GIVN" : TOKEN_GIVN,
"GIVEN_NAME" : TOKEN_GIVN, "_GODP" : TOKEN__GODP,
"HUSB" : TOKEN_HUSB, "HUSBAND" : TOKEN_HUSB,
"INDI" : TOKEN_INDI, "INDIVIDUAL" : TOKEN_INDI,
"LABL" : TOKEN_LABL, "LABEL" : TOKEN_LABL,
"LANG" : TOKEN_LANG, "_LOC" : TOKEN__LOC,
"_MARNM" : TOKEN__MARNM, "_MREL" : TOKEN__MREL,
"_NAME" : TOKEN__NAME, "NAME" : TOKEN_NAME,
"NCHI" : TOKEN_NCHI, "CHILDREN_COUNT": TOKEN_NCHI,
"NICK" : TOKEN_NICK, "NICKNAME" : TOKEN_NICK,
"NOTE" : TOKEN_NOTE, "NPFX" : TOKEN_NPFX,
"NAME_PREFIX" : TOKEN_NPFX, "NSFX" : TOKEN_NSFX,
"NAME_SUFFIX" : TOKEN_NSFX, "OBJE" : TOKEN_OBJE,
"OBJECT" : TOKEN_OBJE, "OFFI" : TOKEN_OFFI,
"PAGE" : TOKEN_PAGE, "PEDIGREE" : TOKEN_PEDI,
"PEDI" : TOKEN_PEDI, "PERI" : TOKEN_PERI,
"PHON" : TOKEN_PHON, "PHONE" : TOKEN_PHON,
"PHONE_NUMBER" : TOKEN_PHON, "PLAC" : TOKEN_PLAC,
"PLACE" : TOKEN_PLAC, "POST" : TOKEN_POST,
"POSTAL_CODE" : TOKEN_POST, "_PRIMARY" : TOKEN__PRIMARY,
"_PRIV" : TOKEN__PRIV, "PUBL" : TOKEN_PUBL,
"PUBLICATION" : TOKEN_PUBL, "QUAY" : TOKEN_QUAY,
"QUALITY_OF_DATA": TOKEN_QUAY, "REFN" : TOKEN_REFN,
"REFERENCE" : TOKEN_REFN, "RELI" : TOKEN_RELI,
"RELIGION" : TOKEN_RELI, "REPO" : TOKEN_REPO,
"REPOSITORY" : TOKEN_REPO, "RESI" : TOKEN_RESI,
"RESIDENCE" : TOKEN_RESI, "RFN" : TOKEN_RFN,
"RIN" : TOKEN_RIN, "_SCHEMA" : TOKEN__SCHEMA,
"SEX" : TOKEN_SEX, "SCHEMA" : TOKEN__SCHEMA,
"SLGC" : TOKEN_SLGC, "SLGS" : TOKEN_SLGS,
"SOUR" : TOKEN_SOUR, "SOURCE" : TOKEN_SOUR,
"SPFX" : TOKEN_SPFX, "SURN_PREFIX" : TOKEN_SPFX,
"STAE" : TOKEN_STAE, "STATE" : TOKEN_STAE,
"_STAT" : TOKEN__STAT, "STAT" : TOKEN_STAT,
"STATUS" : TOKEN_STAT, "SUBM" : TOKEN_SUBM,
"SUBMITTER" : TOKEN_SUBM, "SUBN" : TOKEN_SUBN,
"SUBMISSION" : TOKEN_SUBN, "SURN" : TOKEN_SURN,
"SURNAME" : TOKEN_SURN, "TAXT" : TOKEN_TAXT,
"TEMP" : TOKEN_TEMP, "TEMPLE" : TOKEN_TEMP,
"TEXT" : TOKEN_TEXT, "TIME" : TOKEN_TIME,
"TITL" : TOKEN_TITL, "TITLE" : TOKEN_TITL,
"_TODO" : TOKEN__TODO, "TRLR" : TOKEN_TRLR,
"TRAILER" : TOKEN_TRLR, "TYPE" : TOKEN_TYPE,
"_UID" : TOKEN__UID, "VERS" : TOKEN_VERS,
"VERSION" : TOKEN_VERS, "WIFE" : TOKEN_WIFE,
"_WITN" : TOKEN__WITN, "_WTN" : TOKEN__WTN,
"_CHUR" : TOKEN_IGNORE,
}

View File

@ -119,6 +119,7 @@ rel_types = ((RelLib.Person.CHILD_BIRTH,''),
pedi_type = {
'birth' : (RelLib.Person.CHILD_BIRTH,''),
'natural': (RelLib.Person.CHILD_BIRTH,''),
'step' : (RelLib.Person.CHILD_ADOPTED,''),
'adopted': (RelLib.Person.CHILD_ADOPTED,''),
'foster' : (RelLib.Person.CHILD_FOSTER,''),
}
@ -172,9 +173,9 @@ def importData(database, filename, callback=None, use_trans=False):
line = f.readline().split()
if len(line) == 0:
break
if len(line) > 2 and line[1] == 'CHAR' and line[2] == "ANSEL":
if len(line) > 2 and line[1][0:4] == 'CHAR' and line[2] == "ANSEL":
ansel = True
if len(line) > 2 and line[1] == 'SOUR' and line[2] == "GRAMPS":
if len(line) > 2 and line[1][0:4] == 'SOUR' and line[2] == "GRAMPS":
gramps = True
f.close()
@ -752,7 +753,7 @@ class GedcomParser:
repo_ref.set_reference_handle(repo.handle)
self.parse_repo_ref(matches,repo_ref,level+1)
self.source.add_repo_reference(repo_ref)
elif matches[1] in (TOKEN_OBJE,TOKEN_CHAN,TOKEN__CAT):
elif matches[1] in (TOKEN_OBJE,TOKEN_CHAN,TOKEN_IGNORE):
self.ignore_sub_junk(2)
else:
note = self.source.get_note()
@ -814,7 +815,7 @@ class GedcomParser:
del self.repo
elif matches[2] in ("SUBM","SUBN"):
self.ignore_sub_junk(1)
elif matches[1] in (TOKEN_SUBM,TOKEN_SUBN,TOKEN_OBJE,TOKEN__EVENT_DEFN):
elif matches[1] in (TOKEN_SUBM,TOKEN_SUBN,TOKEN_OBJE,TOKEN_IGNORE):
self.ignore_sub_junk(1)
elif matches[2] == "SOUR":
self.parse_source(matches[3],1)
@ -1337,8 +1338,8 @@ class GedcomParser:
elif matches[1] == TOKEN_ADDR:
address.set_street(matches[2])
self.parse_address(address,level+1)
elif matches[1] in (TOKEN_AGE,TOKEN_AGNC,TOKEN_CAUS,TOKEN_STAT,
TOKEN_TEMP,TOKEN_OBJE,TOKEN_TYPE,TOKEN__DATE2):
elif matches[1] in (TOKEN_IGNORE,TOKEN_CAUS,TOKEN_STAT,
TOKEN_TEMP,TOKEN_OBJE,TOKEN_TYPE):
self.ignore_sub_junk(level+1)
elif matches[1] == TOKEN_SOUR:
address.add_source_reference(self.handle_source(matches,level+1))
@ -1483,9 +1484,8 @@ class GedcomParser:
witness = RelLib.Witness(RelLib.Event.NAME,matches[2])
event.add_witness(witness)
self.ignore_sub_junk(level+1)
elif matches[1] in (TOKEN_RELI, TOKEN_TIME, TOKEN_ADDR,TOKEN_AGE,
TOKEN_AGNC,TOKEN_STAT,TOKEN_TEMP,TOKEN_OBJE,
TOKEN__DATE2):
elif matches[1] in (TOKEN_RELI, TOKEN_TIME, TOKEN_ADDR,TOKEN_IGNORE,
TOKEN_STAT,TOKEN_TEMP,TOKEN_OBJE):
self.ignore_sub_junk(level+1)
else:
self.barf(level+1)
@ -1501,7 +1501,7 @@ class GedcomParser:
break
elif matches[1] == TOKEN_DATE:
event.set_date_object(self.extract_date(matches[2]))
elif matches[1] in (TOKEN_TIME,TOKEN_ADDR,TOKEN_AGE,TOKEN_AGNC,
elif matches[1] in (TOKEN_TIME,TOKEN_ADDR,TOKEN_IGNORE,
TOKEN_STAT,TOKEN_TEMP,TOKEN_OBJE):
self.ignore_sub_junk(level+1)
elif matches[1] == TOKEN_SOUR:
@ -1571,7 +1571,7 @@ class GedcomParser:
name = matches[2]
attr.set_name(name)
elif matches[1] in (TOKEN_CAUS,TOKEN_DATE,TOKEN_TIME,TOKEN_ADDR,
TOKEN_AGE,TOKEN_AGNC,TOKEN_STAT,TOKEN_TEMP,TOKEN_OBJE):
TOKEN_IGNORE,TOKEN_STAT,TOKEN_TEMP,TOKEN_OBJE):
self.ignore_sub_junk(level+1)
elif matches[1] == TOKEN_SOUR:
attr.add_source_reference(self.handle_source(matches,level+1))
@ -1614,8 +1614,8 @@ class GedcomParser:
info = matches[2]
event.set_cause(info)
self.parse_cause(event,level+1)
elif matches[1] in (TOKEN_TIME,TOKEN_AGE,TOKEN_AGNC,TOKEN_ADDR,TOKEN_STAT,
TOKEN_TEMP,TOKEN_HUSB,TOKEN_WIFE,TOKEN_OBJE,TOKEN__CHUR):
elif matches[1] in (TOKEN_TIME,TOKEN_IGNORE,TOKEN_ADDR,TOKEN_STAT,
TOKEN_TEMP,TOKEN_HUSB,TOKEN_WIFE,TOKEN_OBJE):
self.ignore_sub_junk(level+1)
elif matches[1] == TOKEN_SOUR:
event.add_source_reference(self.handle_source(matches,level+1))

View File

@ -22,3 +22,17 @@ try:
from GnomeMime import *
except:
from PythonMime import *
def base_type(val):
return val.split('/')[0]
def is_image_type(val):
return base_type(val) == "image"
def is_directory(val):
return base_type(val) == "x-directory"
_invalid_mime_types = ('x-directory','x-special')
def is_valid_type(val):
return base_type(val) not in _invalid_mime_types

View File

@ -17483,4 +17483,832 @@ Given name, Family name</property>
</child>
</widget>
<widget class="GtkDialog" id="source_ref_edit">
<property name="visible">True</property>
<property name="title" translatable="yes"></property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
<property name="modal">False</property>
<property name="default_width">600</property>
<property name="resizable">True</property>
<property name="destroy_with_parent">False</property>
<property name="icon">gramps.png</property>
<property name="decorated">True</property>
<property name="skip_taskbar_hint">False</property>
<property name="skip_pager_hint">False</property>
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
<property name="focus_on_map">True</property>
<property name="urgency_hint">False</property>
<property name="has_separator">False</property>
<signal name="delete_event" handler="on_eer_delete_event" last_modification_time="Mon, 06 Jun 2005 19:56:24 GMT"/>
<child internal-child="vbox">
<widget class="GtkVBox" id="vbox119">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child internal-child="action_area">
<widget class="GtkHButtonBox" id="hbuttonbox40">
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="help">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-help</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="response_id">-11</property>
<signal name="clicked" handler="on_eer_help_clicked" last_modification_time="Mon, 06 Jun 2005 19:46:55 GMT"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="cancel">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-cancel</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="response_id">-6</property>
<signal name="clicked" handler="on_eer_cancel_clicked" last_modification_time="Mon, 06 Jun 2005 19:47:03 GMT"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="ok">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-ok</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="response_id">-5</property>
<signal name="clicked" handler="on_eer_ok_clicked" last_modification_time="Mon, 06 Jun 2005 19:46:22 GMT"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack_type">GTK_PACK_END</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="source_title">
<property name="visible">True</property>
<property name="label" translatable="yes"></property>
<property name="use_underline">True</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">12</property>
<property name="ypad">12</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label602">
<property name="visible">True</property>
<property name="label" translatable="yes">&lt;b&gt;Reference information&lt;/b&gt;</property>
<property name="use_underline">True</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">6</property>
<property name="ypad">3</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkNotebook" id="notebook_ref">
<property name="border_width">6</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="show_tabs">True</property>
<property name="show_border">True</property>
<property name="tab_pos">GTK_POS_TOP</property>
<property name="scrollable">False</property>
<property name="enable_popup">False</property>
<child>
<widget class="GtkTable" id="table67">
<property name="border_width">12</property>
<property name="visible">True</property>
<property name="n_rows">3</property>
<property name="n_columns">3</property>
<property name="homogeneous">False</property>
<property name="row_spacing">6</property>
<property name="column_spacing">12</property>
<child>
<widget class="GtkLabel" id="label612">
<property name="visible">True</property>
<property name="label" translatable="yes">_Date:</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">1</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="mnemonic_widget">date</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
<property name="top_attach">0</property>
<property name="bottom_attach">1</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkEntry" id="date">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">0</property>
<property name="bottom_attach">1</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkButton" id="date_stat">
<property name="visible">True</property>
<property name="tooltip" translatable="yes">Invoke date editor</property>
<property name="can_focus">True</property>
<property name="relief">GTK_RELIEF_NONE</property>
<property name="focus_on_click">True</property>
<signal name="clicked" handler="on_edit_date_death_clicked" last_modification_time="Sat, 18 Sep 2004 02:30:11 GMT"/>
<child>
<widget class="GtkImage" id="image2682">
<property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
</child>
</widget>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</property>
<property name="top_attach">0</property>
<property name="bottom_attach">1</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkEntry" id="volume">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label613">
<property name="visible">True</property>
<property name="label" translatable="yes">_Volume/Page:</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">1</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="mnemonic_widget">volume</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label614">
<property name="visible">True</property>
<property name="label" translatable="yes">_Confidence:</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">1</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="mnemonic_widget">confidence</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkComboBox" id="confidence">
<property name="visible">True</property>
<property name="items" translatable="yes">Very Low
Low
Normal
High
Very High</property>
<property name="add_tearoffs">False</property>
<property name="focus_on_click">True</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="x_options">fill</property>
<property name="y_options">fill</property>
</packing>
</child>
<child>
<widget class="GtkToggleButton" id="privacy">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="relief">GTK_RELIEF_NONE</property>
<property name="focus_on_click">True</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<child>
<widget class="GtkImage" id="image2677">
<property name="visible">True</property>
<property name="icon_size">4</property>
<property name="icon_name">stock_lock-open</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
</child>
</widget>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
</widget>
<packing>
<property name="tab_expand">False</property>
<property name="tab_fill">True</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label612">
<property name="visible">True</property>
<property name="label" translatable="yes">General</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="type">tab</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkExpander" id="src_expander">
<property name="border_width">6</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="expanded">True</property>
<property name="spacing">6</property>
<child>
<widget class="GtkNotebook" id="notebook_src">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="show_tabs">True</property>
<property name="show_border">False</property>
<property name="tab_pos">GTK_POS_TOP</property>
<property name="scrollable">False</property>
<property name="enable_popup">False</property>
<signal name="switch_page" handler="on_switch_page" last_modification_time="Wed, 12 Nov 2003 17:45:51 GMT"/>
<child>
<widget class="GtkTable" id="table68">
<property name="border_width">12</property>
<property name="visible">True</property>
<property name="n_rows">6</property>
<property name="n_columns">2</property>
<property name="homogeneous">False</property>
<property name="row_spacing">6</property>
<property name="column_spacing">12</property>
<child>
<widget class="GtkLabel" id="label603">
<property name="visible">True</property>
<property name="label" translatable="yes">_Title:</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">1</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="mnemonic_widget">title</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
<property name="top_attach">0</property>
<property name="bottom_attach">1</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label604">
<property name="visible">True</property>
<property name="label" translatable="yes">Author:</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">1</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="mnemonic_widget">author</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label606">
<property name="visible">True</property>
<property name="label" translatable="yes">Abbreviation:</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">1</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">3</property>
<property name="mnemonic_widget">abbrev</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
<property name="top_attach">3</property>
<property name="bottom_attach">4</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label607">
<property name="visible">True</property>
<property name="label" translatable="yes">Publication Information:</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">1</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="mnemonic_widget">pub_info</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
<property name="top_attach">4</property>
<property name="bottom_attach">5</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkEntry" id="author">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkHBox" id="warn_box">
<property name="border_width">6</property>
<property name="homogeneous">False</property>
<property name="spacing">12</property>
<child>
<widget class="GtkImage" id="warn_icon">
<property name="visible">True</property>
<property name="stock">gtk-dialog-warning</property>
<property name="icon_size">6</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="warn_text">
<property name="visible">True</property>
<property name="label" translatable="yes">&lt;b&gt;Note:&lt;/b&gt; Any changes in the shared source information will be reflected in the source itself, for all items that reference the source.</property>
<property name="use_underline">True</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">True</property>
<property name="selectable">False</property>
<property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">3</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">2</property>
<property name="top_attach">5</property>
<property name="bottom_attach">6</property>
<property name="x_options">expand|shrink|fill</property>
<property name="y_options">expand|shrink|fill</property>
</packing>
</child>
<child>
<widget class="GtkEntry" id="abbrev">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">3</property>
<property name="bottom_attach">4</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkEntry" id="pub_info">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">4</property>
<property name="bottom_attach">5</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkEntry" id="title">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">0</property>
<property name="bottom_attach">1</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label611">
<property name="visible">True</property>
<property name="label" translatable="yes">ID:</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">1</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="mnemonic_widget">gid</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkEntry" id="gid">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="y_options"></property>
</packing>
</child>
</widget>
<packing>
<property name="tab_expand">False</property>
<property name="tab_fill">False</property>
</packing>
</child>
<child>
<widget class="GtkHBox" id="hbox127">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkImage" id="image2681">
<property name="stock">gtk-file</property>
<property name="icon_size">1</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label609">
<property name="visible">True</property>
<property name="label" translatable="yes">General</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
</widget>
<packing>
<property name="type">tab</property>
</packing>
</child>
</widget>
</child>
<child>
<widget class="GtkLabel" id="label610">
<property name="visible">True</property>
<property name="label" translatable="yes">&lt;b&gt;Shared event information&lt;/b&gt;</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="type">label_item</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
</child>
</widget>
</glade-interface>