Settings view fixed.
[qtmeetings] / src / Domain / Configuration / Configuration.cpp
index 40184fb..54648ca 100644 (file)
@@ -2,6 +2,7 @@
 #include "ConnectionSettings.h"
 #include "StartupSettings.h"
 #include "DisplaySettings.h"
+#include "DateTimeSettings.h"
 #include "Room.h"
 #include <QDomDocument>
 #include <QDomElement>
@@ -134,7 +135,7 @@ void Configuration::save()
                {
                        saveDisplaySettings( node );
                }
-               else if (tagName == QString( "datetime" ) )
+               else if (tagName == QString( "daylight_saving_time" ) )
                {
                        saveDateTimeSettings( node );
                }
@@ -158,17 +159,38 @@ void Configuration::saveConnectionSettings( const QDomNode &aXML )
                if ( tagName == QString( "serverurl" ) )
                {
                        QDomText t = node.ownerDocument().createTextNode( iConnectionSettings->serverUrl().toString() );
-                       e.replaceChild( t, e.firstChild() );
+                       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() );
-                       e.replaceChild( t, e.firstChild() );
+                       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() );
-                       e.replaceChild( t, e.firstChild() );
+                       if ( e.hasChildNodes() )
+                       {
+                               e.replaceChild( t, e.firstChild() );
+                       }
+                       else
+                       {
+                               e.appendChild( e.firstChild() );
+                       }
                }
                else if ( tagName == QString( "refreshinterval" ) )
                {
@@ -197,6 +219,7 @@ void Configuration::saveRooms( const QDomNode &aXML )
                node = next;
        }
 
+       node = aXML;
        QList<Room*>::iterator i;
        for ( i = iRooms.begin(); i != iRooms.end(); ++i )
        {
@@ -301,17 +324,17 @@ void Configuration::saveDateTimeSettings( const QDomNode &aXML )
 
                if ( tagName == QString( "dayofweek" ) )
                {
-                       QDomText t = node.ownerDocument().createTextNode( iDateTimeSettings->iDayOfWeek);
+                       QDomText t = node.ownerDocument().createTextNode( iDateTimeSettings->switchDay() );
                        e.replaceChild( t, e.firstChild() );
                }
                else if( tagName == QString( "StandardTimeChangeMoment" ) )
                {
-                       QDomText t = node.ownerDocument().createTextNode( iDateTimeSettings->iStandardTimeChangeMoment.toString("dd.MM.yyyy hh:mm:ss"));
+                       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->iDaylightSaveTimeChangeMoment.toString("dd.MM.yyyy hh:mm:ss"));
+                       QDomText t = node.ownerDocument().createTextNode( iDateTimeSettings->DSTDateTime().toString("ddMMyyyyhhmmss"));
                        e.replaceChild( t, e.firstChild() );
                }
        }
@@ -376,7 +399,7 @@ Configuration* Configuration::readFromXML( const QString &aPath )
                {
                        conf->iDisplaySettings = Configuration::readDisplaySettings( node );
                }
-               else if ( tagName == QString( "datetime" ) )
+               else if ( tagName == QString( "daylight_saving_time" ) )
                {
                        conf->iDateTimeSettings = Configuration::readDateTimeSettings(node);
                }
@@ -602,9 +625,10 @@ DisplaySettings * Configuration::readDisplaySettings( const QDomNode &aXML )
 
 DateTimeSettings * Configuration::readDateTimeSettings( const QDomNode &aXML )
 {
-       QDateTime standardTimeChangeMoment;
-       QDateTime daylightSaveTimeChangeMoment;
-       QString dayOfWeek;
+       // 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");
+       DateTimeSettings::weekDay dayOfWeek = DateTimeSettings::Sunday;
        
        for ( QDomNode node = aXML.firstChild(); !node.isNull(); node = node.nextSibling() )
        {
@@ -613,15 +637,24 @@ DateTimeSettings * Configuration::readDateTimeSettings( const QDomNode &aXML )
 
                if ( tagName == QString( "dayofweek" ) )
                {
-                       dayOfWeek = e.text();
+                       qDebug() << "Configuration::readDateTimeSettings: " +e.text();
+                       
+                       bool success = false;
+                       unsigned int weekDayTmp = e.text().toUInt( &success );
+                       if( success && weekDayTmp < 7 )
+                       {
+                               dayOfWeek = (DateTimeSettings::weekDay)weekDayTmp;
+                       }
                }
-               else if( tagName == QString( "StandardTimeChangeMoment" ) )
+               else if( tagName == QString( "standardtimechangemoment" ) )
                {
-                       standardTimeChangeMoment.fromString(e.text(), "dd.MM.yyyy hh:mm:ss");
+                       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" ) )
+               else if( tagName == QString( "daylightsavetimechangemoment" ) )
                {
-                       daylightSaveTimeChangeMoment.fromString(e.text(), "dd.MM.yyyy hh:mm:ss");
+                       daylightSaveTimeChangeMoment = QDateTime::fromString(e.text(), "dd'.'MM'.'yyyy' 'hh:mm:ss");
+                       qDebug() << "Configuration::readDateTimeSettings: " +daylightSaveTimeChangeMoment.toString("dd.MM.yyyy hh:mm:ss");
                }
        }