From 8ef305794084fb35479dee478c6538f3d03f9733 Mon Sep 17 00:00:00 2001 From: Benny Malengier Date: Thu, 4 Nov 2010 19:43:35 +0000 Subject: [PATCH] 4301: Got a database error svn: r16135 --- src/gui/dbman.py | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/src/gui/dbman.py b/src/gui/dbman.py index 917ab93ed..7f17b246e 100644 --- a/src/gui/dbman.py +++ b/src/gui/dbman.py @@ -68,7 +68,7 @@ import pango # gramps modules # #------------------------------------------------------------------------- -from QuestionDialog import ErrorDialog, QuestionDialog +from QuestionDialog import ErrorDialog, QuestionDialog, QuestionDialog2 from gen.db import DbBsddb from gui.pluginmanager import GuiPluginManager from cli.clidbman import CLIDbManager, NAME_FILE, time_val @@ -627,6 +627,36 @@ class DbManager(CLIDbManager): """ store, node = self.selection.get_selected() dirname = store[node][1] + + #First ask user if he is really sure :-) + yes_no = QuestionDialog2( + _("Repair family tree?"), + _( +"If you click Proceed, Gramps will attempt to reconstruct your family tree" +" from the last good backup. There are several ways this can cause unwanted" +" behaviour, so backup the family tree first.\n" +"The Family tree you have selected is stored in %s.\n\n" +"Before doing a repair, verify that the Family Tree really cannot be opened" +" anymore, as the database backend can recover from some errors automatically.\n\n" +"Details: Repairing a Family Tree is actually using the last backup of" +" this Family Tree, which Gramps stored on last use. If you have worked for" +" several hours/days without closing Gramps, then all this information will" +" be lost! If repairing fails, the original family tree will have been lost" +" forever also. Hence a backup is needed. If repair fails or if you loose too" +" much information on repair, you can fix the original family tree manually." +" See for this the webpage\n" +"http://gramps-project.org/wiki/index.php?title=Recover_corrupted_family_tree\n" +"Before doing a repair, try to open the family tree in the normal manner," +" several errors that can automatically be fixed can trigger the repair button." +" If in this case, you can disable the repair button by removing the" +" file need_recover in the family tree directory" +) % dirname, + _("Proceed, I took a backup"), + _("Stop")) + prompt = yes_no.run() + if not prompt: + return + opened = store[node][5] if opened: self.dbstate.no_database()