svn: r7948
This commit is contained in:
parent
aaf56531cf
commit
b656e879fe
@ -30,7 +30,7 @@ Handling of loading new/existing databases.
|
|||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
import os
|
import os
|
||||||
from bsddb.db import DBAccessError, DBRunRecoveryError, DBPageNotFoundError
|
from bsddb.db import DBAccessError, DBRunRecoveryError, DBPageNotFoundError, DBInvalidArgError
|
||||||
from gettext import gettext as _
|
from gettext import gettext as _
|
||||||
import logging
|
import logging
|
||||||
log = logging.getLogger(".")
|
log = logging.getLogger(".")
|
||||||
@ -415,7 +415,15 @@ class DbLoader:
|
|||||||
else:
|
else:
|
||||||
mode = 'w'
|
mode = 'w'
|
||||||
|
|
||||||
dbclass = GrampsDb.gramps_db_factory(db_type = filetype)
|
try:
|
||||||
|
dbclass = GrampsDb.gramps_db_factory(db_type = filetype)
|
||||||
|
except GrampsDbException, msg:
|
||||||
|
QuestionDialog.ErrorDialog(
|
||||||
|
_("Could not open file: %s") % filename,
|
||||||
|
_("This may be caused by an improper installation of GRAMPS.") +
|
||||||
|
"\n" + str(msg))
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
self.dbstate.change_database(dbclass(Config.get(Config.TRANSACTIONS)))
|
self.dbstate.change_database(dbclass(Config.get(Config.TRANSACTIONS)))
|
||||||
self.dbstate.db.disable_signals()
|
self.dbstate.db.disable_signals()
|
||||||
@ -440,7 +448,7 @@ class DbLoader:
|
|||||||
"problem persists, create a new database, import "
|
"problem persists, create a new database, import "
|
||||||
"from a backup database, and report the problem to "
|
"from a backup database, and report the problem to "
|
||||||
"gramps-bugs@lists.sourceforge.net."))
|
"gramps-bugs@lists.sourceforge.net."))
|
||||||
except (DBAccessError, DBPageNotFoundError), msg:
|
except (DBAccessError, DBPageNotFoundError,DBInvalidArgError), msg:
|
||||||
QuestionDialog.ErrorDialog(
|
QuestionDialog.ErrorDialog(
|
||||||
_("Could not open file: %s") % filename,
|
_("Could not open file: %s") % filename,
|
||||||
str(msg[1]))
|
str(msg[1]))
|
||||||
|
@ -121,11 +121,14 @@ class History(GrampsDb.GrampsDBCallback):
|
|||||||
|
|
||||||
def back(self,step=1):
|
def back(self,step=1):
|
||||||
self.index -= step
|
self.index -= step
|
||||||
person_handle = self.history[self.index]
|
try:
|
||||||
if person_handle not in self.mhistory:
|
person_handle = self.history[self.index]
|
||||||
self.mhistory.append(person_handle)
|
if person_handle not in self.mhistory:
|
||||||
self.emit('menu-changed',(self.mhistory,))
|
self.mhistory.append(person_handle)
|
||||||
return str(self.history[self.index])
|
self.emit('menu-changed',(self.mhistory,))
|
||||||
|
return str(self.history[self.index])
|
||||||
|
except IndexError:
|
||||||
|
return u""
|
||||||
|
|
||||||
def at_end(self):
|
def at_end(self):
|
||||||
return self.index+1 == len(self.history)
|
return self.index+1 == len(self.history)
|
||||||
|
@ -41,6 +41,7 @@ import gtk
|
|||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
import GrampsWidgets
|
import GrampsWidgets
|
||||||
import RelLib
|
import RelLib
|
||||||
|
import DateHandler
|
||||||
|
|
||||||
from _SidebarFilter import SidebarFilter
|
from _SidebarFilter import SidebarFilter
|
||||||
from Filters.Rules.Person import *
|
from Filters.Rules.Person import *
|
||||||
@ -92,11 +93,25 @@ class PersonSidebarFilter(SidebarFilter):
|
|||||||
self.generic.add_attribute(cell, 'text', 0)
|
self.generic.add_attribute(cell, 'text', 0)
|
||||||
self.on_filters_changed('Person')
|
self.on_filters_changed('Person')
|
||||||
|
|
||||||
|
# def set(self, quality, modifier, calendar, value, text=None):
|
||||||
|
|
||||||
|
exdate1 = RelLib.Date()
|
||||||
|
exdate2 = RelLib.Date()
|
||||||
|
exdate1.set(RelLib.Date.QUAL_NONE, RelLib.Date.MOD_RANGE, RelLib.Date.CAL_GREGORIAN,
|
||||||
|
(0,0,1800,False,0,0,1900,False))
|
||||||
|
exdate2.set(RelLib.Date.QUAL_NONE, RelLib.Date.MOD_BEFORE, RelLib.Date.CAL_GREGORIAN,
|
||||||
|
(0,0,1850,False))
|
||||||
|
|
||||||
|
msg1 = DateHandler.displayer.display(exdate1)
|
||||||
|
msg2 = DateHandler.displayer.display(exdate2)
|
||||||
|
|
||||||
self.add_text_entry(_('Name'), self.filter_name)
|
self.add_text_entry(_('Name'), self.filter_name)
|
||||||
self.add_text_entry(_('ID'), self.filter_id)
|
self.add_text_entry(_('ID'), self.filter_id)
|
||||||
self.add_entry(_('Gender'), self.filter_gender)
|
self.add_entry(_('Gender'), self.filter_gender)
|
||||||
self.add_text_entry(_('Birth date'), self.filter_birth)
|
self.add_text_entry(_('Birth date'), self.filter_birth,
|
||||||
self.add_text_entry(_('Death date'), self.filter_death)
|
_('example: "%s" or "%s"') % (msg1, msg2))
|
||||||
|
self.add_text_entry(_('Death date'), self.filter_death,
|
||||||
|
_('example: "%s" or "%s"') % (msg1, msg2))
|
||||||
self.add_entry(_('Event'), self.etype)
|
self.add_entry(_('Event'), self.etype)
|
||||||
self.add_entry(_('Marker'), self.mtype)
|
self.add_entry(_('Marker'), self.mtype)
|
||||||
self.add_text_entry(_('Note'), self.filter_note)
|
self.add_text_entry(_('Note'), self.filter_note)
|
||||||
|
@ -35,6 +35,7 @@ class SidebarFilter:
|
|||||||
self.table.set_row_spacings(6)
|
self.table.set_row_spacings(6)
|
||||||
self.table.set_col_spacing(0,6)
|
self.table.set_col_spacing(0,6)
|
||||||
self.table.set_col_spacing(1,6)
|
self.table.set_col_spacing(1,6)
|
||||||
|
self.tooltips = gtk.Tooltips()
|
||||||
self._init_interface()
|
self._init_interface()
|
||||||
uistate.connect('filters-changed',self.on_filters_changed)
|
uistate.connect('filters-changed',self.on_filters_changed)
|
||||||
self.uistate = uistate
|
self.uistate = uistate
|
||||||
@ -91,9 +92,11 @@ class SidebarFilter:
|
|||||||
def get_filter(self):
|
def get_filter(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def add_text_entry(self, name, widget):
|
def add_text_entry(self, name, widget, tooltip=None):
|
||||||
self.add_entry(name, widget)
|
self.add_entry(name, widget)
|
||||||
widget.connect('key-press-event',self.key_press)
|
widget.connect('key-press-event',self.key_press)
|
||||||
|
if tooltip:
|
||||||
|
self.tooltips.set_tip(widget, tooltip)
|
||||||
|
|
||||||
def key_press(self, obj, event):
|
def key_press(self, obj, event):
|
||||||
if event.keyval == _RETURN and not event.state:
|
if event.keyval == _RETURN and not event.state:
|
||||||
|
@ -1209,8 +1209,11 @@ class GrampsBSDDB(GrampsDbBase,UpdateCallback):
|
|||||||
The function must be overridden in the derived class.
|
The function must be overridden in the derived class.
|
||||||
"""
|
"""
|
||||||
name = str(person.get_primary_name().get_surname())
|
name = str(person.get_primary_name().get_surname())
|
||||||
if self.surnames.keys().count(name) == 1:
|
try:
|
||||||
self.surname_list.remove(unicode(name))
|
if self.surnames.keys().count(name) == 1:
|
||||||
|
self.surname_list.remove(unicode(name))
|
||||||
|
except ValueError:
|
||||||
|
pass
|
||||||
|
|
||||||
def _get_obj_from_gramps_id(self,val,tbl,class_init,prim_tbl):
|
def _get_obj_from_gramps_id(self,val,tbl,class_init,prim_tbl):
|
||||||
if tbl.has_key(str(val)):
|
if tbl.has_key(str(val)):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user