<username>maemo</username>
<password>P@ssw0rd</password>-->
<serverurl>jklexch01.ixonos.com</serverurl>
- <username></username>
- <password></password>
+ <username>puontsi</username>
+ <password>Kirjaimia13On</password>
<!-- interval is interpreted in seconds -->
<refreshinterval>60</refreshinterval>
</connection>
<name>Hercules</name>
<address>meetingroom.hercules@ixonos.com</address>
</room>
- </rooms>
+ </rooms>
+
+ <datetime>
+ <dayofweek>sunday</dayofweek>
+ <StandardTimeChangeMoment>05102009040000</StandardTimeChangeMoment>
+ <DaylightSaveTimeChangeMoment>01042010030000</DaylightSaveTimeChangeMoment>
+ </datetime>
+
<!-- language code must be in ISO 3166-1 alpha-2 standard -->
<language code="EN" />
src/Domain/Configuration/ConnectionSettings.h \
src/Domain/Configuration/StartupSettings.h \
src/Domain/Configuration/DisplaySettings.h \
+ src/Domain/Configuration/DateTimeSettings.h \
src/Domain/Configuration/Configuration.h \
src/IO/Communication/MessagingUtils.h \
src/IO/Communication/Communication.h \
src/Domain/Configuration/ConnectionSettings.cpp \
src/Domain/Configuration/StartupSettings.cpp \
src/Domain/Configuration/DisplaySettings.cpp \
+ src/Domain/Configuration/DateTimeSettings.cpp \
src/Domain/Configuration/Configuration.cpp \
src/IO/Communication/MessagingUtils.cpp \
src/IO/Communication/Communication.cpp \
#include "ConnectionSettings.h"
#include "StartupSettings.h"
#include "DisplaySettings.h"
+#include "DateTimeSettings.h"
#include "Room.h"
#include <QDomDocument>
#include <QDomElement>
Configuration::Configuration() :
iConnectionSettings( 0 ),
iStartupSettings( 0 ),
- iDisplaySettings( 0 )
+ iDisplaySettings( 0 ),
+ iDateTimeSettings( 0 )
{
}
delete iConnectionSettings;
delete iStartupSettings;
delete iDisplaySettings;
+ delete iDateTimeSettings;
while ( !iRooms.isEmpty() )
{
delete iRooms.takeFirst();
return iDisplaySettings;
}
+DateTimeSettings * Configuration::dateTimeSettings()
+{
+ return iDateTimeSettings;
+}
+
Room* Configuration::defaultRoom()
{
// default room is stored as the first element of the list
{
saveDisplaySettings( node );
}
+ else if (tagName == QString( "datetime" ) )
+ {
+ saveDateTimeSettings( node );
+ }
}
//! Empty the file from previous content and write again with new one
}
}
+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->dayOfWeek());
+ e.replaceChild( t, e.firstChild() );
+ }
+ else if( tagName == QString( "StandardTimeChangeMoment" ) )
+ {
+ QDomText t = node.ownerDocument().createTextNode( iDateTimeSettings->standardTimeChange().toString("ddMMyyyyhhmmss"));
+ e.replaceChild( t, e.firstChild() );
+ }
+ else if( tagName == QString( "DaylightSaveTimeChangeMoment" ) )
+ {
+ QDomText t = node.ownerDocument().createTextNode( iDateTimeSettings->daylightSaveTimeChange().toString("ddMMyyyyhhmmss"));
+ e.replaceChild( t, e.firstChild() );
+ }
+ }
+}
+
void Configuration::saveAdminPassword( const QDomNode &aXML )
{
QDomElement e = aXML.toElement();
{
conf->iDisplaySettings = Configuration::readDisplaySettings( node );
}
+ else if ( tagName == QString( "datetime" ) )
+ {
+ conf->iDateTimeSettings = Configuration::readDateTimeSettings(node);
+ }
}
return conf;
return new DisplaySettings( dateformat, timeformat, daysInSchedule, dayStartsAt, dayEndsAt, screensaver );
}
+DateTimeSettings * Configuration::readDateTimeSettings( const QDomNode &aXML )
+{
+ QDateTime standardTimeChangeMoment;
+ QDateTime daylightSaveTimeChangeMoment;
+ QString dayOfWeek;
+
+ // Defaults
+ //standardTimeChangeMoment.fromString("05102009040000", "ddMMyyyyhhmmss");
+ //daylightSaveTimeChangeMoment.fromString("01042010030000", "ddMMyyyyhhmmss");
+ //dayOfWeek.append("sunday");
+
+ 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();
+ qDebug() << "Configuration::readDateTimeSettings: " +e.text();
+ }
+ else if( tagName == QString( "standardtimechangemoment" ) )
+ {
+ standardTimeChangeMoment = QDateTime::fromString(e.text(), "ddMMyyyyhhmmss");
+ qDebug() << "Configuration::readDateTimeSettings: " +standardTimeChangeMoment.toString("ddMMyyyyhhmmss");
+ }
+ else if( tagName == QString( "daylightsavetimechangemoment" ) )
+ {
+ daylightSaveTimeChangeMoment = QDateTime::fromString(e.text(), "ddMMyyyyhhmmss");
+ qDebug() << "Configuration::readDateTimeSettings: " +daylightSaveTimeChangeMoment.toString("ddMMyyyyhhmmss");
+ }
+ }
+
+ return new DateTimeSettings(standardTimeChangeMoment, daylightSaveTimeChangeMoment, dayOfWeek);
+}
+
QByteArray Configuration::readAdminPassword( const QDomNode &aXML )
{
QDomElement e = aXML.toElement();
class DisplaySettings;
class Room;
class QDomNode;
+class DateTimeSettings;
//! Domain class. Store application wide configuration values.
/*!
*/
class Configuration : public QObject
{
- Q_OBJECT
+Q_OBJECT
private:
//! Constructor.
* \return Pointer to DisplaySettings instance.
*/
DisplaySettings* displaySettings();
+ //! Gets date/time settings.
+ /*!
+ * Gets the date/time settings.
+ * \return Pointer to DateTimeSettings instance.
+ */
+ DateTimeSettings* dateTimeSettings();
//! Gets the administrator's password.
/*!
* Gets the administrator's password
* Sets room list.
* \param aRooms List of rooms
*/
- void setRooms( const QList<Room*> aRooms );
-
+ void setRooms(const QList<Room*> aRooms);
+
public slots:
//! Saves setting values to file.
* \param aPath path and name of configuration file
* \return Configuration object.
*/
- static Configuration* readFromXML( const QString &aPath );
+ static Configuration* readFromXML(const QString &aPath);
//! Static. Reads settings of connection from and XML node.
/*!
* Static. Reads settings of connection from an XML node.
* \param aXml QDomNode containing connection parameters.
* \return Pointer to ConnectionSettings object.
*/
- static ConnectionSettings* readConnectionSettings( const QDomNode &aXML );
+ static ConnectionSettings* readConnectionSettings(const QDomNode &aXML);
//! Static. Reads rooms from an XML node.
/*!
* Static. Reads rooms from an XML node.
* \param aXml QDomNode containing meeting room parameters
* \return List of meetingrooms.
*/
- static QList<Room*> readRooms( const QDomNode &aXML );
+ static QList<Room*> readRooms(const QDomNode &aXML);
//! Static. Reads language code from an XML node.
/*!
* Static. Reads rooms from an XML node.
* \param aXml QDomNode containing language code
* \return Language code.
*/
- static QString readLanguageCode( const QDomNode &aXML );
+ static QString readLanguageCode(const QDomNode &aXML);
//! Static. Reads settings of startup from an XML node.
/*!
* Static. Reads settings of startup from an XML node.
* \param aXml QDomNode containing startup parameters
* \return Pointer to the read StartupSettings object.
*/
- static StartupSettings* readStartupSettings( const QDomNode &aXML );
+ static StartupSettings* readStartupSettings(const QDomNode &aXML);
/*!
* Static function to load and store display settings from xml node.
* \param aXml QDomNode containing display parameters
* \return Pointer to the read DisplaySettings object.
*/
- static DisplaySettings* readDisplaySettings( const QDomNode &aXML );
+ static DisplaySettings* readDisplaySettings(const QDomNode &aXML);
+ //! Static. Reads the date/time settings from an XML node.
+ /*!
+ * Static. Reads the date/time settings from an XML node.
+ * \param aXml QDomNode containing the date/time settings
+ * \return The date/time settings.
+ */
+ static DateTimeSettings* readDateTimeSettings(const QDomNode &aXML);
+
//! Static. Reads adminstrator's password from an XML node.
/*!
* Static. Reads adminstrator's password from an XML node.
* \param aXml QDomNode containing admin password
* \return Admin password.
*/
- static QByteArray readAdminPassword( const QDomNode &aXML );
+ static QByteArray readAdminPassword(const QDomNode &aXML);
//! Saves connection data to the document.
/*!
* Reads data from iConnectionSettings and saves it to the aXML document.
* \param aXml QDomNode containing connection parameters.
*/
- void saveConnectionSettings( const QDomNode &aXML );
+ void saveConnectionSettings(const QDomNode &aXML);
//! Saves meeting rooms to the document.
/*!
* Reads data from iRooms list and saves it to the aXML document.
* \param aXml QDomNode containing meeting room parameters
*/
- void saveRooms( const QDomNode &aXML );
+ void saveRooms(const QDomNode &aXML);
//! Saves the language code.
/*!
* Reads data from iLanguageCode and saves it to the aXML document.
* \param aXml QDomNode containing language code
*/
- void saveLanguageCode( const QDomNode &aXML );
+ void saveLanguageCode(const QDomNode &aXML);
//! Saves startup setting data to the document.
/*!
* Reads data from iStartupSettings and saves it to the aXML document.
* \param aXml QDomNode containing startup parameters
*/
- void saveStartupSettings( const QDomNode &aXML );
+ void saveStartupSettings(const QDomNode &aXML);
//! Saves display setting data to the document.
/*!
* Reads data from iDisplaySettings and saves it to the aXML document.
* \param aXml QDomNode containing display parameters
*/
- void saveDisplaySettings( const QDomNode &aXML );
+ void saveDisplaySettings(const QDomNode &aXML);
+ //! Saves date/time setting data to the document.
+ /*!
+ * Reads data from iDateTimeSettings and saves it to the aXML document.
+ * \param aXml QDomNode containing the date/time settings
+ */
+ void saveDateTimeSettings(const QDomNode &aXML);
+
//! Saves admin password to the document.
/*!
* Reads data from iAdminPassword and saves it to the aXML document.
* \param aXml QDomNode containing admin password
*/
- void saveAdminPassword( const QDomNode &aXML );
+ void saveAdminPassword(const QDomNode &aXML);
//! Hash password with md5 method.
/*!
* \param aPassword password to be encoded
* \return Encoded password.
*/
- QString hashPassword( const QString aPassword );
+ QString hashPassword(const QString aPassword);
private:
//! Path and name of configuration file
StartupSettings *iStartupSettings;
//! Stores display settings.
DisplaySettings *iDisplaySettings;
+ //! Stores date/time settings.
+ DateTimeSettings *iDateTimeSettings;
//! List of meeting rooms.
QList<Room*> iRooms;
//! Stores administrator password.
--- /dev/null
+#include "DateTimeSettings.h"
+#include <QtDebug>
+
+DateTimeSettings::DateTimeSettings(const QDateTime &aStandardTimeChange, const QDateTime &aDaylightTimeChange, const QString aDayOfWeek)
+{
+ this->iDaylightSaveTimeChangeMoment = aDaylightTimeChange;
+ this->iStandardTimeChangeMoment = aStandardTimeChange;
+ this->iDayOfWeek = aDayOfWeek;
+}
+
+DateTimeSettings::DateTimeSettings(const DateTimeSettings &aOther)
+{
+ this->iDaylightSaveTimeChangeMoment = aOther.iDaylightSaveTimeChangeMoment;
+ this->iStandardTimeChangeMoment = aOther.iStandardTimeChangeMoment;
+ this->iDayOfWeek = aOther.iDayOfWeek;
+}
+
+DateTimeSettings::~DateTimeSettings()
+{
+
+}
+
+QDateTime DateTimeSettings::standardTimeChange()
+{
+ return (this->iStandardTimeChangeMoment);
+}
+
+QDateTime DateTimeSettings::daylightSaveTimeChange()
+{
+ return (this->iDaylightSaveTimeChangeMoment);
+}
+
+QString DateTimeSettings::standardTimeChange_Time()
+{
+ QTime time = this->iStandardTimeChangeMoment.time();
+
+ qDebug() << "DateTimeSettings::standardTimeChange_Time: "
+ +time.toString("hh:mm:ss");
+
+ return (time.toString("hh:mm:ss"));
+}
+
+QString DateTimeSettings::standardTimeChange_Month()
+{
+ QDate date = this->iStandardTimeChangeMoment.date();
+
+ qDebug() << "DateTimeSettings::standardTimeChange_Month: "
+ +date.toString("MM");
+
+ return (date.toString("M"));
+}
+
+QString DateTimeSettings::standardTimeChange_Day()
+{
+ QDate date = this->iStandardTimeChangeMoment.date();
+
+ qDebug() << "DateTimeSettings::standardTimeChange_Day: "
+ +date.toString("dd");
+
+ return (date.toString("d"));
+}
+
+QString DateTimeSettings::daylightSaveTimeChange_Time()
+{
+ QTime time = this->iDaylightSaveTimeChangeMoment.time();
+
+ qDebug() << "DateTimeSettings::daylightSaveTimeChange_Time: "
+ +time.toString("hh:mm:ss");
+
+ return (time.toString("hh:mm:ss"));
+}
+
+QString DateTimeSettings::daylightSaveTimeChange_Month()
+{
+ QDate date = this->iDaylightSaveTimeChangeMoment.date();
+
+ qDebug() << "DateTimeSettings::daylightSaveTimeChange_Month: "
+ +date.toString("MM");
+
+ return (date.toString("M"));
+}
+
+QString DateTimeSettings::daylightSaveTimeChange_Day()
+{
+ QDate date = this->iDaylightSaveTimeChangeMoment.date();
+
+ qDebug() << "DateTimeSettings::daylightSaveTimeChange_Day: "
+ +date.toString("dd");
+
+ return (date.toString("d"));
+}
+
+void DateTimeSettings::setDaylightSaveTimeChange(const QDateTime &aDaylightSaveTimeChange)
+{
+ this->iDaylightSaveTimeChangeMoment = aDaylightSaveTimeChange;
+ qDebug() << "DateTimeSettings::setDaylightSaveTimeChange: "
+ +this->iDaylightSaveTimeChangeMoment.toString("ddMMyyyyhhmmss");
+}
+
+void DateTimeSettings::setStandardTimeChange(const QDateTime &aStandardTimeChange)
+{
+ this->iStandardTimeChangeMoment = aStandardTimeChange;
+ qDebug() << "DateTimeSettings::setStandardTimeChange: "
+ +this->iStandardTimeChangeMoment.toString("ddMMyyyyhhmmss");
+}
+
+void DateTimeSettings::setDayOfWeek(const QString aDay)
+{
+ this->iDayOfWeek = aDay;
+ qDebug() << "DateTimeSettings::setDayOfWeek: "
+ +this->iDayOfWeek;
+}
+
+QString DateTimeSettings::dayOfWeek()
+{
+
+ qDebug() << "DateTimeSettings::dayOfWeek: " +this->iDayOfWeek;
+
+ return (this->iDayOfWeek);
+}
--- /dev/null
+#ifndef DATETIMESETTINGS_H_
+#define DATETIMESETTINGS_H_
+
+#include <QDateTime>
+#include <QString>
+
+class DateTimeSettings
+{
+public:
+
+ /*!
+ * Overloaded.
+ * \param aStandardTimeChange The date and time when the standard time is to be used. The year part and the milliseconds are omitted.
+ * \param aDaylightTimeChange The date and time when the daylight time is to be used. The year part and the milliseconds are omitted.
+ * \param aDayOfWeek The day of the week when the time is to be used.
+ */
+ DateTimeSettings(const QDateTime &aStandardTimeChange, const QDateTime &aDaylightTimeChange, const QString aDayOfWeek);
+
+ //! Copy constructor.
+ /*!
+ * Overloaded. Constructor to initialize a DateTimeSettings instance.
+ * \param aOther DateTimeSettings class to be copied.
+ */
+ DateTimeSettings(const DateTimeSettings &aOther);
+ //! Destructor
+ virtual ~DateTimeSettings();
+
+ /*!
+ *
+ */
+ QDateTime standardTimeChange();
+
+ /*!
+ *
+ */
+ QDateTime daylightSaveTimeChange();
+
+ /*!
+ *
+ */
+ QString standardTimeChange_Time();
+
+ /*!
+ *
+ */
+ QString standardTimeChange_Month();
+
+ /*!
+ *
+ */
+ QString standardTimeChange_Day();
+
+ /*!
+ *
+ */
+ QString daylightSaveTimeChange_Time();
+
+ /*!
+ *
+ */
+ QString daylightSaveTimeChange_Month();
+
+ /*!
+ *
+ */
+ QString daylightSaveTimeChange_Day();
+
+ /*!
+ *
+ */
+ void setDaylightSaveTimeChange(const QDateTime &aDaylightSaveTimeChange);
+
+ /*!
+ *
+ */
+ void setStandardTimeChange(const QDateTime &aStandardTimeChange);
+
+ /*!
+ *
+ */
+ void setDayOfWeek(const QString aDay);
+
+ /*!
+ *
+ */
+ QString dayOfWeek();
+
+private:
+ QDateTime iStandardTimeChangeMoment;
+ QDateTime iDaylightSaveTimeChangeMoment;
+ QString iDayOfWeek;
+};
+
+#endif /*DATETIMESETTINGS_H_*/
#include "MessagingUtils.h"
#include "Meeting.h"
#include "Configuration.h"
+#include "DateTimeSettings.h"
/*
* BaseMessage class functions
qDebug( "ReqMsgGetUserAvailability::setTimeZone - offset in minutes=%d", offsetMinutes );
#endif
- //TODO: timezone and daylight times to application configuration
+ DateTimeSettings *dateTimeSettings = Configuration::instance()->dateTimeSettings();
+
setNodeValue( QString( "Bias" ), QString::number( -offsetMinutes ), QDomNode::ElementNode, QString( "TimeZone" ) );
setNodeValue( QString( "Bias" ), QString::number( 0 ), QDomNode::ElementNode, QString( "StandardTime" ) );
- setNodeValue( QString( "Time" ), QString( "03:00:00" ), QDomNode::ElementNode, QString( "StandardTime" ) );
- setNodeValue( QString( "DayOrder" ), QString::number( 5 ), QDomNode::ElementNode, QString( "StandardTime" ) );
- setNodeValue( QString( "Month" ), QString::number( 10 ), QDomNode::ElementNode, QString( "StandardTime" ) );
- setNodeValue( QString( "DayOfWeek" ), QString( "Sunday" ), QDomNode::ElementNode, QString( "StandardTime" ) );
+ setNodeValue( QString( "Time" ), dateTimeSettings->standardTimeChange_Time(), QDomNode::ElementNode, QString( "StandardTime" ) );
+ setNodeValue( QString( "DayOrder" ), dateTimeSettings->standardTimeChange_Day(), QDomNode::ElementNode, QString( "StandardTime" ) );
+ setNodeValue( QString( "Month" ), dateTimeSettings->standardTimeChange_Month(), QDomNode::ElementNode, QString( "StandardTime" ) );
+ setNodeValue( QString( "DayOfWeek" ), dateTimeSettings->dayOfWeek(), QDomNode::ElementNode, QString( "StandardTime" ) );
setNodeValue( QString( "Bias" ), QString::number( -60 ), QDomNode::ElementNode, QString( "DaylightTime" ) );
- setNodeValue( QString( "Time" ), QString( "03:00:00" ), QDomNode::ElementNode, QString( "DaylightTime" ) );
- setNodeValue( QString( "DayOrder" ), QString::number( 1 ), QDomNode::ElementNode, QString( "DaylightTime" ) );
- setNodeValue( QString( "Month" ), QString::number( 4 ), QDomNode::ElementNode, QString( "DaylightTime" ) );
- setNodeValue( QString( "DayOfWeek" ), QString( "Sunday" ), QDomNode::ElementNode, QString( "DaylightTime" ) );
+ setNodeValue( QString( "Time" ), dateTimeSettings->daylightSaveTimeChange_Time(), QDomNode::ElementNode, QString( "DaylightTime" ) );
+ setNodeValue( QString( "DayOrder" ), dateTimeSettings->daylightSaveTimeChange_Day(), QDomNode::ElementNode, QString( "DaylightTime" ) );
+ setNodeValue( QString( "Month" ), dateTimeSettings->daylightSaveTimeChange_Month(), QDomNode::ElementNode, QString( "DaylightTime" ) );
+ setNodeValue( QString( "DayOfWeek" ), dateTimeSettings->dayOfWeek(), QDomNode::ElementNode, QString( "DaylightTime" ) );
#ifdef MU_DEBUG
qDebug( "ReqMsgGetUserAvailability::setTimeZone end : err=%d", err );