* src/PeopleView.py: rebuild after a filter is applied

* src/DbPrompter: remove ZODB option
* src/RelLib.py: remove ZODB option
* src/gramps.glade: remove ZODB option
* src/gramps_main.py: remove ZODB option


svn: r2306
This commit is contained in:
Don Allingham 2003-11-01 19:55:30 +00:00
parent 38e4401965
commit 4dcb9ceb3a
5 changed files with 46 additions and 141 deletions

View File

@ -37,12 +37,6 @@ import GrampsCfg
import VersionControl
from gettext import gettext as _
try:
import ZODB
_zodb = 1
except:
_zodb = 0
#-------------------------------------------------------------------------
#
# DbPrompter
@ -73,19 +67,13 @@ class DbPrompter:
})
self.new = opendb.get_widget("new")
self.zodb = opendb.get_widget("zodb")
if self.want_new:
self.new.set_active(1)
if _zodb:
self.zodb.show()
def open_ok_clicked(self,obj):
if self.new.get_active():
self.db.clear_database(0)
self.save_as_activate()
elif self.zodb.get_active():
self.db.clear_database(1)
self.save_as_activate()
else:
self.open_activate()
Utils.destroy_passed_object(obj)

View File

@ -184,7 +184,9 @@ class PeopleView:
self.DataFilter = class_init(qualifer)
self.DataFilter.set_invert(invert_filter)
self.model_used = {}
self.clear_person_tabs()
self.apply_filter(self.person_tree)
self.goto_active_person()
def add_to_person_list(self,person,change):
key = person.getId()

View File

