* src/Bookmarks.py: use IDs instead of person references

* src/ChooseParents.py: allow for NOSORT option
* src/GrampsParser.py: removed
* src/GrampsXML.py: removed
* src/MediaView.py: allow for NOSORT option
* src/PedView.py: double click to edit
* src/PeopleView.py: allow for NOSORT option
* src/PlaceView.py: allow for NOSORT option
* src/RelLib.py: handle bookmarks in metadata
* src/ReadXML.py: merge GrampsParser
* src/SourceView.py: allow for NOSORT option
* src/const.py.in: fix paths for xml files
* src/gramps_main.py: bookmark fixes
* src/papersize.xml : move to data subdirectory
* src/plugins/ReadGedcom.py: fix menu string
* src/plugins/ReadNative.py: fix menu string
* src/plugins/ReadPkg.py: fix menu string


svn: r3085
This commit is contained in:
Don Allingham 2004-04-11 02:37:13 +00:00
parent 358e8f8404
commit 1c995add59
23 changed files with 998 additions and 1285 deletions

View File

@ -1,3 +1,22 @@
2004-04-10 Don Allingham <dallingham@users.sourceforge.net>
* src/Bookmarks.py: use IDs instead of person references
* src/ChooseParents.py: allow for NOSORT option
* src/GrampsParser.py: removed
* src/GrampsXML.py: removed
* src/MediaView.py: allow for NOSORT option
* src/PedView.py: double click to edit
* src/PeopleView.py: allow for NOSORT option
* src/PlaceView.py: allow for NOSORT option
* src/RelLib.py: handle bookmarks in metadata
* src/ReadXML.py: merge GrampsParser
* src/SourceView.py: allow for NOSORT option
* src/const.py.in: fix paths for xml files
* src/gramps_main.py: bookmark fixes
* src/papersize.xml : move to data subdirectory
* src/plugins/ReadGedcom.py: fix menu string
* src/plugins/ReadNative.py: fix menu string
* src/plugins/ReadPkg.py: fix menu string
2004-04-07 Don Allingham <dallingham@users.sourceforge.net>
* src/choose.glade: merged into gramps.glade
* src/styles.glade: merged into gramps.glade

View File

@ -10,7 +10,7 @@ gramps: gramps.sh
cp gramps.sh gramps
.PHONY: pycheck trans
pycheck:
(cd src; make pycheck)
trans:

View File

@ -143,7 +143,7 @@ class Bookmarks :
"""
self.draw_window()
index = 0
for person in self.bookmarks:
for person_id in self.bookmarks:
data = self.db.person_map.get(str(person_id))
name = data[2].get_name()
self.namelist.append([name])

View File

@ -34,6 +34,7 @@ __version__ = "$Revision$"
#
#-------------------------------------------------------------------------
from gettext import gettext as _
import os
#-------------------------------------------------------------------------
#
@ -75,6 +76,7 @@ class ChooseParents:
family_update - task that updates the family display
full_update - task that updates the main display
"""
self.nosort = os.environ.has_key('NOSORT')
self.parent = parent
self.db = db
self.child_windows = {}
@ -294,7 +296,10 @@ class ChooseParents:
def redrawf(self):
"""Redraws the potential father list"""
self.father_nsort = PeopleModel.PeopleModel(self.db, self.father_filter)
self.father_model = gtk.TreeModelSort(self.father_nsort)
if self.nosort:
self.father_model = self.father_nsort
else:
self.father_model = gtk.TreeModelSort(self.father_nsort)
self.father_list.set_model(self.father_model)
if self.type == "Partners":
self.flabel.set_label("<b>%s</b>" % _("Par_ent"))
@ -304,7 +309,11 @@ class ChooseParents:
def redrawm(self):
"""Redraws the potential mother list"""
self.mother_nsort = PeopleModel.PeopleModel(self.db, self.mother_filter)
self.mother_model = gtk.TreeModelSort(self.mother_nsort)
if self.nosort:
self.mother_model = self.mother_nsort
else:
self.mother_model = gtk.TreeModelSort(self.mother_nsort)
self.mother_list.set_model(self.mother_model)
if self.type == "Partners":
self.mlabel.set_label("<b>%s</b>" % _("Pa_rent"))

