X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2FDomain%2FConfiguration%2FConfiguration.cpp;h=997711bbc04bb9717f6d0aff4e255ae36315dc24;hb=a2659d5f04b1662bea18fbbbff3a763fcfe3ff7c;hp=ae3c4313a4ca49882ab55226b77df6f40c558987;hpb=11e5e6349ca6f86f864075fb9d38a778950cebf2;p=qtmeetings diff --git a/src/Domain/Configuration/Configuration.cpp b/src/Domain/Configuration/Configuration.cpp index ae3c431..997711b 100644 --- a/src/Domain/Configuration/Configuration.cpp +++ b/src/Domain/Configuration/Configuration.cpp @@ -19,7 +19,9 @@ QString Configuration::sConfigurationPath = "/etc/QtMeetings.conf"; Configuration::Configuration() : iConnectionSettings(0), iStartupSettings(0), iDisplaySettings(0), - iDateTimeSettings(0) { + iDateTimeSettings(0), + iShowConfidentialMeetingDetails(false) +{ } Configuration::~Configuration() { @@ -123,6 +125,8 @@ void Configuration::save() { saveAdminPassword(root); + bool confidentialMeetingDetailsElementMissing = true; + for (QDomNode node = root.firstChild(); !node.isNull(); node = node.nextSibling()) { QDomElement e = node.toElement(); @@ -139,7 +143,17 @@ void Configuration::save() { saveDisplaySettings(node); } else if (tagName == QString("daylight_saving_time")) { saveDateTimeSettings(node); - } + } else if (tagName == QString("privacy")) { + confidentialMeetingDetailsElementMissing = false; + savePrivacySettings(node); + } + } + + if( confidentialMeetingDetailsElementMissing ) + { + QDomElement e = root.ownerDocument().createElement("privacy"); + savePrivacySettings(e); + root.appendChild(e); } //! Empty the file from previous content and write again with new one @@ -163,7 +177,6 @@ void Configuration::saveConnectionSettings(const QDomNode &aXML) { QDomText t = node.ownerDocument().createTextNode( iConnectionSettings->serverUrl().toString()); if (e.hasChildNodes()) { - e.replaceChild(t, e.firstChild()); } else { e.appendChild(t); @@ -356,7 +369,6 @@ void Configuration::readFromXML(const QString &aPath) { if (tagName == QString("connection")) { iConnectionSettings = readConnectionSettings(node); - } else if (tagName == QString("rooms")) { iRooms = readRooms(node); } else if (tagName == QString("language")) { @@ -366,7 +378,9 @@ void Configuration::readFromXML(const QString &aPath) { } else if (tagName == QString("display")) { iDisplaySettings = readDisplaySettings(node); } else if (tagName == QString("daylight_saving_time")) { - iDateTimeSettings = /*Configuration::*/readDateTimeSettings(node); + iDateTimeSettings = readDateTimeSettings(node); + } else if (tagName == QString("privacy")) { + readPrivacySettings(node); } } } @@ -621,6 +635,46 @@ void Configuration::setRooms(const QList aRooms) { iRooms = aRooms; } +void Configuration::readPrivacySettings(const QDomNode &aXML) { + QString s = QString("show_confidential_meeting_details"); + + QDomElement e = aXML.firstChildElement(s); + + if (e.hasAttribute("enabled") && + e.attribute("enabled") == QString("true")) { + iShowConfidentialMeetingDetails = true; + } + else + { + iShowConfidentialMeetingDetails = false; + } +} + +void Configuration::savePrivacySettings(QDomNode &aXML) { + QString s = QString("show_confidential_meeting_details"); + + QDomElement e = aXML.firstChildElement(s); + + if (e.isNull()) { + e = aXML.ownerDocument().createElement(s); + aXML.appendChild(e); + } + + if( showConfidentialMeetingDetails() ) + e.setAttribute("enabled", "true"); + else + e.setAttribute("enabled", "false"); +} + +bool Configuration::setShowConfidentialMeetingDetails( + bool showconfidentialmeetingdetails) { + iShowConfidentialMeetingDetails = showconfidentialmeetingdetails; +} + +bool Configuration::showConfidentialMeetingDetails() { + return iShowConfidentialMeetingDetails; +} + QString Configuration::hashPassword(const QString aPassword) { QCryptographicHash *hash = new QCryptographicHash(QCryptographicHash::Md5); hash->addData(aPassword.toUtf8());