Fixed broken parsing of glade files

svn: r1298
This commit is contained in:
Don Allingham 2003-02-12 04:25:27 +00:00
parent e8a8af6c8d
commit ea4552c724
6 changed files with 3070 additions and 836 deletions

View File

@ -90,6 +90,7 @@ filtersDir = "%s/filters" % rootDir
dataDir = "%s/data" % rootDir
gtkrcFile = "%s/gtkrc" % rootDir
template_dir = "%s/templates" % dataDir
fdl = "%s/fdl.txt" % dataDir
startup = 1

View File

@ -90,6 +90,7 @@ filtersDir = "%s/filters" % rootDir
dataDir = "%s/data" % rootDir
gtkrcFile = "%s/gtkrc" % rootDir
template_dir = "%s/templates" % dataDir
fdl = "%s/fdl.txt" % dataDir
startup = 1

View File

@ -116,10 +116,11 @@ import getopt
import tokenize
import operator
import re
import string
import os
from xml.sax import make_parser,handler,SAXParseException
intRe = re.compile("^\d+$")
_ignore = {
@ -137,90 +138,76 @@ __version__ = '1.4'
default_keywords = ['_']
EMPTYSTRING = ''
import sys
import string
import xmllib
class TranslatableStringParser(xmllib.XMLParser):
_int_re = re.compile("^\d+$")
_ignore = { ':' : 0, '*' : 0, }
class GladeExtractor:
def __init__(self,msgs):
xmllib.XMLParser.__init__(self)
self.filename = None
self.strings = msgs
self.data = ""
def add_string(self, string):
def add_string(self, string, lineno):
if string == "":
return
if _ignore.has_key(string):
return
entry = (self.filename, self.lineno)
entry = (self.file, lineno)
if self.strings.has_key(string):
self.strings[string][entry] = 0
else:
self.strings[string] = {entry: 0}
def read_file(self, filename):
self.reset()
self.filename = filename
fp = open(filename, "r")
data = fp.read(8192)
while data:
self.feed(data)
data = fp.read(8192)
fp.close()
def parse(self,file):
self.p = make_parser()
self.p.setContentHandler(GladeParser(self,file))
filename = "file://" + os.path.abspath(file)
self.file = file
self.p.parse(filename)
def syntax_error(self, message):
sys.stderr.write("%s:%d: %s\n" % (self.filename, self.lineno,
message))
sys.exit(1)
class GladeParser(handler.ContentHandler):
"""
SAX parsing class for the StyleSheetList XML file.
"""
def unknown_starttag(self, tag, attrs):
self.data = ""
def __init__(self,parent,filename):
"""
Creates a SheetParser class that populates the passed StyleSheetList
class.
def handle_data(self, data):
self.data = self.data + data
def translate_this_string(self):
if not intRe.match(self.data):
self.add_string(self.data)
# this list should include all tags for which translation should occur
end_label = translate_this_string
end_title = translate_this_string
end_text = translate_this_string
end_format = translate_this_string
end_copyright = translate_this_string
end_comments = translate_this_string
end_preview_text = translate_this_string
end_tooltip = translate_this_string
def end_items(self):
for item in string.split(self.data, '\n'):
self.add_string(item)
class XMLParser(handler.ContentHandler):
def __init__(self,name,msgs):
self.filename = name
self.strings = msgs
sheetlist - StyleSheetList instance to be loaded from the file.
"""
handler.ContentHandler.__init__(self)
self.parent = parent
self.translate = 0
self.text = ""
self.filename = filename
self.lineno = 0
def startElement(self,tag,attrs):
if tag == "filter":
self.add_string(attrs['name'])
"""
Overridden class that handles the start of a XML element
"""
if tag == "property":
if attrs.has_key('translatable'):
self.text = ""
if attrs['translatable'] == 'yes':
self.translate = 1
else:
self.translate = 0
def endElement(self,tag):
"Overridden class that handles the start of a XML element"
if self.translate:
if not _int_re.match(self.text):
self.parent.add_string(self.text, self.locator.getLineNumber())
self.translate = 0
def setDocumentLocator(self,locator):
self.locator = locator
def add_string(self, string):
if string == "":
return
if _ignore.has_key(string):
return
entry = (self.filename, self.locator.getLineNumber())
if self.strings.has_key(string):
self.strings[string][entry] = 0
else:
self.strings[string] = {entry: 0}
def characters(self, data):
self.text = self.text + data
# The normal pot-file header. msgmerge and Emacs's po-mode work better if it's
# there.
@ -231,7 +218,7 @@ pot_header = _('''\
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\\n"
"Project-Id-Version: GRAMPS VERSION\\n"
"POT-Creation-Date: %(time)s\\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\\n"
@ -509,12 +496,12 @@ def main():
# slurp through all the files
eater = TokenEater(options)
p = TranslatableStringParser(eater.get_messages())
p = GladeExtractor(eater.get_messages())
for filename in args:
if filename[-5:] == 'glade':
print 'Working on %s' % filename
p.read_file(filename)
p.parse(filename)
elif filename[-3:] == 'xml':
print 'Working on %s' % filename
try:

View File

@ -356,10 +356,14 @@ class GedcomWriter:
self.topDialog = gtk.glade.XML(glade_file,"gedcomExport")
self.topDialog.signal_autoconnect({
"destroy_passed_object" : Utils.destroy_passed_object,
"gnu_free" : self.gnu_free,
"standard_copyright" : self.standard_copyright,
"no_copyright" : self.no_copyright,
"on_ok_clicked" : self.on_ok_clicked
})
filter_obj = self.topDialog.get_widget("filter")
self.copy = 0
all = GenericFilter.GenericFilter()
all.set_name(_("Entire Database"))
@ -402,6 +406,15 @@ class GedcomWriter:
self.topDialog.get_widget("gedcomExport").show()
def gnu_free(self,obj):
self.copy = 1
def standard_copyright(self,obj):
self.copy = 0
def no_copyright(self,obj):
self.copy = 2
def on_ok_clicked(self,obj):
self.restrict = self.topDialog.get_widget("restrict").get_active()
@ -489,14 +502,16 @@ class GedcomWriter:
self.g.write("1 DEST %s\n" % self.dest)
self.g.write("1 DATE %s %s %s\n" % (date[2],string.upper(date[1]),date[4]))
if self.cnvtxt == ansel_utf8.utf8_to_ansel:
self.g.write("1 CHAR ANSEL\n");
self.g.write("1 CHAR ANSEL\n")
else:
self.g.write("1 CHAR UTF-8\n");
self.g.write("1 CHAR UTF-8\n")
self.g.write("1 SUBM @SUBM@\n")
self.g.write("1 FILE %s\n" % filename)
self.write_copy()
self.g.write("1 GEDC\n")
self.g.write("2 VERS 5.5\n")
self.g.write('2 FORM LINEAGE-LINKED\n')
self.gnu_fdl()
self.g.write("0 @SUBM@ SUBM\n")
owner = self.db.getResearcher()
if owner.getName():
@ -550,6 +565,38 @@ class GedcomWriter:
self.g.write("0 TRLR\n")
self.g.close()
def write_copy(self):
import time
t = time.localtime(time.time())
y = t[0]
if self.copy == 0:
o = self.db.getResearcher().getName()
self.g.write('1 COPR Copyright (c) %d %s.\n' % (y,o))
elif self.copy == 1:
o = self.db.getResearcher().getName()
self.g.write('1 COPR Copyright (c) %d %s. See additional copyright NOTE below.\n' % (y,o))
def gnu_fdl(self):
import time
if self.copy != 1:
return
t = time.localtime(time.time())
y = t[0]
o = self.db.getResearcher().getName()
self.g.write('1 NOTE Copyright (c) %d %s.\n' % (y,o))
try:
f = open(const.fdl,"r")
for line in f.readlines():
self.g.write('2 CONT %s' % line)
f.close()
except:
pass
def write_families(self):
nump = float(len(self.flist))
index = 0.0

View File

@ -5,430 +5,600 @@
<requires lib="gnome"/>
<widget class="GtkDialog" id="gedcomExport">
<property name="visible">True</property>
<property name="title" translatable="yes">Export GEDCOM file</property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="modal">yes</property>
<property name="allow_shrink">no</property>
<property name="allow_grow">yes</property>
<property name="visible">yes</property>
<property name="window-position">GTK_WIN_POS_CENTER</property>
<property name="window_position">GTK_WIN_POS_NONE</property>
<property name="modal">True</property>
<property name="default_width">400</property>
<property name="resizable">True</property>
<property name="destroy_with_parent">False</property>
<property name="has_separator">True</property>
<child internal-child="vbox">
<widget class="GtkVBox" id="dialog-vbox1">
<property name="homogeneous">no</property>
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">8</property>
<property name="visible">yes</property>
<child internal-child="action_area">
<widget class="GtkHButtonBox" id="dialog-action_area1">
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<property name="spacing">8</property>
<property name="visible">yes</property>
<child>
<widget class="GtkButton" id="ok">
<property name="can_default">yes</property>
<property name="can_focus">yes</property>
<property name="visible">yes</property>
<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">yes</property>
<property name="use_underline">yes</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="response_id">0</property>
<signal name="clicked" handler="on_ok_clicked" object="gedcomExport"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="cancel">
<property name="can_default">yes</property>
<property name="can_focus">yes</property>
<property name="visible">yes</property>
<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">yes</property>
<property name="use_underline">yes</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="gedcomExport"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">no</property>
<property name="fill">yes</property>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack_type">GTK_PACK_END</property>
</packing>
</child>
<child>
<widget class="GtkVBox" id="vbox1">
<property name="homogeneous">no</property>
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<property name="visible">yes</property>
<child>
<widget class="GtkLabel" id="exportTitle">
<property name="visible">True</property>
<property name="label" translatable="yes">GEDCOM Export</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">no</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="visible">yes</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">no</property>
<property name="fill">no</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkHSeparator" id="hseparator1">
<property name="visible">yes</property>
<property name="visible">True</property>
</widget>
<packing>
<property name="padding">10</property>
<property name="expand">yes</property>
<property name="fill">yes</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GnomeFileEntry" id="fileentry1">
<property name="visible">True</property>
<property name="history_id">gedcomExport</property>
<property name="modal">yes</property>
<property name="width-request">350</property>
<property name="directory_entry">no</property>
<property name="browse_dialog_title">Export GEDCOM</property>
<property name="visible">yes</property>
<property name="max_saved">10</property>
<property name="browse_dialog_title" translatable="yes">Export GEDCOM</property>
<property name="directory_entry">False</property>
<property name="modal">True</property>
<child internal-child="entry">
<widget class="GtkEntry" id="filename">
<property name="can_focus">yes</property>
<property name="editable">yes</property>
<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="max-length">0</property>
<property name="visibility">yes</property>
<property name="visible">yes</property>
<property name="has_frame">True</property>
<property name="invisible_char" translatable="yes">*</property>
<property name="activates_default">False</property>
</widget>
</child>
</widget>
<packing>
<property name="padding">5</property>
<property name="expand">no</property>
<property name="fill">no</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkFrame" id="frame2">
<property name="border_width">5</property>
<property name="label" translatable="yes">Filter</property>
<property name="visible">True</property>
<property name="label_xalign">0</property>
<property name="shadow">GTK_SHADOW_ETCHED_IN</property>
<property name="visible">yes</property>
<property name="label_yalign">0.5</property>
<property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
<child>
<widget class="GtkOptionMenu" id="filter">
<property name="border_width">5</property>
<property name="can_focus">yes</property>
<property name="history">0</property>
<property name="visible">yes</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="history">-1</property>
<child internal-child="menu">
<widget class="GtkMenu" id="convertwidget1">
<property name="visible">yes</property>
<property name="visible">True</property>
</widget>
</child>
</widget>
</child>
<child>
<widget class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="label" translatable="yes">Filter</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>
</widget>
<packing>
<property name="type">label_item</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">yes</property>
<property name="fill">yes</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkFrame" id="frame3">
<property name="border_width">5</property>
<property name="label" translatable="yes">Encoding</property>
<property name="visible">True</property>
<property name="label_xalign">0</property>
<property name="shadow">GTK_SHADOW_ETCHED_IN</property>
<property name="visible">yes</property>
<property name="label_yalign">0.5</property>
<property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
<child>
<widget class="GtkVBox" id="vbox2">
<property name="homogeneous">no</property>
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<property name="visible">yes</property>
<child>
<widget class="GtkRadioButton" id="ansel">
<property name="border_width">2</property>
<property name="can_focus">yes</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">ANSEL</property>
<property name="active">no</property>
<property name="draw_indicator">yes</property>
<property name="visible">yes</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">no</property>
<property name="fill">no</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkRadioButton" id="radiobutton2">
<property name="border_width">2</property>
<property name="can_focus">yes</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">UNICODE</property>
<property name="active">no</property>
<property name="draw_indicator">yes</property>
<property name="visible">yes</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="active">True</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<property name="group">ansel</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">no</property>
<property name="fill">no</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
</widget>
</child>
<child>
<widget class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="label" translatable="yes">Encoding</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>
</widget>
<packing>
<property name="type">label_item</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">yes</property>
<property name="fill">yes</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkFrame" id="frame1">
<property name="border_width">5</property>
<property name="label" translatable="yes">Options</property>
<property name="visible">True</property>
<property name="label_xalign">0</property>
<property name="shadow">GTK_SHADOW_ETCHED_IN</property>
<property name="visible">yes</property>
<property name="label_yalign">0.5</property>
<property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
<child>
<widget class="GtkVBox" id="vbox3">
<property name="homogeneous">no</property>
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<property name="visible">yes</property>
<child>
<widget class="GtkHBox" id="hbox1">
<property name="homogeneous">no</property>
<property name="spacing">0</property>
<property name="visible">yes</property>
<widget class="GtkTable" id="table2">
<property name="visible">True</property>
<property name="n_rows">2</property>
<property name="n_columns">2</property>
<property name="homogeneous">False</property>
<property name="row_spacing">0</property>
<property name="column_spacing">0</property>
<child>
<widget class="GtkLabel" id="label6">
<property name="visible">True</property>
<property name="label" translatable="yes">Copyright</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.001</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">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_padding">3</property>
<property name="y_padding">3</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label5">
<property name="visible">True</property>
<property name="label" translatable="yes">Target</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">no</property>
<property name="xalign">0.5</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">5</property>
<property name="ypad">0</property>
<property name="visible">yes</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">no</property>
<property name="fill">no</property>
<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_padding">3</property>
<property name="y_padding">3</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkOptionMenu" id="target">
<property name="can_focus">yes</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="history">0</property>
<property name="visible">yes</property>
<child internal-child="menu">
<widget class="GtkMenu" id="convertwidget2">
<property name="visible">yes</property>
<property name="visible">True</property>
<child>
<widget class="GtkMenuItem" id="convertwidget3">
<property name="visible">True</property>
<property name="label" translatable="yes">Standard GEDCOM 5.5</property>
<property name="visible">yes</property>
<property name="use_underline">True</property>
</widget>
</child>
</widget>
</child>
</widget>
<packing>
<property name="padding">5</property>
<property name="expand">no</property>
<property name="fill">no</property>
<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="x_padding">3</property>
<property name="y_padding">3</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkOptionMenu" id="copyright">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="history">0</property>
<child>
<widget class="GtkMenu" id="menu1">
<child>
<widget class="GtkMenuItem" id="standard_copyright1">
<property name="visible">True</property>
<property name="label" translatable="yes">Standard Copyright</property>
<property name="use_underline">True</property>
<signal name="activate" handler="standard_copyright" last_modification_time="Tue, 11 Feb 2003 05:17:56 GMT"/>
</widget>
</child>
<child>
<widget class="GtkMenuItem" id="gnu_free">
<property name="visible">True</property>
<property name="label" translatable="yes">GNU Free Documentation License</property>
<property name="use_underline">True</property>
<signal name="activate" handler="gnu_free" last_modification_time="Tue, 11 Feb 2003 05:17:56 GMT"/>
</widget>
</child>
<child>
<widget class="GtkMenuItem" id="no_copyright1">
<property name="visible">True</property>
<property name="label" translatable="yes">No Copyright</property>
<property name="use_underline">True</property>
<signal name="activate" handler="no_copyright" last_modification_time="Tue, 11 Feb 2003 05:17:56 GMT"/>
</widget>
</child>
</widget>
</child>
</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="x_padding">3</property>
<property name="y_padding">3</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">no</property>
<property name="fill">no</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkCheckButton" id="private">
<property name="border_width">3</property>
<property name="can_focus">yes</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Do not include records marked private</property>
<property name="active">yes</property>
<property name="draw_indicator">yes</property>
<property name="visible">yes</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="active">True</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">no</property>
<property name="fill">no</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkCheckButton" id="restrict">
<property name="border_width">3</property>
<property name="can_focus">yes</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Restrict data on living people</property>
<property name="active">yes</property>
<property name="draw_indicator">yes</property>
<property name="visible">yes</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="active">True</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">no</property>
<property name="fill">no</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
</widget>
</child>
<child>
<widget class="GtkLabel" id="label3">
<property name="visible">True</property>
<property name="label" translatable="yes">Options</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>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">yes</property>
<property name="fill">yes</property>
<property name="type">label_item</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">yes</property>
<property name="fill">yes</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">4</property>
<property name="expand">yes</property>
<property name="fill">yes</property>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
</child>
</widget>
<widget class="GtkDialog" id="exportprogress">
<property name="visible">True</property>
<property name="title" translatable="yes">Export GEDCOM file</property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="modal">no</property>
<property name="allow_shrink">no</property>
<property name="allow_grow">yes</property>
<property name="visible">yes</property>
<property name="window-position">GTK_WIN_POS_CENTER</property>
<property name="window_position">GTK_WIN_POS_NONE</property>
<property name="modal">False</property>
<property name="resizable">True</property>
<property name="destroy_with_parent">False</property>
<property name="has_separator">True</property>
<child internal-child="vbox">
<widget class="GtkVBox" id="dialog-vbox2">
<property name="homogeneous">no</property>
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">8</property>
<property name="visible">yes</property>
<child internal-child="action_area">
<widget class="GtkHButtonBox" id="dialog-action_area2">
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<property name="spacing">8</property>
<property name="visible">yes</property>
<child>
<widget class="GtkButton" id="close">
<property name="can_default">yes</property>
<property name="can_focus">yes</property>
<property name="visible">yes</property>
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-close</property>
<property name="use_stock">yes</property>
<property name="use_underline">yes</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="response_id">0</property>
<signal name="clicked" handler="on_close_clicked" object="exportprogress"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">no</property>
<property name="fill">yes</property>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack_type">GTK_PACK_END</property>
</packing>
</child>
<child>
<widget class="GtkVBox" id="vbox4">
<property name="homogeneous">no</property>
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<property name="visible">yes</property>
<child>
<widget class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="label" translatable="yes">GEDCOM Export</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">no</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="visible">yes</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">no</property>
<property name="fill">no</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkHSeparator" id="hseparator2">
<property name="visible">yes</property>
<property name="visible">True</property>
</widget>
<packing>
<property name="padding">5</property>
<property name="expand">no</property>
<property name="fill">yes</property>
<property name="expand">False</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkTable" id="table1">
<property name="homogeneous">no</property>
<property name="visible">True</property>
<property name="n_rows">3</property>
<property name="n_columns">2</property>
<property name="homogeneous">False</property>
<property name="row_spacing">0</property>
<property name="column_spacing">0</property>
<property name="n-rows">3</property>
<property name="n-columns">2</property>
<property name="visible">yes</property>
<child>
<widget class="GtkLabel" id="label4">
<property name="visible">True</property>
<property name="label" translatable="yes">Sources</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">no</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">0</property>
<property name="ypad">0</property>
<property name="visible">yes</property>
</widget>
<packing>
<property name="left_attach">0</property>
@ -444,14 +614,17 @@
<child>
<widget class="GtkLabel" id="label3">
<property name="visible">True</property>
<property name="label" translatable="yes">Families</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">no</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">0</property>
<property name="ypad">0</property>
<property name="visible">yes</property>
</widget>
<packing>
<property name="left_attach">0</property>
@ -467,14 +640,17 @@
<child>
<widget class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="label" translatable="yes">People</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
<property name="wrap">no</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">0</property>
<property name="ypad">0</property>
<property name="visible">yes</property>
</widget>
<packing>
<property name="left_attach">0</property>
@ -490,95 +666,79 @@
<child>
<widget class="GtkProgressBar" id="pbar">
<property name="bar_style">GTK_PROGRESS_CONTINUOUS</property>
<property name="visible">True</property>
<property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property>
<property name="activity_mode">no</property>
<property name="show_text">no</property>
<property name="format" translatable="yes">%P %%</property>
<property name="fraction">0</property>
<property name="pulse_step">0.1</property>
<property name="activity_mode">False</property>
<property name="show_text">False</property>
<property name="text_xalign">0.5</property>
<property name="text_yalign">0.5</property>
<property name="visible">yes</property>
<property name="adjustment">0 0 100 1 10 10</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="x_padding">0</property>
<property name="y_padding">0</property>
<property name="x_options">expand|fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkProgressBar" id="fbar">
<property name="bar_style">GTK_PROGRESS_CONTINUOUS</property>
<property name="visible">True</property>
<property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property>
<property name="activity_mode">no</property>
<property name="show_text">no</property>
<property name="format" translatable="yes">%P %%</property>
<property name="fraction">0</property>
<property name="pulse_step">0.1</property>
<property name="activity_mode">False</property>
<property name="show_text">False</property>
<property name="text_xalign">0.5</property>
<property name="text_yalign">0.5</property>
<property name="visible">yes</property>
<property name="adjustment">0 0 100 1 10 10</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="x_padding">0</property>
<property name="y_padding">0</property>
<property name="x_options">expand|fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkProgressBar" id="sbar">
<property name="bar_style">GTK_PROGRESS_CONTINUOUS</property>
<property name="visible">True</property>
<property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property>
<property name="activity_mode">no</property>
<property name="show_text">no</property>
<property name="format" translatable="yes">%P %%</property>
<property name="fraction">0</property>
<property name="pulse_step">0.1</property>
<property name="activity_mode">False</property>
<property name="show_text">False</property>
<property name="text_xalign">0.5</property>
<property name="text_yalign">0.5</property>
<property name="visible">yes</property>
<property name="adjustment">0 0 100 1 10 10</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_padding">0</property>
<property name="y_padding">0</property>
<property name="x_options">expand|fill</property>
<property name="y_options"></property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">yes</property>
<property name="fill">yes</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">yes</property>
<property name="fill">yes</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">4</property>
<property name="expand">yes</property>
<property name="fill">yes</property>
</packing>
</child>
</widget>
</glade-interface>

File diff suppressed because it is too large Load Diff