File diff suppressed because it is too large Load Diff

View File

@ -1,42 +0,0 @@
#
# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright (C) 2000 Donald N. Allingham
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import RelLib
import WriteXML
import ReadXML
import const
class GrampsXML(RelLib.GrampsDB):
def get_base(self):
return const.xmlFile
def get_type(self):
return 'GrampsXML'
def new(self):
RelLib.GrampsDB.new(self)
def save(self,name,callback):
WriteXML.exportData(self,name,callback)
def load(self,name,callback):
ReadXML.loadData(self,name,callback)
return 1

View File

@ -2,8 +2,6 @@
SUBDIRS = docgen filters plugins data po calendars
# For intl. support, how do we compile?
CFLAGS = -fPIC -shared -O @GNOMEINC@ @CFLAGS@ @CPPFLAGS@ -I@includedir@
LDFLAGS = @GNOMELIB@ @LDFLAGS@ -L@libdir@ @LIBS@
MOSTLYCLEANFILES =
# What are the PYTHON scripts for this package that need to be handled?
@ -42,9 +40,7 @@ pkgpython_PYTHON = \
GenericFilter.py\
GrampsCfg.py\
gramps_main.py\
GrampsParser.py\
gramps.py\
GrampsXML.py\
GraphLayout.py\
Gregorian.py\
Hebrew.py\
@ -117,7 +113,7 @@ GRAPHICS = \
tools.png
# Other stuff that we need to install
dist_pkgdata_DATA = $(GLADEFILES) $(GRAPHICS) gramps.desktop papersize.xml
dist_pkgdata_DATA = $(GLADEFILES) $(GRAPHICS) gramps.desktop
# In principle the following rule slightly violates the automake/autoconf
# spirit of keeping each subdirectory as a separate entity unto itself.

View File

@ -113,8 +113,6 @@ target_alias = @target_alias@
SUBDIRS = docgen filters plugins data po calendars
# For intl. support, how do we compile?
CFLAGS = -fPIC -shared -O @GNOMEINC@ @CFLAGS@ @CPPFLAGS@ -I@includedir@
LDFLAGS = @GNOMELIB@ @LDFLAGS@ -L@libdir@ @LIBS@
MOSTLYCLEANFILES =
@ -153,9 +151,7 @@ pkgpython_PYTHON = \
GenericFilter.py\
GrampsCfg.py\
gramps_main.py\
GrampsParser.py\
gramps.py\
GrampsXML.py\
GraphLayout.py\
Gregorian.py\
Hebrew.py\

View File

@ -86,7 +86,11 @@ class MediaView:
self.preview = glade.get_widget("preview")
self.renderer = gtk.CellRendererText()
self.model = gtk.TreeModelSort(DisplayModels.MediaModel(self.db))
if const.nosort_tree:
self.model = DisplayModels.MediaModel(self.db)
else:
self.model = gtk.TreeModelSort(DisplayModels.MediaModel(self.db))
self.selection = self.list.get_selection()
self.list.set_model(self.model)
@ -125,10 +129,12 @@ class MediaView:
self.list.remove_column(column)
column = gtk.TreeViewColumn(_('Title'), self.renderer,text=0)
column.set_resizable(gtk.TRUE)
column.set_clickable(gtk.TRUE)
column.set_resizable(gtk.TRUE)
if not const.nosort_tree:
column.set_clickable(gtk.TRUE)
column.set_sort_column_id(0)
column.set_min_width(225)
column.set_sort_column_id(0)
self.list.append_column(column)
self.columns = [column]
@ -139,9 +145,10 @@ class MediaView:
name = column_names[pair[1]]
column = gtk.TreeViewColumn(name, self.renderer, text=pair[1])
column.set_resizable(gtk.TRUE)
column.set_clickable(gtk.TRUE)
if not const.nosort_tree:
column.set_clickable(gtk.TRUE)
column.set_sort_column_id(index)
column.set_min_width(75)
column.set_sort_column_id(index)
self.columns.append(column)
self.list.append_column(column)
index += 1
@ -153,7 +160,11 @@ class MediaView:
def build_tree(self):
self.list.set_model(None)
self.model = gtk.TreeModelSort(DisplayModels.MediaModel(self.parent.db))
if const.nosort_tree:
self.model = DisplayModels.MediaModel(self.parent.db)
else:
self.model = gtk.TreeModelSort(DisplayModels.MediaModel(self.parent.db))
self.list.set_model(self.model)
self.selection = self.list.get_selection()

