Find support
svn: r1423
This commit is contained in:
@ -41,6 +41,14 @@ import string
|
||||
#-------------------------------------------------------------------------
|
||||
import gtk
|
||||
|
||||
_t = type(u'')
|
||||
|
||||
def patch(n):
|
||||
if type(n) != _t:
|
||||
return (unicode(n).lower(),unicode(n))
|
||||
else:
|
||||
return (n.lower(),n)
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# AutoCompBase
|
||||
@ -63,10 +71,11 @@ class AutoCompBase:
|
||||
self.nlist = source.nlist
|
||||
else:
|
||||
self.nlist = []
|
||||
self.nlist = map((lambda n: (string.lower(n),n)),plist)
|
||||
self.nlist.sort()
|
||||
self.nlist = map(patch,plist)
|
||||
self.nlist.sort()
|
||||
self.nl = "xzsdkdjecsc"
|
||||
self.l = 0
|
||||
self.t = type(u' ')
|
||||
|
||||
def insert_text(self,entry,new_text,new_text_len,i_dont_care):
|
||||
"""
|
||||
@ -182,6 +191,9 @@ class AutoCombo(AutoCompBase):
|
||||
typed = entry.get_text()
|
||||
if (not typed):
|
||||
return
|
||||
if type(typed) != self.t:
|
||||
typed = unicode(typed)
|
||||
|
||||
typed_lc = string.lower(typed)
|
||||
|
||||
if typed_lc == self.nl:
|
||||
@ -224,7 +236,7 @@ class AutoEntry(AutoCompBase):
|
||||
AutoCompBase.__init__(self,widget,plist,source)
|
||||
self.entry = widget
|
||||
self.entry.connect("insert-text",self.insert_text)
|
||||
|
||||
|
||||
def timer_callback(self,entry):
|
||||
"""
|
||||
The workhorse routine of file completion. This routine grabs the
|
||||
@ -240,6 +252,10 @@ class AutoEntry(AutoCompBase):
|
||||
|
||||
# Get the user's text
|
||||
typed = entry.get_text()
|
||||
|
||||
if type(typed) != self.t:
|
||||
typed = unicode(typed)
|
||||
|
||||
if (not typed):
|
||||
return
|
||||
typed_lc = string.lower(typed)
|
||||
|
@ -677,8 +677,17 @@ class EditPerson:
|
||||
self.etree.select_row(0)
|
||||
|
||||
# Remember old combo list input
|
||||
prev_btext = Utils.strip_id(self.bplace.get_text())
|
||||
prev_dtext = Utils.strip_id(self.dplace.get_text())
|
||||
|
||||
bplace_text = self.bplace.get_text()
|
||||
if type(bplace_text) == type(u''):
|
||||
bplace_text = unicode(bplace_text)
|
||||
|
||||
dplace_text = self.dplace.get_text()
|
||||
if type(dplace_text) == type(u''):
|
||||
dplace_text = unicode(dplace_text)
|
||||
|
||||
prev_btext = Utils.strip_id(bplace_text)
|
||||
prev_dtext = Utils.strip_id(dplace_text)
|
||||
|
||||
# Update birth with new values, make sure death values don't change
|
||||
if self.update_birth:
|
||||
@ -745,6 +754,9 @@ class EditPerson:
|
||||
event = self.birth
|
||||
event.setDate(self.bdate.get_text())
|
||||
def_placename = self.bplace.get_text()
|
||||
if type(def_placename) == type(u''):
|
||||
def_placename = unicode(def_placename)
|
||||
|
||||
p = self.get_place(self.bplace)
|
||||
if p:
|
||||
event.setPlace(p)
|
||||
@ -762,6 +774,9 @@ class EditPerson:
|
||||
event = self.death
|
||||
event.setDate(self.ddate.get_text())
|
||||
def_placename = self.dplace.get_text()
|
||||
if type(def_placename) == type(u''):
|
||||
def_placename = unicode(def_placename)
|
||||
|
||||
p = self.get_place(self.dplace)
|
||||
if p:
|
||||
event.setPlace(p)
|
||||
|
121
src/Find.py
121
src/Find.py
@ -57,16 +57,13 @@ from intl import gettext as _
|
||||
class FindBase:
|
||||
"""Opens find person dialog for gramps"""
|
||||
|
||||
def __init__(self,clist,task,name,db):
|
||||
def __init__(self,task,name,db):
|
||||
"""Opens a dialog box instance that allows users to
|
||||
search for a person.
|
||||
|
||||
clist - GtkCList containing the people information
|
||||
task - function to call to change the active person"""
|
||||
|
||||
self.t = type(u' ')
|
||||
self.db = db
|
||||
self.clist = clist
|
||||
self.nlist = []
|
||||
self.task = task
|
||||
self.glade = gtk.glade.XML(const.gladeFile,"find")
|
||||
self.glade.signal_autoconnect({
|
||||
@ -76,38 +73,46 @@ class FindBase:
|
||||
})
|
||||
self.top = self.glade.get_widget('find')
|
||||
self.entry = self.glade.get_widget('entry')
|
||||
self.forward_button = self.glade.get_widget('forward')
|
||||
self.back_button = self.glade.get_widget('back')
|
||||
Utils.set_titles(self.top, self.glade.get_widget('title'), name)
|
||||
|
||||
self.index = 0
|
||||
|
||||
def get_value(self,id):
|
||||
return None
|
||||
|
||||
def enable_autocomp(self):
|
||||
if GrampsCfg.autocomp:
|
||||
self.comp = AutoComp.AutoEntry(self.entry,self.nlist)
|
||||
return id
|
||||
|
||||
def advance(self,func):
|
||||
text = self.entry.get_text()
|
||||
if type(text) != self.t:
|
||||
text = unicode(text.upper())
|
||||
orow = self.index
|
||||
func()
|
||||
while self.row != orow:
|
||||
id = self.clist.get_row_data(self.row)
|
||||
while self.index != orow:
|
||||
vals = self.list[self.index]
|
||||
id = vals[1]
|
||||
name = vals[0]
|
||||
if id == None:
|
||||
func()
|
||||
continue
|
||||
if string.find(string.upper(self.get_value(id)),string.upper(text)) >= 0:
|
||||
self.task(self.row)
|
||||
if string.find(name.upper(),text) >= 0:
|
||||
self.back_button.set_sensitive(0)
|
||||
self.forward_button.set_sensitive(0)
|
||||
self.task(self.get_value(id))
|
||||
self.back_button.set_sensitive(1)
|
||||
self.forward_button.set_sensitive(1)
|
||||
return
|
||||
func()
|
||||
gtk.gdk_beep()
|
||||
|
||||
def forward(self):
|
||||
self.row = self.row + 1
|
||||
if self.row == self.clist.rows:
|
||||
self.row = 0
|
||||
self.index = self.index + 1
|
||||
if self.index == len(self.list):
|
||||
self.index = 0
|
||||
|
||||
def backward(self):
|
||||
self.row = self.row - 1
|
||||
if self.row < 0:
|
||||
self.row = self.clist.rows
|
||||
self.index = self.index - 1
|
||||
if self.index < 0:
|
||||
self.index = len(self.list)
|
||||
|
||||
def on_close_clicked(self,obj):
|
||||
"""Destroys the window in response to a close window button press"""
|
||||
@ -129,23 +134,19 @@ class FindBase:
|
||||
class FindPerson(FindBase):
|
||||
"""Opens a Find Person dialog for GRAMPS"""
|
||||
|
||||
def __init__(self,id,task,db):
|
||||
def __init__(self,task,db):
|
||||
"""Opens a dialog box instance that allows users to
|
||||
search for a person.
|
||||
|
||||
clist - GtkCList containing the people information
|
||||
task - function to call to change the active person"""
|
||||
|
||||
FindBase.__init__(self,id,task,_("Find Person"),db)
|
||||
for n in self.db.getPersonKeys():
|
||||
val = self.db.getPersonDisplay(n)
|
||||
self.nlist.append(val[0])
|
||||
self.enable_autocomp()
|
||||
FindBase.__init__(self,task,_("Find Person"),db)
|
||||
self.list = db.personTable.values()
|
||||
self.list.sort()
|
||||
|
||||
def get_value(self,id):
|
||||
return self.db.getPersonDisplay(id)[0]
|
||||
return self.db.getPerson(id)
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# FindPlace
|
||||
@ -154,20 +155,15 @@ class FindPerson(FindBase):
|
||||
class FindPlace(FindBase):
|
||||
"""Opens a Find Place dialog for GRAMPS"""
|
||||
|
||||
def __init__(self,clist,task,db):
|
||||
def __init__(self,task,db):
|
||||
"""Opens a dialog box instance that allows users to
|
||||
search for a place.
|
||||
|
||||
clist - GtkCList containing the people information
|
||||
task - function to call to change the active person"""
|
||||
|
||||
FindBase.__init__(self,clist,task,_("Find Place"),db)
|
||||
for n in self.db.getPlaceKeys():
|
||||
self.nlist.append(self.db.getPlaceDisplay(n)[0])
|
||||
self.enable_autocomp()
|
||||
|
||||
def get_value(self,id):
|
||||
return self.db.getPlaceDisplay(id)[0]
|
||||
FindBase.__init__(self,task,_("Find Place"),db)
|
||||
self.list = db.placeTable.values()
|
||||
self.list.sort()
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@ -177,20 +173,15 @@ class FindPlace(FindBase):
|
||||
class FindSource(FindBase):
|
||||
"""Opens a Find Place dialog for GRAMPS"""
|
||||
|
||||
def __init__(self,clist,task,db):
|
||||
def __init__(self,task,db):
|
||||
"""Opens a dialog box instance that allows users to
|
||||
search for a place.
|
||||
|
||||
clist - GtkCList containing the people information
|
||||
task - function to call to change the active person"""
|
||||
|
||||
FindBase.__init__(self,clist,task,_("Find Source"),db)
|
||||
for n in self.db.getSourceKeys():
|
||||
self.nlist.append(n[0])
|
||||
self.enable_autocomp()
|
||||
|
||||
def get_value(self,id):
|
||||
return self.db.getSourceDisplay(id)[0]
|
||||
FindBase.__init__(self,task,_("Find Source"),db)
|
||||
self.list = db.sourceTable.values()
|
||||
self.list.sort()
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@ -200,39 +191,15 @@ class FindSource(FindBase):
|
||||
class FindMedia(FindBase):
|
||||
"""Opens a Find Media Object dialog for GRAMPS"""
|
||||
|
||||
def __init__(self,clist,task,db):
|
||||
def __init__(self,task,db):
|
||||
"""Opens a dialog box instance that allows users to
|
||||
search for a place.
|
||||
|
||||
clist - GtkCList containing the people information
|
||||
task - function to call to change the active person"""
|
||||
|
||||
FindBase.__init__(self,clist,task,_("Find Media Object"),db)
|
||||
FindBase.__init__(self,task,_("Find Media Object"),db)
|
||||
self.list = []
|
||||
for n in self.db.getObjectMap().values():
|
||||
self.nlist.append(n.getDescription())
|
||||
self.enable_autocomp()
|
||||
self.list.append((n.getDescription(),n.getId()))
|
||||
self.list.sort()
|
||||
|
||||
def advance(self,func):
|
||||
try:
|
||||
self.row = self.clist.selection[0]
|
||||
except IndexError:
|
||||
gtk.gdk_beep()
|
||||
return
|
||||
|
||||
text = self.entry.get_text()
|
||||
if self.row == None or text == "":
|
||||
gtk.gdk_beep()
|
||||
return
|
||||
orow = self.row
|
||||
func()
|
||||
while self.row != orow:
|
||||
value = self.clist.get_row_data(self.row)
|
||||
if value == None:
|
||||
func()
|
||||
continue
|
||||
name = value.getDescription()
|
||||
if string.find(string.upper(name),string.upper(text)) >= 0:
|
||||
self.task(self.row)
|
||||
return
|
||||
func()
|
||||
gtk.gdk_beep()
|
||||
|
@ -33,8 +33,6 @@ class ListModel:
|
||||
self.mylist = [TYPE_STRING]*l + [TYPE_PYOBJECT]
|
||||
|
||||
self.tree.set_rules_hint(gtk.TRUE)
|
||||
self.tree.set_enable_search(gtk.TRUE)
|
||||
self.tree.set_search_column(gtk.TRUE)
|
||||
self.new_model()
|
||||
self.selection = self.tree.get_selection()
|
||||
self.selection.set_mode(mode)
|
||||
|
@ -260,7 +260,7 @@ RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \
|
||||
install-exec-recursive installdirs-recursive install-recursive \
|
||||
uninstall-recursive check-recursive installcheck-recursive
|
||||
DIST_COMMON = README $(dist_pkgdata_DATA) $(pkgpython_PYTHON) AUTHORS \
|
||||
ChangeLog Makefile.am Makefile.in NEWS const.py.in
|
||||
ChangeLog Makefile.am Makefile.in NEWS TODO const.py.in
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
all: all-recursive
|
||||
|
||||
|
@ -114,7 +114,11 @@ class MediaView:
|
||||
self.update = update
|
||||
self.list.connect('button-press-event',self.on_button_press_event)
|
||||
self.selection.connect('changed',self.on_select_row)
|
||||
|
||||
|
||||
def goto(self,id):
|
||||
self.selection.unselect_all()
|
||||
self.selection.select_iter(self.id2col[id])
|
||||
|
||||
def change_db(self,db):
|
||||
self.db = db
|
||||
|
||||
@ -214,23 +218,6 @@ class MediaView:
|
||||
self.id2col[id] = iter
|
||||
self.model.set(iter, 0, title, 1, id, 2, type, 3, path, 4, stitle)
|
||||
|
||||
# if index > 0:
|
||||
# self.list.select_row(current_row,0)
|
||||
# self.list.moveto(current_row)
|
||||
# self.preview.show()
|
||||
# else:
|
||||
# self.mid.set_text("")
|
||||
# self.mtype.set_text("")
|
||||
# self.mdesc.set_text("")
|
||||
# self.mpath.set_text("")
|
||||
# self.mdetails.set_text("")
|
||||
# self.preview.hide()
|
||||
|
||||
# if current_row < self.list.rows:
|
||||
# self.list.moveto(current_row)
|
||||
# else:
|
||||
# self.list.moveto(0)
|
||||
# self.list.thaw()
|
||||
|
||||
def on_add_clicked(self,obj):
|
||||
"""Add a new media object to the media list"""
|
||||
|
@ -182,8 +182,9 @@ class PedigreeView:
|
||||
for t in list:
|
||||
if t:
|
||||
for n in [GrampsCfg.nameof(t[0]),
|
||||
"b. %s" % t[0].getBirth().getDate(),
|
||||
"d. %s" % t[0].getDeath().getDate()]:
|
||||
u'b. %s' % t[0].getBirth().getDate(),
|
||||
u'd. %s' % t[0].getDeath().getDate()]:
|
||||
print n, type(n)
|
||||
try:
|
||||
a.set_text(n,len(n))
|
||||
except TypeError:
|
||||
|
@ -92,6 +92,7 @@ class PlaceView:
|
||||
gobject.TYPE_STRING)
|
||||
self.list.set_model(self.model)
|
||||
self.list.get_column(0).clicked()
|
||||
self.selection = self.list.get_selection()
|
||||
|
||||
def change_db(self,db):
|
||||
self.db = db
|
||||
@ -124,8 +125,11 @@ class PlaceView:
|
||||
self.list.set_model(self.model)
|
||||
self.list.get_column(0).clicked()
|
||||
|
||||
def merge(self):
|
||||
def goto(self,id):
|
||||
self.selection.unselect_all()
|
||||
self.selection.select_iter(self.id2col[id])
|
||||
|
||||
def merge(self):
|
||||
mlist = []
|
||||
self.selection.selected_foreach(self.blist,mlist)
|
||||
|
||||
|
@ -39,6 +39,7 @@ class SaveDialog:
|
||||
label2.set_text(msg2)
|
||||
label2.set_use_markup(gtk.TRUE)
|
||||
|
||||
self.top.show()
|
||||
response = self.top.run()
|
||||
if response == gtk.RESPONSE_NO:
|
||||
self.task1()
|
||||
@ -62,6 +63,7 @@ class QuestionDialog:
|
||||
|
||||
self.xml.get_widget('okbutton').set_label(label)
|
||||
|
||||
self.top.show()
|
||||
response = self.top.run()
|
||||
if response == gtk.RESPONSE_ACCEPT:
|
||||
task()
|
||||
@ -83,6 +85,7 @@ class OptionDialog:
|
||||
|
||||
self.xml.get_widget('option1').set_label(btnmsg1)
|
||||
self.xml.get_widget('option2').set_label(btnmsg2)
|
||||
self.top.show()
|
||||
response = self.top.run()
|
||||
if response == gtk.RESPONSE_NO:
|
||||
if task1:
|
||||
@ -102,6 +105,7 @@ class ErrorDialog:
|
||||
label1.set_text('<span weight="bold" size="larger">%s</span>' % msg1)
|
||||
label1.set_use_markup(gtk.TRUE)
|
||||
label2.set_text(msg2)
|
||||
self.top.show()
|
||||
self.top.run()
|
||||
self.top.destroy()
|
||||
|
||||
@ -116,6 +120,7 @@ class WarningDialog:
|
||||
label1.set_text('<span weight="bold" size="larger">%s</span>' % msg1)
|
||||
label1.set_use_markup(gtk.TRUE)
|
||||
label2.set_text(msg2)
|
||||
self.top.show()
|
||||
self.top.run()
|
||||
self.top.destroy()
|
||||
|
||||
@ -130,6 +135,7 @@ class OkDialog:
|
||||
label1.set_text('<span weight="bold" size="larger">%s</span>' % msg1)
|
||||
label1.set_use_markup(gtk.TRUE)
|
||||
label2.set_text(msg2)
|
||||
self.top.show()
|
||||
self.top.run()
|
||||
self.top.destroy()
|
||||
|
||||
|
@ -1935,6 +1935,9 @@ class GrampsDB(Persistent):
|
||||
def need_autosave(self):
|
||||
return 1
|
||||
|
||||
def getPersonLength(self):
|
||||
return len(self.personTable)
|
||||
|
||||
def getPersonKeys(self):
|
||||
return self.personTable.keys()
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# Gramps - a GTK+/GNOME based genealogy program
|
||||
#
|
||||
# Copyright (C) 2000 Donald N. Allingham
|
||||
# Copyright (C) 2003 Donald N. Allingham
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -176,6 +176,12 @@ def get_nephew(f,s,level):
|
||||
def get_niece(f,s,level):
|
||||
return "%s of %s" % (niece_level[level],f)
|
||||
|
||||
def is_spouse(orig,other):
|
||||
for f in orig.getFamilyList():
|
||||
if other == f.getFather() or other == f.getMother():
|
||||
return 1
|
||||
return 0
|
||||
|
||||
def get_relationship(orig_person,other_person):
|
||||
firstMap = {}
|
||||
firstList = []
|
||||
@ -184,6 +190,17 @@ def get_relationship(orig_person,other_person):
|
||||
common = []
|
||||
rank = 9999999
|
||||
|
||||
if orig_person == None:
|
||||
return "No home person has been defined"
|
||||
|
||||
firstName = orig_person.getPrimaryName().getRegularName()
|
||||
secondName = other_person.getPrimaryName().getRegularName()
|
||||
|
||||
if orig_person == other_person:
|
||||
return firstName
|
||||
if is_spouse(orig_person,other_person):
|
||||
return "Spouse of %s" % (firstName)
|
||||
|
||||
filter(orig_person,0,firstList,firstMap)
|
||||
filter(other_person,0,secondList,secondMap)
|
||||
|
||||
@ -199,9 +216,6 @@ def get_relationship(orig_person,other_person):
|
||||
firstRel = -1
|
||||
secondRel = -1
|
||||
|
||||
firstName = orig_person.getPrimaryName().getRegularName()
|
||||
secondName = other_person.getPrimaryName().getRegularName()
|
||||
|
||||
length = len(common)
|
||||
|
||||
if length == 1:
|
||||
|
@ -82,7 +82,6 @@ class SourceView:
|
||||
column.set_min_width(title[2])
|
||||
self.list.append_column(column)
|
||||
|
||||
self.list.set_search_column(0)
|
||||
self.model = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING,
|
||||
gobject.TYPE_STRING, gobject.TYPE_STRING,
|
||||
gobject.TYPE_STRING)
|
||||
@ -92,13 +91,18 @@ class SourceView:
|
||||
def change_db(self,db):
|
||||
self.db = db
|
||||
|
||||
def goto(self,id):
|
||||
self.list.get_selection().select_iter(self.map[id])
|
||||
|
||||
def load_sources(self):
|
||||
self.model.clear()
|
||||
|
||||
self.map = {}
|
||||
|
||||
for key in self.db.getSourceKeys():
|
||||
val = self.db.getSourceDisplay(key)
|
||||
|
||||
iter = self.model.append()
|
||||
self.map[val[1]] = iter
|
||||
self.model.set(iter, 0, val[0], 1, val[1], 2, val[2],
|
||||
3, val[3], 4, val[4])
|
||||
self.list.connect('button-press-event',self.button_press)
|
||||
|
17
src/Utils.py
17
src/Utils.py
@ -93,6 +93,19 @@ def clear_timer():
|
||||
gtk.timeout_remove(_autosave_tim)
|
||||
_autosave_tim = None
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# force_unicode
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
_t = type(u'')
|
||||
|
||||
def force_unicode(n):
|
||||
if type(n) != _t:
|
||||
return (unicode(n).lower(),unicode(n))
|
||||
else:
|
||||
return (n.lower(),n)
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Clears the modified flag. Should be called after data is saved.
|
||||
@ -120,7 +133,7 @@ def phonebook_name(person):
|
||||
if person:
|
||||
return person.getPrimaryName().getName()
|
||||
else:
|
||||
return ""
|
||||
return u''
|
||||
|
||||
def family_name(family):
|
||||
"""Builds a name for the family from the parents names"""
|
||||
@ -146,7 +159,7 @@ def normal_name(person):
|
||||
if person:
|
||||
return person.getPrimaryName().getRegularName()
|
||||
else:
|
||||
return ""
|
||||
return u''
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
|
@ -4,7 +4,6 @@
|
||||
<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>
|
||||
@ -134,7 +133,6 @@
|
||||
</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>
|
||||
@ -289,7 +287,6 @@
|
||||
</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>
|
||||
@ -430,7 +427,6 @@
|
||||
</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>
|
||||
@ -571,7 +567,6 @@
|
||||
</widget>
|
||||
|
||||
<widget class="GtkDialog" id="warndialog">
|
||||
<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>
|
||||
@ -701,7 +696,6 @@
|
||||
</widget>
|
||||
|
||||
<widget class="GtkDialog" id="okdialog">
|
||||
<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>
|
||||
|
181
src/gramps.glade
181
src/gramps.glade
@ -51,7 +51,7 @@
|
||||
<accelerator key="N" modifiers="GDK_CONTROL_MASK" signal="activate"/>
|
||||
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="image334">
|
||||
<widget class="GtkImage" id="image421">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-new</property>
|
||||
<property name="icon_size">1</property>
|
||||
@ -73,7 +73,7 @@
|
||||
<accelerator key="O" modifiers="GDK_CONTROL_MASK" signal="activate"/>
|
||||
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="image335">
|
||||
<widget class="GtkImage" id="image422">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-open</property>
|
||||
<property name="icon_size">1</property>
|
||||
@ -95,7 +95,7 @@
|
||||
<accelerator key="S" modifiers="GDK_CONTROL_MASK" signal="activate"/>
|
||||
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="image336">
|
||||
<widget class="GtkImage" id="image423">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-save</property>
|
||||
<property name="icon_size">1</property>
|
||||
@ -108,6 +108,61 @@
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkImageMenuItem" id="save_as1">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Save _As...</property>
|
||||
<property name="use_underline">True</property>
|
||||
<signal name="activate" handler="on_save_as_activate" last_modification_time="Tue, 01 Apr 2003 03:50:28 GMT"/>
|
||||
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="image424">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-save-as</property>
|
||||
<property name="icon_size">1</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkMenuItem" id="separator9">
|
||||
<property name="visible">True</property>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkMenuItem" id="import1">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">_Import</property>
|
||||
<property name="use_underline">True</property>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkImageMenuItem" id="export1">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">_Export</property>
|
||||
<property name="use_underline">True</property>
|
||||
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="image425">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-convert</property>
|
||||
<property name="icon_size">1</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkImageMenuItem" id="revert">
|
||||
<property name="visible">True</property>
|
||||
@ -116,7 +171,7 @@
|
||||
<signal name="activate" handler="on_revert_activate"/>
|
||||
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="image337">
|
||||
<widget class="GtkImage" id="image426">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-revert-to-saved</property>
|
||||
<property name="icon_size">1</property>
|
||||
@ -129,55 +184,6 @@
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkMenuItem" id="import1">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">_Import</property>
|
||||
<property name="use_underline">True</property>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkImageMenuItem" id="save_as1">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Save _As...</property>
|
||||
<property name="use_underline">True</property>
|
||||
<signal name="activate" handler="on_save_as_activate" last_modification_time="Tue, 01 Apr 2003 03:50:28 GMT"/>
|
||||
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="image338">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-save-as</property>
|
||||
<property name="icon_size">1</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkImageMenuItem" id="export1">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">_Export</property>
|
||||
<property name="use_underline">True</property>
|
||||
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="image339">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-convert</property>
|
||||
<property name="icon_size">1</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkImageMenuItem" id="reload_plugins">
|
||||
<property name="visible">True</property>
|
||||
@ -186,7 +192,7 @@
|
||||
<signal name="activate" handler="on_reload_plugins_activate"/>
|
||||
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="image340">
|
||||
<widget class="GtkImage" id="image427">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-refresh</property>
|
||||
<property name="icon_size">1</property>
|
||||
@ -213,7 +219,7 @@
|
||||
<signal name="activate" handler="on_exit_activate" last_modification_time="Tue, 01 Apr 2003 03:49:05 GMT"/>
|
||||
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="image341">
|
||||
<widget class="GtkImage" id="image428">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-quit</property>
|
||||
<property name="icon_size">1</property>
|
||||
@ -245,9 +251,10 @@
|
||||
<property name="label" translatable="yes">_Find...</property>
|
||||
<property name="use_underline">True</property>
|
||||
<signal name="activate" handler="on_find_activate"/>
|
||||
<accelerator key="F" modifiers="GDK_CONTROL_MASK" signal="activate"/>
|
||||
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="image342">
|
||||
<widget class="GtkImage" id="image429">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-find</property>
|
||||
<property name="icon_size">1</property>
|
||||
@ -268,7 +275,7 @@
|
||||
<signal name="activate" handler="on_merge_activate"/>
|
||||
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="image343">
|
||||
<widget class="GtkImage" id="image430">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-convert</property>
|
||||
<property name="icon_size">1</property>
|
||||
@ -336,7 +343,7 @@
|
||||
<accelerator key="D" modifiers="GDK_CONTROL_MASK" signal="activate"/>
|
||||
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="image344">
|
||||
<widget class="GtkImage" id="image431">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-index</property>
|
||||
<property name="icon_size">1</property>
|
||||
@ -358,7 +365,7 @@
|
||||
<accelerator key="B" modifiers="GDK_CONTROL_MASK" signal="activate"/>
|
||||
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="image345">
|
||||
<widget class="GtkImage" id="image432">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gnome-stock-book-open</property>
|
||||
<property name="icon_size">1</property>
|
||||
@ -422,7 +429,7 @@
|
||||
<signal name="activate" handler="on_preferences1_activate"/>
|
||||
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="image346">
|
||||
<widget class="GtkImage" id="image433">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-preferences</property>
|
||||
<property name="icon_size">1</property>
|
||||
@ -443,7 +450,7 @@
|
||||
<signal name="activate" handler="on_default_person_activate"/>
|
||||
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="image347">
|
||||
<widget class="GtkImage" id="image434">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-home</property>
|
||||
<property name="icon_size">1</property>
|
||||
@ -472,14 +479,14 @@
|
||||
<child>
|
||||
<widget class="GtkImageMenuItem" id="contents">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">_User's manual</property>
|
||||
<property name="label" translatable="yes">_User manual</property>
|
||||
<property name="use_underline">True</property>
|
||||
<signal name="activate" handler="on_contents_activate"/>
|
||||
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="image348">
|
||||
<widget class="GtkImage" id="image435">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gnome-stock-book-red</property>
|
||||
<property name="stock">gtk-go-forward</property>
|
||||
<property name="icon_size">1</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
@ -490,6 +497,12 @@
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkMenuItem" id="separator7">
|
||||
<property name="visible">True</property>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkImageMenuItem" id="gramps_home_page">
|
||||
<property name="visible">True</property>
|
||||
@ -498,7 +511,7 @@
|
||||
<signal name="activate" handler="on_gramps_home_page_activate"/>
|
||||
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="image349">
|
||||
<widget class="GtkImage" id="image436">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-jump-to</property>
|
||||
<property name="icon_size">1</property>
|
||||
@ -519,7 +532,7 @@
|
||||
<signal name="activate" handler="on_gramps_mailing_lists_activate"/>
|
||||
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="image350">
|
||||
<widget class="GtkImage" id="image437">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gnome-stock-mail</property>
|
||||
<property name="icon_size">1</property>
|
||||
@ -541,6 +554,12 @@
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkMenuItem" id="separator8">
|
||||
<property name="visible">True</property>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkMenuItem" id="show_plugin_status">
|
||||
<property name="visible">True</property>
|
||||
@ -567,7 +586,7 @@
|
||||
<signal name="activate" handler="on_about_activate" last_modification_time="Tue, 01 Apr 2003 03:44:24 GMT"/>
|
||||
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="image351">
|
||||
<widget class="GtkImage" id="image438">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gnome-stock-about</property>
|
||||
<property name="icon_size">1</property>
|
||||
@ -757,7 +776,7 @@
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="side_ped_label">
|
||||
<widget class="GtkLabel" id="side_people_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">People</property>
|
||||
<property name="use_underline">False</property>
|
||||
@ -769,6 +788,7 @@
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="mnemonic_widget">views</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
@ -806,7 +826,7 @@
|
||||
<widget class="GtkLabel" id="label318">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Family</property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
@ -815,6 +835,7 @@
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="mnemonic_widget">views</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
@ -852,7 +873,7 @@
|
||||
<widget class="GtkLabel" id="label316">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Pedigree</property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
@ -861,6 +882,7 @@
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="mnemonic_widget">views</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
@ -898,7 +920,7 @@
|
||||
<widget class="GtkLabel" id="label319">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Sources</property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
@ -907,6 +929,7 @@
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="mnemonic_widget">views</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
@ -944,7 +967,7 @@
|
||||
<widget class="GtkLabel" id="label320">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Places</property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
@ -953,6 +976,7 @@
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="mnemonic_widget">views</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
@ -990,7 +1014,7 @@
|
||||
<widget class="GtkLabel" id="label321">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Media</property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
@ -999,6 +1023,7 @@
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="mnemonic_widget">views</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
@ -1026,8 +1051,6 @@
|
||||
<property name="show_border">False</property>
|
||||
<property name="tab_pos">GTK_POS_TOP</property>
|
||||
<property name="scrollable">False</property>
|
||||
<property name="tab_hborder">6</property>
|
||||
<property name="tab_vborder">2</property>
|
||||
<property name="enable_popup">False</property>
|
||||
<signal name="switch_page" handler="on_notebook1_switch_page" after="yes"/>
|
||||
|
||||
@ -1267,8 +1290,6 @@
|
||||
<property name="show_border">False</property>
|
||||
<property name="tab_pos">GTK_POS_BOTTOM</property>
|
||||
<property name="scrollable">False</property>
|
||||
<property name="tab_hborder">4</property>
|
||||
<property name="tab_vborder">2</property>
|
||||
<property name="enable_popup">False</property>
|
||||
<signal name="switch_page" handler="on_alpha_switch_page" last_modification_time="Sat, 09 Nov 2002 22:11:07 GMT"/>
|
||||
|
||||
@ -4634,8 +4655,6 @@
|
||||
<property name="show_border">True</property>
|
||||
<property name="tab_pos">GTK_POS_TOP</property>
|
||||
<property name="scrollable">False</property>
|
||||
<property name="tab_hborder">2</property>
|
||||
<property name="tab_vborder">2</property>
|
||||
<property name="enable_popup">False</property>
|
||||
<signal name="switch_page" handler="on_switch_page" object="sourceEditor"/>
|
||||
|
||||
@ -6319,7 +6338,7 @@
|
||||
<property name="layout_style">GTK_BUTTONBOX_END</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkButton" id="button157">
|
||||
<widget class="GtkButton" id="back">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_default">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
@ -6332,7 +6351,7 @@
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkButton" id="button158">
|
||||
<widget class="GtkButton" id="forward">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_default">True</property>
|
||||
<property name="has_default">True</property>
|
||||
|
@ -3,20 +3,15 @@
|
||||
import sys
|
||||
import os
|
||||
import locale
|
||||
import intl
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Cope with versioned pygtk installation.
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
try:
|
||||
import pygtk
|
||||
pygtk.require('2.0')
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
import gtk
|
||||
import gtk.glade
|
||||
import intl
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@ -26,7 +21,21 @@ import gtk
|
||||
if os.environ.has_key("GRAMPSI18N"):
|
||||
loc = os.environ["GRAMPSI18N"]
|
||||
else:
|
||||
loc = "locale"
|
||||
loc = "/usr/share/locale"
|
||||
|
||||
gtk.glade.bindtextdomain("gramps",loc)
|
||||
intl.bindtextdomain("gramps",loc)
|
||||
intl.bind_textdomain_codeset("gramps",'UTF-8')
|
||||
intl.textdomain("gramps")
|
||||
locale.setlocale(locale.LC_NUMERIC,"C")
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Cope with versioned pygtk installation.
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
|
||||
import gtk
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@ -40,11 +49,6 @@ if len(sys.argv) > 1:
|
||||
else:
|
||||
arg = None
|
||||
|
||||
intl.bindtextdomain("gramps",loc)
|
||||
intl.bind_textdomain_codeset("gramps",'UTF-8')
|
||||
intl.textdomain("gramps")
|
||||
locale.setlocale(locale.LC_NUMERIC,"C")
|
||||
|
||||
try:
|
||||
import StartupDialog
|
||||
|
||||
|
@ -374,7 +374,11 @@ class Gramps:
|
||||
def row_changed(self,obj):
|
||||
mlist = self.person_tree.get_selected_objects()
|
||||
if mlist:
|
||||
self.change_active_person(self.db.getPerson(mlist[0]))
|
||||
try:
|
||||
self.change_active_person(self.db.getPerson(mlist[0]))
|
||||
except:
|
||||
self.change_active_person(None)
|
||||
self.person_tree.unselect()
|
||||
|
||||
def on_show_plugin_status(self,obj):
|
||||
Plugins.PluginStatus()
|
||||
@ -436,35 +440,35 @@ class Gramps:
|
||||
def on_find_activate(self,obj):
|
||||
"""Display the find box"""
|
||||
if self.views.get_current_page() == 4:
|
||||
Find.FindPlace(self.active_person.getId(),self.find_goto_place,self.db)
|
||||
Find.FindPlace(self.find_goto_place,self.db)
|
||||
elif self.views.get_current_page() == 3:
|
||||
Find.FindSource(self.source_view.source_list,self.find_goto_source,self.db)
|
||||
Find.FindSource(self.find_goto_source,self.db)
|
||||
elif self.views.get_current_page() == 5:
|
||||
Find.FindMedia(self.media_view.media_list,self.find_goto_media,self.db)
|
||||
Find.FindMedia(self.find_goto_media,self.db)
|
||||
else:
|
||||
Find.FindPerson(self.person_list,self.find_goto_to,self.db)
|
||||
Find.FindPerson(self.find_goto_person,self.db)
|
||||
|
||||
def on_findname_activate(self,obj):
|
||||
"""Display the find box"""
|
||||
pass
|
||||
|
||||
def find_goto_to(self,id):
|
||||
def find_goto_person(self,id):
|
||||
"""Find callback to jump to the selected person"""
|
||||
self.change_active_person(id)
|
||||
self.goto_active_person()
|
||||
self.update_display(0)
|
||||
|
||||
def find_goto_place(self,row):
|
||||
def find_goto_place(self,id):
|
||||
"""Find callback to jump to the selected place"""
|
||||
self.place_view.moveto(row)
|
||||
self.place_view.goto(id)
|
||||
|
||||
def find_goto_source(self,row):
|
||||
def find_goto_source(self,id):
|
||||
"""Find callback to jump to the selected source"""
|
||||
self.source_view.moveto(row)
|
||||
self.source_view.goto(id)
|
||||
|
||||
def find_goto_media(self,row):
|
||||
"""Find callback to jump to the selected media"""
|
||||
self.media_view.moveto(row)
|
||||
self.media_view.goto(row)
|
||||
|
||||
def home_page_activate(self,obj):
|
||||
gnome.url_show(_HOMEPAGE)
|
||||
@ -499,7 +503,6 @@ class Gramps:
|
||||
|
||||
def delete_event(self,widget, event):
|
||||
"""Catch the destruction of the top window, prompt to save if needed"""
|
||||
widget.hide()
|
||||
self.on_exit_activate(widget)
|
||||
return 1
|
||||
|
||||
@ -681,8 +684,6 @@ class Gramps:
|
||||
dbname = obj.get_data("dbname")
|
||||
getoldrev = obj.get_data("getoldrev")
|
||||
filename = dbname.get_full_path(0)
|
||||
print filename
|
||||
|
||||
Utils.destroy_passed_object(obj)
|
||||
|
||||
if filename == "" or filename == None:
|
||||
@ -981,8 +982,9 @@ class Gramps:
|
||||
model.tree.scroll_to_cell(itpath,col,1,0.5,0.0)
|
||||
|
||||
def change_active_person(self,person):
|
||||
self.active_person = person
|
||||
self.modify_statusbar()
|
||||
if person != self.active_person:
|
||||
self.active_person = person
|
||||
self.modify_statusbar()
|
||||
if person:
|
||||
val = 1
|
||||
else:
|
||||
@ -1349,7 +1351,7 @@ class Gramps:
|
||||
else:
|
||||
self.clear_database(0)
|
||||
|
||||
self.status_text(_("Loading %s ...") % name)
|
||||
self.status_text(_("Loading %s...") % name)
|
||||
if self.db.load(filename,self.load_progress) == 0:
|
||||
self.status_text('')
|
||||
return 0
|
||||
|
28
src/intl.py
28
src/intl.py
@ -25,38 +25,46 @@ everything else fails.
|
||||
import sys
|
||||
|
||||
ver = sys.version[0:3]
|
||||
_trans = None
|
||||
|
||||
try:
|
||||
if ver == "2.2":
|
||||
from intl22 import *
|
||||
status = None
|
||||
else:
|
||||
import gettext as foo
|
||||
|
||||
status = 'Internationalization library could not be loaded'
|
||||
print status
|
||||
|
||||
def gettext(s):
|
||||
return s
|
||||
return foo.gettext(s)
|
||||
|
||||
def textdomain(s):
|
||||
return
|
||||
return foo.textdomain(s)
|
||||
|
||||
def bindtextdomain(s,x):
|
||||
return
|
||||
return foo.bindtextdomain(s,x)
|
||||
|
||||
def bind_textdomain_codeset(s,x):
|
||||
return
|
||||
except:
|
||||
import gettext as foo
|
||||
|
||||
status = 'Internationalization library could not be loaded'
|
||||
print status
|
||||
|
||||
def gettext(s):
|
||||
return s
|
||||
|
||||
def textdomain(s):
|
||||
return
|
||||
return foo.textdomain(s)
|
||||
|
||||
def bindtextdomain(s,x):
|
||||
return
|
||||
return foo.bindtextdomain(s,x)
|
||||
|
||||
def null(s):
|
||||
return s
|
||||
|
||||
def bind_textdomain_codeset(s,x):
|
||||
return
|
||||
global gettext
|
||||
try:
|
||||
gettext = foo.translation(s).ugettext
|
||||
except:
|
||||
gettext = null
|
||||
|
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user