X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2FDomain%2FConfiguration%2FConfiguration.cpp;h=997711bbc04bb9717f6d0aff4e255ae36315dc24;hb=6a31f3484996e9b7e719954c3a64a56d3fa586aa;hp=2a3399827680bd0a5bed1f706e28ecb1f5558a39;hpb=59b4a9d85f3cd02e90c8efcecc66f9150f8a61f8;p=qtmeetings diff --git a/src/Domain/Configuration/Configuration.cpp b/src/Domain/Configuration/Configuration.cpp index 2a33998..997711b 100644 --- a/src/Domain/Configuration/Configuration.cpp +++ b/src/Domain/Configuration/Configuration.cpp @@ -11,96 +11,111 @@ #include #include +#include +#include Configuration * Configuration::sInstance = 0; QString Configuration::sConfigurationPath = "/etc/QtMeetings.conf"; Configuration::Configuration() : - iConnectionSettings( 0 ), - iStartupSettings( 0 ), - iDisplaySettings( 0 ), - iDateTimeSettings( 0 ) + iConnectionSettings(0), iStartupSettings(0), iDisplaySettings(0), + iDateTimeSettings(0), + iShowConfidentialMeetingDetails(false) { } -Configuration::~Configuration() -{ +Configuration::~Configuration() { delete iConnectionSettings; delete iStartupSettings; delete iDisplaySettings; delete iDateTimeSettings; - while ( !iRooms.isEmpty() ) - { + while (!iRooms.isEmpty()) { delete iRooms.takeFirst(); } } -Configuration* Configuration::instance() -{ - if ( sInstance == 0 ) - { - sInstance = readFromXML( sConfigurationPath ); - if( !sInstance ) - { - qDebug() << "FATAL: Configuration cannot be read from:" << Configuration::sConfigurationPath; - } - } +Configuration* Configuration::instance() { + if (sInstance == 0) { + qDebug() << "HERE"; + sInstance = new Configuration(); + sInstance->readFromXML(sConfigurationPath); + if (!sInstance) { + qDebug() << "FATAL: Configuration cannot be read from:" + << Configuration::sConfigurationPath; + } + } return sInstance; } -ConnectionSettings* Configuration::connectionSettings() -{ - return iConnectionSettings; -} +/*ConnectionSettings* Configuration::connectionSettings() + { + return iConnectionSettings; + }*/ -StartupSettings * Configuration::startupSettings() -{ +StartupSettings * Configuration::startupSettings() { return iStartupSettings; } -DisplaySettings * Configuration::displaySettings() -{ +DisplaySettings * Configuration::displaySettings() { return iDisplaySettings; } -DateTimeSettings * Configuration::dateTimeSettings() -{ +DateTimeSettings * Configuration::dateTimeSettings() { return iDateTimeSettings; } -Room* Configuration::defaultRoom() -{ +Room* Configuration::defaultRoom() { // default room is stored as the first element of the list - return ( iRooms.count() == 0 ) ? 0 : iRooms.at( 0 ); + return (iRooms.count() == 0) ? 0 : iRooms.at(0); } -QString Configuration::languageCode() -{ +QString Configuration::languageCode() { return iLanguageCode; } -QList Configuration::rooms() -{ +QList Configuration::rooms() { return iRooms; } -QByteArray Configuration::adminPassword() -{ +QByteArray Configuration::adminPassword() { return iAdminPassword; } +QUrl Configuration::getServerUrl() { + return iConnectionSettings->serverUrl(); +} -void Configuration::save() -{ - QDomDocument doc; - QFile file( sConfigurationPath ); +QString Configuration::getUsername() { + return iConnectionSettings->username(); +} +QString Configuration::getPassword() { + return iConnectionSettings->password(); +} - if ( !file.open( QIODevice::ReadWrite ) ) - { +unsigned int Configuration::getRefreshinterval() { + return iConnectionSettings->refreshInterval(); +} + +void Configuration::setServerUrl(QUrl serverUrl) { + iConnectionSettings->setServerUrl(serverUrl); +} +void Configuration::setUsername(QString username) { + iConnectionSettings->setUsername(username); +} +void Configuration::setPassword(QString password) { + iConnectionSettings->setPassword(password); +} +void Configuration::setRefreshinterval(unsigned int refreshinterval) { + iConnectionSettings->setRefreshInterval(refreshinterval); +} + +void Configuration::save() { + QDomDocument doc; + QFile file(sConfigurationPath); + if (!file.open(QIODevice::ReadWrite)) { return; } - if ( !doc.setContent( &file ) ) - { + if (!doc.setContent(&file)) { file.close(); return; } @@ -108,110 +123,100 @@ void Configuration::save() QDomElement root = doc.documentElement(); // Save all attributes to document - saveAdminPassword( root ); + saveAdminPassword(root); - for ( QDomNode node = root.firstChild(); !node.isNull(); node = node.nextSibling() ) - { + bool confidentialMeetingDetailsElementMissing = true; + + for (QDomNode node = root.firstChild(); !node.isNull(); node + = node.nextSibling()) { QDomElement e = node.toElement(); QString tagName = e.tagName().toLower(); + if (tagName == QString("connection")) { + saveConnectionSettings(node); + } else if (tagName == QString("rooms")) { + saveRooms(node); + } else if (tagName == QString("language")) { + saveLanguageCode(node); + } else if (tagName == QString("startup")) { + saveStartupSettings(node); + } else if (tagName == QString("display")) { + saveDisplaySettings(node); + } else if (tagName == QString("daylight_saving_time")) { + saveDateTimeSettings(node); + } else if (tagName == QString("privacy")) { + confidentialMeetingDetailsElementMissing = false; + savePrivacySettings(node); + } + } - if ( tagName == QString( "connection" ) ) - { - saveConnectionSettings( node ); - } - else if ( tagName == QString( "rooms" ) ) - { - saveRooms( node ); - } - else if ( tagName == QString( "language" ) ) - { - saveLanguageCode( node ); - } - else if ( tagName == QString( "startup" ) ) - { - saveStartupSettings( node ); - } - else if ( tagName == QString( "display" ) ) - { - saveDisplaySettings( node ); - } - else if (tagName == QString( "daylight_saving_time" ) ) - { - saveDateTimeSettings( 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 - file.resize( 0 ); - file.write( doc.toByteArray( 4 ) ); //! 4 as intent + file.resize(0); + file.write(doc.toByteArray(4)); //! 4 as intent file.close(); - + emit configurationChanged(); } -void Configuration::saveConnectionSettings( const QDomNode &aXML ) -{ - for ( QDomNode node = aXML.firstChild(); !node.isNull(); node = node.nextSibling() ) - { +void Configuration::saveConnectionSettings(const QDomNode &aXML) { + QDomElement e = aXML.firstChild().toElement(); + QString tagName = e.tagName().toLower(); + qDebug() << tagName; + for (QDomNode node = aXML.firstChild(); !node.isNull(); node + = node.nextSibling()) { QDomElement e = node.toElement(); QString tagName = e.tagName().toLower(); - if ( tagName == QString( "serverurl" ) ) - { - QDomText t = node.ownerDocument().createTextNode( iConnectionSettings->serverUrl().toString() ); - if ( e.hasChildNodes() ) - { - e.replaceChild( t, e.firstChild() ); - } - else - { - e.appendChild( e.firstChild() ); + qDebug() << tagName; + if (tagName == QString("serverurl")) { + QDomText t = node.ownerDocument().createTextNode( + iConnectionSettings->serverUrl().toString()); + if (e.hasChildNodes()) { + e.replaceChild(t, e.firstChild()); + } else { + e.appendChild(t); } - } - else if ( tagName == QString( "username" ) ) - { - QDomText t = node.ownerDocument().createTextNode( iConnectionSettings->username() ); - if ( e.hasChildNodes() ) - { - e.replaceChild( t, e.firstChild() ); - } - else - { - e.appendChild( e.firstChild() ); + } else if (tagName == QString("username")) { + QDomText t = node.ownerDocument().createTextNode( + iConnectionSettings->username()); + if (e.hasChildNodes()) { + e.replaceChild(t, e.firstChild()); + } else { + e.appendChild(t); } - } - else if ( tagName == QString( "password" ) ) - { - QDomText t = node.ownerDocument().createTextNode( iConnectionSettings->password() ); - if ( e.hasChildNodes() ) - { - e.replaceChild( t, e.firstChild() ); - } - else - { - e.appendChild( e.firstChild() ); + + } else if (tagName == QString("password")) { + QDomText t = node.ownerDocument().createTextNode( + iConnectionSettings->password()); + if (e.hasChildNodes()) { + e.replaceChild(t, e.firstChild()); + } else { + e.appendChild(t); } - } - else if ( tagName == QString( "refreshinterval" ) ) - { - QString s = QString( "%1" ).arg( iConnectionSettings->refreshInterval() ); - QDomText t = node.ownerDocument().createTextNode( s ); - e.replaceChild( t, e.firstChild() ); + } else if (tagName == QString("refreshinterval")) { + QString s = QString("%1").arg( + iConnectionSettings->refreshInterval()); + QDomText t = node.ownerDocument().createTextNode(s); + e.replaceChild(t, e.firstChild()); } } } -void Configuration::saveRooms( const QDomNode &aXML ) -{ +void Configuration::saveRooms(const QDomNode &aXML) { //! List of rooms must be cleared and rewritten again QDomDocument doc = aXML.ownerDocument(); - QDomNode root = aXML; + QDomNode root = aXML; // Remove child nodes... int count = root.childNodes().count(); QDomNode node = root.firstChild(); QDomNode next; - for (int i = 0; i < count; i++) - { + for (int i = 0; i < count; i++) { qDebug() << "remove " << node.toElement().text(); next = node.nextSibling(); node = root.removeChild(node); @@ -220,264 +225,220 @@ void Configuration::saveRooms( const QDomNode &aXML ) node = aXML; QList::iterator i; - for ( i = iRooms.begin(); i != iRooms.end(); ++i ) - { - QDomElement tag = doc.createElement( "room" ); - node.appendChild( tag ); + for (i = iRooms.begin(); i != iRooms.end(); ++i) { + QDomElement tag = doc.createElement("room"); + node.appendChild(tag); // First room in the list is a dafault room - if ( i == iRooms.begin() ) - { - tag.setAttribute( "default", "true" ); + if (i == iRooms.begin()) { + tag.setAttribute("default", "true"); } - QDomElement ename = doc.createElement( "name" ); - QDomText tname = node.ownerDocument().createTextNode(( *i )->name() ); - ename.appendChild( tname ); - tag.appendChild( ename ); + QDomElement ename = doc.createElement("name"); + QDomText tname = node.ownerDocument().createTextNode((*i)->name()); + ename.appendChild(tname); + tag.appendChild(ename); - QDomElement eaddress = doc.createElement( "address" ); - QDomText taddress = node.ownerDocument().createTextNode(( *i )->address() ); - eaddress.appendChild( taddress ); - tag.appendChild( eaddress ); + QDomElement eaddress = doc.createElement("address"); + QDomText taddress = + node.ownerDocument().createTextNode((*i)->address()); + eaddress.appendChild(taddress); + tag.appendChild(eaddress); } } -void Configuration::saveLanguageCode( const QDomNode &aXML ) -{ +void Configuration::saveLanguageCode(const QDomNode &aXML) { QDomElement e = aXML.toElement(); - e.setAttribute( "code", languageCode() ); + e.setAttribute("code", languageCode()); } -void Configuration::saveStartupSettings( const QDomNode &aXML ) -{ +void Configuration::saveStartupSettings(const QDomNode &aXML) { QDomElement e = aXML.toElement(); - for ( QDomNode node = aXML.firstChild(); !node.isNull(); node = node.nextSibling() ) - { + for (QDomNode node = aXML.firstChild(); !node.isNull(); node + = node.nextSibling()) { e = node.toElement(); QString tagName = e.tagName().toLower(); - if ( tagName == QString( "powersaving" ) ) - { - ( iStartupSettings->isPowersavingEnabled() ? - e.setAttribute( "enabled", "true" ) : - e.setAttribute( "enabled", "false" ) ); + if (tagName == QString("powersaving")) { + (iStartupSettings->isPowersavingEnabled() ? e.setAttribute( + "enabled", "true") : e.setAttribute("enabled", "false")); - e.setAttribute( "on", iStartupSettings->turnOnAt().toString( "hh:mm" ) ); - e.setAttribute( "off", iStartupSettings->turnOffAt().toString( "hh:mm" ) ); + e.setAttribute("on", iStartupSettings->turnOnAt().toString("hh:mm")); + e.setAttribute("off", iStartupSettings->turnOffAt().toString( + "hh:mm")); } } } -void Configuration::saveDisplaySettings( const QDomNode &aXML ) -{ - for ( QDomNode node = aXML.firstChild(); !node.isNull(); node = node.nextSibling() ) - { +void Configuration::saveDisplaySettings(const QDomNode &aXML) { + for (QDomNode node = aXML.firstChild(); !node.isNull(); node + = node.nextSibling()) { QDomElement e = node.toElement(); QString tagName = e.tagName().toLower(); - if ( tagName == QString( "schedule" ) ) - { - for ( QDomNode scheduleNode = node.firstChild(); !scheduleNode.isNull(); scheduleNode = scheduleNode.nextSibling() ) - { + if (tagName == QString("schedule")) { + for (QDomNode scheduleNode = node.firstChild(); !scheduleNode.isNull(); scheduleNode + = scheduleNode.nextSibling()) { QDomElement scheduleElem = scheduleNode.toElement(); tagName = scheduleElem.tagName().toLower(); - if ( tagName == QString( "week" ) ) - { - scheduleElem.setAttribute( "days", iDisplaySettings->daysInSchedule() ); + if (tagName == QString("week")) { + scheduleElem.setAttribute("days", + iDisplaySettings->daysInSchedule()); + } else if (tagName == QString("day")) { + scheduleElem.setAttribute("startsat", + iDisplaySettings->dayStartsAt().toString("hh:mm")); + scheduleElem.setAttribute("endsat", + iDisplaySettings->dayEndsAt().toString("hh:mm")); } - else if ( tagName == QString( "day" ) ) - { - scheduleElem.setAttribute( "startsat", iDisplaySettings->dayStartsAt().toString( "hh:mm" ) ); - scheduleElem.setAttribute( "endsat", iDisplaySettings->dayEndsAt().toString( "hh:mm" ) ); - } - } // end of for - } // end of schedule - else if ( tagName == QString( "dateformat" ) ) - { - QDomText t = node.ownerDocument().createTextNode( iDisplaySettings->dateFormat() ); - e.replaceChild( t, e.firstChild() ); - } - else if ( tagName == QString( "timeformat" ) ) - { - QDomText t = node.ownerDocument().createTextNode( iDisplaySettings->timeFormat() ); - e.replaceChild( t, e.firstChild() ); - } - else if ( tagName == QString( "screensaver" ) ) - { - QString s = QString( "%1" ).arg( iDisplaySettings->screensaver() ); - QDomText t = node.ownerDocument().createTextNode( s ); - e.replaceChild( t, e.firstChild() ); + } // end of for + } // end of schedule + else if (tagName == QString("dateformat")) { + QDomText t = node.ownerDocument().createTextNode( + iDisplaySettings->dateFormat()); + e.replaceChild(t, e.firstChild()); + } else if (tagName == QString("timeformat")) { + QDomText t = node.ownerDocument().createTextNode( + iDisplaySettings->timeFormat()); + e.replaceChild(t, e.firstChild()); + } else if (tagName == QString("screensaver")) { + QString s = QString("%1").arg(iDisplaySettings->screensaver()); + QDomText t = node.ownerDocument().createTextNode(s); + e.replaceChild(t, e.firstChild()); } } } -void Configuration::saveDateTimeSettings( const QDomNode &aXML ) -{ - for ( QDomNode node = aXML.firstChild(); !node.isNull(); node = node.nextSibling() ) - { +void Configuration::saveDateTimeSettings(const QDomNode &aXML) { + for (QDomNode node = aXML.firstChild(); !node.isNull(); node + = node.nextSibling()) { QDomElement e = node.toElement(); QString tagName = e.tagName().toLower(); - if ( tagName == QString( "dayofweek" ) ) - { - QDomText t = node.ownerDocument().createTextNode( iDateTimeSettings->switchDay() ); - e.replaceChild( t, e.firstChild() ); - } - else if( tagName == QString( "StandardTimeChangeMoment" ) ) - { - QDomText t = node.ownerDocument().createTextNode( iDateTimeSettings->STDDateTime().toString("ddMMyyyyhhmmss")); - e.replaceChild( t, e.firstChild() ); - } - else if( tagName == QString( "DaylightSaveTimeChangeMoment" ) ) - { - QDomText t = node.ownerDocument().createTextNode( iDateTimeSettings->DSTDateTime().toString("ddMMyyyyhhmmss")); - e.replaceChild( t, e.firstChild() ); + if (tagName == QString("dayofweek")) { + QDomText t = node.ownerDocument().createTextNode( + iDateTimeSettings->switchDay()); + e.replaceChild(t, e.firstChild()); + } else if (tagName == QString("StandardTimeChangeMoment")) { + QDomText t = + node.ownerDocument().createTextNode( + iDateTimeSettings->STDDateTime().toString( + "ddMMyyyyhhmmss")); + e.replaceChild(t, e.firstChild()); + } else if (tagName == QString("DaylightSaveTimeChangeMoment")) { + QDomText t = + node.ownerDocument().createTextNode( + iDateTimeSettings->DSTDateTime().toString( + "ddMMyyyyhhmmss")); + e.replaceChild(t, e.firstChild()); } } } -void Configuration::saveAdminPassword( const QDomNode &aXML ) -{ +void Configuration::saveAdminPassword(const QDomNode &aXML) { QDomElement e = aXML.toElement(); - e.setAttribute( "password", QString( adminPassword() ) ); + e.setAttribute("password", QString(adminPassword())); } - -Configuration* Configuration::readFromXML( const QString &aPath ) -{ +void Configuration::readFromXML(const QString &aPath) { QDomDocument doc; - QFile file( aPath ); + QFile file(aPath); - if ( !file.open( QIODevice::ReadOnly ) ) - { - return 0; + if (!file.open(QIODevice::ReadOnly)) { + return; } - if ( !doc.setContent( &file ) ) - { + if (!doc.setContent(&file)) { file.close(); - return 0; + return; } file.close(); QDomElement root = doc.documentElement(); // check if the file is the one we need - if ( root.tagName().toLower() != QString( "configuration" ) ) - { - return 0; + if (root.tagName().toLower() != QString("configuration")) { + return; } - Configuration* conf = new Configuration(); + iAdminPassword = /*Configuration::*/readAdminPassword(root); - conf->iAdminPassword = Configuration::readAdminPassword( root ); - - for ( QDomNode node = root.firstChild(); !node.isNull(); node = node.nextSibling() ) - { + for (QDomNode node = root.firstChild(); !node.isNull(); node + = node.nextSibling()) { QDomElement e = node.toElement(); QString tagName = e.tagName().toLower(); - if ( tagName == QString( "connection" ) ) - { - conf->iConnectionSettings = Configuration::readConnectionSettings( node ); - } - else if ( tagName == QString( "rooms" ) ) - { - conf->iRooms = Configuration::readRooms( node ); - } - else if ( tagName == QString( "language" ) ) - { - conf->iLanguageCode = Configuration::readLanguageCode( node ); - } - else if ( tagName == QString( "startup" ) ) - { - conf->iStartupSettings = Configuration::readStartupSettings( node ); - } - else if ( tagName == QString( "display" ) ) - { - conf->iDisplaySettings = Configuration::readDisplaySettings( node ); - } - else if ( tagName == QString( "daylight_saving_time" ) ) - { - conf->iDateTimeSettings = Configuration::readDateTimeSettings(node); + if (tagName == QString("connection")) { + iConnectionSettings = readConnectionSettings(node); + } else if (tagName == QString("rooms")) { + iRooms = readRooms(node); + } else if (tagName == QString("language")) { + iLanguageCode = readLanguageCode(node); + } else if (tagName == QString("startup")) { + iStartupSettings = readStartupSettings(node); + } else if (tagName == QString("display")) { + iDisplaySettings = readDisplaySettings(node); + } else if (tagName == QString("daylight_saving_time")) { + iDateTimeSettings = readDateTimeSettings(node); + } else if (tagName == QString("privacy")) { + readPrivacySettings(node); } } - - return conf; } -ConnectionSettings* Configuration::readConnectionSettings( const QDomNode &aXML ) -{ +ConnectionSettings* Configuration::readConnectionSettings(const QDomNode &aXML) { QString server, username, password; unsigned int interval = Configuration::sDefaultInterval; - for ( QDomNode node = aXML.firstChild(); !node.isNull(); node = node.nextSibling() ) - { + for (QDomNode node = aXML.firstChild(); !node.isNull(); node + = node.nextSibling()) { QDomElement e = node.toElement(); QString tagName = e.tagName().toLower(); - if ( tagName == QString( "serverurl" ) ) - { + if (tagName == QString("serverurl")) { server = e.text(); - } - else if ( tagName == QString( "username" ) ) - { + } else if (tagName == QString("username")) { username = e.text(); - } - else if ( tagName == QString( "password" ) ) - { + } else if (tagName == QString("password")) { password = e.text(); - } - else if ( tagName == QString( "refreshinterval" ) ) - { + } else if (tagName == QString("refreshinterval")) { bool success = false; - unsigned int intervalTMP = e.text().toUInt( &success ); - if ( success ) - { + unsigned int intervalTMP = e.text().toUInt(&success); + if (success) { interval = intervalTMP; } } } - return new ConnectionSettings( server, username, password, interval ); + return new ConnectionSettings(server, username, password, interval); } -QList Configuration::readRooms( const QDomNode &aXML ) -{ +QList Configuration::readRooms(const QDomNode &aXML) { QList rooms; - for ( QDomNode node = aXML.firstChild(); !node.isNull(); node = node.nextSibling() ) - { + for (QDomNode node = aXML.firstChild(); !node.isNull(); node + = node.nextSibling()) { QDomElement e = node.toElement(); QString tagName = e.tagName().toLower(); - if ( tagName == QString( "room" ) ) - { + if (tagName == QString("room")) { QString name, address; - for ( QDomNode roomNode = node.firstChild(); !roomNode.isNull(); roomNode = roomNode.nextSibling() ) - { + for (QDomNode roomNode = node.firstChild(); !roomNode.isNull(); roomNode + = roomNode.nextSibling()) { QDomElement roomElem = roomNode.toElement(); tagName = roomElem.tagName().toLower(); - if ( tagName == QString( "name" ) ) - { + if (tagName == QString("name")) { name = roomElem.text(); - } - else if ( tagName == QString( "address" ) ) - { + } else if (tagName == QString("address")) { address = roomElem.text(); } } - Room* room = new Room( name, address ); - QString defaultAttr = e.attribute( "default" ).toLower(); - if ( defaultAttr == QString( "true" ) ) - { - rooms.insert( 0, room ); - } - else - { - rooms.append( room ); + Room* room = new Room(name, address); + QString defaultAttr = e.attribute("default").toLower(); + if (defaultAttr == QString("true")) { + rooms.insert(0, room); + } else { + rooms.append(room); } } } @@ -485,217 +446,240 @@ QList Configuration::readRooms( const QDomNode &aXML ) return rooms; } -QString Configuration::readLanguageCode( const QDomNode &aXML ) -{ +QString Configuration::readLanguageCode(const QDomNode &aXML) { QDomElement e = aXML.toElement(); QString tagName = e.tagName().toLower(); - if ( e.hasAttribute( "code" ) ) - { - return e.attribute( "code" ); - } - else - { + if (e.hasAttribute("code")) { + return e.attribute("code"); + } else { // default language is English return "EN"; } } -StartupSettings * Configuration::readStartupSettings( const QDomNode &aXML ) -{ +StartupSettings * Configuration::readStartupSettings(const QDomNode &aXML) { QDomElement e = aXML.toElement(); bool isPowersavingEnabled = false; QTime turnOnAt, turnOffAt; - for ( QDomNode node = aXML.firstChild(); !node.isNull(); node = node.nextSibling() ) - { + for (QDomNode node = aXML.firstChild(); !node.isNull(); node + = node.nextSibling()) { e = node.toElement(); QString tagName = e.tagName().toLower(); - if ( tagName == QString( "powersaving" ) ) - { - if ( e.hasAttribute( "enabled" ) && - e.attribute( "enabled" ) == QString( "true" ) ) - { + if (tagName == QString("powersaving")) { + if (e.hasAttribute("enabled") && e.attribute("enabled") == QString( + "true")) { isPowersavingEnabled = true; } - if ( e.hasAttribute( "on" ) ) - { - QString on = e.attribute( "on" ); - turnOnAt = QTime::fromString( on, "hh:mm" ); + if (e.hasAttribute("on")) { + QString on = e.attribute("on"); + turnOnAt = QTime::fromString(on, "hh:mm"); } - if ( e.hasAttribute( "off" ) ) - { - QString off = e.attribute( "off" ); - turnOffAt = QTime::fromString( off, "hh:mm" ); + if (e.hasAttribute("off")) { + QString off = e.attribute("off"); + turnOffAt = QTime::fromString(off, "hh:mm"); } } } - return new StartupSettings( isPowersavingEnabled, turnOnAt, turnOffAt ); + return new StartupSettings(isPowersavingEnabled, turnOnAt, turnOffAt); } -DisplaySettings * Configuration::readDisplaySettings( const QDomNode &aXML ) -{ - DisplaySettings::DaysInSchedule daysInSchedule = DisplaySettings::WeekdaysInSchedule; +DisplaySettings * Configuration::readDisplaySettings(const QDomNode &aXML) { + DisplaySettings::DaysInSchedule daysInSchedule = + DisplaySettings::WeekdaysInSchedule; QTime dayStartsAt, dayEndsAt; DisplaySettings::DateFormat dateformat = DisplaySettings::ShortDateFormat; - DisplaySettings::TimeFormat timeformat = DisplaySettings::TwentyFourHoursTimeFormat; - int screensaver = 1; //! Default value for screensaver wait time + DisplaySettings::TimeFormat timeformat = + DisplaySettings::TwentyFourHoursTimeFormat; + int screensaver = 1; //! Default value for screensaver wait time - for ( QDomNode node = aXML.firstChild(); !node.isNull(); node = node.nextSibling() ) - { + for (QDomNode node = aXML.firstChild(); !node.isNull(); node + = node.nextSibling()) { QDomElement e = node.toElement(); QString tagName = e.tagName().toLower(); - if ( tagName == QString( "schedule" ) ) - { - for ( QDomNode scheduleNode = node.firstChild(); !scheduleNode.isNull(); scheduleNode = scheduleNode.nextSibling() ) - { + if (tagName == QString("schedule")) { + for (QDomNode scheduleNode = node.firstChild(); !scheduleNode.isNull(); scheduleNode + = scheduleNode.nextSibling()) { QDomElement scheduleElem = scheduleNode.toElement(); tagName = scheduleElem.tagName().toLower(); - if ( tagName == QString( "week" ) ) - { - if ( scheduleElem.hasAttribute( "days" ) ) - { + if (tagName == QString("week")) { + if (scheduleElem.hasAttribute("days")) { // default value is 5, only other supported possibility is 7 bool success = false; - unsigned int days = scheduleElem.attribute( "days" ).toUInt( &success ); - daysInSchedule = ( success && days == 7 ) ? DisplaySettings::WholeWeekInSchedule : DisplaySettings::WeekdaysInSchedule; + unsigned int days = + scheduleElem.attribute("days").toUInt(&success); + daysInSchedule + = (success && days == 7) ? DisplaySettings::WholeWeekInSchedule + : DisplaySettings::WeekdaysInSchedule; } - } - else if ( tagName == QString( "day" ) ) - { - if ( scheduleElem.hasAttribute( "startsat" ) ) - { - QString time = scheduleElem.attribute( "startsat" ); - dayStartsAt = QTime::fromString( time, "hh:mm" ); + } else if (tagName == QString("day")) { + if (scheduleElem.hasAttribute("startsat")) { + QString time = scheduleElem.attribute("startsat"); + dayStartsAt = QTime::fromString(time, "hh:mm"); } - if ( scheduleElem.hasAttribute( "endsat" ) ) - { - QString time = scheduleElem.attribute( "endsat" ); - dayEndsAt = QTime::fromString( time, "hh:mm" ); + if (scheduleElem.hasAttribute("endsat")) { + QString time = scheduleElem.attribute("endsat"); + dayEndsAt = QTime::fromString(time, "hh:mm"); } } - } // end of for - } // end of schedule - else if ( tagName == QString( "dateformat" ) ) - { + } // end of for + } // end of schedule + else if (tagName == QString("dateformat")) { //! Not able to display long format anyway at the moment /* - if ( e.text() == QObject::tr( "dddd d MMMM yyyy" ) ) - dateformat = DisplaySettings::LongDateFormat; - else - dateformat = DisplaySettings::ShortDateFormat; - */ + if ( e.text() == QObject::tr( "dddd d MMMM yyyy" ) ) + dateformat = DisplaySettings::LongDateFormat; + else + dateformat = DisplaySettings::ShortDateFormat; + */ dateformat = DisplaySettings::ShortDateFormat; - } - else if ( tagName == QString( "timeformat" ) ) - { + } else if (tagName == QString("timeformat")) { //! Not able to display "TwelveHoursTimeFormat" anyway at the moment /* - if ( e.text() == QObject::tr( "hh:mm ap" ) ) - timeformat = DisplaySettings::TwelveHoursTimeFormat; - else - timeformat = DisplaySettings::TwentyFourHoursTimeFormat; - */ + if ( e.text() == QObject::tr( "hh:mm ap" ) ) + timeformat = DisplaySettings::TwelveHoursTimeFormat; + else + timeformat = DisplaySettings::TwentyFourHoursTimeFormat; + */ timeformat = DisplaySettings::TwentyFourHoursTimeFormat; - } - else if ( tagName == QString( "screensaver" ) ) - { + } else if (tagName == QString("screensaver")) { bool success = false; - unsigned int screensaverTMP = e.text().toUInt( &success ); - if ( success ) - { + unsigned int screensaverTMP = e.text().toUInt(&success); + if (success) { screensaver = screensaverTMP; } } } - return new DisplaySettings( dateformat, timeformat, daysInSchedule, dayStartsAt, dayEndsAt, screensaver ); + return new DisplaySettings(dateformat, timeformat, daysInSchedule, + dayStartsAt, dayEndsAt, screensaver); } -DateTimeSettings * Configuration::readDateTimeSettings( const QDomNode &aXML ) -{ +DateTimeSettings * Configuration::readDateTimeSettings(const QDomNode &aXML) { // Set defaults.. - QDateTime standardTimeChangeMoment = QDateTime::fromString("05.10.2009 04:00:00", "dd'.'MM'.'yyyy' 'hh:mm:ss"); - QDateTime daylightSaveTimeChangeMoment = QDateTime::fromString("01.04.2010 03:00:00", "dd'.'MM'.'yyyy' 'hh:mm:ss"); + QDateTime standardTimeChangeMoment = QDateTime::fromString( + "05.10.2009 04:00:00", "dd'.'MM'.'yyyy' 'hh:mm:ss"); + QDateTime daylightSaveTimeChangeMoment = QDateTime::fromString( + "01.04.2010 03:00:00", "dd'.'MM'.'yyyy' 'hh:mm:ss"); DateTimeSettings::weekDay dayOfWeek = DateTimeSettings::Sunday; - - for ( QDomNode node = aXML.firstChild(); !node.isNull(); node = node.nextSibling() ) - { + + for (QDomNode node = aXML.firstChild(); !node.isNull(); node + = node.nextSibling()) { QDomElement e = node.toElement(); QString tagName = e.tagName().toLower(); - if ( tagName == QString( "dayofweek" ) ) - { - qDebug() << "Configuration::readDateTimeSettings: " +e.text(); - + if (tagName == QString("dayofweek")) { + qDebug() << "Configuration::readDateTimeSettings: " + e.text(); + bool success = false; - unsigned int weekDayTmp = e.text().toUInt( &success ); - if( success && weekDayTmp < 7 ) - { - dayOfWeek = (DateTimeSettings::weekDay)weekDayTmp; + unsigned int weekDayTmp = e.text().toUInt(&success); + if (success && weekDayTmp < 7) { + dayOfWeek = (DateTimeSettings::weekDay) weekDayTmp; } - } - else if( tagName == QString( "standardtimechangemoment" ) ) - { - standardTimeChangeMoment = QDateTime::fromString(e.text(), "dd'.'MM'.'yyyy' 'hh:mm:ss"); - qDebug() << "Configuration::readDateTimeSettings: " +standardTimeChangeMoment.toString("dd.MM.yyyy hh:mm:ss"); - } - else if( tagName == QString( "daylightsavetimechangemoment" ) ) - { - daylightSaveTimeChangeMoment = QDateTime::fromString(e.text(), "dd'.'MM'.'yyyy' 'hh:mm:ss"); - qDebug() << "Configuration::readDateTimeSettings: " +daylightSaveTimeChangeMoment.toString("dd.MM.yyyy hh:mm:ss"); + } else if (tagName == QString("standardtimechangemoment")) { + standardTimeChangeMoment = QDateTime::fromString(e.text(), + "dd'.'MM'.'yyyy' 'hh:mm:ss"); + qDebug() << "Configuration::readDateTimeSettings: " + + standardTimeChangeMoment.toString("dd.MM.yyyy hh:mm:ss"); + } else if (tagName == QString("daylightsavetimechangemoment")) { + daylightSaveTimeChangeMoment = QDateTime::fromString(e.text(), + "dd'.'MM'.'yyyy' 'hh:mm:ss"); + qDebug() << "Configuration::readDateTimeSettings: " + + daylightSaveTimeChangeMoment.toString( + "dd.MM.yyyy hh:mm:ss"); } } - - return new DateTimeSettings(standardTimeChangeMoment, daylightSaveTimeChangeMoment, dayOfWeek); + + return new DateTimeSettings(standardTimeChangeMoment, + daylightSaveTimeChangeMoment, dayOfWeek); } -QByteArray Configuration::readAdminPassword( const QDomNode &aXML ) -{ +QByteArray Configuration::readAdminPassword(const QDomNode &aXML) { QDomElement e = aXML.toElement(); QString tagName = e.tagName().toLower(); - if ( e.hasAttribute( "password" ) ) - { - QString pw = e.attribute( "password" ); + if (e.hasAttribute("password")) { + QString pw = e.attribute("password"); // Check if the password is default uncrypted "admin" - if ( pw == QString( "admin" ) ) - { + + int x = QString::compare(pw, "admin", Qt::CaseInsensitive); // x == 0 + + if (x == 0) { // uncrypted password needs to be encoded - QCryptographicHash *hash = new QCryptographicHash( QCryptographicHash::Md5 ); - hash->addData( pw.toUtf8() ); - pw = QString( hash->result() ); + QCryptographicHash *hash = new QCryptographicHash( + QCryptographicHash::Md5); + hash->addData(pw.toUtf8()); + pw = QString(hash->result()); delete hash; + return (pw.toAscii()).toHex(); } - return ( pw.toAscii() ).toHex(); - + + return (pw.toAscii()); + + } else { + return 0; + } +} + +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 { - return 0; + iShowConfidentialMeetingDetails = false; } } -void Configuration::setRooms( const QList aRooms ) -{ - iRooms = aRooms; +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"); } -QString Configuration::hashPassword( const QString aPassword ) -{ - QCryptographicHash *hash = new QCryptographicHash( QCryptographicHash::Md5 ); - hash->addData( aPassword.toUtf8() ); +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()); QByteArray password = hash->result(); delete hash; - return QString( password ); + return QString(password); }