2007-06-11 Don Allingham <don@gramps-project.org>
* src/ViewManager.py: Improve backup strategy * src/GrampsDb/_GrampsDBDir.py: Improve backup strategy * src/DbManager.py: Improve backup strategy * src/glade/gramps.glade: Improve backup strategy * src/Errors.py: Improve backup strategy * src/GrampsDbUtils/_Backup.py: Improve backup strategy svn: r8538
This commit is contained in:
@@ -58,6 +58,9 @@ import gtk.glade
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
import QuestionDialog
|
||||
import GrampsDb
|
||||
import GrampsDbUtils
|
||||
import Config
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@@ -98,6 +101,7 @@ class DbManager:
|
||||
self.remove = self.glade.get_widget('remove')
|
||||
self.dblist = self.glade.get_widget('dblist')
|
||||
self.rename = self.glade.get_widget('rename')
|
||||
self.repair = self.glade.get_widget('repair')
|
||||
self.model = None
|
||||
self.dbstate = dbstate
|
||||
self.column = None
|
||||
@@ -123,6 +127,7 @@ class DbManager:
|
||||
self.remove.connect('clicked', self.remove_db)
|
||||
self.new.connect('clicked', self.new_db)
|
||||
self.rename.connect('clicked', self.rename_db)
|
||||
self.repair.connect('clicked', self.repair_db)
|
||||
self.selection.connect('changed', self.selection_changed)
|
||||
self.dblist.connect('button-press-event', self.button_press)
|
||||
|
||||
@@ -155,6 +160,7 @@ class DbManager:
|
||||
if not node:
|
||||
self.connect.set_sensitive(False)
|
||||
self.rename.set_sensitive(False)
|
||||
self.repair.set_sensitive(False)
|
||||
self.remove.set_sensitive(False)
|
||||
else:
|
||||
if store.get_value(node, OPEN_COL):
|
||||
@@ -162,6 +168,7 @@ class DbManager:
|
||||
else:
|
||||
self.connect.set_sensitive(True)
|
||||
self.rename.set_sensitive(True)
|
||||
self.repair.set_sensitive(True)
|
||||
self.remove.set_sensitive(True)
|
||||
|
||||
def build_interface(self):
|
||||
@@ -320,6 +327,29 @@ class DbManager:
|
||||
self.dblist.set_cursor(path, focus_column=self.column,
|
||||
start_editing=True)
|
||||
|
||||
def repair_db(self, obj):
|
||||
"""
|
||||
Start the rename process by calling the start_editing option on
|
||||
the line with the cursor.
|
||||
"""
|
||||
store, node = self.selection.get_selected()
|
||||
dirname = store[node][1]
|
||||
opened = store[node][5]
|
||||
if opened:
|
||||
self.dbstate.no_database()
|
||||
|
||||
# delete files that are not backup files or the .txt file
|
||||
for filename in os.listdir(dirname):
|
||||
if os.path.splitext(filename)[1] not in (".gbkp", ".txt"):
|
||||
os.unlink(os.path.join(dirname,filename))
|
||||
|
||||
dbclass = GrampsDb.gramps_db_factory(db_type = "x-directory/normal")
|
||||
db = dbclass(Config.get(Config.TRANSACTIONS))
|
||||
db.set_save_path(dirname)
|
||||
db.load(dirname, None)
|
||||
GrampsDbUtils.Backup.restore(db)
|
||||
db.close()
|
||||
|
||||
def new_db(self, obj):
|
||||
"""
|
||||
Callback wrapper around the actual routine that creates the
|
||||
|
||||
Reference in New Issue
Block a user