Updated dialogs

svn: r1314
This commit is contained in:
Don Allingham 2003-02-24 04:51:57 +00:00
parent 7778b0c754
commit 0f616d0b90
56 changed files with 1906 additions and 714 deletions

6
NEWS
View File

@ -1,3 +1,9 @@
Version 0.9.1
* Custom paper sizes may be set for reports
* Witnesses may be added to an event. The witnesses do not have to be in
the database, in which case only a string for a name is kept.
* Improved Dialogs to be compliant with GNOME Human Interface Guidelines.
Version 0.9.0
* GNOME 2.0 support. Requires pygtk2 and gnome-python2.
* The single person list has been replaced with a tabbed person list, sort on

Binary file not shown.

View File

@ -100,8 +100,9 @@ class AddMediaObject:
external = self.glade.get_widget("private")
if os.path.exists(filename) == 0:
msgstr = _("%s is not a valid file name or does not exist.")
ErrorDialog(msgstr % filename)
msgstr = _("Cannot import %s")
msgstr2 = _("The filename supplied could not be found.")
ErrorDialog(msgstr % filename, msgstr2)
return
type = Utils.get_mime_type(filename)

View File

@ -114,8 +114,8 @@ class Bookmarks :
up.connect('clicked', self.up_clicked)
down.connect('clicked',self.down_clicked)
delete.connect('clicked',self.delete_clicked)
self.top.add_button(gtk.STOCK_OK,0)
self.top.add_button(gtk.STOCK_CANCEL,1)
self.top.add_button(gtk.STOCK_OK,0)
bbox.add(up)
bbox.add(down)
bbox.add(delete)

View File

@ -51,7 +51,7 @@ import AutoComp
import ListModel
import RelLib
from DateEdit import DateEdit
from QuestionDialog import QuestionDialog, WarningDialog, ErrorDialog
from QuestionDialog import QuestionDialog, WarningDialog, ErrorDialog, SaveDialog
from intl import gettext as _
@ -799,20 +799,28 @@ class EditPerson:
"""If the data has changed, give the user a chance to cancel
the close window"""
if self.did_data_change():
QuestionDialog(_('Abandon Changes'),
_("Are you sure you want to abandon your changes?"),
self.cancel_callback)
n = "<i>%s</i>" % self.person.getPrimaryName().getRegularName()
SaveDialog(_('Save Changes to %s?' % n),
_('If you close without saving, the changes you '
'have made will be lost'),
self.cancel_callback,
self.save)
else:
self.gallery.close()
self.window.destroy()
def save(self):
self.on_apply_person_clicked(None)
def on_delete_event(self,obj,b):
"""If the data has changed, give the user a chance to cancel
the close window"""
if self.did_data_change():
QuestionDialog(_('Abandon Changes'),
_("Are you sure you want to abandon your changes?"),
self.cancel_callback)
SaveDialog(_('Save Changes to %s?' % n),
_('If you close without saving, the changes you '
'have made will be lost'),
self.cancel_callback,
self.save)
return 1
else:
self.gallery.close()
@ -1306,6 +1314,7 @@ class EditPerson:
Utils.modified()
if error == 1:
msg2 = _("Problem changing the gender")
msg = _("Changing the gender caused problems "
"with marriage information.\nPlease check "
"the person's marriages.")

View File

@ -35,6 +35,7 @@ import const
import Utils
import GrampsCfg
import ImageSelect
import ListModel
from intl import gettext as _
@ -150,31 +151,35 @@ class EditSource:
f_attr_list.append((name,v.getType()))
slist = self.top_window.get_widget('slist')
titles = [(_('Source Type'),0,150),(_('Object'),1,150),(_('Value'),2,150)]
self.model = ListModel.ListModel(slist,titles)
if len(p_event_list) > 0:
for p in p_event_list:
slist.append([_("Individual Events"),p[0],
const.display_pevent(p[1])])
self.model.add([_("Individual Events"),p[0],
const.display_pevent(p[1])])
if len(p_attr_list) > 0:
for p in p_attr_list:
slist.append([_("Individual Attributes"),p[0],
const.display_pattr(p[1])])
self.model.add([_("Individual Attributes"),p[0],
const.display_pattr(p[1])])
if len(p_name_list) > 0:
for p in p_name_list:
slist.append([_("Individual Names"),p[0],p[1]])
self.model.add([_("Individual Names"),p[0],p[1]])
if len(f_event_list) > 0:
for p in f_event_list:
slist.append([_("Family Events"),p[0],
const.display_fevent(p[1])])
self.model.add([_("Family Events"),p[0],
const.display_fevent(p[1])])
if len(f_attr_list) > 0:
for p in f_event_list:
slist.append([_("Family Attributes"),p[0],
const.display_fattr(p[1])])
self.model.add([_("Family Attributes"),p[0],
const.display_fattr(p[1])])
if len(m_list) > 0:
for p in m_list:
slist.append([_("Media Objects"),p,''])
self.model.add([_("Media Objects"),p,''])
if len(p_list) > 0:
for p in p_list:
slist.append([_("Places"),p,''])
self.model.add([_("Places"),p,''])
def on_source_apply_clicked(self,obj):

View File

@ -34,6 +34,7 @@ import gtk.glade
#
#-------------------------------------------------------------------------
import Sources
import Witness
import const
import Utils
import GrampsCfg
@ -66,9 +67,13 @@ class EventEditor:
if event:
self.srcreflist = self.event.getSourceRefList()
self.witnesslist = self.event.get_witness_list()
if not self.witnesslist:
self.witnesslist = []
self.date = Date.Date(self.event.getDateObj())
else:
self.srcreflist = []
self.witnesslist = []
self.date = Date.Date(None)
self.top = gtk.glade.XML(const.dialogFile, "event_edit")
@ -77,6 +82,7 @@ class EventEditor:
self.place_field = self.top.get_widget("eventPlace")
self.cause_field = self.top.get_widget("eventCause")
self.slist = self.top.get_widget("slist")
self.wlist = self.top.get_widget("wlist")
self.place_combo = self.top.get_widget("eventPlace_combo")
self.date_field = self.top.get_widget("eventDate")
self.cause_field = self.top.get_widget("eventCause")
@ -101,6 +107,11 @@ class EventEditor:
self.top.get_widget('add_src'),
self.top.get_widget('del_src'))
self.witnesstab = Witness.WitnessTab(self.witnesslist,self.parent,
self.top,self.wlist,
self.top.get_widget('add_witness'),
self.top.get_widget('del_witness'))
AutoComp.AutoCombo(self.event_menu,list)
AutoComp.AutoEntry(self.place_field,self.pmap.keys())
@ -192,6 +203,7 @@ class EventEditor:
if self.event == None:
self.event = RelLib.Event()
self.event.setSourceRefList(self.srcreflist)
self.event.set_witness_list(self.witnesslist)
self.parent.elist.append(self.event)
self.update_event(ename,self.date,eplace_obj,edesc,enote,epriv,ecause)
@ -219,6 +231,7 @@ class EventEditor:
dobj = self.event.getDateObj()
self.event.setSourceRefList(self.srcreflist)
self.event.set_witness_list(self.witnesslist)
if Date.compare_dates(dobj,date) != 0:
self.event.setDateObj(date)

View File