@ -42,18 +42,6 @@ import GrampsCfg
import sort
import const
#-------------------------------------------------------------------------
#
# Attempt to load the ZODB libraries, otherwise provide alternates
#
#-------------------------------------------------------------------------
try:
from ZODB import Persistent
except ImportError:
class Persistent:
"""Dummy class used if ZODB is not installed on the system"""
pass
#-------------------------------------------------------------------------
#
# Confidence levels
@ -74,16 +62,7 @@ CONF_VERY_LOW = 0
_id_reg = compile("%\d+d")
def extlist(lst):
"""Returns a copy of the passed list"""
return lst[:] # Make a copy.
def extmap(map):
"""Returns a map"""
return map
class SourceNote(Persistent):
class SourceNote:
"""Base class for storing source references and notes"""
def __init__(self,source=None):
@ -105,11 +84,10 @@ class SourceNote(Persistent):
def addSourceRef(self,id) :
"""Set the source reference"""
self.source_list.append(id)
self._p_changed = 1
def getSourceRefList(self) :
"""Return the source reference"""
return extlist(self.source_list)
return self.source_list
def setSourceRefList(self,list) :
"""Replaces the source reference"""
@ -310,7 +288,7 @@ class Place(SourceNote):
def getUrlList(self):
"""Return the list of URLs"""
return extlist(self.urls)
return self.urls
def setUrlList(self,list):
"""Replace the current URL list with the new one"""
@ -319,7 +297,6 @@ class Place(SourceNote):
def addUrl(self,url):
"""Add a URL to the URL list"""
self.urls.append(url)
self._p_changed = 1
def setId(self,id):
"""Sets the gramps ID for the place object"""
@ -365,7 +342,7 @@ class Place(SourceNote):
def get_alternate_locations(self):
"""Returns a list of alternate location information objects"""
return extlist(self.alt_loc)
return self.alt_loc
def set_alternate_locations(self,list):
"""Replaces the current alternate location list with the new one"""
@ -375,16 +352,14 @@ class Place(SourceNote):
"""Adds a Location to the alternate location list"""
if loc not in self.alt_loc:
self.alt_loc.append(loc)
self._p_changed = 1
def addPhoto(self,photo):
"""Adds a Photo object to the place object's image list"""
self.photoList.append(photo)
self._p_changed = 1
def getPhotoList(self):
"""Returns the list of Photo objects"""
return extlist(self.photoList)
return self.photoList
def setPhotoList(self,list):
"""Sets the list of Photo objects"""
@ -407,7 +382,7 @@ class Place(SourceNote):
else:
return [self.title,self.id,'','','','','',self.title.upper(), '','','','','']
class Researcher(Persistent):
class Researcher:
"""Contains the information about the owner of the database"""
def __init__(self):
@ -472,7 +447,7 @@ class Researcher(Persistent):
if email:
self.email = strip(email)
class Location(Persistent):
class Location:
"""Provides information about a place, including city, county, state,
and country. Multiple Location objects can represent the same place,
since names of citys, countys, states, and even countries can change
@ -536,7 +511,7 @@ class Location(Persistent):
"""returns the country name of the Location object"""
return self.country
class Note(Persistent):
class Note:
"""Provides general text information"""
def __init__(self,text = ""):
@ -623,17 +598,16 @@ class Photo(SourceNote):
but provides a means for XML users to attach other properties to
the image"""
self.attrlist.append(attr)
self._p_changed = 1
def getAttributeList(self):
"""returns the property list associated with the image"""
return extlist(self.attrlist)
return self.attrlist
def setAttributeList(self,list):
self.attrlist = list
class ObjectRef(Persistent):
class ObjectRef:
"""Object reference class"""
def __init__(self,source=None):
self.attrlist = []
@ -692,17 +666,15 @@ class ObjectRef(Persistent):
but provides a means for XML users to attach other properties to
the image"""
self.attrlist.append(attr)
self._p_changed = 1
def getAttributeList(self):
"""returns the property list associated with the image"""
return extlist(self.attrlist)
return self.attrlist
def setAttributeList(self,list):
"""sets the property list associated with the image"""
self.attrlist = list
class Attribute(DataObj):
"""Provides a simple key/value pair for describing properties. Used
by the Person and Family objects to store descriptive information."""
@ -982,7 +954,7 @@ class Name(DataObj):
index = index + 1
return 1
class Url(Persistent):
class Url:
"""Contains information related to internet Uniform Resource Locators,
allowing gramps to store information about internet resources"""
@ -1111,7 +1083,7 @@ class Person(SourceNote):
def getAlternateNames(self):
"""returns the list of alternate Names"""
return extlist(self.alternateNames)
return self.alternateNames
def setAlternateNames(self,list):
"""changes the list of alternate names to the passed list"""
@ -1120,11 +1092,10 @@ class Person(SourceNote):
def addAlternateName(self,name):
"""adds an alternate Name instance to the list"""
self.alternateNames.append(name)
self._p_changed = 1
def getUrlList(self):
"""returns the list of URL instances"""
return extlist(self.urls)
return self.urls
def setUrlList(self,list):
"""sets the list of URL instances to list"""
@ -1133,7 +1104,6 @@ class Person(SourceNote):
def addUrl(self,url):
"""adds a URL instance to the list"""
self.urls.append(url)
self._p_changed = 1
def setId(self,id):
"""sets the gramps ID for the Person"""
@ -1211,11 +1181,10 @@ class Person(SourceNote):
def addPhoto(self,photo):
"""adds a Photo instance to the image list"""
self.photoList.append(photo)
self._p_changed = 1
def getPhotoList(self):
"""returns the list of Photos"""
return extlist(self.photoList)
return self.photoList
def setPhotoList(self,list):
"""Sets the list of Photo objects"""
@ -1224,11 +1193,10 @@ class Person(SourceNote):
def addEvent(self,event):
"""adds an Event to the event list"""
self.EventList.append(event)
self._p_changed = 1
def getEventList(self):
"""returns the list of Event instances"""
return extlist(self.EventList)
return self.EventList
def setEventList(self,list):
"""sets the event list to the passed list"""
@ -1239,7 +1207,6 @@ class Person(SourceNote):
families/marriages/partnerships in which the person is a
parent or spouse"""
self.FamilyList.append(family)
self._p_changed = 1
def setPreferred(self,family):
if family in self.FamilyList:
@ -1249,7 +1216,7 @@ class Person(SourceNote):
def getFamilyList(self) :
"""returns the list of Family instances in which the
person is a parent or spouse"""
return extlist(self.FamilyList)
return self.FamilyList
def clearFamilyList(self) :
self.FamilyList = []
@ -1259,22 +1226,19 @@ class Person(SourceNote):
of marriages/partnerships"""
if family in self.FamilyList:
self.FamilyList.remove(family)
self._p_changed = 1
def addAddress(self,address):
"""adds the Address instance to the list of addresses"""
self.addressList.append(address)
self._p_changed = 1
def removeAddress(self,address):
"""removes the Address instance from the list of addresses"""
if address in self.addressList:
self.addressList.remove(address)
self._p_changed = 1
def getAddressList(self):
"""returns the list of addresses"""
return extlist(self.addressList)
return self.addressList
def setAddressList(self,list):
"""sets the address list to the specified list"""
@ -1283,17 +1247,15 @@ class Person(SourceNote):
def addAttribute(self,attribute):
"""adds an Attribute instance to the attribute list"""
self.attributeList.append(attribute)
self._p_changed = 1
def removeAttribute(self,attribute):
"""removes the specified Attribute instance from the attribute list"""
if attribute in self.attributeList:
self.attributeList.remove(attribute)
self._p_changed = 1
def getAttributeList(self):
"""returns the attribute list"""
return extlist(self.attributeList)
return self.attributeList
def setAttributeList(self,list):
"""sets the attribute list to the specified list"""
@ -1302,13 +1264,12 @@ class Person(SourceNote):
def getParentList(self):
"""returns the list of alternate Family instances, in which the Person
is a child of the family, but not a natural child of both parents"""
return extlist(self.AltFamilyList)
return self.AltFamilyList
def addAltFamily(self,family,mrel,frel):
"""adds a Family to the alternate family list, indicating the
relationship to the mother (mrel) and the father (frel)"""
self.AltFamilyList.append((family,mrel,frel))
self._p_changed = 1
def clearAltFamilyList(self):
self.AltFamilyList = []
@ -1318,7 +1279,6 @@ class Person(SourceNote):
for f in self.AltFamilyList[:]:
if f[0] == family:
self.AltFamilyList.remove(f)
self._p_changed = 1
return f
else:
return None
@ -1329,7 +1289,6 @@ class Person(SourceNote):
for f in self.AltFamilyList[:]:
if f[0] == family:
self.AltFamilyList[index] = (family,mrel,frel)
self._p_changed = 1
index += 1
def has_family(self,family):
@ -1510,7 +1469,6 @@ class Event(DataObj):
self.description = source.description
self.name = source.name
self.cause = source.cause
# old ZODB database may not have this element
try:
if source.witness:
self.witness = source.witness[:]
@ -1654,7 +1612,7 @@ class Event(DataObj):
"""sets the Date object associated with the Event"""
self.date = date
class Witness(Persistent):
class Witness:
def __init__(self,type=Event.NAME,val="",comment=""):
self.set_type(type)
self.set_value(val)
@ -1721,17 +1679,15 @@ class Family(SourceNote):
def addAttribute(self,attribute) :
"""adds an Attribute instance to the attribute list"""
self.attributeList.append(attribute)
self._p_changed = 1
def removeAttribute(self,attribute):
"""removes the specified Attribute instance from the attribute list"""
if attribute in self.attributeList:
self.attributeList.remove(attribute)
self._p_changed = 1
def getAttributeList(self) :
"""returns the attribute list"""
return extlist(self.attributeList)
return self.attributeList
def setAttributeList(self,list) :
"""sets the attribute list to the specified list"""
@ -1786,7 +1742,6 @@ class Family(SourceNote):
to the child list"""
if person not in self.Children:
self.Children.append(person)
self._p_changed = 1
if person.getAncestor():
if self.Father:
self.Father.setAncestor(1)
@ -1797,7 +1752,6 @@ class Family(SourceNote):
"""removes the specified Person from the child list"""
if person in self.Children:
self.Children.remove(person)
self._p_changed = 1
if person.getAncestor():
if self.Father:
self.Father.setAncestor(0)
@ -1806,7 +1760,7 @@ class Family(SourceNote):
def getChildList(self):
"""returns the list of children"""
return extlist(self.Children)
return self.Children
def setChildList(self, list):
"""sets the list of children"""
@ -1829,11 +1783,10 @@ class Family(SourceNote):
def addEvent(self,event):
"""adds an Event to the event list"""
self.EventList.append(event)
self._p_changed = 1
def getEventList(self) :
"""returns the list of Event instances"""
return extlist(self.EventList)
return self.EventList
def setEventList(self,list) :
"""sets the event list to the passed list"""
@ -1842,11 +1795,10 @@ class Family(SourceNote):
def addPhoto(self,photo):
"""Adds a Photo object to the Family instance's image list"""
self.photoList.append(photo)
self._p_changed = 1
def getPhotoList(self):
"""Returns the list of Photo objects"""
return extlist(self.photoList)
return self.photoList
def setPhotoList(self,list):
"""Sets the list of Photo objects"""
@ -1858,7 +1810,7 @@ class Family(SourceNote):
return 1
return None
class Source(Persistent):
class Source:
"""A record of a source of information"""
def __init__(self):
@ -1886,11 +1838,10 @@ class Source(Persistent):
def addPhoto(self,photo):
"""Adds a Photo object to the Source instance's image list"""
self.photoList.append(photo)
self._p_changed = 1
def getPhotoList(self):
"""Returns the list of Photo objects"""
return extlist(self.photoList)
return self.photoList
def setPhotoList(self,list):
"""Sets the list of Photo objects"""
@ -1950,7 +1901,7 @@ class Source(Persistent):
of the Source"""
return self.callno
class SourceRef(Persistent):
class SourceRef:
"""Source reference, containing detailed information about how a
referenced source relates to it"""
@ -2110,7 +2061,7 @@ class GenderStats:
return Person.unknown
class GrampsDB(Persistent):
class GrampsDB:
"""GRAMPS database object. This object is a base class for other
objects."""
@ -2307,7 +2258,7 @@ class GrampsDB(Persistent):
def getPersonMap(self):
"""returns a map of gramps's IDs to Person instances"""
return extmap(self.personMap)
return self.personMap
def setPersonMap(self,map):
"""sets the map of gramps's IDs to Person instances"""
@ -2316,7 +2267,7 @@ class GrampsDB(Persistent):
def getPlaceMap(self):
"""returns a map of gramps's IDs to Place instances"""
return extmap(self.placeMap)
return self.placeMap
def setPlaceMap(self,map):
"""sets the map of gramps's IDs to Place instances"""
@ -2324,7 +2275,7 @@ class GrampsDB(Persistent):
def getFamilyMap(self):
"""returns a map of gramps's IDs to Family instances"""
return extmap(self.familyMap)
return self.familyMap
def getFamily(self,id):
"""returns a map of gramps's IDs to Family instances"""
@ -2336,8 +2287,7 @@ class GrampsDB(Persistent):
def getSourceMap(self):
"""returns a map of gramps's IDs to Source instances"""
return extmap(self.sourceMap)
return self.sourceMap
def getObjectMap(self):
"""returns a map of gramps's IDs to Object instances"""

