diff --git a/po/POTFILES.in b/po/POTFILES.in index 56897d6e0..acd066a4f 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -71,6 +71,7 @@ src/gen/proxy/filter.py src/gen/proxy/__init__.py # gen db API +src/gen/db/backup.py src/gen/db/base.py src/gen/db/dbdir.py src/gen/db/cursor.py @@ -345,7 +346,6 @@ src/docgen/SpreadSheetDoc.py src/docgen/TextBufDoc.py # GrampsDbUtils package -src/GrampsDbUtils/_Backup.py src/GrampsDbUtils/_GedcomInfo.py src/GrampsDbUtils/_GedcomStageOne.py #src/GrampsDbUtils/_GedcomLex.py diff --git a/src/GrampsDbUtils/Makefile.am b/src/GrampsDbUtils/Makefile.am index a1eaa6a41..90c460bb1 100644 --- a/src/GrampsDbUtils/Makefile.am +++ b/src/GrampsDbUtils/Makefile.am @@ -6,7 +6,6 @@ pkgdatadir = $(datadir)/@PACKAGE@/GrampsDbUtils pkgdata_PYTHON = \ - _Backup.py\ _GedcomChar.py\ _GedcomInfo.py\ _GedcomLex.py\ diff --git a/src/GrampsDbUtils/__init__.py b/src/GrampsDbUtils/__init__.py index c4cce0b05..8c1796cd3 100644 --- a/src/GrampsDbUtils/__init__.py +++ b/src/GrampsDbUtils/__init__.py @@ -29,5 +29,3 @@ from _GedcomInfo import (personalConstantEvents, familyConstantEvents, from _GedcomParse import GedcomParser -import _Backup as Backup - diff --git a/src/gen/db/Makefile.am b/src/gen/db/Makefile.am index 776b68761..f4045eee5 100644 --- a/src/gen/db/Makefile.am +++ b/src/gen/db/Makefile.am @@ -6,7 +6,8 @@ pkgdatadir = $(datadir)/@PACKAGE@/gen/db pkgdata_PYTHON = \ - __init__.py\ + __init__.py \ + backup.py \ base.py \ bsddbtxn.py \ cursor.py \ diff --git a/src/gen/db/__init__.py b/src/gen/db/__init__.py index 9f7c0d89c..0a4941ba9 100644 --- a/src/gen/db/__init__.py +++ b/src/gen/db/__init__.py @@ -27,3 +27,4 @@ from txn import * from undoredo import * from exceptions import * from write import * +from backup import backup, restore diff --git a/src/GrampsDbUtils/_Backup.py b/src/gen/db/backup.py similarity index 97% rename from src/GrampsDbUtils/_Backup.py rename to src/gen/db/backup.py index e4632f267..4dd65b192 100644 --- a/src/GrampsDbUtils/_Backup.py +++ b/src/gen/db/backup.py @@ -50,14 +50,15 @@ db. # load standard python libraries # #------------------------------------------------------------------------- -from gettext import gettext as _ +import os +import cPickle as pickle #------------------------------------------------------------------------ # # Gramps libs # #------------------------------------------------------------------------ -from QuestionDialog import ErrorDialog +from gen.db.exceptions import GrampsDbException from gen.db.write import FAMILY_TBL, PLACES_TBL, SOURCES_TBL, MEDIA_TBL, \ EVENTS_TBL, PERSON_TBL, REPO_TBL, NOTE_TBL, META @@ -67,9 +68,6 @@ from gen.db.write import FAMILY_TBL, PLACES_TBL, SOURCES_TBL, MEDIA_TBL, \ # #------------------------------------------------------------------------ import logging -import os -import cPickle as pickle - LOG = logging.getLogger(".Backup") def backup(database): @@ -86,7 +84,7 @@ def backup(database): try: __do_export(database) except (OSError, IOError), msg: - ErrorDialog(_("Error saving backup data"), str(msg)) + raise GrampsDbException(str(msg)) def __mk_backup_name(database, base): """ @@ -154,7 +152,7 @@ def restore(database): try: __do_restore(database) except (OSError, IOError), msg: - ErrorDialog(_("Error restoring backup data"), str(msg)) + raise GrampsDbException(str(msg)) def __do_restore(database): """ diff --git a/src/gui/dbman.py b/src/gui/dbman.py index 7506c7fdf..3375b2b98 100644 --- a/src/gui/dbman.py +++ b/src/gui/dbman.py @@ -71,10 +71,11 @@ from QuestionDialog import ErrorDialog, QuestionDialog from gen.db import GrampsDBDir from gui.pluginmanager import GuiPluginManager from cli.clidbman import CLIDbManager, NAME_FILE, time_val -import GrampsDbUtils from DdTargets import DdTargets import RecentFiles from glade import Glade +from gen.db.backup import restore +from gen.db.exceptions import GrampsDbException _RETURN = gtk.gdk.keyval_from_name("Return") _KP_ENTER = gtk.gdk.keyval_from_name("KP_Enter") @@ -641,7 +642,12 @@ class DbManager(CLIDbManager): dbase.load(dirname, None) self.__start_cursor(_("Rebuilding database from backup files")) - GrampsDbUtils.Backup.restore(dbase) + + try: + restore(dbase) + except GrampsDbException, msg: + ErrorDialog(_("Error restoring backup data"), msg) + self.__end_cursor() dbase.close() diff --git a/src/gui/viewmanager.py b/src/gui/viewmanager.py index 933ad9c87..fe50a8edd 100644 --- a/src/gui/viewmanager.py +++ b/src/gui/viewmanager.py @@ -72,13 +72,14 @@ from QuestionDialog import (ErrorDialog, WarningDialog, QuestionDialog2, InfoDialog) import gui.views.pageview as PageView import Navigation -import RecentFiles from BasicUtils import name_displayer from gui import widgets import UndoHistory from gui.dbloader import DbLoader import GrampsDisplay from gen.utils import ProgressMonitor +from gen.db.backup import backup +from gen.db.exceptions import GrampsDbException from GrampsAboutDialog import GrampsAboutDialog import ProgressDialog @@ -693,13 +694,14 @@ class ViewManager(CLIManager): """ Backup the current file as a backup file. """ - import GrampsDbUtils - if self.dbstate.db.has_changed: self.uistate.set_busy_cursor(1) self.uistate.progress.show() self.uistate.push_message(self.dbstate, _("Autobackup...")) - GrampsDbUtils.Backup.backup(self.dbstate.db) + try: + backup(self.dbstate.db) + except GrampsDbException, msg: + ErrorDialog(_("Error saving backup data"), msg) self.uistate.set_busy_cursor(0) self.uistate.progress.hide()