changes done by simo
[qtmeetings] / src / Domain / Configuration / Configuration.cpp
index 56a4472..40184fb 100644 (file)
@@ -17,7 +17,8 @@ QString Configuration::sConfigurationPath = "/etc/QtMeetings.conf";
 Configuration::Configuration() :
                iConnectionSettings( 0 ),
                iStartupSettings( 0 ),
-               iDisplaySettings( 0 )
+               iDisplaySettings( 0 ),
+               iDateTimeSettings( 0 )
 {
 }
 
@@ -26,6 +27,7 @@ Configuration::~Configuration()
        delete iConnectionSettings;
        delete iStartupSettings;
        delete iDisplaySettings;
+       delete iDateTimeSettings;
        while ( !iRooms.isEmpty() )
        {
                delete iRooms.takeFirst();
@@ -60,6 +62,11 @@ DisplaySettings * Configuration::displaySettings()
        return iDisplaySettings;
 }
 
+DateTimeSettings * Configuration::dateTimeSettings()
+{
+       return iDateTimeSettings;
+}
+
 Room* Configuration::defaultRoom()
 {
        // default room is stored as the first element of the list
@@ -127,6 +134,10 @@ void Configuration::save()
                {
                        saveDisplaySettings( node );
                }
+               else if (tagName == QString( "datetime" ) )
+               {
+                       saveDateTimeSettings( node );
+               }
        }
 
        //! Empty the file from previous content and write again with new one
@@ -281,6 +292,31 @@ void Configuration::saveDisplaySettings( const QDomNode &aXML )
        }
 }
 
+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->iDayOfWeek);
+                       e.replaceChild( t, e.firstChild() );
+               }
+               else if( tagName == QString( "StandardTimeChangeMoment" ) )
+               {
+                       QDomText t = node.ownerDocument().createTextNode( iDateTimeSettings->iStandardTimeChangeMoment.toString("dd.MM.yyyy hh:mm:ss"));
+                       e.replaceChild( t, e.firstChild() );
+               }
+               else if( tagName == QString( "DaylightSaveTimeChangeMoment" ) )
+               {
+                       QDomText t = node.ownerDocument().createTextNode( iDateTimeSettings->iDaylightSaveTimeChangeMoment.toString("dd.MM.yyyy hh:mm:ss"));
+                       e.replaceChild( t, e.firstChild() );
+               }
+       }
+}
+
 void Configuration::saveAdminPassword( const QDomNode &aXML )
 {
        QDomElement e = aXML.toElement();
@@ -340,6 +376,10 @@ Configuration* Configuration::readFromXML( const QString &aPath )
                {
                        conf->iDisplaySettings = Configuration::readDisplaySettings( node );
                }
+               else if ( tagName == QString( "datetime" ) )
+               {
+                       conf->iDateTimeSettings = Configuration::readDateTimeSettings(node);
+               }
        }
 
        return conf;
@@ -560,6 +600,34 @@ DisplaySettings * Configuration::readDisplaySettings( const QDomNode &aXML )
        return new DisplaySettings( dateformat, timeformat, daysInSchedule, dayStartsAt, dayEndsAt, screensaver );
 }
 
+DateTimeSettings * Configuration::readDateTimeSettings( const QDomNode &aXML )
+{
+       QDateTime standardTimeChangeMoment;
+       QDateTime daylightSaveTimeChangeMoment;
+       QString dayOfWeek;
+       
+       for ( QDomNode node = aXML.firstChild(); !node.isNull(); node = node.nextSibling() )
+       {
+               QDomElement e = node.toElement();
+               QString tagName = e.tagName().toLower();
+
+               if ( tagName == QString( "dayofweek" ) )
+               {
+                       dayOfWeek = e.text();
+               }
+               else if( tagName == QString( "StandardTimeChangeMoment" ) )
+               {
+                       standardTimeChangeMoment.fromString(e.text(), "dd.MM.yyyy hh:mm:ss");
+               }
+               else if( tagName == QString( "DaylightSaveTimeChangeMoment" ) )
+               {
+                       daylightSaveTimeChangeMoment.fromString(e.text(), "dd.MM.yyyy hh:mm:ss");
+               }
+       }
+       
+       return new DateTimeSettings(standardTimeChangeMoment, daylightSaveTimeChangeMoment, dayOfWeek);
+}
+
 QByteArray Configuration::readAdminPassword( const QDomNode &aXML )
 {
        QDomElement e = aXML.toElement();