Show confidential meeting details setting added
[qtmeetings] / src / Domain / Configuration / Configuration.cpp
index ae3c431..997711b 100644 (file)
@@ -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<Room*> 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());