General clean up

svn: r923
This commit is contained in:
Don Allingham 2002-04-14 14:49:02 +00:00
parent f030522be7
commit 1160824464
21 changed files with 1838 additions and 1790 deletions

View File

@ -43,7 +43,6 @@ _ = gettext
# GTK/Gnome modules
#
#-------------------------------------------------------------------------
#from gtk import *
from gnome.ui import GnomeErrorDialog
import libglade
@ -57,6 +56,11 @@ import Utils
import RelImage
import RelLib
#-------------------------------------------------------------------------
#
# AddMediaObject
#
#-------------------------------------------------------------------------
class AddMediaObject:
"""
Displays the Add Media Dialog window, allowing the user to select

View File

@ -47,6 +47,11 @@ import sort
import Utils
import GrampsCfg
#-------------------------------------------------------------------------
#
# AddSpouse
#
#-------------------------------------------------------------------------
class AddSpouse:
"""
Displays the AddSpouse dialog, allowing the user to create a new
@ -189,7 +194,11 @@ class AddSpouse:
index = index + 1
self.spouse_list.thaw()
#-------------------------------------------------------------------------
#
# SetSpouse
#
#-------------------------------------------------------------------------
class SetSpouse:
"""
Displays the AddSpouse dialog, allowing the user to create a new
@ -284,7 +293,8 @@ class SetSpouse:
spouse.addFamily(self.family)
self.family.setRelationship(const.save_frel(self.relation_type.get_text()))
reltype = self.relation_type.get_text()
self.family.setRelationship(const.save_frel(reltype))
Utils.destroy_passed_object(obj)
self.update(self.family)
@ -317,4 +327,3 @@ class SetSpouse:
self.spouse_list.set_row_data(index,person)
index = index + 1
self.spouse_list.thaw()

View File

@ -60,7 +60,7 @@ class AddressEditor:
addr - The address that is to be edited
"""
# Get the important widgets from the glade description
self.top = libglade.GladeXML(const.editPersonFile, "addr_edit")
self.top = libglade.GladeXML(const.dialogFile, "addr_edit")
self.window = self.top.get_widget("addr_edit")
self.addr_start = self.top.get_widget("address_start")
self.street = self.top.get_widget("street")
@ -102,7 +102,8 @@ class AddressEditor:
else:
self.srcreflist = []
self.date_check = DateEdit(self.addr_start,self.top.get_widget("date_stat"))
date_stat = self.top.get_widget("date_stat")
self.date_check = DateEdit(self.addr_start,date_stat)
self.top.signal_autoconnect({
"destroy_passed_object" : Utils.destroy_passed_object,

View File

@ -23,11 +23,27 @@ Adds autocompletion to a GtkEntry box, using the passed list of
strings as the possible completions.
"""
#-------------------------------------------------------------------------
#
# python modules
#
#-------------------------------------------------------------------------
import string
#-------------------------------------------------------------------------
#
# GNOME modules
#
#-------------------------------------------------------------------------
import gtk
cnv = string.lower
#-------------------------------------------------------------------------
#
# AutoCompBase
#
#-------------------------------------------------------------------------
class AutoCompBase:
def __init__(self,widget,plist,source=None):
@ -76,6 +92,11 @@ class AutoCompBase:
def timer_callback(self,entry):
pass
#-------------------------------------------------------------------------
#
# AutoCombo
#
#-------------------------------------------------------------------------
class AutoCombo(AutoCompBase):
"""
Allows allow completion of the GtkEntry widget with the entries
@ -152,6 +173,11 @@ class AutoCombo(AutoCompBase):
else:
self.vals = [""]
#-------------------------------------------------------------------------
#
# AutoEntry
#
#-------------------------------------------------------------------------
class AutoEntry(AutoCompBase):
"""
Allows allow completion of the GtkEntry widget with the entries

View File

@ -31,7 +31,7 @@ from gnome.ui import *
#-------------------------------------------------------------------------
#
# Local modules
# gramps modules
#
#-------------------------------------------------------------------------
import Utils
@ -40,8 +40,7 @@ _ = gettext
#-------------------------------------------------------------------------
#
# Interface to gramps' bookmarks. Handles building the bookmarks menu
# for the main window, and provides the bookmark editor.
# Bookmarks
#
#-------------------------------------------------------------------------
class Bookmarks :
@ -165,6 +164,3 @@ class Bookmarks :
def cancel_clicked(self,obj):
"""Closes the current window"""
self.top.destroy()

View File

@ -44,6 +44,11 @@ import sort
import Utils
import GrampsCfg
#-------------------------------------------------------------------------
#
# ChooseParents
#
#-------------------------------------------------------------------------
class ChooseParents:
"""
Displays the Choose Parents dialog box, allowing the parents

View File

@ -20,10 +20,20 @@
"Support for the dates"
#-------------------------------------------------------------------------
#
# python modules
#
#-------------------------------------------------------------------------
from re import IGNORECASE, compile
import string
import time
#-------------------------------------------------------------------------
#
# gramps modules
#
#-------------------------------------------------------------------------
from Calendar import *
from intl import gettext
_ = gettext

View File

@ -23,10 +23,32 @@ Adds autocompletion to a GtkEntry box, using the passed list of
strings as the possible completions.
"""
#-------------------------------------------------------------------------
#
# python modules
#
#-------------------------------------------------------------------------
import string
#-------------------------------------------------------------------------
#
# GNOME modules
#
#-------------------------------------------------------------------------
import GdkImlib
#-------------------------------------------------------------------------
#
# gramps modules
#
#-------------------------------------------------------------------------
import Date
#-------------------------------------------------------------------------
#
# Date indicator pixmaps
#
#-------------------------------------------------------------------------
_good = [
"10 10 24 1",
" c None",
@ -132,7 +154,11 @@ _caution = [
" ~~ ",
" "]
#-------------------------------------------------------------------------
#
# DateEdit
#
#-------------------------------------------------------------------------
class DateEdit:
def __init__(self,input,output):
self.input = input

View File

@ -21,12 +21,18 @@
#-------------------------------------------------------------------------
#
# libraries
# GNOME modules
#
#-------------------------------------------------------------------------
import libglade
import Utils
import gtk
#-------------------------------------------------------------------------
#
# gramps modules
#
#-------------------------------------------------------------------------
import Utils
import const
import GrampsCfg
import intl
@ -35,10 +41,12 @@ _ = intl.gettext
#-------------------------------------------------------------------------
#
# Make sure a database is opened
# DbPrompter
#
#-------------------------------------------------------------------------
class DbPrompter:
"""Make sure a database is opened"""
def __init__(self,db,want_new):
self.db = db
self.want_new = want_new

View File

@ -18,14 +18,24 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
from TextDoc import *
#------------------------------------------------------------------------
#
# python modules
#
#------------------------------------------------------------------------
import string
import os
#------------------------------------------------------------------------
#
#
# gramps modules
#
#------------------------------------------------------------------------
from TextDoc import *
#------------------------------------------------------------------------
#
# GraphicsStyle
#
#------------------------------------------------------------------------
class GraphicsStyle:
@ -75,7 +85,7 @@ class GraphicsStyle:
#------------------------------------------------------------------------
#
#
# DrawDoc
#
#------------------------------------------------------------------------
class DrawDoc:

File diff suppressed because it is too large Load Diff

View File

@ -277,17 +277,15 @@ class EditPerson:
self.lds_endowment = self.person.getLdsEndowment()
self.lds_sealing = self.person.getLdsSeal()
if GrampsCfg.uselds or self.lds_baptism or self.lds_endowment or self.lds_sealing:
self.get_widget("lds_tab").show()
self.get_widget("lds_page").show()
if GrampsCfg.uselds:
if self.lds_baptism or self.lds_endowment or self.lds_sealing:
self.get_widget("lds_tab").show()
self.get_widget("lds_page").show()
types = const.NameTypesMap.keys()
types.sort()
self.ntype_field.set_popdown_strings(types)
print types
self.autotype = AutoComp.AutoEntry(self.ntype_field.entry,types)
print self.ntype_field.entry.get_text()
self.write_primary_name()
if person.getGender() == Person.male:
@ -341,8 +339,7 @@ class EditPerson:
self.redraw_name_list()
self.redraw_url_list()
def set_lds_field(self,ord,combo,date,place):
def lds_field(self,ord,combo,date,place):
combo.set_popdown_strings(_temple_names)
if ord:
stat = ord.getStatus()
@ -362,8 +359,8 @@ class EditPerson:
return stat
def draw_lds(self):
"""Draws the LDS window. This window is not always drawn, and in may cases
is hidden."""
"""Draws the LDS window. This window is not always drawn, and in
may cases is hidden."""
self.ldsbap_date = self.get_widget("ldsbapdate")
self.ldsbap_temple = self.get_widget("ldsbaptemple")
@ -379,24 +376,26 @@ class EditPerson:
self.ldssealplace = self.get_widget("lds_seal_place")
self.ldsendowplace = self.get_widget("lds_end_place")
self.bap_stat = self.set_lds_field(self.person.getLdsBaptism(),
self.ldsbap_temple, self.ldsbap_date,
self.ldsbapplace)
self.bstat = self.lds_field(self.person.getLdsBaptism(),
self.ldsbap_temple,
self.ldsbap_date,
self.ldsbapplace)
self.end_stat = self.set_lds_field(self.person.getLdsEndowment(),
self.ldsend_temple, self.ldsend_date,
self.ldsendowplace)
self.estat = self.lds_field(self.person.getLdsEndowment(),
self.ldsend_temple,
self.ldsend_date,
self.ldsendowplace)
ord = self.person.getLdsSeal()
self.seal_stat = self.set_lds_field(self.person.getLdsSeal(),
self.ldsseal_temple, self.ldsseal_date,
self.ldssealplace)
self.seal_stat = self.lds_field(self.person.getLdsSeal(),
self.ldsseal_temple,
self.ldsseal_date,
self.ldssealplace)
if ord:
self.ldsfam = ord.getFamily()
else:
self.ldsfam = None
myMenu = gtk.GtkMenu()
item = gtk.GtkMenuItem(_("None"))
item.set_data("f",None)
@ -438,51 +437,34 @@ class EditPerson:
self.build_bap_menu()
self.build_seal_menu()
self.build_endow_menu()
def build_bap_menu(self):
def build_menu(self,list,task,opt_menu):
menu = gtk.GtkMenu()
index = 0
for val in const.lds_baptism:
for val in list:
menuitem = gtk.GtkMenuItem(val)
menuitem.set_data("val",index)
menuitem.connect('activate',self.set_lds_bap)
menuitem.connect('activate',task)
menuitem.show()
menu.append(menuitem)
index = index + 1
self.ldsbapstat.set_menu(menu)
self.ldsbapstat.set_history(self.bap_stat)
opt_menu.set_menu(menu)
opt_menu.set_history(self.bstat)
def build_bap_menu(self):
self.build_menu(const.lds_baptism,self.set_lds_bap,self.ldsbapstat)
def build_endow_menu(self):
menu = gtk.GtkMenu()
index = 0
for val in const.lds_baptism:
menuitem = gtk.GtkMenuItem(val)
menuitem.set_data("val",index)
menuitem.connect('activate',self.set_lds_endow)
menuitem.show()
menu.append(menuitem)
index = index + 1
self.ldsendowstat.set_menu(menu)
self.ldsendowstat.set_history(self.end_stat)
self.build_menu(const.lds_baptism,self.set_lds_endow,self.ldsendowstat)
def build_seal_menu(self):
menu = gtk.GtkMenu()
index = 0
for val in const.lds_csealing:
menuitem = gtk.GtkMenuItem(val)
menuitem.set_data("val",index)
menuitem.connect('activate',self.set_lds_seal)
menuitem.show()
menu.append(menuitem)
index = index + 1
self.ldssealstat.set_menu(menu)
self.ldssealstat.set_history(self.seal_stat)
self.build_menu(const.lds_csealing,self.set_lds_seal,self.ldssealstat)
def set_lds_bap(self,obj):
self.bap_stat = obj.get_data("val")
self.bstat = obj.get_data("val")
def set_lds_endow(self,obj):
self.end_stat = obj.get_data("val")
self.estat = obj.get_data("val")
def set_lds_seal(self,obj):
self.seal_stat = obj.get_data("val")
@ -594,7 +576,8 @@ class EditPerson:
Utils.redraw_list(self.nlist,self.name_list,disp_name)
def redraw_url_list(self):
"""redraws the url list, disabling the go button if no url is selected"""
"""redraws the url list, disabling the go button if no url
is selected"""
length = Utils.redraw_list(self.ulist,self.web_list,disp_url)
if length > 0:
self.web_go.set_sensitive(1)
@ -626,7 +609,7 @@ class EditPerson:
prev_dtext = Utils.strip_id(self.dplace.get_text())
# Update birth with new values, make sure death values don't change
if (self.update_birth):
if self.update_birth:
self.update_birth = 0
self.bdate.set_text(self.birth.getDate())
self.bplace.set_text(self.birth.getPlaceName())
@ -634,7 +617,7 @@ class EditPerson:
self.bdate_check = DateEdit(self.bdate,self.get_widget("birth_stat"))
# Update death with new values, make sure birth values don't change
if (self.update_death):
if self.update_death:
self.update_death = 0
self.ddate.set_text(self.death.getDate())
self.dplace.set_text(self.death.getPlaceName())
@ -664,18 +647,16 @@ class EditPerson:
AttrEdit.AttributeEditor(self,None,pname,const.personalAttributes)
def on_up_clicked(self,obj):
if len(obj.selection) == 0:
return
row = obj.selection[0]
if row != 0:
obj.select_row(row-1,0)
if obj.selection:
row = obj.selection[0]
if row != 0:
obj.select_row(row-1,0)
def on_down_clicked(self,obj):
if len(obj.selection) == 0:
return
row = obj.selection[0]
if row != obj.rows-1:
obj.select_row(row+1,0)
if obj.selection:
row = obj.selection[0]
if row != obj.rows-1:
obj.select_row(row+1,0)
def on_event_add_clicked(self,obj):
"""Brings up the EventEditor for a new event"""
@ -695,7 +676,7 @@ class EditPerson:
event.setDate(self.bdate.get_text())
def_placename = self.bplace.get_text()
p = self.get_place(self.bplace)
if p != None:
if p:
event.setPlace(p)
EventEdit.EventEditor(self,pname,const.personalEvents,
const.save_fevent,event,def_placename,1,
@ -712,7 +693,7 @@ class EditPerson:
event.setDate(self.ddate.get_text())
def_placename = self.dplace.get_text()
p = self.get_place(self.dplace)
if p != None:
if p:
event.setPlace(p)
EventEdit.EventEditor(self,pname,const.personalEvents,\
const.save_fevent,event,def_placename,1,
@ -747,7 +728,7 @@ class EditPerson:
import gnome.url
text = obj.get()
if text != "":
if text:
gnome.url.show(text)
def on_cancel_edit(self,obj):
@ -776,7 +757,8 @@ class EditPerson:
Utils.destroy_passed_object(self.window)
def did_data_change(self):
"""Check to see if any of the data has changed from the original record"""
"""Check to see if any of the data has changed from the
original record"""
surname = self.surname_field.get_text()
ntype = self.ntype_field.entry.get_text()
suffix = self.suffix.get_text()
@ -861,14 +843,14 @@ class EditPerson:
ord = self.person.getLdsBaptism()
if not ord:
if date or temple or place or self.bap_stat:
if date or temple or place or self.bstat:
return 1
else:
d = Date()
d.set(date)
if compare_dates(d,ord.getDateObj()) != 0 or \
ord.getPlace() != place or \
ord.getStatus() != self.bap_stat or \
ord.getStatus() != self.bstat or \
ord.getTemple() != temple:
return 1
@ -883,14 +865,14 @@ class EditPerson:
ord = self.person.getLdsEndowment()
if not ord:
if date or temple or place or self.end_stat:
if date or temple or place or self.estat:
return 1
else:
d = Date()
d.set(date)
if compare_dates(d,ord.getDateObj()) != 0 or \
ord.getPlace() != place or \
ord.getStatus() != self.end_stat or \
ord.getStatus() != self.estat or \
ord.getTemple() != temple:
return 1
@ -941,11 +923,10 @@ class EditPerson:
def on_update_attr_clicked(self,obj):
import AttrEdit
if len(obj.selection) <= 0:
return
attr = obj.get_row_data(obj.selection[0])
pname = self.person.getPrimaryName().getName()
AttrEdit.AttributeEditor(self,attr,pname,const.personalAttributes)
if obj.selection:
attr = obj.get_row_data(obj.selection[0])
pname = self.person.getPrimaryName().getName()
AttrEdit.AttributeEditor(self,attr,pname,const.personalAttributes)
def addr_double_click(self,obj,event):
if event.button == 1 and event.type == _2BUTTON_PRESS:
@ -953,7 +934,7 @@ class EditPerson:
def on_update_addr_clicked(self,obj):
import AddrEdit
if len(obj.selection) > 0:
if obj.selection:
AddrEdit.AddressEditor(self,obj.get_row_data(obj.selection[0]))
def url_double_click(self,obj,event):
@ -962,11 +943,10 @@ class EditPerson:
def on_update_url_clicked(self,obj):
import UrlEdit
if len(obj.selection) <= 0:
return
pname = self.person.getPrimaryName().getName()
url = obj.get_row_data(obj.selection[0])
UrlEdit.UrlEditor(self,pname,url)
if obj.selection:
pname = self.person.getPrimaryName().getName()
url = obj.get_row_data(obj.selection[0])
UrlEdit.UrlEditor(self,pname,url)
def event_double_click(self,obj,event):
if event.button == 1 and event.type == _2BUTTON_PRESS:
@ -974,13 +954,12 @@ class EditPerson:
def on_event_update_clicked(self,obj):
import EventEdit
if len(obj.selection) <= 0:
return
pname = self.person.getPrimaryName().getName()
event = obj.get_row_data(obj.selection[0])
EventEdit.EventEditor(self,pname,const.personalEvents,
const.save_fevent,event,None,0,
self.callback)
if obj.selection:
pname = self.person.getPrimaryName().getName()
event = obj.get_row_data(obj.selection[0])
EventEdit.EventEditor(self,pname,const.personalEvents,
const.save_fevent,event,None,0,
self.callback)
def on_event_select_row(self,obj,row,b,c):
self.event_edit_btn.set_sensitive(1)
@ -1081,7 +1060,7 @@ class EditPerson:
def on_aka_update_clicked(self,obj):
import NameEdit
if len(obj.selection) > 0:
if obj.selection:
NameEdit.NameEditor(self,obj.get_row_data(obj.selection[0]))
def load_photo(self,photo):
@ -1261,7 +1240,7 @@ class EditPerson:
ord = self.person.getLdsBaptism()
place = self.get_place(self.ldsbapplace,1)
update_ord(self.person.setLdsBaptism,ord,date,
temple,self.bap_stat,place)
temple,self.bstat,place)
date = self.ldsend_date.get_text()
temple = self.ldsend_temple.entry.get_text()
@ -1272,7 +1251,7 @@ class EditPerson:
ord = self.person.getLdsEndowment()
place = self.get_place(self.ldsendowplace,1)
update_ord(self.person.setLdsEndowment,ord,date,
temple,self.end_stat,place)
temple,self.estat,place)
date = self.ldsseal_date.get_text()
temple = self.ldsseal_temple.entry.get_text()
@ -1317,7 +1296,7 @@ class EditPerson:
def get_place(self,field,makenew=0):
text = string.strip(field.get_text())
if text != "":
if text:
if self.pmap.has_key(text):
return self.pmap[text]
elif makenew:
@ -1391,7 +1370,7 @@ class EditPerson:
def load_person_image(self):
photo_list = self.person.getPhotoList()
if len(photo_list) != 0:
if photo_list:
ph = photo_list[0]
object = ph.getReference()
if self.load_obj != object.getPath():
@ -1413,7 +1392,7 @@ class EditPerson:
self.draw_lds()
def change_name(self,obj):
if len(self.name_list.selection) == 1:
if self.name_list.selection:
old = self.pname
row = self.name_list.selection[0]
new = self.name_list.get_row_data(row)
@ -1436,6 +1415,11 @@ class EditPerson:
self.ntype_field.entry.set_text(_(self.pname.getType()))
self.title.set_text(self.pname.getTitle())
#-------------------------------------------------------------------------
#
# update_ord
#
#-------------------------------------------------------------------------
def update_ord(func,ord,date,temple,stat,place):
if not ord:
if (date or temple or place):
@ -1463,7 +1447,7 @@ def update_ord(func,ord,date,temple,stat,place):
#-------------------------------------------------------------------------
#
#
# disp_name
#
#-------------------------------------------------------------------------
def disp_name(name):
@ -1471,7 +1455,7 @@ def disp_name(name):
#-------------------------------------------------------------------------
#
#
# disp_url
#
#-------------------------------------------------------------------------
def disp_url(url):
@ -1479,7 +1463,7 @@ def disp_url(url):
#-------------------------------------------------------------------------
#
#
# disp_attr
#
#-------------------------------------------------------------------------
def disp_attr(attr):
@ -1488,7 +1472,7 @@ def disp_attr(attr):
#-------------------------------------------------------------------------
#
#
# disp_addr
#
#-------------------------------------------------------------------------
def disp_addr(addr):
@ -1497,7 +1481,7 @@ def disp_addr(addr):
#-------------------------------------------------------------------------
#
#
# disp_event
#
#-------------------------------------------------------------------------
def disp_event(event):
@ -1505,6 +1489,11 @@ def disp_event(event):
return [const.display_pevent(event.getName()),event.getDescription(),
event.getQuoteDate(),event.getPlaceName(),attr]
#-------------------------------------------------------------------------
#
# src_changed
#
#-------------------------------------------------------------------------
def src_changed(parent):
parent.lists_changed = 1

View File

@ -18,6 +18,11 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
#-------------------------------------------------------------------------
#
# python modules
#
#-------------------------------------------------------------------------
import pickle
#-------------------------------------------------------------------------
@ -44,11 +49,16 @@ import ImageSelect
from intl import gettext
_ = gettext
#-------------------------------------------------------------------------
#
# Constants
#
#-------------------------------------------------------------------------
pycode_tgts = [('url', 0, 0)]
#-------------------------------------------------------------------------
#
# Constants
# EditPlace
#
#-------------------------------------------------------------------------
class EditPlace:
@ -147,17 +157,21 @@ class EditPlace:
self.top_window.get_widget("add_photo").set_sensitive(0)
self.top_window.get_widget("delete_photo").set_sensitive(0)
self.web_list.drag_dest_set(gtk.DEST_DEFAULT_ALL,pycode_tgts,GDK.ACTION_COPY)
self.web_list.drag_source_set(GDK.BUTTON1_MASK, pycode_tgts, GDK.ACTION_COPY)
self.web_list.connect('drag_data_get', self.url_source_drag_data_get)
self.web_list.connect('drag_data_received', self.url_dest_drag_data_received)
self.web_list.drag_dest_set(gtk.DEST_DEFAULT_ALL,
pycode_tgts,GDK.ACTION_COPY)
self.web_list.drag_source_set(GDK.BUTTON1_MASK,
pycode_tgts, GDK.ACTION_COPY)
self.web_list.connect('drag_data_get',
self.url_source_drag_data_get)
self.web_list.connect('drag_data_received',
self.url_dest_drag_data_received)
self.redraw_url_list()
self.redraw_location_list()
def url_dest_drag_data_received(self,widget,context,x,y,selection_data,info,time):
if selection_data and selection_data.data:
exec 'data = %s' % selection_data.data
def url_dest_drag_data_received(self,widget,context,x,y,sel_data,info,time):
if sel_data and sel_data.data:
exec 'data = %s' % sel_data.data
exec 'mytype = "%s"' % data[0]
exec 'place = "%s"' % data[1]
if place == self.place.getId() or mytype != 'url':
@ -167,13 +181,13 @@ class EditPlace:
self.lists_changed = 1
self.redraw_url_list()
def url_source_drag_data_get(self,widget, context, selection_data, info, time):
def url_source_drag_data_get(self,widget, context, sel_data, info, time):
ev = widget.get_row_data(widget.focus_row)
bits_per = 8; # we're going to pass a string
pickled = pickle.dumps(ev);
data = str(('url',self.place.getId(),pickled));
selection_data.set(selection_data.target, bits_per, data)
sel_data.set(sel_data.target, bits_per, data)
def update_lists(self):
self.place.setUrlList(self.ulist)
@ -201,54 +215,31 @@ class EditPlace:
if text != "":
gnome.url.show(text)
def set(self,field,getf,setf):
text = field.get_text()
if text != getf():
setf(text)
Utils.modified()
def on_place_apply_clicked(self,obj):
title = self.title.get_text()
city = self.city.get_text()
county = self.county.get_text()
state = self.state.get_text()
parish = self.parish.get_text()
country = self.country.get_text()
longitude = self.longitude.get_text()
latitude = self.latitude.get_text()
note = self.note.get_chars(0,-1)
mloc = self.place.get_main_location()
if city != mloc.get_city():
mloc.set_city(city)
Utils.modified()
if parish != mloc.get_parish():
mloc.set_parish(parish)
Utils.modified()
self.set(self.city,mloc.get_city,mloc.set_city)
self.set(self.parish,mloc.get_parish,mloc.set_parish)
self.set(self.state,mloc.get_state,mloc.set_state)
self.set(self.county,mloc.get_county,mloc.set_county)
self.set(self.country,mloc.get_country,mloc.set_country)
self.set(self.title,self.place.get_title,self.place.set_title)
self.set(self.longitude,self.place.get_longitude,
self.place.set_longitude)
self.set(self.latitude,self.place.get_latitude,
self.place.set_latitude)
if self.lists_changed:
self.place.setSourceRefList(self.srcreflist)
Utils.modified()
if state != mloc.get_state():
mloc.set_state(state)
Utils.modified()
if county != mloc.get_county():
mloc.set_county(county)
Utils.modified()
if country != mloc.get_country():
mloc.set_country(country)
Utils.modified()
if title != self.place.get_title():
self.place.set_title(title)
Utils.modified()
if longitude != self.place.get_longitude():
self.place.set_longitude(longitude)
Utils.modified()
if latitude != self.place.get_latitude():
self.place.set_latitude(latitude)
Utils.modified()
if note != self.place.getNote():
self.place.setNote(note)
@ -280,7 +271,7 @@ class EditPlace:
def on_update_loc_clicked(self,obj):
import LocEdit
if len(obj.selection) > 0:
if obj.selection:
row = obj.selection[0]
LocEdit.LocationEditor(self,obj.get_row_data(row))
@ -374,7 +365,7 @@ class EditPlace:
#-------------------------------------------------------------------------
#
#
# disp_url
#
#-------------------------------------------------------------------------
def disp_url(url):
@ -382,7 +373,7 @@ def disp_url(url):
#-------------------------------------------------------------------------
#
#
# disp_loc
#
#-------------------------------------------------------------------------
def disp_loc(loc):
@ -390,7 +381,7 @@ def disp_loc(loc):
#-------------------------------------------------------------------------
#
#
# src_changed
#
#-------------------------------------------------------------------------
def src_changed(parent):
@ -398,7 +389,7 @@ def src_changed(parent):
#-------------------------------------------------------------------------
#
#
# DeletePlaceQuery
#
#-------------------------------------------------------------------------
class DeletePlaceQuery:

View File

@ -23,14 +23,36 @@
__author__ = 'Don Allingham'
import GrampsCfg
#-------------------------------------------------------------------------
#
# python modules
#
#-------------------------------------------------------------------------
import string
#-------------------------------------------------------------------------
#
# Gnome modules
#
#-------------------------------------------------------------------------
import gtk
from gnome.ui import *
#-------------------------------------------------------------------------
#
# gramps modules
#
#-------------------------------------------------------------------------
import GrampsCfg
import AutoComp
from intl import gettext
_ = gettext
#-------------------------------------------------------------------------
#
# FindBase
#
#-------------------------------------------------------------------------
class FindBase:
"""Opens find person dialog for gramps"""
@ -80,6 +102,7 @@ class FindBase:
self.row = self.clist.rows
def on_close_clicked(self,obj):
"""Destroys the window in response to a close window button press"""
self.top.destroy()
def on_next_clicked(self,obj):
@ -90,8 +113,11 @@ class FindBase:
"""Advances to the previous person that matches the dialog text"""
self.advance(self.backward)
#-------------------------------------------------------------------------
#
# FindPerson
#
#-------------------------------------------------------------------------
class FindPerson(FindBase):
"""Opens a Find Person dialog for GRAMPS"""
@ -135,6 +161,11 @@ class FindPerson(FindBase):
func()
gtk.gdk_beep()
#-------------------------------------------------------------------------
#
# FindPlace
#
#-------------------------------------------------------------------------
class FindPlace(FindBase):
"""Opens a Find Place dialog for GRAMPS"""
@ -175,6 +206,11 @@ class FindPlace(FindBase):
func()
gtk.gdk_beep()
#-------------------------------------------------------------------------
#
# FindSource
#
#-------------------------------------------------------------------------
class FindSource(FindBase):
"""Opens a Find Place dialog for GRAMPS"""
@ -215,6 +251,11 @@ class FindSource(FindBase):
func()
gtk.gdk_beep()
#-------------------------------------------------------------------------
#
# FindMedia
#
#-------------------------------------------------------------------------
class FindMedia(FindBase):
"""Opens a Find Media Object dialog for GRAMPS"""
@ -254,13 +295,3 @@ class FindMedia(FindBase):
return
func()
gtk.gdk_beep()

View File

@ -48,7 +48,7 @@ class NameEditor:
def __init__(self,parent,name):
self.parent = parent
self.name = name
self.top = libglade.GladeXML(const.editPersonFile, "name_edit")
self.top = libglade.GladeXML(const.dialogFile, "name_edit")
self.window = self.top.get_widget("name_edit")
self.given_field = self.top.get_widget("alt_given")
self.title_field = self.top.get_widget("alt_title")

View File

@ -44,7 +44,7 @@ class UrlEditor:
def __init__(self,parent,name,url):
self.parent = parent
self.url = url
self.top = libglade.GladeXML(const.editPersonFile, "url_edit")
self.top = libglade.GladeXML(const.dialogFile, "url_edit")
self.window = self.top.get_widget("url_edit")
self.des = self.top.get_widget("url_des")
self.addr = self.top.get_widget("url_addr")

View File

@ -91,7 +91,7 @@ startup = 1
# About box information
#
#-------------------------------------------------------------------------
progName = "gramps"
progName = "GRAMPS"
version = "0.7.3-snap20020406"
copyright = "© 2001 Donald N. Allingham"
authors = ["Donald N. Allingham", "David Hampton","Donald A. Peterson"]

File diff suppressed because it is too large Load Diff

View File

@ -115,6 +115,13 @@ import time
import getopt
import tokenize
import operator
import re
intRe = re.compile("^\d+$")
_ignore = {
':' : 0,
}
# for selftesting
try:
@ -124,12 +131,9 @@ except ImportError:
def _(s): return s
__version__ = '1.4'
default_keywords = ['_']
EMPTYSTRING = ''
import sys
import string
import xmllib
@ -144,6 +148,8 @@ class TranslatableStringParser(xmllib.XMLParser):
def add_string(self, string):
if string == "":
return
if _ignore.has_key(string):
return
entry = (self.filename, self.lineno)
if self.strings.has_key(string):
self.strings[string][entry] = 0
@ -172,7 +178,8 @@ class TranslatableStringParser(xmllib.XMLParser):
self.data = self.data + data
def translate_this_string(self):
self.add_string(self.data)
if not intRe.match(self.data):
self.add_string(self.data)
# this list should include all tags for which translation should occur
end_label = translate_this_string

View File

@ -227,7 +227,7 @@
<widget>
<class>GtkLabel</class>
<name>label229</name>
<label>gramps ID</label>
<label>GRAMPS ID</label>
<justify>GTK_JUSTIFY_CENTER</justify>
<wrap>False</wrap>
<xalign>1</xalign>

View File

@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: Fri Apr 12 20:40:09 2002\n"
"POT-Creation-Date: Sat Apr 13 16:30:41 2002\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -56,7 +56,7 @@ msgstr ""
#: EditPerson.glade:3212 EditPerson.glade:4037 EditPerson.glade:4639
#: gramps.glade:1757 gramps.glade:2253 imagesel.glade:1285 imagesel.glade:2286
#: marriage.glade:938 marriage.glade:1349 places.glade:1216 places.glade:1721
#: rule.glade:409 rule.glade:807 srcsel.glade:858 styles.glade:247
#: rule.glade:456 rule.glade:854 srcsel.glade:858 styles.glade:247
msgid "Delete"
msgstr ""
@ -74,20 +74,20 @@ msgstr ""
msgid "Choose the Parents of %s"
msgstr ""
#: ChooseParents.py:172 ChooseParents.py:173 gramps_main.py:1544
#: gramps_main.py:1545
#: ChooseParents.py:172 ChooseParents.py:173 gramps_main.py:1554
#: gramps_main.py:1555
msgid "Parent"
msgstr ""
#: ChooseParents.py:175 gramps.glade:1899 gramps.glade:5112
#: gramps_main.py:1548 mergedata.glade:518 mergedata.glade:1180
#: gramps_main.py:1558 mergedata.glade:518 mergedata.glade:1180
#: plugins/FamilyGroup.py:197 plugins/IndivSummary.py:283
#: plugins/WebPage.py:246 plugins/WebPage.py:249
msgid "Mother"
msgstr ""
#: ChooseParents.py:176 gramps.glade:1808 gramps.glade:4952
#: gramps_main.py:1547 mergedata.glade:766 mergedata.glade:1478
#: gramps_main.py:1557 mergedata.glade:766 mergedata.glade:1478
#: plugins/FamilyGroup.py:184 plugins/IndivSummary.py:269
#: plugins/WebPage.py:245 plugins/WebPage.py:248
msgid "Father"
@ -141,115 +141,115 @@ msgstr ""
msgid "September"
msgstr ""
#: Date.py:108
msgid "(from|between|bet|bet."
#: Date.py:106
msgid "(from|between|bet|bet.)"
msgstr ""
#: Date.py:109
msgid "(and|to|-"
#: Date.py:107
msgid "(and|to|-)"
msgstr ""
#: Date.py:247 Date.py:273 Date.py:286
#: Date.py:244 Date.py:270 Date.py:283
msgid "from"
msgstr ""
#: Date.py:247 Date.py:273 Date.py:286 plugins/changetype.glade:152
#: Date.py:244 Date.py:270 Date.py:283 plugins/changetype.glade:152
msgid "to"
msgstr ""
#: Date.py:256 EditPerson.glade:6648 EventEdit.py:137 dialog.glade:512
#: Date.py:253 EditPerson.glade:6648 EventEdit.py:137 dialog.glade:512
msgid "Julian"
msgstr ""
#: Date.py:258 EditPerson.glade:6648 EventEdit.py:137 dialog.glade:512
#: Date.py:255 EditPerson.glade:6648 EventEdit.py:137 dialog.glade:512
msgid "Hebrew"
msgstr ""
#: Date.py:260 EditPerson.glade:6648 dialog.glade:512
#: Date.py:257 EditPerson.glade:6648 dialog.glade:512
msgid "French"
msgstr ""
#: Date.py:341 Date.py:358 Date.py:519
#: Date.py:338 Date.py:355 Date.py:516
msgid "about"
msgstr ""
#: Date.py:341 Date.py:548
#: Date.py:338 Date.py:545
msgid "abt"
msgstr ""
#: Date.py:342
#: Date.py:339
msgid "abt."
msgstr ""
#: Date.py:342
#: Date.py:339
msgid "est"
msgstr ""
#: Date.py:343
#: Date.py:340
msgid "est."
msgstr ""
#: Date.py:343 Date.py:360
#: Date.py:340 Date.py:357
msgid "circa"
msgstr ""
#: Date.py:344 Date.py:361
#: Date.py:341 Date.py:358
msgid "around"
msgstr ""
#: Date.py:344 Date.py:362 Date.py:521 Date.py:550
#: Date.py:341 Date.py:359 Date.py:518 Date.py:547
msgid "before"
msgstr ""
#: Date.py:345
#: Date.py:342
msgid "bef"
msgstr ""
#: Date.py:345
#: Date.py:342
msgid "bef."
msgstr ""
#: Date.py:346
#: Date.py:343
msgid "aft."
msgstr ""
#: Date.py:346 Date.py:363 Date.py:523 Date.py:552
#: Date.py:343 Date.py:360 Date.py:520 Date.py:549
msgid "after"
msgstr ""
#: Date.py:347
#: Date.py:344
msgid "aft"
msgstr ""
#: Date.py:357
#: Date.py:354
msgid "abt\\.?"
msgstr ""
#: Date.py:359
#: Date.py:356
msgid "est\\.?"
msgstr ""
#: Date.py:364
#: Date.py:361
msgid "aft\\.?"
msgstr ""
#: Date.py:365
#: Date.py:362
msgid "bef\\.?"
msgstr ""
#: Date.py:578 Date.py:606 Date.py:633 Date.py:662 Date.py:701
#: Date.py:575 Date.py:603 Date.py:630 Date.py:659 Date.py:698
msgid "ABOUT"
msgstr ""
#: Date.py:580 Date.py:608 Date.py:635 Date.py:665 Date.py:703
#: Date.py:577 Date.py:605 Date.py:632 Date.py:662 Date.py:700
msgid "BEFORE"
msgstr ""
#: Date.py:582 Date.py:610 Date.py:637 Date.py:667 Date.py:705
#: Date.py:579 Date.py:607 Date.py:634 Date.py:664 Date.py:702
msgid "AFTER"
msgstr ""
#: DbPrompter.py:79 gramps_main.py:730 gramps_main.py:1236 gramps_main.py:1247
#: DbPrompter.py:79 gramps_main.py:730 gramps_main.py:1237 gramps_main.py:1249
msgid "No Comment Provided"
msgstr ""
@ -269,28 +269,6 @@ msgstr ""
msgid "Select information source"
msgstr ""
#: EditPerson.glade:188 EditPerson.glade:214 EditPerson.glade:458
#: EditPerson.glade:484 EditPerson.glade:1275 EditPerson.glade:1301
#: EditPerson.glade:1615 EditPerson.glade:1641 EditPerson.glade:1667
#: EditPerson.glade:1693 EditPerson.glade:1719 EditPerson.glade:1823
#: EditPerson.glade:2361 EditPerson.glade:2387 EditPerson.glade:2413
#: EditPerson.glade:2439 EditPerson.glade:2491 EditPerson.glade:2954
#: EditPerson.glade:2980 EditPerson.glade:3560 EditPerson.glade:3586
#: EditPerson.glade:3612 EditPerson.glade:3638 EditPerson.glade:3664
#: EditPerson.glade:3690 EditPerson.glade:3716 EditPerson.glade:4394
#: EditPerson.glade:4420 gramps.glade:3727 gramps.glade:3753 gramps.glade:3779
#: gramps.glade:3831 gramps.glade:4065 imagesel.glade:534 imagesel.glade:639
#: imagesel.glade:691 imagesel.glade:818 imagesel.glade:1037
#: imagesel.glade:1063 imagesel.glade:1533 imagesel.glade:1611
#: imagesel.glade:1689 imagesel.glade:1782 imagesel.glade:2037
#: imagesel.glade:2063 marriage.glade:557 marriage.glade:583
#: marriage.glade:609 marriage.glade:635 marriage.glade:687
#: marriage.glade:1103 marriage.glade:1129 places.glade:871 places.glade:897
#: places.glade:923 places.glade:949 places.glade:1027 places.glade:1557
#: places.glade:1583
msgid ":"
msgstr ""
#: EditPerson.glade:240 EditPerson.glade:536 EditPerson.glade:2153
#: EditPerson.glade:2679 EditPerson.glade:3352 EditPerson.glade:3939
#: EditPerson.glade:4691 EditPerson.glade:4963 EditPerson.glade:5235
@ -317,7 +295,7 @@ msgstr ""
#: EditPerson.glade:325 EditPerson.glade:571 EditPerson.glade:2064
#: EditPerson.glade:2760 EditPerson.glade:3195 EditPerson.glade:4020
#: EditPerson.glade:4622 imagesel.glade:1269 imagesel.glade:2270
#: marriage.glade:922 marriage.glade:1333 rule.glade:394 rule.glade:791
#: marriage.glade:922 marriage.glade:1333 rule.glade:441 rule.glade:838
#: srcsel.glade:843 styles.glade:232
msgid "Edit"
msgstr ""
@ -344,7 +322,7 @@ msgstr ""
msgid "female"
msgstr ""
#: EditPerson.glade:708 EditPerson.py:424 const.py:112 gramps.glade:6806
#: EditPerson.glade:708 EditPerson.py:426 const.py:112 gramps.glade:6806
#: plugins/FamilyGroup.py:379 plugins/IndivSummary.py:161
#: plugins/WebPage.py:506
msgid "unknown"
@ -416,7 +394,7 @@ msgid "Identification"
msgstr ""
#: EditPerson.glade:1223 marriage.glade:230
msgid "gramps ID"
msgid "GRAMPS ID"
msgstr ""
#: EditPerson.glade:1356 GrampsCfg.py:95 GrampsCfg.py:101 gramps.glade:6223
@ -441,7 +419,7 @@ msgstr ""
#: gramps.glade:4701 gramps.glade:5001 gramps.glade:5160 gramps.glade:5526
#: mergedata.glade:544 mergedata.glade:1699 plugins/IndivSummary.py:222
#: plugins/WebPage.py:237 plugins/relcalc.glade:157 plugins/soundex.glade:143
#: preferences.glade:1763 rule.glade:140 rule.glade:725
#: preferences.glade:1763 rule.glade:140 rule.glade:772
msgid "Name"
msgstr ""
@ -452,8 +430,8 @@ msgstr ""
#: EditPerson.glade:2047 EditPerson.glade:2743 EditPerson.glade:3178
#: EditPerson.glade:4003 EditPerson.glade:4605 gramps.glade:1729
#: imagesel.glade:1253 imagesel.glade:2254 marriage.glade:906
#: marriage.glade:1317 places.glade:1186 places.glade:1691 rule.glade:379
#: rule.glade:775 srcsel.glade:828 styles.glade:217
#: marriage.glade:1317 places.glade:1186 places.glade:1691 rule.glade:426
#: rule.glade:822 srcsel.glade:828 styles.glade:217
msgid "Add"
msgstr ""
@ -754,33 +732,33 @@ msgstr ""
msgid "Internet Address Editor"
msgstr ""
#: EditPerson.py:399 GrampsCfg.py:61 const.py:125 gramps.glade:5081
#: EditPerson.py:401 GrampsCfg.py:61 const.py:125 gramps.glade:5081
#: gramps.glade:5240 gramps.glade:5656 gramps.glade:5721 gramps.glade:6656
#: gramps.glade:6703
msgid "None"
msgstr ""
#: EditPerson.py:416 EditSource.py:138
#: EditPerson.py:418 EditSource.py:138
msgid "%(father)s and %(mother)s"
msgstr ""
#: EditPerson.py:755 EditPerson.py:764
#: EditPerson.py:757 EditPerson.py:766
msgid "Are you sure you want to abandon your changes?"
msgstr ""
#: EditPerson.py:1076
#: EditPerson.py:1078
msgid "Make the selected name the preferred name"
msgstr ""
#: EditPerson.py:1137 Marriage.py:367
#: EditPerson.py:1139 Marriage.py:367
msgid "GRAMPS ID value was not changed."
msgstr ""
#: EditPerson.py:1138
#: EditPerson.py:1140
msgid "%(grampsid)s is already used by %(person)s"
msgstr ""
#: EditPerson.py:1242
#: EditPerson.py:1244
msgid ""
"Changing the gender caused problems with marriage information.\n"
"Please check the person's marriages."
@ -872,11 +850,11 @@ msgstr ""
msgid "ID"
msgstr ""
#: GenericFilter.py:235 plugins/FilterEditor.py:39
#: GenericFilter.py:235 plugins/FilterEditor.py:40
msgid "Personal Event"
msgstr ""
#: GenericFilter.py:273 plugins/FilterEditor.py:40
#: GenericFilter.py:273 plugins/FilterEditor.py:41
msgid "Family Event"
msgstr ""
@ -885,7 +863,7 @@ msgid "Number of Relationships"
msgstr ""
#: GenericFilter.py:313 gramps.glade:4762 marriage.glade:161
#: plugins/FilterEditor.py:43
#: plugins/FilterEditor.py:44
msgid "Relationship Type"
msgstr ""
@ -893,87 +871,87 @@ msgstr ""
msgid "Number of Children"
msgstr ""
#: GenericFilter.py:427 plugins/FilterEditor.py:41
#: GenericFilter.py:427 plugins/FilterEditor.py:42
msgid "Personal Attribute"
msgstr ""
#: GenericFilter.py:448 plugins/FilterEditor.py:42
#: GenericFilter.py:448 plugins/FilterEditor.py:43
msgid "Family Attribute"
msgstr ""
#: GenericFilter.py:500
#: GenericFilter.py:501
msgid "Filter Name"
msgstr ""
#: GenericFilter.py:584
#: GenericFilter.py:645
msgid "Everyone"
msgstr ""
#: GenericFilter.py:585
#: GenericFilter.py:646
msgid "Has the Id"
msgstr ""
#: GenericFilter.py:586
#: GenericFilter.py:647
msgid "Has a name"
msgstr ""
#: GenericFilter.py:587
#: GenericFilter.py:648
msgid "Has the relationships"
msgstr ""
#: GenericFilter.py:588
#: GenericFilter.py:649
msgid "Has the death"
msgstr ""
#: GenericFilter.py:589
#: GenericFilter.py:650
msgid "Has the birth"
msgstr ""
#: GenericFilter.py:590
#: GenericFilter.py:651
msgid "Is the descendant of"
msgstr ""
#: GenericFilter.py:591
#: GenericFilter.py:652
msgid "Is an ancestor of"
msgstr ""
#: GenericFilter.py:592
#: GenericFilter.py:653
msgid "Is a female"
msgstr ""
#: GenericFilter.py:593
#: GenericFilter.py:654
msgid "Is a male"
msgstr ""
#: GenericFilter.py:594
#: GenericFilter.py:655
msgid "Has the personal event"
msgstr ""
#: GenericFilter.py:595
#: GenericFilter.py:656
msgid "Has the family event"
msgstr ""
#: GenericFilter.py:596
#: GenericFilter.py:657
msgid "Has the personal attribute"
msgstr ""
#: GenericFilter.py:597
#: GenericFilter.py:658
msgid "Has the family attribute"
msgstr ""
#: GenericFilter.py:598
#: GenericFilter.py:659
msgid "Matches the filter named"
msgstr ""
#: GenericFilter.py:723
#: GenericFilter.py:799
msgid "Local Filters"
msgstr ""
#: GenericFilter.py:738
#: GenericFilter.py:814
msgid "System Filters"
msgstr ""
#: GenericFilter.py:753
#: GenericFilter.py:829
msgid "Custom Filters"
msgstr ""
@ -1239,8 +1217,7 @@ msgstr ""
#: Plugins.py:365 Plugins.py:376 const.py:126 const.py:401 const.py:409
#: gramps.glade:5081 gramps.glade:5240 gramps.glade:5656 gramps.glade:5721
#: gramps.glade:6656 gramps.glade:6703 gramps_main.py:1411 gramps_main.py:1416
#: gramps_main.py:1642
#: gramps.glade:6656 gramps.glade:6703 gramps_main.py:1444 gramps_main.py:1650
msgid "Unknown"
msgstr ""
@ -1266,7 +1243,7 @@ msgid ""
msgstr ""
#: RelImage.py:74 RelImage.py:77 RelImage.py:142 RelImage.py:145
#: gramps_main.py:751 gramps_main.py:755 gramps_main.py:763 gramps_main.py:767
#: gramps_main.py:751 gramps_main.py:755 gramps_main.py:763
#: plugins/WriteGedcom.py:408 plugins/WriteGedcom.py:413
msgid "Could not create %s"
msgstr ""
@ -2092,7 +2069,7 @@ msgstr ""
msgid "Names that contain a substring"
msgstr ""
#: gramps.glade:35 gramps_main.py:718 gramps_main.py:782 preferences.glade:173
#: gramps.glade:35 gramps_main.py:718 gramps_main.py:778 preferences.glade:173
msgid "GRAMPS"
msgstr ""
@ -2300,7 +2277,7 @@ msgstr ""
msgid "Show persons that do not match the filtering rule"
msgstr ""
#: gramps.glade:868
#: gramps.glade:868 rule.glade:318
msgid "Invert"
msgstr ""
@ -2333,8 +2310,8 @@ msgstr ""
msgid "Exchange active person and displayed spouse"
msgstr ""
#: gramps.glade:1516 gramps_main.py:1493 gramps_main.py:1518
#: gramps_main.py:1915
#: gramps.glade:1516 gramps_main.py:1502 gramps_main.py:1527
#: gramps_main.py:1923
msgid "Relationship"
msgstr ""
@ -2664,7 +2641,7 @@ msgid ""
"Should this be loaded instead of the last saved version?"
msgstr ""
#: gramps_main.py:708 gramps_main.py:745
#: gramps_main.py:709 gramps_main.py:745
msgid "%s is not a directory"
msgstr ""
@ -2676,35 +2653,35 @@ msgstr ""
msgid "Saving %s ..."
msgstr ""
#: gramps_main.py:799
#: gramps_main.py:795
msgid "autosaving..."
msgstr ""
#: gramps_main.py:802
#: gramps_main.py:798
msgid "autosave complete"
msgstr ""
#: gramps_main.py:804
#: gramps_main.py:800
msgid "autosave failed"
msgstr ""
#: gramps_main.py:813
#: gramps_main.py:809
msgid "You requested too many people to edit at the same time"
msgstr ""
#: gramps_main.py:842
#: gramps_main.py:839
msgid "Do you really wish to delete %s?"
msgstr ""
#: gramps_main.py:846
#: gramps_main.py:842
msgid "Currently, you can only delete one person at a time"
msgstr ""
#: gramps_main.py:1143
msgid "Invalid move. Children must be ordered by birth date."
#: gramps_main.py:1141
msgid "Invalid move. Children must be ordered by birth date."
msgstr ""
#: gramps_main.py:1189
#: gramps_main.py:1188
msgid "Do you wish to abandon your changes and revert to the last saved database?"
msgstr ""
@ -2712,39 +2689,39 @@ msgstr ""
msgid "Cannot revert to a previous database, since one does not exist"
msgstr ""
#: gramps_main.py:1491 gramps_main.py:1913
#: gramps_main.py:1500 gramps_main.py:1921
msgid "Preferred Relationship"
msgstr ""
#: gramps_main.py:1526
#: gramps_main.py:1536
msgid "No Relationship"
msgstr ""
#: gramps_main.py:1556
#: gramps_main.py:1566
msgid "Preferred Parents (%d of %d)"
msgstr ""
#: gramps_main.py:1559
#: gramps_main.py:1568
msgid "Preferred Parents"
msgstr ""
#: gramps_main.py:1562
#: gramps_main.py:1571
msgid "Alternate Parents (%d of %d)"
msgstr ""
#: gramps_main.py:1565
#: gramps_main.py:1574
msgid "No Parents"
msgstr ""
#: gramps_main.py:1854
#: gramps_main.py:1862
msgid "No default/home person has been set"
msgstr ""
#: gramps_main.py:1859
#: gramps_main.py:1867
msgid "%s has been bookmarked"
msgstr ""
#: gramps_main.py:1872
#: gramps_main.py:1880
msgid "Do you wish to set %s as the home person?"
msgstr ""
@ -2940,10 +2917,6 @@ msgstr ""
msgid "Report Selection - GRAMPS"
msgstr ""
#: plugins.glade:146
msgid "label63"
msgstr ""
#: plugins.glade:239
msgid "Select a report from those available on the left."
msgstr ""
@ -2989,7 +2962,7 @@ msgstr ""
#: plugins/AncestorChart.py:471 plugins/AncestorReport.py:404
#: plugins/DescendReport.py:305 plugins/DetAncestralReport.py:634
#: plugins/FamilyGroup.py:550 plugins/GraphViz.py:390
#: plugins/IndivSummary.py:521 plugins/Summary.py:133 plugins/WebPage.py:1162
#: plugins/IndivSummary.py:521 plugins/Summary.py:133 plugins/WebPage.py:1107
msgid "Beta"
msgstr ""
@ -3211,7 +3184,7 @@ msgstr ""
msgid "Provides a browsable hierarchy based on the active person"
msgstr ""
#: plugins/DescendReport.py:96 plugins/GraphViz.py:86 plugins/WebPage.py:851
#: plugins/DescendReport.py:96 plugins/GraphViz.py:86 plugins/WebPage.py:790
#: plugins/WriteGedcom.py:318 plugins/WritePafPalm.py:570
msgid "Descendants of %s"
msgstr ""
@ -3378,7 +3351,7 @@ msgstr ""
msgid " at the age of %d %s"
msgstr ""
#: plugins/EventCmp.py:132 plugins/GraphViz.py:82 plugins/WebPage.py:847
#: plugins/EventCmp.py:132 plugins/GraphViz.py:82 plugins/WebPage.py:786
#: plugins/WriteGedcom.py:314 plugins/WritePafPalm.py:561
msgid "Entire Database"
msgstr ""
@ -3424,24 +3397,24 @@ msgstr ""
msgid "Creates a family group report, showing information on a set of parents and their children."
msgstr ""
#: plugins/FilterEditor.py:353
#: plugins/FilterEditor.py:380
msgid "Custom Filter Editor"
msgstr ""
#: plugins/FilterEditor.py:354 plugins/FilterEditor.py:367
#: plugins/FilterEditor.py:381 plugins/FilterEditor.py:394
#: plugins/RelCalc.py:437 plugins/Verify.py:292 plugins/soundgen.py:91
msgid "Utilities"
msgstr ""
#: plugins/FilterEditor.py:355
#: plugins/FilterEditor.py:382
msgid "The Custom Filter Editor builds custom filters that can be used to select people included reports, exports, and other utilities."
msgstr ""
#: plugins/FilterEditor.py:366
#: plugins/FilterEditor.py:393
msgid "System Filter Editor"
msgstr ""
#: plugins/FilterEditor.py:368
#: plugins/FilterEditor.py:395
msgid "The System Filter Editor builds custom filters that can be used by anyone on the system to select people included reports, exports, and other utilities."
msgstr ""
@ -3469,7 +3442,7 @@ msgstr ""
msgid "Graphviz File"
msgstr ""
#: plugins/GraphViz.py:90 plugins/WebPage.py:855 plugins/WriteGedcom.py:322
#: plugins/GraphViz.py:90 plugins/WebPage.py:794 plugins/WriteGedcom.py:322
#: plugins/WritePafPalm.py:566
msgid "Ancestors of %s"
msgstr ""
@ -4026,73 +3999,77 @@ msgstr ""
msgid "Facts and Events"
msgstr ""
#: plugins/WebPage.py:661
#: plugins/WebPage.py:571
msgid "Creating Web Pages"
msgstr ""
#: plugins/WebPage.py:661
#: plugins/WebPage.py:571
msgid "Generate HTML reports - GRAMPS"
msgstr ""
#: plugins/WebPage.py:671 plugins/WebPage.py:675
#: plugins/WebPage.py:581 plugins/WebPage.py:585
msgid "Family Tree Index"
msgstr ""
#: plugins/WebPage.py:696
#: plugins/WebPage.py:619
msgid "%s (continued)"
msgstr ""
#: plugins/WebPage.py:635
msgid "Neither %s nor %s are directories"
msgstr ""
#: plugins/WebPage.py:703 plugins/WebPage.py:707 plugins/WebPage.py:719
#: plugins/WebPage.py:723
#: plugins/WebPage.py:642 plugins/WebPage.py:646 plugins/WebPage.py:658
#: plugins/WebPage.py:662
msgid "Could not create the directory : %s"
msgstr ""
#: plugins/WebPage.py:784
#: plugins/WebPage.py:723
msgid "Include a link to the index page"
msgstr ""
#: plugins/WebPage.py:785 plugins/gedcomexport.glade:295
#: plugins/WebPage.py:724 plugins/gedcomexport.glade:295
#: plugins/pafexport.glade:296
msgid "Do not include records marked private"
msgstr ""
#: plugins/WebPage.py:786
#: plugins/WebPage.py:725
msgid "Restrict information on living people"
msgstr ""
#: plugins/WebPage.py:787
#: plugins/WebPage.py:726
msgid "Do not use images"
msgstr ""
#: plugins/WebPage.py:788
#: plugins/WebPage.py:727
msgid "Do not use images for living people"
msgstr ""
#: plugins/WebPage.py:789
#: plugins/WebPage.py:728
msgid "Do not include comments and text in source information"
msgstr ""
#: plugins/WebPage.py:790
#: plugins/WebPage.py:729
msgid "Image subdirectory"
msgstr ""
#: plugins/WebPage.py:806
#: plugins/WebPage.py:745
msgid "Privacy Options"
msgstr ""
#: plugins/WebPage.py:822 plugins/WebPage.py:1160
#: plugins/WebPage.py:761 plugins/WebPage.py:1105
msgid "Generate Web Site"
msgstr ""
#: plugins/WebPage.py:822 plugins/WebPage.py:1161
#: plugins/WebPage.py:761 plugins/WebPage.py:1106
msgid "Web Page"
msgstr ""
#: plugins/WebPage.py:827
#: plugins/WebPage.py:766
msgid "Target Directory"
msgstr ""
#: plugins/WebPage.py:1163
#: plugins/WebPage.py:1108
msgid "Generates web (HTML) pages for individuals, or a set of individuals."
msgstr ""
@ -4458,34 +4435,6 @@ msgstr ""
msgid "Maximum span of years for all children"
msgstr ""
#: plugins/verify.glade:400
msgid "8"
msgstr ""
#: plugins/verify.glade:425
msgid "25"
msgstr ""
#: plugins/verify.glade:450
msgid "3"
msgstr ""
#: plugins/verify.glade:475
msgid "50"
msgstr ""
#: plugins/verify.glade:500 plugins/verify.glade:688
msgid "17"
msgstr ""
#: plugins/verify.glade:525 plugins/verify.glade:575
msgid "30"
msgstr ""
#: plugins/verify.glade:550
msgid "90"
msgstr ""
#: plugins/verify.glade:609
msgid "Women"
msgstr ""
@ -4498,18 +4447,10 @@ msgstr ""
msgid "Maximum age to bear a child"
msgstr ""
#: plugins/verify.glade:713
msgid "49"
msgstr ""
#: plugins/verify.glade:733 plugins/verify.glade:911
msgid "Maximum number of children"
msgstr ""
#: plugins/verify.glade:764
msgid "11"
msgstr ""
#: plugins/verify.glade:787
msgid "Men"
msgstr ""
@ -4522,18 +4463,6 @@ msgstr ""
msgid "Maximum age to father a child"
msgstr ""
#: plugins/verify.glade:866
msgid "18"
msgstr ""
#: plugins/verify.glade:891
msgid "65"
msgstr ""
#: plugins/verify.glade:942
msgid "15"
msgstr ""
#: preferences.glade:19
msgid "Preferences - GRAMPS"
msgstr ""
@ -4848,7 +4777,7 @@ msgstr ""
msgid "Changed by"
msgstr ""
#: revision.glade:377 rule.glade:166 rule.glade:738
#: revision.glade:377 rule.glade:166 rule.glade:785
msgid "Comment"
msgstr ""
@ -4869,58 +4798,62 @@ msgid "Define Filter"
msgstr ""
#: rule.glade:246
msgid "All rules must apply"
msgid "Exactly one rule must apply"
msgstr ""
#: rule.glade:270
msgid "At least one rule must apply"
msgstr ""
#: rule.glade:330 rule.glade:528
#: rule.glade:294
msgid "All rules must apply"
msgstr ""
#: rule.glade:377 rule.glade:575
msgid "Rule"
msgstr ""
#: rule.glade:343 rule.glade:575
#: rule.glade:390 rule.glade:622
msgid "Values"
msgstr ""
#: rule.glade:420
#: rule.glade:467
msgid "Add Rule - GRAMPS"
msgstr ""
#: rule.glade:490
#: rule.glade:537
msgid "Add Rule"
msgstr ""
#: rule.glade:595
#: rule.glade:642
msgid "User Defined Filters - GRAMPS"
msgstr ""
#: rule.glade:662
#: rule.glade:709
msgid "User Defined Filters"
msgstr ""
#: rule.glade:767
#: rule.glade:814
msgid "Add a new filter"
msgstr ""
#: rule.glade:783
#: rule.glade:830
msgid "Edit the selected filter"
msgstr ""
#: rule.glade:799
#: rule.glade:846
msgid "Delete the selected filter"
msgstr ""
#: rule.glade:815
#: rule.glade:862
msgid "Display people matching the filter"
msgstr ""
#: rule.glade:823
#: rule.glade:870
msgid "Test"
msgstr ""
#: rule.glade:834
#: rule.glade:881
msgid "Test Filter - GRAMPS"
msgstr ""