@ -66,7 +66,12 @@ class FamilyView:
def __init__(self,parent):
self.parent = parent
self.top = parent.gtop
self.ap_data = self.top.get_widget('ap_data').get_buffer()
self.ap_data = self.top.get_widget('ap_data')
self.ap_model = gtk.ListStore(gobject.TYPE_STRING)
self.ap_data.set_model(self.ap_model)
column = gtk.TreeViewColumn('',gtk.CellRendererText(),text=0)
self.ap_data.append_column(column)
self.ap_data.connect('button-press-event',self.edit_active_person)
self.swap_btn = self.top.get_widget('swap_spouse_btn')
self.add_spouse_btn = self.top.get_widget('add_spouse')
@ -142,6 +147,10 @@ class FamilyView:
(_('Gender'),100,-1), (_('Birth Date'),150,-1),
(_('Status'),150,-1), ('',0,-1) ])
def edit_active_person(self,obj,event):
if event.type == gtk.gdk._2BUTTON_PRESS and event.button == 1:
self.parent.load_person(self.person)
def on_child_list_button_press(self,obj,event):
if event.type == gtk.gdk._2BUTTON_PRESS and event.button == 1:
model, iter = self.child_selection.get_selected()
@ -217,9 +226,13 @@ class FamilyView:
def remove_spouse(self,obj):
if self.selected_spouse:
name = GrampsCfg.nameof(self.selected_spouse)
QuestionDialog(_('Delete Spouse'),
_('Do you wish to remove %s as a spouse?') % name,
nap = GrampsCfg.nameof(self.person)
nsp = GrampsCfg.nameof(self.selected_spouse)
QuestionDialog(_('Remove %s as a spouse of %s?') % (nsp,nap),
_('Removing a spouse removes the relationship betwen '
'the spouse and the active person. It does not '
'remove the spouse from the database'),
_('Remove Spouse'),
self.really_remove_spouse)
elif self.family and not self.family.getChildList():
self.really_remove_spouse()
@ -288,7 +301,7 @@ class FamilyView:
self.child_model.clear()
self.sp_parents_model.clear()
self.ap_parents_model.clear()
self.ap_data.set_text('')
self.ap_model.clear()
def load_family(self,family=None):
self.person = self.parent.active_person
@ -300,10 +313,10 @@ class FamilyView:
self.person.getBirth().getDate(),
self.person.getDeath().getDate())
try:
self.ap_data.set_text(n,len(n))
except TypeError:
self.ap_data.set_text(n)
self.ap_model.clear()
self.ap_data.get_selection().set_mode(gtk.SELECTION_NONE)
iter = self.ap_model.append()
self.ap_model.set(iter,0,n)
self.selected_spouse = None
self.spouse_model.clear()
@ -462,8 +475,13 @@ class FamilyView:
def del_parents_clicked(self,obj):
if len(self.person.getParentList()) == 0:
return
QuestionDialog(_('Delete Parents'),
_('Do you wish to remove the selected parents?'),
n = GrampsCfg.nameof(self.person)
QuestionDialog(_('Remove Parents of %s') % n,
_('Removing the parents of a person removes the person as a '
'child of the parents. The parents are not removed from the '
'database, and the relationship between the parents '
'is not removed.'),
_('Remove Parents'),
self.really_del_parents)
def really_del_parents(self):
@ -472,8 +490,12 @@ class FamilyView:
def del_sp_parents(self,obj):
if not self.selected_spouse or len(self.selected_spouse.getParentList()) == 0:
return
QuestionDialog(_('Delete Parents'),
_('Do you wish to remove the selected parents?'),
QuestionDialog(_('Remove Parents of %s') % n,
_('Removing the parents of a person removes the person as a '
'child of the parents. The parents are not removed from the '
'database, and the relationship between the parents '
'is not removed.'),
_('Remove Parents'),
self.really_del_sp_parents)
def really_del_sp_parents(self):

View File

@ -174,6 +174,12 @@ class GrampsParser:
else:
self.placeobj.set_main_location(loc)
self.locations = self.locations + 1
def start_witness(self,attrs):
if attrs.has_key('ref'):
self.witness = RelLib.Witness(RelLib.Event.ID,attrs['ref'])
if attrs.has_key('name'):
self.witness = RelLib.Witness(RelLib.Event.NAME,attrs['name'])
def start_coord(self,attrs):
if attrs.has_key('lat'):
@ -484,6 +490,10 @@ class GrampsParser:
def stop_attribute(self,tag):
self.attribute = None
def stop_witness(self,tag):
self.witness.set_comment(tag)
self.event.add_witness(self.witness)
def stop_attr_type(self,tag):
self.attribute.setType(tag)
@ -740,6 +750,7 @@ class GrampsParser:
"attr_type" : (None,stop_attr_type),
"attr_value" : (None,stop_attr_value),
"bookmark" : (start_bmark, None),
"witness" : (start_witness,stop_witness),
"bookmarks" : (None, None),
"child" : (start_child,None),
"childof" : (start_childof,None),

View File

@ -24,7 +24,7 @@ from ZODB.dbmStorage import gdbmStorage
from ZODB.DB import DB
from BTrees.OOBTree import OOBTree
from UserDict import UserDict
from RelLib import GrampsDB, Person
import RelLib
import const
class PersistentReference(Persistent):
@ -93,7 +93,7 @@ class PersonWrapper:
self._notifyChange()
for key, value in Person.__dict__.items():
for key, value in RelLib.Person.__dict__.items():
if not key.startswith('_'):
code = ("def %s(self, *args, **kw): "
"return apply(self._real.%s, args, kw)") % (key, key)
@ -122,11 +122,11 @@ class PersonMap(Persistent, UserDict):
# This probably shouldn't be called anyway.
raise NotImplementedError
class GrampsZODB(GrampsDB):
class GrampsZODB(RelLib.GrampsDB):
def __init__(self):
self.conn = None
GrampsDB.__init__(self)
RelLib.GrampsDB.__init__(self)
def get_type(self):
return 'GrampsZODB'
@ -141,7 +141,7 @@ class GrampsZODB(GrampsDB):
return 0
def new(self):
GrampsDB.new(self)
RelLib.GrampsDB.new(self)
self.familyMap = OOBTree()
self.personMap = PersonMap()
self.sourceMap = OOBTree()
@ -234,7 +234,7 @@ class GrampsZODB(GrampsDB):
def setDefaultPerson(self,person):
"""sets the default Person to the passed instance"""
GrampsDB.setDefaultPerson(self,person)
RelLib.GrampsDB.setDefaultPerson(self,person)
self.root['default'] = person

View File

@ -140,7 +140,9 @@ class ImageSelect:
description = self.description.get_text()
if os.path.exists(filename) == 0:
ErrorDialog(_("That is not a valid file name."));
msgstr = _("Cannot import %s")
msgstr2 = _("The filename supplied could not be found.")
ErrorDialog(msgstr,msgstr2)
return
already_imported = None
@ -432,8 +434,7 @@ class Gallery(ImageSelect):
tfile,headers = u.retrieve(d)
except IOError, msg:
t = _("Could not import %s") % d
ErrorDialog("%s\n%s %d" % (t,msg[0],msg[1]))
ErrorDialog(t,str(msg))
return
mime = Utils.get_mime_type(tfile)
photo = RelLib.Photo()

View File

@ -21,6 +21,11 @@
from gobject import TYPE_STRING, TYPE_PYOBJECT
import gtk
#-------------------------------------------------------------------------
#
# ListModel
#
#-------------------------------------------------------------------------
class ListModel:
def __init__(self,tree,dlist,select_func=None,event_func=None,mode=gtk.SELECTION_SINGLE):
self.tree = tree

View File

@ -396,10 +396,12 @@ class Marriage:
if self.did_data_change():
global quit
self.quit = obj
QuestionDialog(_('Abandon Changes'),
_("Data was modified. Are you sure you "
"want to abandon your changes?"),
self.cancel_callback)
SaveDialog(_('Save Changes?' % n),
_('If you close without saving, the changes you '
'have made will be lost'),
self.cancel_callback,
self.save)
else:
Utils.destroy_passed_object(obj)
@ -407,6 +409,9 @@ class Marriage:
self.on_cancel_edit(obj)
def on_close_marriage_editor(self,obj):
self.save()
def save(self):
idval = self.gid.get_text()
family = self.family
if idval != family.getId():

View File

@ -255,9 +255,12 @@ class MediaView:
mobj = self.db.getObject(id)
if self.is_object_used(mobj):
ans = ImageSelect.DeleteMediaQuery(mobj,self.db,self.update)
QuestionDialog(_('Delete Object'),
_("This media object is currently being used. "
"Delete anyway?"),
QuestionDialog(_('Delete Media Object?'),
_('This media object is currently being used. '
'If you delete this object, it will be removed '
'from the database and from all records that '
'reference it.'),
_('Delete Media Object?'),
ans.query_response)
else:
self.db.removeObject(mobj.getId())
@ -326,9 +329,7 @@ class MediaView:
try:
tfile,headers = u.retrieve(d)
except IOError, msg:
t = _("Could not import %s") % d
ErrorDialog("%s\n%s %d" % (t,msg[0],msg[1]))
ErrorDialog(t,str(msg))
return
mime = Utils.get_mime_type(tfile)
photo = RelLib.Photo()

View File

@ -123,6 +123,7 @@ try:
parser = make_parser()
parser.setContentHandler(PageSizeParser(paper_sizes))
parser.parse(const.papersize)
paper_sizes.append(TextDoc.PaperStyle(_("Custom Size"),-1,-1))
except (IOError,OSError,SAXParseException):
paper_sizes = [
TextDoc.PaperStyle("Letter",27.94,21.59),
@ -133,5 +134,7 @@ except (IOError,OSError,SAXParseException):
TextDoc.PaperStyle("B6",17.6,12.5),
TextDoc.PaperStyle("C4",32.4,22.9),
TextDoc.PaperStyle("C5",22.9,16.2),
TextDoc.PaperStyle("C6",16.2,11.4)
TextDoc.PaperStyle("C6",16.2,11.4),
TextDoc.PaperStyle(_("Custom Size"),-1,-1)
]

View File

@ -132,8 +132,9 @@ class PlaceView:
self.selection.selected_foreach(self.blist,mlist)
if len(mlist) != 2:
msg = _("Exactly two places must be selected to perform a merge")
ErrorDialog(msg)
msg = _("Cannot merge people.")
msg2 = _("Exactly two people must be selected to perform a merge.")
ErrorDialog(msg,msg2)
else:
import MergeData
MergeData.MergePlaces(self.db,mlist[0],mlist[1],self.load_places)
@ -187,8 +188,12 @@ class PlaceView:
if used == 1:
ans = EditPlace.DeletePlaceQuery(place,self.db,self.update_display)
QuestionDialog(_('Delete Place'),
_("%s is currently being used.\nDelete anyway?" % place.get_title()),
QuestionDialog(_('Delete %s') % place.get_title(),
_('This place is currently being used at least one '
'record in the database. Deleting it will remove it '
'from the database and remove it from all records '
'the reference it.'),
_('Delete Place'),
ans.query_response)
else:
self.db.removePlace(place.getId())

View File

@ -19,65 +19,86 @@
#
import gtk
import gtk.glade
import const
from intl import gettext as _
class QuestionDialog:
def __init__(self,title,msg,task1,task2=None):
title = '%s - GRAMPS' % title
self.top = gtk.Dialog()
self.top.set_title(title)
label = gtk.Label(msg)
label.show()
hbox = gtk.HBox()
image = gtk.Image()
image.set_from_stock(gtk.STOCK_DIALOG_QUESTION,gtk.ICON_SIZE_DIALOG)
hbox.set_spacing(10)
hbox.pack_start(image)
hbox.add(label)
self.top.vbox.pack_start(hbox)
self.top.set_default_size(300,150)
self.task2 = task2
class SaveDialog:
def __init__(self,msg1,msg2,task1,task2):
self.xml = gtk.glade.XML(const.errdialogsFile,"savedialog")
self.top = self.xml.get_widget('savedialog')
self.task1 = task1
self.top.add_button(gtk.STOCK_YES,0)
self.top.add_button(gtk.STOCK_NO,1)
self.top.set_response_sensitive(1,gtk.TRUE)
self.top.set_response_sensitive(0,gtk.TRUE)
self.top.show_all()
if self.top.run():
self.my_task2()
else:
self.my_task1()
self.task2 = task2
label1 = self.xml.get_widget('label1')
label1.set_text('<span weight="bold" size="larger">%s</span>' % msg1)
label1.set_use_markup(gtk.TRUE)
label2 = self.xml.get_widget('label2')
label2.set_text(msg2)
label2.set_use_markup(gtk.TRUE)
def my_task1(self):
if self.task1:
response = self.top.run()
if response == gtk.RESPONSE_NO:
self.task1()
self.top.destroy()
def my_task2(self):
if self.task2:
elif response == gtk.RESPONSE_YES:
self.task2()
self.top.destroy()
class ErrorDialog:
def __init__(self,msg):
title = '%s - GRAMPS' % _('Error')
class QuestionDialog:
def __init__(self,msg1,msg2,label,task):
self.xml = gtk.glade.XML(const.errdialogsFile,"questiondialog")
self.top = self.xml.get_widget('questiondialog')
self.top.set_title('')
label1 = self.xml.get_widget('label1')
label1.set_text('<span weight="bold" size="larger">%s</span>' % msg1)
label1.set_use_markup(gtk.TRUE)
self.top = gtk.Dialog()
self.top.set_title(title)
label = gtk.Label(msg)
label.show()
hbox = gtk.HBox()
image = gtk.Image()
image.set_from_stock(gtk.STOCK_DIALOG_ERROR,gtk.ICON_SIZE_DIALOG)
hbox.set_spacing(10)
hbox.pack_start(image)
hbox.add(label)
self.top.vbox.pack_start(hbox)
self.top.set_default_size(300,150)
self.top.add_button(gtk.STOCK_OK,0)
self.top.set_response_sensitive(0,gtk.TRUE)
self.top.show_all()
label2 = self.xml.get_widget('label2')
label2.set_text(msg2)
label2.set_use_markup(gtk.TRUE)
self.xml.get_widget('okbutton').set_label(label)
response = self.top.run()
if response == gtk.RESPONSE_ACCEPT:
task()
self.top.destroy()
class OptionDialog:
def __init__(self,msg1,msg2,label1,task1,label2,task2):
self.xml = gtk.glade.XML(const.errdialogsFile,"optiondialog")
self.top = self.xml.get_widget('optiondialog')
self.top.set_title('')
label1 = self.xml.get_widget('label1')
label1.set_text('<span weight="bold" size="larger">%s</span>' % msg1)
label1.set_use_markup(gtk.TRUE)
label2 = self.xml.get_widget('label2')
label2.set_text(msg2)
label2.set_use_markup(gtk.TRUE)
response = self.top.run()
if response == gtk.RESPONSE_NO:
task1()
else:
task2()
self.top.destroy()
class ErrorDialog:
def __init__(self,msg1,msg2=""):
self.xml = gtk.glade.XML(const.errdialogsFile,"errdialog")
self.top = self.xml.get_widget('errdialog')
label1 = self.xml.get_widget('label1')
label2 = self.xml.get_widget('label2')
label1.set_text('<span weight="bold" size="larger">%s</span>' % msg1)
label1.set_use_markup(gtk.TRUE)
label2.set_text(msg2)
self.top.run()
self.top.destroy()

View File

@ -81,22 +81,22 @@ def importData(database, filename, callback):
else:
xml_file = open(filename,"r")
except IOError,msg:
ErrorDialog(_("%s could not be opened\n") % filename + str(msg))
ErrorDialog(_("%s could not be opened") % filename,str(msg))
return 0
except:
ErrorDialog(_("%s could not be opened\n") % filename)
ErrorDialog(_("%s could not be opened") % filename)
return 0
try:
parser.parse(xml_file)
except IOError,msg:
ErrorDialog(_("Error reading %s") % filename + "\n" + str(msg))
ErrorDialog(_("Error reading %s") % filename,str(msg))
import traceback
traceback.print_exc()
return 0
except ExpatError, msg:
ErrorDialog(_("Error reading %s") % filename + "\n" + \
_("The file is probably either corrupt or not a valid GRAMPS database.") + "\n" + str(msg))
ErrorDialog(_("Error reading %s") % filename,
_("The file is probably either corrupt or not a valid GRAMPS database."))
return 0
except ValueError, msg:
if str(msg)[0:16] == "Incorrect length":
@ -150,18 +150,17 @@ def loadData(database, filename, callback=None):
else:
xml_file = open(filename,"r")
except IOError,msg:
filemsg = _("%s could not be opened\n") % filename
ErrorDialog(filemsg + str(msg))
filemsg = _("%s could not be opened.") % filename
ErrorDialog(filemsg,str(msg))
return 0
except:
ErrorDialog(_("%s could not be opened\n") % filename)
ErrorDialog(_("%s could not be opened.") % filename)
return 0
try:
parser.parse(xml_file)
except IOError,msg:
errmsg = "%s\n%s" % (_("Error reading %s") % filename,str(msg))
ErrorDialog(errmsg)
ErrorDialog(_("Error reading %s") % filename, str(msg))
import traceback
traceback.print_exc()
return 0
@ -194,8 +193,7 @@ def loadRevision(database, file, filename, revision, callback=None):
try:
parser.parse(file)
except IOError,msg:
errmsg = "%s\n%s" % (_("Error reading %s") % filename, str(msg))
ErrorDialog(errmsg)
ErrorDialog(_("Error reading %s") % filename,str(msg))
import traceback
traceback.print_exc()
return 0

View File

@ -53,7 +53,8 @@ def import_media_object(filename,path,base):
import shutil
if not os.path.exists(filename):
ErrorDialog(_("Could not import %s\nThe file has been moved or deleted") % filename)
ErrorDialog(_("Could not import %s") % filename,
_("The file has been moved or deleted"))
return ""
ext = os.path.splitext(filename)[1]
@ -67,7 +68,7 @@ def import_media_object(filename,path,base):
if not os.path.exists(thumb):
os.mkdir(thumb)
except IOError,msg:
ErrorDialog(_("Could not create %s") % thumb + "\n" + str(msg))
ErrorDialog(_("Could not create %s") % thumb,str(msg))
return ""
except:
ErrorDialog(_("Could not create %s") % thumb)
@ -77,13 +78,13 @@ def import_media_object(filename,path,base):
path = "%s/%s.jpg" % (thumb,base)
mk_thumb(filename,path,const.thumbScale)
except:
ErrorDialog(_("Error creating the thumbnail : %s"))
ErrorDialog(_("Error creating the thumbnail: %s"))
return ""
try:
shutil.copy(filename,name)
except IOError,msg:
ErrorDialog(_("Error copying %s") % filename + "\n" + msg)
ErrorDialog(_("Error copying %s") % filename,str(msg))
return ""
else:
@ -131,7 +132,7 @@ def mk_thumb(source,dest,size):
if not os.path.exists(dir):
os.mkdir(dir)
except IOError,msg:
ErrorDialog(_("Could not create %s") % dir + "\n" + str(msg))
ErrorDialog(_("Could not create %s") % dir, str(msg))
return
except:
ErrorDialog(_("Could not create %s") % dir)
@ -142,19 +143,20 @@ def mk_thumb(source,dest,size):
os.remove(dest)
except IOError,msg:
errmsg = _("Could not replace %s") % dir
ErrorDialog(errmsg + "\n" + msg)
ErrorDialog(errmsg,msg)
return
if not os.path.exists(source):
ErrorDialog(_("Could not create a thumbnail for %s\nThe file has been moved or deleted") % source)
ErrorDialog(_("Could not create a thumbnail for %s") % source,
_("The file has been moved or deleted."))
try:
img = ImgManip.ImgManip(source)
img.jpg_thumbnail(dest,size,size)
except:
import sys
msg = "%s\n%s %s" % (source,sys.exc_type,sys.exc_value)
ErrorDialog(_("Could not create a thumbnail for %s") % msg)
ErrorDialog(_("Could not create a thumbnail for %s") % source,
"%s %s" % (sys.exc_type,sys.exc_value))
return
#-------------------------------------------------------------------------

View File

@ -1334,10 +1334,12 @@ class Person(Persistent):
return not_too_old(self.birth.getDateObj().get_start_date())
return 1
class Event(DataObj):
"""Event record, recording the event type, description, place, and date
of a particular event"""
NAME = 0
ID = 1
def __init__(self,source=None):
"""creates a new Event instance, copying from the source if present"""
@ -1350,13 +1352,33 @@ class Event(DataObj):
self.description = source.description
self.name = source.name
self.cause = source.cause
if source.witness:
self.witness = source.witness[:]
else:
self.witness = None
else:
self.place = None
self.date = None
self.description = ""
self.name = ""
self.cause = ""
self.witness = None
def get_witness_list(self):
return self.witness
def set_witness_list(self,list):
if list:
self.witness = list[:]
else:
self.witness = None
def add_witness(self,value):
if self.witness:
self.witness.append(value)
else:
self.witness = [value]
def is_empty(self):
date = self.getDateObj()
place = self.getPlace()
@ -1469,6 +1491,29 @@ class Event(DataObj):
"""sets the Date object associated with the Event"""
self.date = date
class Witness:
def __init__(self,type=Event.NAME,val="",comment=""):
self.set_type(type)
self.set_value(val)
self.set_comment(comment)
def set_type(self,type):
self.type = type
def get_type(self):
return self.type
def set_value(self,val):
self.val = val
def get_value(self):
return self.val
def set_comment(self,comment):
self.comment = comment
def get_comment(self):
return self.comment
class Family(Persistent):
"""Represents a family unit in the gramps database"""

View File

@ -142,7 +142,6 @@ class Report:
self.ptop = gtk.Dialog()
self.ptop.set_title(title)
self.ptop.vbox.add(gtk.Label(header))
self.ptop.vbox.add(gtk.HSeparator())
self.ptop.vbox.set_spacing(10)
self.pbar = gtk.ProgressBar()
self.pbar_max = total
@ -174,7 +173,7 @@ class ReportDialog:
"""
frame_pad = 5
border_pad = 2
border_pad = 6
def __init__(self,database,person):
"""Initialize a dialog to request that the user select options
@ -196,10 +195,12 @@ class ReportDialog:
self.frames = {}
self.window = gtk.Dialog('GRAMPS')
self.ok = self.window.add_button(gtk.STOCK_OK,0)
self.ok.connect('clicked',self.on_ok_clicked)
self.cancel = self.window.add_button(gtk.STOCK_CANCEL,1)
self.ok = self.window.add_button(gtk.STOCK_OK,0)
self.ok.connect('clicked',self.on_ok_clicked)
self.cancel.connect('clicked',self.on_cancel)
self.window.set_response_sensitive(0,gtk.TRUE)
self.window.set_response_sensitive(1,gtk.TRUE)
self.window.set_resize_mode(0)
@ -465,9 +466,10 @@ class ReportDialog:
title = self.get_header(self.name)
label = gtk.Label(title)
label.set_padding(12,12)
label.set_size_request(450,10)
self.window.vbox.pack_start(label,gtk.TRUE,gtk.TRUE,ReportDialog.border_pad)
self.window.vbox.add(gtk.HSeparator())
self.window.vbox.set_border_width(12)
def setup_target_frame(self):
"""Set up the target frame of the dialog. This function
@ -498,7 +500,7 @@ class ReportDialog:
self.window.vbox.add(frame)
self.target_fileentry.set_default_path(self.get_default_directory())
if (self.get_target_is_directory()):
if self.get_target_is_directory():
self.target_fileentry.set_directory_entry(1)
self.target_fileentry.set_filename(self.get_default_directory())
@ -575,6 +577,17 @@ class ReportDialog:
self.output_notebook.set_show_border(0)
self.output_notebook.set_current_page(self.notebook_page)
self.window.vbox.add(self.output_notebook)
def size_changed(self,obj):
paper = self.papersize_menu.get_menu().get_active().get_data('i')
if paper.get_width() <= 0:
self.pwidth.set_sensitive(1)
self.pheight.set_sensitive(1)
else:
self.pwidth.set_sensitive(0)
self.pheight.set_sensitive(0)
self.pwidth.set_text("%.2f" % paper.get_width())
self.pheight.set_text("%.2f" % paper.get_height())
def setup_paper_frame(self):
"""Set up the paper selection frame of the dialog. This
@ -583,19 +596,45 @@ class ReportDialog:
its strings should be."""
(pagecount_map, start_text) = self.get_print_pagecount_map()
table = gtk.Table(2,4)
table = gtk.Table(2,5)
self.paper_frame.add(table)
self.papersize_menu = gtk.OptionMenu()
self.papersize_menu.connect('changed',self.size_changed)
self.orientation_menu = gtk.OptionMenu()
l = gtk.Label(_("Size"))
pad = ReportDialog.border_pad
l.set_alignment(1.0,0.5)
table.attach(l,0,1,0,1,gtk.FILL,gtk.FILL,pad,pad)
table.attach(self.papersize_menu,1,2,0,1,xpadding=pad,ypadding=pad)
l = gtk.Label(_("Height"))
l.set_alignment(1.0,0.5)
table.attach(l,2,3,0,1,xpadding=pad,ypadding=pad)
self.pheight = gtk.Entry()
self.pheight.set_sensitive(0)
table.attach(self.pheight,3,4,0,1,xpadding=pad,ypadding=pad)
l = gtk.Label(_("cm"))
l.set_alignment(0.0,0.5)
table.attach(l,4,5,0,1,xpadding=pad,ypadding=pad)
l = gtk.Label(_("Orientation"))
l.set_alignment(1.0,0.5)
table.attach(l,2,3,0,1,gtk.FILL,gtk.FILL,pad,pad)
table.attach(self.orientation_menu,3,4,0,1,xpadding=pad,ypadding=pad)
table.attach(l,0,1,1,2,gtk.FILL,gtk.FILL,pad,pad)
table.attach(self.orientation_menu,1,2,1,2,xpadding=pad,ypadding=pad)
l = gtk.Label(_("Width"))
l.set_alignment(1.0,0.5)
table.attach(l,2,3,1,2,xpadding=pad,ypadding=pad)
self.pwidth = gtk.Entry()
self.pwidth.set_sensitive(0)
table.attach(self.pwidth,3,4,1,2,xpadding=pad,ypadding=pad)
l = gtk.Label(_("cm"))
l.set_alignment(0.0,0.5)
table.attach(l,4,5,1,2,xpadding=pad,ypadding=pad)
PaperMenu.make_paper_menu(self.papersize_menu)
PaperMenu.make_orientation_menu(self.orientation_menu)
@ -754,8 +793,12 @@ class ReportDialog:
if string:
self.extra_textbox_label = gtk.Label(et_label)
self.extra_textbox_label.set_alignment(1.0,0)
swin = gtk.ScrolledWindow()
swin.set_shadow_type(gtk.SHADOW_IN)
swin.set_policy(gtk.POLICY_AUTOMATIC,gtk.POLICY_AUTOMATIC)
self.extra_textbox = gtk.TextView()
swin.add(self.extra_textbox)
try:
self.extra_textbox.get_buffer().set_text(string,len(string))
except TypeError:
@ -765,7 +808,7 @@ class ReportDialog:
self.add_tooltip(self.extra_textbox,et_tip)
table.attach(self.extra_textbox_label,0,1,row,row+1,xoptions=gtk.FILL,
yoptions=0,xpadding=pad,ypadding=pad)
table.attach(self.extra_textbox,1,2,row,row+1,
table.attach(swin,1,2,row,row+1,
yoptions=0,xpadding=pad,ypadding=pad)
row = row + 1
@ -817,7 +860,8 @@ class ReportDialog:
return None
if not self.get_target_is_directory() and os.path.isdir(self.target_path):
ErrorDialog(_("The filename that you gave is a directory.\n"
ErrorDialog(_("Invalid file name"),
_("The filename that you gave is a directory.\n"
"You need to provide a valid filename."))
return None
@ -844,6 +888,21 @@ class ReportDialog:
is displayed on the screen. The subclass will know which ones
it has enabled. This is for simplicity of programming."""
self.paper = self.papersize_menu.get_menu().get_active().get_data("i")
if self.paper.get_height() <= 0 or self.paper.get_width() <= 0:
try:
h = float(self.pheight.get_text())
w = float(self.pwidth.get_text())
if h <= 1.0 or w <= 1.0:
self.paper.set_height(29.7)
self.paper.set_width(21.0)
else:
self.paper.set_height(h)
self.paper.set_width(w)
except:
self.paper.set_height(29.7)
self.paper.set_width(21.0)
self.orien = self.orientation_menu.get_menu().get_active().get_data("i")
if self.pagecount_menu == None:
self.pagecount = 0

View File

@ -125,8 +125,11 @@ class SourceView:
if self.is_used(source):
ans = EditSource.DelSrcQuery(source,self.db,self.update)
QuestionDialog(_('Delete Source'),
_("This source is currently being used. Delete anyway?"),
QuestionDialog(_('Delete %s?') % source.getTitle(),
_('This source is currently being used. Deleting it '
'will remove it from the database and from all '
'records that reference it.'),
_('Delete Source'),
ans.query_response)
else:
self.db.removeSource(source.getId())

View File

@ -207,7 +207,6 @@ class SourceEditor:
self.source_ref = srcref
self.showSource = gtk.glade.XML(const.srcselFile, "sourceDisplay")
self.showSource.signal_autoconnect({
"on_combo_insert_text" : Utils.combo_insert_text,
"on_sourceok_clicked" : self.on_sourceok_clicked,
"on_source_changed" : self.on_source_changed,
"destroy_passed_object" : Utils.destroy_passed_object
@ -256,7 +255,6 @@ class SourceEditor:
self.pub_field.set_text("")
values = self.db.getSourceMap().values()
# values.sort(by_title)
sel_child = None
list = []
@ -311,14 +309,6 @@ class SourceEditor:
if self.active_source:
self.author_field.set_text(self.active_source.getAuthor())
self.pub_field.set_text(self.active_source.getPubInfo())
#-------------------------------------------------------------------------
#
#
#
#-------------------------------------------------------------------------
def by_title(a,b):
return cmp(a.getTitle(),b.getTitle())

View File

@ -102,7 +102,7 @@ class StyleListDisplay:
self.sheetlist.save()
except IOError,msg:
from QuestionDialog import ErrorDialog
ErrorDialog(_("Error saving stylesheet") + "\n" + str(msg))
ErrorDialog(_("Error saving stylesheet"),str(msg))
except:
import DisplayTrace
DisplayTrace.DisplayTrace()

View File

@ -25,6 +25,11 @@ import os
_BLKSIZE=512
nul = '\0'
#------------------------------------------------------------------------
#
# TarFile
#
#------------------------------------------------------------------------
class TarFile:
def __init__(self,name):
self.name = name
@ -69,13 +74,17 @@ class TarFile:
self.f.write('\0' * rem)
self.pos = self.pos + rem
def close(self):
rem = (_BLKSIZE*20) - (self.pos % (_BLKSIZE*20))
if rem != 0:
self.f.write('\0' * rem)
self.f.close()
#------------------------------------------------------------------------
#
# ReadTarFile
#
#------------------------------------------------------------------------
class ReadTarFile:
def __init__(self,name,wd):
self.name = name
@ -91,7 +100,7 @@ class ReadTarFile:
return
index = 0
for b in buf:
if b != '\0':
if b != nul:
index = index + 1
else:
if index == 0:
@ -122,7 +131,7 @@ class ReadTarFile:
return
index = 0
for b in buf:
if b != '\0':
if b != nul:
index = index + 1
else:
if index == 0:
@ -131,7 +140,6 @@ class ReadTarFile:
filename = buf[0:index]
self.f.read(24) # modes
l = self.f.read(12)
# length = int(l,8)
length_string = "";
for char in l:
if ord(char) != 0:
@ -143,7 +151,7 @@ class ReadTarFile:
self.f.read(64)
self.f.read(183)
foo = open(self.wd + os.sep + filename,"wb")
foo = open("%s/%s" % (self.wd,filename),"wb")
foo.write(self.f.read(length))
foo.close()
self.f.read(_BLKSIZE-(length%_BLKSIZE))
@ -151,7 +159,3 @@ class ReadTarFile:
def close(self):
self.f.close()
if __name__ == "__main__":
a = ReadTarFile("out.gpkg",".")
a.extract()
a.close()

View File

@ -412,102 +412,6 @@ def thumb_path(dir,mobj):
else:
return find_icon(type)
#-------------------------------------------------------------------------
#
# Sets up a delayed (0.005 sec) handler for text completion. Text
# completion cannot be handled directly in this routine because, for
# some reason, the select_region() function doesn't work when called
# from signal handlers. Go figure.
#
# Thanks to iain@nodata.demon.co.uk (in mail from 1999) for the idea
# to use a timer to get away from the problems with signal handlers
# and the select_region function.
#
#-------------------------------------------------------------------------
def combo_insert_text(combo,new_text,new_text_len,i_dont_care):
# One time setup to clear selected region when user moves on
if (not combo.get_data("signal_set")):
combo.set_data("signal_set",1)
combo.entry.connect("focus_out_event", combo_lost_focus, combo)
# Nuke the current timer if the user types fast enough
timer = combo.get_data("timer");
if (timer):
gtk.timeout_remove(timer)
# Setup a callback timer so we can operate outside of a signal handler
timer = gtk.timeout_add(5, combo_timer_callback, combo)
combo.set_data("timer", timer);
#-------------------------------------------------------------------------
#
# The combo box entry field lost focus. Go clear any selection. Why
# this form of a select_region() call works in a signal handler and
# the other form doesn't is a mystery.
#
#-------------------------------------------------------------------------
def combo_lost_focus(entry,a,b):
entry.select_region(0, 0)
#-------------------------------------------------------------------------
#
# The workhorse routine of file completion. This routine grabs the
# current text of the entry box, and grubs through the list item
# looking for any case insensitive matches. This routine relies on
# public knowledge of the Combo data structure, not on any private
# data.
#
# These three completion routines have only one gramps specific hook,
# and can be easily ported to any program.
#
#-------------------------------------------------------------------------
def combo_timer_callback(combo):
# Clear any timer
timer = combo.get_data("timer");
if (timer):
gtk.timeout_remove(timer)
# Get the user's text
entry = combo.entry
typed = entry.get_text()
if (not typed):
return
typed_lc = string.lower(typed)
# Walk the List in the combo box
for item in combo.list.get_children():
# Each item is a ListItem, whose first and only child is a
# Label. This is the magic.
label = item.get_children()[0]
label_text = label.get()
if (not label_text):
continue
# Gramps specific code to remove trailing '[id]' from the
# label.
index = string.rfind(label_text,'[')
if (index > 0):
label_text = label_text[:index]
label_text = string.rstrip(label_text)
# Back to the generic code. Convert to lower case
label_text_lc = string.lower(label_text)
# If equal, no need to add any text
if (typed_lc == label_text_lc):
return
# If typed text is a substring of the label text, then fill in
# the entry field with the full text (and correcting
# capitalization), and then select all the characters that
# don't match. With the user's enxt keystroke these will be
# replaced if they are incorrect.
if (string.find(label_text_lc,typed_lc) == 0):
entry.set_text(label_text)
entry.set_position(len(typed))
entry.select_region(len(typed), -1)
return
#-------------------------------------------------------------------------
#
#

View File

@ -41,7 +41,7 @@ import const
import GrampsCfg
import Calendar
import Gregorian
from RelLib import *
import RelLib
from intl import gettext as _
from QuestionDialog import ErrorDialog
@ -74,8 +74,9 @@ def exportData(database, filename, callback):
except:
import DisplayTrace
DisplayTrace.DisplayTrace()
ErrorDialog(_("Failure writing %s, original file restored") % filename)
DisplayTrace.DisplayTrace()
ErrorDialog(_("Failure writing %s") % filename,
_("An attempt is begin made to recover the original file"))
shutil.copy(filename + ".bak", filename)
#-------------------------------------------------------------------------
@ -198,9 +199,9 @@ class XmlWriter:
count = count + 1
self.write_id("person",person,2)
if person.getGender() == Person.male:
if person.getGender() == RelLib.Person.male:
self.write_line("gender","M",3)
elif person.getGender() == Person.female:
elif person.getGender() == RelLib.Person.female:
self.write_line("gender","F",3)
else:
self.write_line("gender","U",3)
@ -358,6 +359,17 @@ class XmlWriter:
if event:
self.dump_my_event(event.getName(),event,index)
def write_witness(self,witness_list,index):
if not witness_list:
return
for w in witness_list:
sp = " "*index
com = self.fix(w.get_comment())
if w.get_type() == RelLib.Event.ID:
self.g.write('%s<witness ref="%s">%s</witness>\n' % (sp,w.get_value(),com))
else:
self.g.write('%s<witness name="%s">%s</witness>\n' % (sp,w.get_value(),com))
def dump_my_event(self,name,event,index=1):
if not event or event.is_empty():
return
@ -365,6 +377,8 @@ class XmlWriter:
sp = " " * index
self.g.write('%s<event type="%s"%s>\n' % (sp,self.fix(name),conf_priv(event)))
self.write_date(event.getDateObj(),index+1)
self.write_witness(event.get_witness_list(),index+1)
self.write_ref("place",event.getPlace(),index+1)
self.write_line("cause",event.getCause(),index+1)
self.write_line("description",event.getDescription(),index+1)

View File

@ -82,6 +82,7 @@ srcselFile = "%s/srcsel.glade" % rootDir
findFile = "%s/find.glade" % rootDir
mergeFile = "%s/mergedata.glade" % rootDir
filterFile = "%s/rule.glade" % rootDir
errdialogsFile = "%s/errdialogs.glade" % rootDir
pluginsDir = "%s/plugins" % rootDir
calendarDir = "%s/calendars" % rootDir

View File

@ -82,6 +82,7 @@ srcselFile = "%s/srcsel.glade" % rootDir
findFile = "%s/find.glade" % rootDir
mergeFile = "%s/mergedata.glade" % rootDir
filterFile = "%s/rule.glade" % rootDir
errdialogsFile = "%s/errdialogs.glade" % rootDir
pluginsDir = "%s/plugins" % rootDir
calendarDir = "%s/calendars" % rootDir

View File

@ -33,11 +33,11 @@
<property name="can_default">True</property>
<property name="has_default">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-ok</property>
<property name="label">gtk-cancel</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_event_edit_ok_clicked" object="event_edit"/>
<property name="response_id">-6</property>
<signal name="clicked" handler="destroy_passed_object" object="event_edit" last_modification_time="Tue, 18 Feb 2003 15:04:15 GMT"/>
</widget>
</child>
@ -46,11 +46,11 @@
<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="label">gtk-ok</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="event_edit"/>
<property name="response_id">-5</property>
<signal name="clicked" handler="on_event_edit_ok_clicked" object="event_edit" last_modification_time="Tue, 18 Feb 2003 15:03:59 GMT"/>
</widget>
</child>
</widget>
@ -667,6 +667,99 @@
<property name="type">tab</property>
</packing>
</child>
<child>
<widget class="GtkVBox" id="vbox43">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkScrolledWindow" id="scrolledwindow29">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="shadow_type">GTK_SHADOW_IN</property>
<property name="window_placement">GTK_CORNER_TOP_LEFT</property>
<child>
<widget class="GtkTreeView" id="wlist">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="headers_visible">True</property>
<property name="rules_hint">False</property>
<property name="reorderable">False</property>
<property name="enable_search">True</property>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
<child>
<widget class="GtkHButtonBox" id="hbuttonbox5">
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_SPREAD</property>
<property name="spacing">0</property>
<child>
<widget class="GtkButton" id="add_witness">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-add</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
</widget>
</child>
<child>
<widget class="GtkButton" id="del_witness">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-remove</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
<packing>
<property name="tab_expand">False</property>
<property name="tab_fill">True</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label291">
<property name="visible">True</property>
<property name="label" translatable="yes">&lt;b&gt;Witnesses&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>
</widget>
<packing>
<property name="type">tab</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
@ -707,6 +800,19 @@
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="button116">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="attr_edit"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button115">
<property name="visible">True</property>
@ -720,19 +826,6 @@
<signal name="clicked" handler="on_attr_edit_ok_clicked" object="attr_edit"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button116">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="attr_edit"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
@ -1166,6 +1259,19 @@
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="button119">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="loc_edit"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button118">
<property name="visible">True</property>
@ -1179,19 +1285,6 @@
<signal name="clicked" handler="on_loc_edit_ok_clicked" object="loc_edit"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button119">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="loc_edit"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
@ -1523,6 +1616,19 @@
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="button122">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="addr_edit"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button121">
<property name="visible">True</property>
@ -1537,19 +1643,6 @@
<signal name="clicked" handler="on_addr_edit_ok_clicked" object="addr_edit"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button122">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="addr_edit"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
@ -2211,6 +2304,19 @@
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="button125">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="url_edit"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button124">
<property name="visible">True</property>
@ -2225,19 +2331,6 @@
<signal name="clicked" handler="on_url_edit_ok_clicked" object="url_edit"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button125">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="url_edit"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
@ -2462,6 +2555,20 @@
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="button119">
<property name="visible">True</property>
<property name="tooltip" translatable="yes">Reject changes and close</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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="name_edit"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button118">
<property name="visible">True</property>
@ -2476,20 +2583,6 @@
<signal name="clicked" handler="on_name_edit_ok_clicked" object="name_edit"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button119">
<property name="visible">True</property>
<property name="tooltip" translatable="yes">Reject changes and close</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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="name_edit"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
@ -3173,4 +3266,348 @@
</child>
</widget>
<widget class="GtkDialog" id="witness_edit">
<property name="visible">True</property>
<property name="title" translatable="yes">Edit Witness</property>
<property name="type">GTK_WINDOW_TOPLEVEL</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="icon">gramps.png</property>
<property name="has_separator">True</property>
<child internal-child="vbox">
<widget class="GtkVBox" id="dialog-vbox2">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</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>
<child>
<widget class="GtkButton" id="cancelbutton1">
<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="response_id">-6</property>
<signal name="clicked" handler="cancel_clicked" last_modification_time="Tue, 18 Feb 2003 16:46:57 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="response_id">-5</property>
<signal name="clicked" handler="ok_clicked" last_modification_time="Tue, 18 Feb 2003 16:46:37 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="GtkVBox" id="vbox44">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkTable" id="table28">
<property name="visible">True</property>
<property name="n_rows">4</property>
<property name="n_columns">3</property>
<property name="homogeneous">False</property>
<property name="row_spacing">0</property>
<property name="column_spacing">0</property>
<child>
<widget class="GtkLabel" id="label293">
<property name="visible">True</property>
<property name="label" translatable="yes">Person</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">5</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_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label294">
<property name="visible">True</property>
<property name="label" translatable="yes">Comment</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">5</property>
<property name="ypad">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="label295">
<property name="visible">True</property>
<property name="label" translatable="yes">:</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</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</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_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label296">
<property name="visible">True</property>
<property name="label" translatable="yes">:</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</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</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="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkEntry" id="name">
<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" translatable="yes">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</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="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkScrolledWindow" id="scrolledwindow30">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="shadow_type">GTK_SHADOW_IN</property>
<property name="window_placement">GTK_CORNER_TOP_LEFT</property>
<child>
<widget class="GtkTextView" id="comment">
<property name="border_width">1</property>
<property name="width_request">400</property>
<property name="height_request">200</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="justification">GTK_JUSTIFY_LEFT</property>
<property name="wrap_mode">GTK_WRAP_WORD</property>
<property name="cursor_visible">True</property>
<property name="pixels_above_lines">0</property>
<property name="pixels_below_lines">0</property>
<property name="pixels_inside_wrap">0</property>
<property name="left_margin">0</property>
<property name="right_margin">0</property>
<property name="indent">0</property>
<property name="text" translatable="yes"></property>
</widget>
</child>
</widget>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</property>
<property name="top_attach">3</property>
<property name="bottom_attach">4</property>
<property name="x_padding">3</property>
<property name="y_padding">3</property>
<property name="x_options">fill</property>
</packing>
</child>
<child>
<widget class="GtkCheckButton" id="in_db">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Person is in the Database</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>
<signal name="toggled" handler="on_toggled" last_modification_time="Thu, 20 Feb 2003 03:30:27 GMT"/>
</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_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="label297">
<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">5</property>
<property name="ypad">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="GtkLabel" id="label298">
<property name="visible">True</property>
<property name="label" translatable="yes">:</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</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</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"></property>
</packing>
</child>
<child>
<widget class="GtkEntry" id="id">
<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" translatable="yes">*</property>
<property name="activates_default">False</property>
<signal name="changed" handler="on_id_changed" last_modification_time="Thu, 20 Feb 2003 03:44:43 GMT"/>
</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_padding">3</property>
<property name="y_padding">3</property>
<property name="y_options"></property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
</child>
</widget>
</glade-interface>

View File

@ -124,7 +124,6 @@ class HtmlDoc(TextDoc.TextDoc):
def set_keywords(self,keywords):
self.meta = string.join(keywords,",")
print self.meta
def load_tpkg(self):
start = re.compile(r"<!--\s*START\s*-->")

View File

@ -28,6 +28,19 @@
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="button15">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="editPerson"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="applyPerson">
<property name="visible">True</property>
@ -42,19 +55,6 @@
<signal name="clicked" handler="on_apply_person_clicked" object="editPerson"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button15">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="editPerson"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">2</property>
@ -2180,7 +2180,7 @@
<property name="can_focus">True</property>
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="shadow_type">GTK_SHADOW_NONE</property>
<property name="shadow_type">GTK_SHADOW_IN</property>
<property name="window_placement">GTK_CORNER_TOP_LEFT</property>
<child>
@ -2203,6 +2203,7 @@
<child>
<widget class="GtkHButtonBox" id="hbuttonbox14">
<property name="border_width">5</property>
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_SPREAD</property>
<property name="spacing">30</property>
@ -2863,7 +2864,7 @@
<property name="can_focus">True</property>
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="shadow_type">GTK_SHADOW_NONE</property>
<property name="shadow_type">GTK_SHADOW_IN</property>
<property name="window_placement">GTK_CORNER_TOP_LEFT</property>
<child>
@ -2886,6 +2887,7 @@
<child>
<widget class="GtkHButtonBox" id="hbuttonbox10">
<property name="border_width">5</property>
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_SPREAD</property>
<property name="spacing">30</property>
@ -3334,7 +3336,7 @@
<property name="can_focus">True</property>
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="shadow_type">GTK_SHADOW_NONE</property>
<property name="shadow_type">GTK_SHADOW_IN</property>
<property name="window_placement">GTK_CORNER_TOP_LEFT</property>
<child>
@ -3357,6 +3359,7 @@
<child>
<widget class="GtkHButtonBox" id="hbuttonbox16">
<property name="border_width">6</property>
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_SPREAD</property>
<property name="spacing">30</property>
@ -4169,7 +4172,7 @@
<property name="can_focus">True</property>
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="shadow_type">GTK_SHADOW_NONE</property>
<property name="shadow_type">GTK_SHADOW_IN</property>
<property name="window_placement">GTK_CORNER_TOP_LEFT</property>
<child>
@ -4192,6 +4195,7 @@
<child>
<widget class="GtkHButtonBox" id="hbuttonbox17">
<property name="border_width">5</property>
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_SPREAD</property>
<property name="spacing">30</property>
@ -4326,7 +4330,7 @@
<property name="can_focus">True</property>
<property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="shadow_type">GTK_SHADOW_NONE</property>
<property name="shadow_type">GTK_SHADOW_IN</property>
<property name="window_placement">GTK_CORNER_TOP_LEFT</property>
<child>
@ -4351,6 +4355,7 @@
<child>
<widget class="GtkHButtonBox" id="hbuttonbox13">
<property name="border_width">5</property>
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_SPREAD</property>
<property name="spacing">15</property>
@ -4799,7 +4804,7 @@
<property name="can_focus">True</property>
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="shadow_type">GTK_SHADOW_NONE</property>
<property name="shadow_type">GTK_SHADOW_IN</property>
<property name="window_placement">GTK_CORNER_TOP_LEFT</property>
<child>
@ -4822,6 +4827,7 @@
<child>
<widget class="GtkHButtonBox" id="hbuttonbox15">
<property name="border_width">5</property>
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_SPREAD</property>
<property name="spacing">30</property>
@ -5127,7 +5133,7 @@
<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="x_padding">5</property>
<property name="y_padding">3</property>
<property name="y_options"></property>
</packing>
@ -5398,7 +5404,7 @@
<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="x_padding">5</property>
<property name="y_padding">3</property>
<property name="y_options"></property>
</packing>
@ -5717,7 +5723,7 @@
<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="x_padding">5</property>
<property name="y_padding">3</property>
<property name="y_options"></property>
</packing>

571
src/errdialogs.glade Normal file
View File

@ -0,0 +1,571 @@
<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
<glade-interface>
<widget class="GtkDialog" id="errdialog">
<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_NONE</property>
<property name="modal">False</property>
<property name="default_width">450</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="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</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>
<child>
<widget class="GtkButton" id="okbutton1">
<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="response_id">-5</property>
</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="GtkTable" id="table1">
<property name="border_width">12</property>
<property name="visible">True</property>
<property name="n_rows">2</property>
<property name="n_columns">3</property>
<property name="homogeneous">False</property>
<property name="row_spacing">0</property>
<property name="column_spacing">0</property>
<child>
<widget class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="label" translatable="yes">label2</property>
<property name="use_underline">False</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">6</property>
<property name="ypad">24</property>
</widget>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</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="GtkImage" id="image1">
<property name="visible">True</property>
<property name="stock">gtk-dialog-error</property>
<property name="icon_size">6</property>
<property name="xalign">0.5</property>
<property name="yalign">0</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">0</property>
<property name="bottom_attach">2</property>
<property name="x_options">fill</property>
<property name="y_options">fill</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="label" translatable="yes">label1</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</property>
<property name="yalign">0.5</property>
<property name="xpad">6</property>
<property name="ypad">0</property>
</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">expand|shrink|fill</property>
<property name="y_options"></property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
</child>
</widget>
<widget class="GtkDialog" id="savedialog">
<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_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="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</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>
<child>
<widget class="GtkButton" id="button1">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Close without Saving</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="response_id">-9</property>
</widget>
</child>
<child>
<widget class="GtkButton" id="button2">
<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="response_id">-6</property>
</widget>
</child>
<child>
<widget class="GtkButton" id="button3">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-save</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="response_id">-8</property>
</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="GtkTable" id="table2">
<property name="border_width">12</property>
<property name="visible">True</property>
<property name="n_rows">2</property>
<property name="n_columns">3</property>
<property name="homogeneous">False</property>
<property name="row_spacing">0</property>
<property name="column_spacing">0</property>
<child>
<widget class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="label" translatable="yes">label2</property>
<property name="use_underline">False</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">6</property>
<property name="ypad">24</property>
</widget>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</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="GtkImage" id="image2">
<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</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">0</property>
<property name="bottom_attach">2</property>
<property name="x_options">fill</property>
<property name="y_options">fill</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="label" translatable="yes">label1</property>
<property name="use_underline">False</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">6</property>
<property name="ypad">0</property>
</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">expand|shrink|fill</property>
<property name="y_options"></property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
</child>
</widget>
<widget class="GtkDialog" id="questiondialog">
<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_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="vbox1">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child internal-child="action_area">
<widget class="GtkHButtonBox" id="hbuttonbox1">
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="button4">
<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="response_id">-6</property>
</widget>
</child>
<child>
<widget class="GtkButton" id="okbutton">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes"></property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="response_id">-3</property>
</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="GtkTable" id="table3">
<property name="border_width">12</property>
<property name="visible">True</property>
<property name="n_rows">2</property>
<property name="n_columns">3</property>
<property name="homogeneous">False</property>
<property name="row_spacing">0</property>
<property name="column_spacing">0</property>
<child>
<widget class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="label" translatable="yes">label2</property>
<property name="use_underline">False</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">6</property>
<property name="ypad">24</property>
</widget>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</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="GtkImage" id="image3">
<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</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">0</property>
<property name="bottom_attach">2</property>
<property name="x_options">fill</property>
<property name="y_options">fill</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="label" translatable="yes">label1</property>
<property name="use_underline">False</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">6</property>
<property name="ypad">0</property>
</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">expand|shrink|fill</property>
<property name="y_options"></property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
</child>
</widget>
<widget class="GtkDialog" id="optiondialog">
<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_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="vbox2">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child internal-child="action_area">
<widget class="GtkHButtonBox" id="hbuttonbox2">
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="option1">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes"></property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="response_id">-9</property>
</widget>
</child>
<child>
<widget class="GtkButton" id="option2">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes"></property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="response_id">-8</property>
</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="GtkTable" id="table4">
<property name="border_width">12</property>
<property name="visible">True</property>
<property name="n_rows">2</property>
<property name="n_columns">3</property>
<property name="homogeneous">False</property>
<property name="row_spacing">0</property>
<property name="column_spacing">0</property>
<child>
<widget class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="label" translatable="yes">label2</property>
<property name="use_underline">False</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">6</property>
<property name="ypad">24</property>
</widget>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</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="GtkImage" id="image4">
<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</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">0</property>
<property name="bottom_attach">2</property>
<property name="x_options">fill</property>
<property name="y_options">fill</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="label" translatable="yes">label1</property>
<property name="use_underline">False</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">6</property>
<property name="ypad">0</property>
</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">expand|shrink|fill</property>
<property name="y_options"></property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
</child>
</widget>
</glade-interface>

View File

@ -1,7 +1,7 @@
[Desktop Entry]
Name=Genealogy (GRAMPS)
Name=GRAMPS Genealogy System
Name[sv]=GRAMPS
Comment=Genealogy Program
Comment=Manage genealogical information, perform genealogical research and analysis
Comment[sv]=Ett släktforskningsprogram
Exec=gramps
Icon=gramps.png

View File

@ -77,7 +77,7 @@
<signal name="activate" handler="on_revert_activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image96">
<widget class="GtkImage" id="image118">
<property name="visible">True</property>
<property name="stock">gtk-revert-to-saved</property>
<property name="icon_size">1</property>
@ -113,7 +113,7 @@
<property name="use_underline">True</property>
<child internal-child="image">
<widget class="GtkImage" id="image97">
<widget class="GtkImage" id="image119">
<property name="visible">True</property>
<property name="stock">gtk-convert</property>
<property name="icon_size">1</property>
@ -134,7 +134,7 @@
<signal name="activate" handler="on_reload_plugins_activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image98">
<widget class="GtkImage" id="image120">
<property name="visible">True</property>
<property name="stock">gtk-refresh</property>
<property name="icon_size">1</property>
@ -182,7 +182,7 @@
<signal name="activate" handler="on_find_activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image99">
<widget class="GtkImage" id="image121">
<property name="visible">True</property>
<property name="stock">gtk-find</property>
<property name="icon_size">1</property>
@ -203,7 +203,7 @@
<signal name="activate" handler="on_merge_activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image100">
<widget class="GtkImage" id="image122">
<property name="visible">True</property>
<property name="stock">gtk-convert</property>
<property name="icon_size">1</property>
@ -271,7 +271,7 @@
<accelerator key="D" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image101">
<widget class="GtkImage" id="image123">
<property name="visible">True</property>
<property name="stock">gtk-index</property>
<property name="icon_size">1</property>
@ -293,7 +293,7 @@
<accelerator key="B" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image102">
<widget class="GtkImage" id="image124">
<property name="visible">True</property>
<property name="stock">gnome-stock-book-open</property>
<property name="icon_size">1</property>
@ -350,10 +350,10 @@
<widget class="GtkMenu" id="settings1_menu">
<child>
<widget class="GtkImageMenuItem" id="preferences">
<widget class="GtkImageMenuItem" id="preferences1">
<property name="visible">True</property>
<property name="stock_item">GNOMEUIINFO_MENU_PROPERTIES_ITEM</property>
<signal name="activate" handler="on_preferences_activate"/>
<property name="stock_item">GNOMEUIINFO_MENU_PREFERENCES_ITEM</property>
<signal name="activate" handler="on_preferences1_activate"/>
</widget>
</child>
@ -365,7 +365,7 @@
<signal name="activate" handler="on_default_person_activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image103">
<widget class="GtkImage" id="image125">
<property name="visible">True</property>
<property name="stock">gtk-home</property>
<property name="icon_size">1</property>
@ -399,7 +399,7 @@
<signal name="activate" handler="on_contents_activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image104">
<widget class="GtkImage" id="image126">
<property name="visible">True</property>
<property name="stock">gnome-stock-book-red</property>
<property name="icon_size">1</property>
@ -420,7 +420,7 @@
<signal name="activate" handler="on_writing_extensions_activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image105">
<widget class="GtkImage" id="image127">
<property name="visible">True</property>
<property name="stock">gnome-stock-book-blue</property>
<property name="icon_size">1</property>
@ -441,7 +441,7 @@
<signal name="activate" handler="on_gramps_home_page_activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image106">
<widget class="GtkImage" id="image128">
<property name="visible">True</property>
<property name="stock">gtk-jump-to</property>
<property name="icon_size">1</property>
@ -462,7 +462,7 @@
<signal name="activate" handler="on_gramps_mailing_lists_activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image107">
<widget class="GtkImage" id="image129">
<property name="visible">True</property>
<property name="stock">gnome-stock-mail</property>
<property name="icon_size">1</property>
@ -1312,20 +1312,14 @@
<property name="window_placement">GTK_CORNER_TOP_LEFT</property>
<child>
<widget class="GtkTextView" id="ap_data">
<widget class="GtkTreeView" id="ap_data">
<property name="visible">True</property>
<property name="tooltip" translatable="yes">Double-click to edit the active person</property>
<property name="can_focus">True</property>
<property name="editable">False</property>
<property name="justification">GTK_JUSTIFY_LEFT</property>
<property name="wrap_mode">GTK_WRAP_NONE</property>
<property name="cursor_visible">False</property>
<property name="pixels_above_lines">0</property>
<property name="pixels_below_lines">0</property>
<property name="pixels_inside_wrap">0</property>
<property name="left_margin">0</property>
<property name="right_margin">0</property>
<property name="indent">0</property>
<property name="text" translatable="yes"></property>
<property name="headers_visible">False</property>
<property name="rules_hint">True</property>
<property name="reorderable">False</property>
<property name="enable_search">False</property>
</widget>
</child>
</widget>
@ -2790,19 +2784,6 @@
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="spouse_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="response_id">0</property>
<signal name="clicked" handler="on_select_spouse_clicked" object="spouseDialog"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button117">
<property name="visible">True</property>
@ -2815,6 +2796,19 @@
<signal name="clicked" handler="destroy_passed_object" object="spouseDialog"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="spouse_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="response_id">0</property>
<signal name="clicked" handler="on_select_spouse_clicked" object="spouseDialog"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">10</property>
@ -3074,6 +3068,19 @@
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="button44">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="familyDialog"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button42">
<property name="visible">True</property>
@ -3087,19 +3094,6 @@
<signal name="clicked" handler="on_save_parents_clicked" object="familyDialog"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button44">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="familyDialog"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
@ -3965,6 +3959,19 @@
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="button49">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="selectChild"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button48">
<property name="visible">True</property>
@ -3978,19 +3985,6 @@
<signal name="clicked" handler="on_save_child_clicked" object="selectChild"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button49">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="selectChild"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
@ -4568,6 +4562,19 @@
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="button54">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="marriageQuery"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button52">
<property name="visible">True</property>
@ -4581,19 +4588,6 @@
<signal name="clicked" handler="on_marriageQuery_clicked" object="marriageQuery"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button54">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="marriageQuery"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
@ -4713,7 +4707,7 @@
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_NONE</property>
<property name="modal">False</property>
<property name="default_width">450</property>
<property name="default_width">500</property>
<property name="default_height">350</property>
<property name="resizable">True</property>
<property name="destroy_with_parent">False</property>
@ -4731,6 +4725,20 @@
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="button90">
<property name="visible">True</property>
<property name="tooltip" translatable="yes">Reject changes and close</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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="sourceEditor"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button88">
<property name="visible">True</property>
@ -4745,20 +4753,6 @@
<signal name="clicked" handler="on_sourceapply_clicked" object="sourceEditor"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button90">
<property name="visible">True</property>
<property name="tooltip" translatable="yes">Reject changes and close</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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="sourceEditor"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
@ -4800,7 +4794,7 @@
<property name="visible">True</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="padding">3</property>
<property name="expand">False</property>
<property name="fill">True</property>
</packing>
@ -4980,7 +4974,7 @@
<child>
<widget class="GtkLabel" id="label204">
<property name="visible">True</property>
<property name="label" translatable="yes">&lt;b&gt;&lt;i&gt;General&lt;/i&gt;&lt;/b&gt;</property>
<property name="label" translatable="yes">&lt;b&gt;General&lt;/b&gt;</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
@ -5031,7 +5025,7 @@
<child>
<widget class="GtkLabel" id="label205">
<property name="visible">True</property>
<property name="label" translatable="yes">&lt;b&gt;&lt;i&gt;Note&lt;/i&gt;&lt;/b&gt;</property>
<property name="label" translatable="yes">&lt;b&gt;Note&lt;/b&gt;</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
@ -5130,7 +5124,7 @@
<child>
<widget class="GtkLabel" id="label206">
<property name="visible">True</property>
<property name="label" translatable="yes">&lt;b&gt;&lt;i&gt;Gallery&lt;/i&gt;&lt;/b&gt;</property>
<property name="label" translatable="yes">&lt;b&gt;Gallery&lt;/b&gt;</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
@ -5150,8 +5144,8 @@
<widget class="GtkScrolledWindow" id="scrolledwindow38">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
<property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="shadow_type">GTK_SHADOW_NONE</property>
<property name="window_placement">GTK_CORNER_TOP_LEFT</property>
@ -5175,7 +5169,7 @@
<child>
<widget class="GtkLabel" id="label274">
<property name="visible">True</property>
<property name="label" translatable="yes">&lt;b&gt;&lt;i&gt;References&lt;/i&gt;&lt;/b&gt;</property>
<property name="label" translatable="yes">&lt;b&gt;References&lt;/b&gt;</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_CENTER</property>
@ -5230,6 +5224,19 @@
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="button122">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="addperson"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button121">
<property name="visible">True</property>
@ -5243,19 +5250,6 @@
<signal name="clicked" handler="on_addfather_close" object="addperson"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button122">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="addperson"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
@ -5571,6 +5565,19 @@
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="open_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="response_id">0</property>
<signal name="clicked" handler="on_open_cancel_clicked" object="opendb"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="open_ok">
<property name="visible">True</property>
@ -5584,19 +5591,6 @@
<signal name="clicked" handler="on_open_ok_clicked" object="opendb"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="open_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="response_id">0</property>
<signal name="clicked" handler="on_open_cancel_clicked" object="opendb"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
@ -5889,6 +5883,19 @@ or create a new relationship.</property>
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="button154">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="familyDialog"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button153">
<property name="visible">True</property>
@ -5902,19 +5909,6 @@ or create a new relationship.</property>
<signal name="clicked" handler="on_save_parents_clicked" object="familyDialog"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button154">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="familyDialog"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>

View File

@ -57,7 +57,7 @@ import PlaceView
import FamilyView
import SourceView
from QuestionDialog import QuestionDialog, ErrorDialog, WarningDialog
from QuestionDialog import QuestionDialog, ErrorDialog, WarningDialog, SaveDialog
import DisplayTrace
import Filter
@ -294,7 +294,7 @@ class Gramps:
"on_sidebar1_activate" : self.on_sidebar_activate,
"on_filter1_activate" : self.on_filter_activate,
"on_places_activate" : self.on_places_activate,
"on_preferences_activate" : self.on_preferences_activate,
"on_preferences1_activate" : self.on_preferences_activate,
"on_reload_plugins_activate" : Plugins.reload_plugins,
"on_reports_clicked" : self.on_reports_clicked,
"on_revert_activate" : self.on_revert_activate,
@ -473,8 +473,11 @@ class Gramps:
mlist = self.person_tree.get_selected_objects()
if len(mlist) != 2:
msg = _("Exactly two people must be selected to perform a merge")
ErrorDialog(msg)
msg = _("Cannot merge people.")
msg2 = _("Exactly two people must be selected to perform a merge. "
"A second person can be selected by holding down the "
"control key while clicking on a the desired person.")
ErrorDialog(msg,msg2)
else:
import MergeData
p1 = self.db.getPerson(mlist[0])
@ -494,10 +497,12 @@ class Gramps:
"""Prompt to save on exit if needed"""
if Utils.wasModified():
self.delobj = obj
QuestionDialog(_('Abandon Changes'),
_("Unsaved changes exist in the current database\n"
"Do you wish to save the changes?"),
self.save_query,self.quit)
SaveDialog(_('Save Changes Made to the Database?'),
_("Unsaved changes exist in the current database. If you "
"close without saving, the changes you have made will "
"be lost."),
self.quit,
self.save_query)
else:
self.db.close()
gtk.mainquit()
@ -549,8 +554,12 @@ class Gramps:
def on_new_clicked(self,obj):
"""Prompt for permission to close the current database"""
msg = _("Do you want to close the current database and create a new one?")
QuestionDialog(_('New Database'),msg, self.new_database_response)
QuestionDialog(_('Create a New Database'),
_('Creating a new database will close the existing database, ',
'discarding any unsaved changes. You will then be prompted '
'to create a new database'),
_('Create New Database'),
self.new_database_response)
def new_database_response(self):
import DbPrompter
@ -661,6 +670,7 @@ class Gramps:
if filename == "" or filename == None:
return
filename = os.path.normpath(os.path.abspath(filename))
self.clear_database(0)
@ -673,6 +683,7 @@ class Gramps:
def auto_save_load(self,filename):
filename = os.path.normpath(os.path.abspath(filename))
if os.path.isdir(filename):
dirname = filename
else:
@ -685,8 +696,17 @@ class Gramps:
self.yname = autosave
self.nname = filename
QuestionDialog(_('Autosave File'),q,self.autosave_query,
self.loadsaved_file)
OptionDialog(_('An autosave file was detected'),
_('GRAMPS has detected an autosave file for the '
'selected database. This file is more recent than '
'the last saved database. This typically happens '
'when GRAMPS was unexpected shutdown before the '
'data was saved. You may load this file to try to '
'recover any missing data.'),
_('Load autosave file'),
self.autosave_query,
_('Load saved database'),
self.loadsaved_file)
else:
self.read_file(filename)
@ -699,6 +719,7 @@ class Gramps:
def read_gedcom(self,filename):
import ReadGedcom
filename = os.path.normpath(os.path.abspath(filename))
self.topWindow.set_title("%s - GRAMPS" % filename)
try:
ReadGedcom.importData(self.db,filename)
@ -707,13 +728,19 @@ class Gramps:
self.full_update()
def read_file(self,filename):
filename = os.path.normpath(os.path.abspath(filename))
base = os.path.basename(filename)
if base == const.xmlFile:
filename = os.path.dirname(filename)
elif base == "autosave.gramps":
filename = os.path.dirname(filename)
elif not os.path.isdir(filename):
self.displayError(_("%s is not a directory") % filename)
self.displayError(_("Database could not be opened"),
_("%s is not a directory.") % filename + ' ' + \
_("The file you should attempt to open should be "
"a directory that contains a data.gramps file or "
"a gramps.zodb file."))
return
self.status_text(_("Loading %s ...") % filename)
@ -729,6 +756,7 @@ class Gramps:
def on_ok_button2_clicked(self,obj):
filename = obj.get_filename()
filename = os.path.normpath(os.path.abspath(filename))
if filename:
Utils.destroy_passed_object(obj)
if GrampsCfg.usevc and GrampsCfg.vc_comment:
@ -739,7 +767,7 @@ class Gramps:
def save_file(self,filename,comment):
path = filename
filename = os.path.normpath(filename)
filename = os.path.normpath(os.path.abspath(filename))
autosave = "%s/autosave.gramps" % filename
self.status_text(_("Saving %s ...") % filename)
@ -749,17 +777,23 @@ class Gramps:
if os.path.exists(filename):
if os.path.isdir(filename) == 0:
self.displayError(_("%s is not a directory") % filename)
self.displayError(_("Database could not be opened"),
_("%s is not a directory.") % filename + ' ' + \
_("The file you should attempt to open should be "
"a directory that contains a data.gramps file or "
"a gramps.zodb file."))
return
else:
try:
os.mkdir(filename)
except (OSError,IOError), msg:
emsg = _("Could not create %s") % filename + "\n" + str(msg)
ErrorDialog(emsg)
emsg = _("Could not create %s") % filename
ErrorDialog(emsg,_("An was detected while attempting to create the file. ",
'The operating system reported "%s"' % str(msg)))
return
except:
ErrorDialog(_("Could not create %s") % filename)
ErrorDialog(_("Could not create %s") % filename,
_("An error was detected while trying to create the file"))
return
old_file = filename
@ -767,8 +801,8 @@ class Gramps:
try:
self.db.save(filename,self.load_progress)
except (OSError,IOError), msg:
emsg = _("Could not create %s") % filename + "\n" + str(msg)
ErrorDialog(emsg)
emsg = _("Could not create %s") % filename
ErrorDialog(emsg,_("An error was detected while trying to create the file"))
return
self.db.setSavePath(old_file)
@ -796,7 +830,7 @@ class Gramps:
if not path:
return
filename = os.path.normpath(path)
filename = os.path.normpath(os.path.abspath(filename))
Utils.clear_timer()
filename = "%s/autosave.gramps" % (self.db.getSavePath())
@ -833,9 +867,15 @@ class Gramps:
for sel in mlist:
p = self.db.getPerson(sel)
name = GrampsCfg.nameof(p)
msg = _("Do you really wish to delete %s?") % name
QuestionDialog(_('Delete Person'), msg, self.delete_person_response)
QuestionDialog(_('Delete %s?') % name,
_('Deleting the person will remove the person from '
'from the database. The data can only be '
'recovered by closing the database without saving '
'changes. This change will become permanent '
'after you save the database.'),
_('Delete Person'),
self.delete_person_response)
def delete_person_response(self):
for family in self.active_person.getFamilyList():
@ -947,7 +987,12 @@ class Gramps:
msg = _("Do you wish to abandon your changes and "
"revert to the last saved database?")
QuestionDialog(_('Abandon Changes'),msg, self.revert_query)
QuestionDialog(_('Revert to last saved database?'),
_('Reverting to the last saved database '
'will cause all unsaved changes to be lost, and '
'the last saved database will be loaded.'),
_('Revert'),
self.revert_query)
else:
msg = _("Cannot revert to a previous database, since "
"one does not exist")
@ -1004,6 +1049,7 @@ class Gramps:
def display_comment_box(self,filename):
"""Displays a dialog box, prompting for a revison control comment"""
filename = os.path.normpath(os.path.abspath(filename))
VersionControl.RevisionComment(filename,self.save_file)
def on_person_list1_activate(self,obj):
@ -1261,8 +1307,8 @@ class Gramps:
self.gtop.get_widget("jump_to"),
self.bookmark_callback)
def displayError(self,msg):
ErrorDialog(msg)
def displayError(self,msg,msg2):
ErrorDialog(msg,msg2)
self.status_text("")
def complete_rebuild(self):
@ -1346,7 +1392,8 @@ class Gramps:
self.change_active_person(temp)
self.update_display(0)
else:
ErrorDialog(_("No default/home person has been set"))
ErrorDialog(_("No home person has been set."),
_("The home person may be set from the Settings menu."))
def on_add_bookmark_activate(self,obj):
if self.active_person:
@ -1355,7 +1402,8 @@ class Gramps:
self.status_text(_("%s has been bookmarked") % name)
gtk.timeout_add(5000,self.modify_statusbar)
else:
WarningDialog(_("Bookmark could not be set because no one was selected"))
WarningDialog(_("Could not set bookmark."),
_("A bookmark could not be set because no one was selected."))
def on_edit_bookmarks_activate(self,obj):
self.bookmarks.edit()
@ -1369,7 +1417,12 @@ class Gramps:
name = self.active_person.getPrimaryName().getRegularName()
msg = _("Do you wish to set %s as the home person?") % name
QuestionDialog(_('Set Home Person'),msg,self.set_person)
QuestionDialog(_('Set %n as the Home Person') % name,
_('Once a Home Person is defined, pressing the Home key '
'on the toolbar will make the home person the active '
'person.'),
_('Set Home Person'),
self.set_person)
def set_person(self):
self.db.setDefaultPerson(self.active_person)

View File

@ -27,6 +27,18 @@
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="button81">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="imageSelect"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button79">
<property name="visible">True</property>
@ -41,18 +53,6 @@
</widget>
</child>
<child>
<widget class="GtkButton" id="button81">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="imageSelect"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
@ -381,6 +381,18 @@
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="button84">
<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="response_id">0</property>
<signal name="clicked" handler="on_cancel_clicked" object="change_description"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button82">
<property name="visible">True</property>
@ -395,18 +407,6 @@
</widget>
</child>
<child>
<widget class="GtkButton" id="button84">
<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="response_id">0</property>
<signal name="clicked" handler="on_cancel_clicked" object="change_description"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
@ -1308,16 +1308,15 @@
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="button89">
<widget class="GtkButton" id="button91">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="has_default">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-ok</property>
<property name="label">gtk-cancel</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="change_global"/>
<signal name="clicked" handler="on_cancel_clicked" object="change_global"/>
</widget>
</child>
@ -1335,17 +1334,19 @@
</child>
<child>
<widget class="GtkButton" id="button91">
<widget class="GtkButton" id="button89">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="has_default">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-cancel</property>
<property name="label">gtk-ok</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_cancel_clicked" object="change_global"/>
<signal name="clicked" handler="on_ok_clicked" object="change_global"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>

View File

@ -28,6 +28,20 @@
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="button108">
<property name="visible">True</property>
<property name="tooltip" translatable="yes">Reject changes and close</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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="marriageEditor"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button107">
<property name="visible">True</property>
@ -43,19 +57,6 @@
</widget>
</child>
<child>
<widget class="GtkButton" id="button108">
<property name="visible">True</property>
<property name="tooltip" translatable="yes">Reject changes and close</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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="marriageEditor"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>

View File

@ -25,6 +25,18 @@
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="button9">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="merge_places"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button7">
<property name="visible">True</property>
@ -38,18 +50,6 @@
</widget>
</child>
<child>
<widget class="GtkButton" id="button9">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="merge_places"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>

View File

@ -28,6 +28,18 @@
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="button127">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="placeEditor"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button126">
<property name="visible">True</property>
@ -42,18 +54,6 @@
</widget>
</child>
<child>
<widget class="GtkButton" id="button127">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="placeEditor"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>

View File

@ -9,8 +9,8 @@
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_NONE</property>
<property name="modal">False</property>
<property name="default_width">550</property>
<property name="default_height">350</property>
<property name="default_width">600</property>
<property name="default_height">400</property>
<property name="resizable">True</property>
<property name="destroy_with_parent">False</property>
<property name="icon">gramps.png</property>
@ -28,15 +28,15 @@
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="button104">
<widget class="GtkButton" id="button106">
<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="label">gtk-cancel</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_report_ok_clicked" object="report"/>
<signal name="clicked" handler="destroy_passed_object" object="report"/>
</widget>
</child>
@ -54,15 +54,15 @@
</child>
<child>
<widget class="GtkButton" id="button106">
<widget class="GtkButton" id="button104">
<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="label">gtk-ok</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="report"/>
<signal name="clicked" handler="on_report_ok_clicked" object="report"/>
</widget>
</child>
</widget>

View File

@ -115,7 +115,9 @@ register_tool(
runTool,
_("Interactive descendant browser"),
category=_("Analysis and Exploration"),
description=_("Provides a browsable hierarchy based on the active person")
description=_("Provides a browsable hierarchy based on the active person"),
author_name="Donald N. Allingham",
author_email="dallingham@users.sourceforge.net"
)

View File

@ -335,7 +335,7 @@ class IndivComplete:
self.d.end_cell()
def write_report(self):
ind_list = self.filter.apply(self.database.getPersonMap().values())
ind_list = self.filter.apply(seld.database,self.database.getPersonMap().values())
count = 0
for self.person in ind_list:
self.write_person(count)

View File

@ -364,7 +364,7 @@ class TimeLineDialog(Report.DrawReportDialog):
return [all,des,ans,com]
def make_default_style(self):
"""Make the default output style for the Ancestor Chart report."""
"""Make the default output style for the Timeline report."""
f = TextDoc.FontStyle()
f.set_size(10)
f.set_type_face(TextDoc.FONT_SANS_SERIF)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -6,7 +6,7 @@
<widget class="GtkDialog" id="preferences">
<property name="visible">True</property>
<property name="title" translatable="yes">Preferences - GRAMPS</property>
<property name="title" translatable="yes">GRAMPS Preferences</property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_NONE</property>
<property name="modal">False</property>
@ -28,15 +28,15 @@
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="button4">
<widget class="GtkButton" id="button7">
<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="label">gtk-help</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"/>
<signal name="clicked" handler="on_help_clicked"/>
</widget>
</child>
@ -68,15 +68,15 @@
</child>
<child>
<widget class="GtkButton" id="button7">
<widget class="GtkButton" id="button4">
<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="label">gtk-ok</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_help_clicked"/>
<signal name="clicked" handler="on_ok_clicked"/>
</widget>
</child>
</widget>

View File

@ -27,6 +27,18 @@
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="button129">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="dbopen"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button127">
<property name="visible">True</property>
@ -40,18 +52,6 @@
</widget>
</child>
<child>
<widget class="GtkButton" id="button129">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="dbopen"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
@ -214,6 +214,18 @@
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="button134">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="revselect"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button132">
<property name="visible">True</property>
@ -227,18 +239,6 @@
</widget>
</child>
<child>
<widget class="GtkButton" id="button134">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="revselect"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>

View File

@ -27,6 +27,18 @@
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="button6">
<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="response_id">0</property>
<signal name="clicked" handler="on_cancel_clicked"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="ok">
<property name="visible">True</property>
@ -41,18 +53,6 @@
</widget>
</child>
<child>
<widget class="GtkButton" id="button6">
<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="response_id">0</property>
<signal name="clicked" handler="on_cancel_clicked"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
@ -410,6 +410,17 @@
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<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="response_id">0</property>
</widget>
</child>
<child>
<widget class="GtkButton" id="ok">
<property name="visible">True</property>
@ -422,17 +433,6 @@
</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="response_id">0</property>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>

View File

@ -29,7 +29,6 @@ to make sure these remain in sync with the rest of the design.
# Imported Modules
#
#-------------------------------------------------------------------------
import string
import Date
#-------------------------------------------------------------------------

View File

@ -26,6 +26,18 @@
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="button95">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="sourceDisplay"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button94">
<property name="visible">True</property>
@ -40,18 +52,6 @@
</widget>
</child>
<child>
<widget class="GtkButton" id="button95">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="sourceDisplay"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
@ -678,6 +678,18 @@
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="button138">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="sourcesel"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button136">
<property name="visible">True</property>
@ -691,18 +703,6 @@
</widget>
</child>
<child>
<widget class="GtkButton" id="button138">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="sourcesel"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>

View File

@ -28,6 +28,18 @@
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="button2">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="styles"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button1">
<property name="visible">True</property>
@ -42,18 +54,6 @@
</widget>
</child>
<child>
<widget class="GtkButton" id="button2">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="styles"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
@ -330,6 +330,18 @@
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="button8">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="editor"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="button7">
<property name="visible">True</property>
@ -344,18 +356,6 @@
</widget>
</child>
<child>
<widget class="GtkButton" id="button8">
<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="response_id">0</property>
<signal name="clicked" handler="destroy_passed_object" object="editor"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>