From 7a8be902d21f5cf84ef74633a2dda910af3699a1 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Tue, 9 Jul 2019 15:49:44 +0200 Subject: Rewrite list/news/help download and backup file handling --- src/vsession.cpp | 57 ++++---------------------------------------------------- 1 file changed, 4 insertions(+), 53 deletions(-) (limited to 'src/vsession.cpp') diff --git a/src/vsession.cpp b/src/vsession.cpp index 78185e4..b86f314 100644 --- a/src/vsession.cpp +++ b/src/vsession.cpp @@ -285,64 +285,15 @@ int VSession::type() const { return Session::VSESSION; } -QList VSession::readXmlFile(const QString& filepath) { +QList VSession::loadFromXmlDocument(const QDomDocument& doc) { QList sessionList; - - QDomDocument doc; - QFile file(filepath); - QFile backup_file(TEMP_PATH_XML_LIST); - - if (!file.open(QIODevice::ReadOnly)) { - if (g_debugMode) { - qDebug() << "Cannot read file: " << file.fileName(); - } + if (doc.isNull()) return sessionList; - } - - if (!doc.setContent(&file)) { - if (g_debugMode) { - qDebug() << "XML file not valid: " << file.fileName(); - } - - file.close(); - - // try to use backup file - if (!backup_file.open(QIODevice::ReadOnly)) { - if (g_debugMode) { - qDebug() << "Cannot read backup file " << TEMP_PATH_XML_LIST << " either"; - } - return sessionList; - } - - if (!doc.setContent(&backup_file)) { - if (g_debugMode) { - qDebug() << "XML file not valid: " << backup_file.fileName(); - } - backup_file.close(); - return sessionList; - } - - if (g_debugMode) { - qDebug() << "Used backup file " << TEMP_PATH_XML_LIST; - } - - backup_file.close(); - } else { - file.close(); - - // file is valid --> create backup file - QFile::remove(TEMP_PATH_XML_LIST); - QFile::rename(filepath, TEMP_PATH_XML_LIST); - if (!QFile::setPermissions(TEMP_PATH_XML_LIST, QFile::ReadUser | QFile::ReadGroup | QFile::ReadOther | QFile::WriteUser | QFile::WriteGroup | QFile::WriteOther)) { - if (g_debugMode) { - qDebug() << "Could not change permissions of file: " << TEMP_PATH_NEWS; - } - } - } UserLdapData::init(); - QDomElement settingsNode = doc.firstChildElement(QStringLiteral("settings")); + if (settingsNode.isNull()) + return sessionList; for (QDomElement el(settingsNode.firstChildElement(QStringLiteral("eintrag"))); !el.isNull(); el = el.nextSiblingElement(QStringLiteral("eintrag"))) { -- cgit v1.2.3-55-g7522