From 821b8abe4d40227ada5bf2a3852dcff440bb53e3 Mon Sep 17 00:00:00 2001 From: Nils Schwabe Date: Thu, 6 Mar 2014 17:18:26 +0100 Subject: added backup file functionallity --- src/vsession.cpp | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) (limited to 'src/vsession.cpp') diff --git a/src/vsession.cpp b/src/vsession.cpp index 8134bc6..9d3cadb 100644 --- a/src/vsession.cpp +++ b/src/vsession.cpp @@ -305,6 +305,10 @@ QList VSession::readXmlFile(const QString& filepath) { QDomDocument doc; QFile file(filepath); + QString backup_filename = "/tmp/vmchooser2_backup.xml"; + QFile backup_file(backup_filename); + + if (!file.open(QIODevice::ReadOnly)) { if (debugMode) { qDebug() << "Cannot read file: " << file.fileName(); @@ -315,9 +319,36 @@ QList VSession::readXmlFile(const QString& filepath) { if (debugMode) { qDebug() << "XML file not valid: " << file.fileName(); } - file.close(); - return retval; + + file.close(); + + // try to use backup file + if (!backup_file.open(QIODevice::ReadOnly)) { + if (debugMode) { + qDebug() << "Cannot read backup file " << backup_filename << " either"; + } + return retval; + } + + if (!doc.setContent(&backup_file)) { + if (debugMode) { + qDebug() << "XML file not valid: " << backup_file.fileName(); + } + backup_file.close(); + return retval; + } + + if (debugMode) { + qDebug() << "Used backup file " << backup_filename; + } + + backup_file.close(); + } else { + // file is valid --> create backup file + QFile::remove(backup_filename); + QFile::copy(filepath, backup_filename); } + file.close(); QString dirName(QFileInfo(filepath).dir().absolutePath()); -- cgit v1.2.3-55-g7522