View File

@ -46,11 +46,12 @@ _DIED = _('d.')
class DispBox:
def __init__(self,root,style,x,y,w,h,person,db,change):
def __init__(self,root,style,x,y,w,h,person,db,change,edit):
shadow = _PAD
xpad = _PAD
self.change = change
self.edit = edit
self.x = x
self.y = y
self.w = w
@ -121,9 +122,9 @@ class DispBox:
shift doubleclick would change the active person, entering
the box expands it to display more information, leaving a
box returns it to the original size and information"""
if event.type == gtk.gdk._2BUTTON_PRESS:
return 1
self.edit(self.person)
return 0
elif event.type == gtk.gdk.ENTER_NOTIFY:
self.expand()
return 0
@ -305,11 +306,10 @@ class PedigreeView:
ypts[mindex], h, w, p[0], style, p[1])
p = list[i]
box = DispBox(self.root,style,xpts[i],ypts[i],w,h,p[0],self.parent.db,
self.change_active_person)
self.change_active_person, self.load_person)
self.boxes.append(box)
self.change_active_person(person)
def make_arrow_button(self,direction,function):
"""Make a button containing an arrow with the attached callback"""

View File

@ -48,6 +48,7 @@ _sel_mode = gtk.SELECTION_SINGLE
#-------------------------------------------------------------------------
import PeopleModel
import Filter
import const
column_names = [
_('Name'),
@ -69,8 +70,6 @@ class PeopleView:
def __init__(self,parent):
self.parent = parent
self.nosort = os.environ.has_key('NOSORT')
self.DataFilter = Filter.Filter("")
self.pscroll = self.parent.gtop.get_widget("pscroll")
self.person_tree = self.parent.gtop.get_widget("person_tree")
@ -88,7 +87,7 @@ class PeopleView:
column = gtk.TreeViewColumn(_('Name'), self.renderer,text=0)
column.set_resizable(gtk.TRUE)
column.set_min_width(225)
if not self.nosort:
if not const.nosort_tree:
column.set_clickable(gtk.TRUE)
column.set_sort_column_id(PeopleModel.COLUMN_NAME_SORT)
self.person_tree.append_column(column)
@ -112,7 +111,7 @@ class PeopleView:
self.person_tree.set_model(None)
self.person_model = PeopleModel.PeopleModel(self.parent.db)
if self.nosort:
if const.nosort_tree:
self.sort_model = self.person_model
else:
self.sort_model = gtk.TreeModelSort(self.person_model)
@ -254,7 +253,7 @@ class PeopleView:
def redisplay_person_list(self,person):
self.person_model = PeopleModel.PeopleModel(self.parent.db)
if self.nosort:
if const.nosort_tree:
self.sort_model = self.person_model
else:
self.sort_model = gtk.TreeModelSort(self.person_model)

View File

@ -43,6 +43,7 @@ import EditPlace
import Utils
import DisplayModels
import ColumnOrder
import const
from QuestionDialog import QuestionDialog, ErrorDialog
from gettext import gettext as _
@ -78,7 +79,11 @@ class PlaceView:
self.renderer = gtk.CellRendererText()
self.model = gtk.TreeModelSort(DisplayModels.PlaceModel(self.db))
if const.nosort_tree:
self.model = DisplayModels.PlaceModel(self.db)
else:
self.model = gtk.TreeModelSort(DisplayModels.PlaceModel(self.db))
self.list.set_model(self.model)
self.topWindow = self.glade.get_widget("gramps")
@ -90,10 +95,12 @@ class PlaceView:
self.list.remove_column(column)
column = gtk.TreeViewColumn(_('Place Name'), self.renderer,text=0)
column.set_resizable(gtk.TRUE)
column.set_clickable(gtk.TRUE)
column.set_resizable(gtk.TRUE)
if not const.nosort_tree:
column.set_clickable(gtk.TRUE)
column.set_sort_column_id(0)
column.set_min_width(225)
column.set_sort_column_id(0)
self.list.append_column(column)
self.columns = [column]
@ -104,9 +111,10 @@ class PlaceView:
name = column_names[pair[1]]
column = gtk.TreeViewColumn(name, self.renderer, text=pair[1])
column.set_resizable(gtk.TRUE)
column.set_clickable(gtk.TRUE)
if not const.nosort_tree:
column.set_clickable(gtk.TRUE)
column.set_sort_column_id(index)
column.set_min_width(75)
column.set_sort_column_id(index)
self.columns.append(column)
self.list.append_column(column)
index += 1
@ -120,7 +128,10 @@ class PlaceView:
def build_tree(self):
self.list.set_model(None)
self.model = gtk.TreeModelSort(DisplayModels.PlaceModel(self.parent.db))
if const.nosort_tree:
self.model = DisplayModels.PlaceModel(self.parent.db)
else:
self.model = gtk.TreeModelSort(DisplayModels.PlaceModel(self.parent.db))
self.list.set_model(self.model)
self.selection = self.list.get_selection()

File diff suppressed because it is too large Load Diff

View File

@ -71,7 +71,6 @@ PLACE_KEY = 5
#-------------------------------------------------------------------------
_id_reg = compile("%\d+d")
#-------------------------------------------------------------------------
#
# SourceNote
@ -2426,6 +2425,9 @@ class GrampsDB:
self.surnames.open(name, "surnames", db.DB_HASH, flags=db.DB_CREATE)
self.person_map.associate(self.surnames, find_surname, db.DB_CREATE)
self.bookmarks = self.metadata.get('bookmarks')
if self.bookmarks == None:
self.bookmarks = []
return 1
def close(self):
@ -2435,6 +2437,7 @@ class GrampsDB:
self.source_map.close()
self.media_map.close()
self.event_map.close()
self.metadata['bookmarks'] = self.bookmarks
self.metadata.close()
self.surnames.close()
self.env.close()

View File

@ -38,6 +38,7 @@ import RelLib
import EditSource
import Utils
import DisplayModels
import const
from QuestionDialog import QuestionDialog
@ -73,7 +74,10 @@ class SourceView:
self.renderer = gtk.CellRendererText()
self.model = gtk.TreeModelSort(DisplayModels.SourceModel(self.db))
if const.nosort_tree:
self.model = DisplayModels.SourceModel(self.db)
else:
self.model = gtk.TreeModelSort(DisplayModels.SourceModel(self.db))
self.list.set_model(self.model)
self.topWindow = self.glade.get_widget("gramps")
@ -85,10 +89,11 @@ class SourceView:
self.list.remove_column(column)
column = gtk.TreeViewColumn(_('Title'), self.renderer,text=0)
column.set_resizable(gtk.TRUE)
column.set_clickable(gtk.TRUE)
column.set_resizable(gtk.TRUE)
if not const.nosort_tree:
column.set_clickable(gtk.TRUE)
column.set_sort_column_id(0)
column.set_min_width(225)
column.set_sort_column_id(0)
self.list.append_column(column)
self.columns = [column]
@ -99,9 +104,10 @@ class SourceView:
name = column_names[pair[1]]
column = gtk.TreeViewColumn(name, self.renderer, text=pair[1])
column.set_resizable(gtk.TRUE)
column.set_clickable(gtk.TRUE)
if not const.nosort_tree:
column.set_clickable(gtk.TRUE)
column.set_sort_column_id(index)
column.set_min_width(75)
column.set_sort_column_id(index)
self.columns.append(column)
self.list.append_column(column)
index += 1
@ -115,7 +121,10 @@ class SourceView:
def build_tree(self):
self.list.set_model(None)
self.model = gtk.TreeModelSort(DisplayModels.SourceModel(self.parent.db))
if const.nosort_tree:
self.model = DisplayModels.SourceModel(self.parent.db)
else:
self.model = gtk.TreeModelSort(DisplayModels.SourceModel(self.parent.db))
self.list.set_model(self.model)
self.selection = self.list.get_selection()

View File

@ -62,7 +62,6 @@ if os.environ.has_key('GRAMPSDIR'):
else:
rootDir = "."
papersize = "file:%s/papersize.xml" % rootDir
good_xpm = "%s/good.png" % rootDir
bad_xpm = "%s/bad.png" % rootDir
caution_xpm = "%s/caution.png" % rootDir
@ -93,11 +92,20 @@ filtersDir = "%s/filters" % rootDir
dataDir = "%s/data" % rootDir
gtkrcFile = "%s/gtkrc" % rootDir
template_dir = "%s/templates" % dataDir
papersize = "file:%s/papersize.xml" % dataDir
fdl = "%s/fdl.txt" % dataDir
startup = 1
dnd_images = 1
#-------------------------------------------------------------------------
#
# Paths to external programs
#
#-------------------------------------------------------------------------
nosort_tree = os.environ.has_key('NOSORT') and os.environ['NOSORT'] == "1"
#-------------------------------------------------------------------------
#
# About box information
@ -877,3 +885,5 @@ notes_formats = [
_("Flowed"),
_("Preformatted"),
]

View File

@ -2,7 +2,7 @@
SUBDIRS = templates
pkgdatadir = $(datadir)/@PACKAGE@/data
pkgdata_DATA = gedcom.xml
pkgdata_DATA = gedcom.xml papersize.xml
EXTRA_DIST = $(pkgdata_DATA)

View File

@ -70,7 +70,6 @@ import Bookmarks
import GrampsCfg
import EditPerson
import Find
import ReadXML
import DbPrompter
try: # First try python2.3 and later: this is the future
@ -1626,14 +1625,6 @@ class Gramps:
self.db.clear_added_media_objects()
return self.post_load(name)
def load_revision(self,f,name,revision):
filename = "%s/%s" % (name,self.db.get_base())
self.status_text(_('Loading %s...' % name))
if ReadXML.loadRevision(self.db,f,filename,revision,self.load_progress) == 0:
return 0
self.db.clear_added_media_objects()
return self.post_load(name)
def setup_bookmarks(self):
self.bookmarks = Bookmarks.Bookmarks(self.db,self.db.get_bookmarks(),
self.gtop.get_widget("jump_to"),
@ -1659,7 +1650,7 @@ class Gramps:
def on_add_bookmark_activate(self,obj):
if self.active_person:
self.bookmarks.add(self.active_person)
self.bookmarks.add(self.active_person.get_id())
name = GrampsCfg.nameof(self.active_person)
self.status_text(_("%s has been bookmarked") % name)
gtk.timeout_add(5000,self.modify_statusbar)

View File

@ -172,7 +172,6 @@ GLADEFILES = \
gedcomexport.glade\
gedcomimport.glade\
merge.glade\
pafexport.glade\
patchnames.glade\
pkgexport.glade\
relcalc.glade\

View File

@ -71,7 +71,7 @@ UPDATE = 25
db = None
callback = None
_title_string = _("Import from GEDCOM")
_title_string = _("GEDCOM")
def nocnv(s):
return unicode(s)

View File

@ -31,7 +31,7 @@ import gtk
import const
import os
_title_string = _("Import from GRAMPS database")
_title_string = _("GRAMPS XML database")
#-------------------------------------------------------------------------
#

View File

@ -33,7 +33,7 @@ import os
from QuestionDialog import ErrorDialog, WarningDialog
import TarFile
_title_string = _("Import from GRAMPS package")
_title_string = _("GRAMPS package")
#-------------------------------------------------------------------------
#
#