summaryrefslogtreecommitdiffstats
path: root/src/vsession.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/vsession.cpp')
-rw-r--r--src/vsession.cpp57
1 files changed, 4 insertions, 53 deletions
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<Session*> VSession::readXmlFile(const QString& filepath) {
+QList<Session*> VSession::loadFromXmlDocument(const QDomDocument& doc) {
QList<Session*> 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"))) {