View File

@ -6357,7 +6357,7 @@
<property name="window_position">GTK_WIN_POS_NONE</property>
<property name="modal">True</property>
<property name="default_width">300</property>
<property name="default_height">200</property>
<property name="default_height">150</property>
<property name="resizable">True</property>
<property name="destroy_with_parent">False</property>
<property name="icon">gramps.png</property>
@ -6476,25 +6476,6 @@
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkRadioButton" id="zodb">
<property name="border_width">5</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Create a new _ZODB database</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<property name="group">existing</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>

View File

@ -74,12 +74,6 @@ import VersionControl
import ReadXML
import GrampsXML
try:
import GrampsZODB
zodb_ok = 1
except:
zodb_ok = 0
#-------------------------------------------------------------------------
#
# Constants
@ -121,7 +115,6 @@ class Gramps:
self.place_loaded = 0
self.bookmarks = None
self.c_details = 6
self.id2col = {}
self.cl = 0
gtk.rc_parse(const.gtkrcFile)
@ -134,7 +127,7 @@ class Gramps:
"security risks."))
# This will never contain data - It will be replaced by either
# a GrampsXML or GrampsZODB
# a GrampsXML
self.history = []
self.mhistory = []
@ -685,7 +678,8 @@ class Gramps:
if self.find_person:
self.find_person.show()
else:
self.find_person = Find.FindPerson(self.find_goto_person,self.db,self.id2col)
self.find_person = Find.FindPerson(self.find_goto_person,self.db,
self.people_view.id2col)
def on_findname_activate(self,obj):
"""Display the find box"""
@ -849,7 +843,7 @@ class Gramps:
import DbPrompter
DbPrompter.DbPrompter(self,1,self.topWindow)
def clear_database(self,zodb=1):
def clear_database(self):
"""Clear out the database if permission was granted"""
const.personalEvents = const.init_personal_event_list()
const.personalAttributes = const.init_personal_attribute_list()
@ -864,12 +858,7 @@ class Gramps:
self.people_view.clear_person_tabs()
if zodb == 1:
self.db = GrampsZODB.GrampsZODB()
elif zodb == 2:
self.db = RelLib.GrampsDB()
else:
self.db = GrampsXML.GrampsXML()
self.db = GrampsXML.GrampsXML()
self.db.set_iprefix(GrampsCfg.iprefix)
self.db.set_oprefix(GrampsCfg.oprefix)
self.db.set_fprefix(GrampsCfg.fprefix)
@ -958,7 +947,7 @@ class Gramps:
return
filename = os.path.normpath(os.path.abspath(filename))
self.clear_database(0)
self.clear_database()
if getoldrev.get_active():
vc = VersionControl.RcsVersionControl(filename)
@ -1028,10 +1017,10 @@ class Gramps:
self.displayError(_("Database could not be opened"),
_("%s is not a directory.") % filename + ' ' + \
_("You should select a directory that contains a "
"data.gramps file or a gramps.zodb file."))
"data.gramps file."))
return
self.clear_database(2)
self.clear_database()
if self.load_database(filename) == 1:
if filename[-1] == '/':
filename = filename[:-1]
@ -1153,7 +1142,7 @@ class Gramps:
self.displayError(_("Database could not be opened"),
_("%s is not a directory.") % filename + ' ' + \
_("You should select a directory that contains a "
"data.gramps file or a gramps.zodb file."))
"data.gramps file."))
return
else:
try:
@ -1432,7 +1421,6 @@ class Gramps:
self.db.new()
self.active_person = None
self.place_loaded = 0
self.id2col = {}
self.read_file(file)
Utils.clearModified()
Utils.clear_timer()
@ -1700,11 +1688,7 @@ class Gramps:
def load_database(self,name):
filename = "%s/%s" % (name,const.xmlFile)
if not os.path.isfile(filename) and zodb_ok:
filename = "%s/%s" % (name,const.zodbFile)
self.clear_database(1)
else:
self.clear_database(0)
self.clear_database()
self.status_text(_("Loading %s...") % name)
if self.db.load(filename,self.load_progress) == 0: