From: Simo Puonti Date: Thu, 28 May 2009 05:49:58 +0000 (+0300) Subject: Merge branch 'master' into master_merge X-Git-Url: https://vcs.maemo.org/git/?a=commitdiff_plain;h=d2f9c56c10ad3300b87ca1529beb96ae28c02c42;hp=bd153701307613c96e7bdf070cf32b0cbc6ae834;p=qtmeetings Merge branch 'master' into master_merge --- diff --git a/QtMeetings.conf b/QtMeetings.conf index 7066087..a7172e6 100644 --- a/QtMeetings.conf +++ b/QtMeetings.conf @@ -7,8 +7,8 @@ maemo P@ssw0rd--> jklexch01.ixonos.com - - + puontsi + Kirjaimia13On 60 @@ -49,7 +49,14 @@ Hercules
meetingroom.hercules@ixonos.com
- + + + + sunday + 05102009040000 + 01042010030000 + + diff --git a/QtMeetings.pro b/QtMeetings.pro index 121575b..b4c6c65 100644 --- a/QtMeetings.pro +++ b/QtMeetings.pro @@ -21,6 +21,7 @@ HEADERS += src/BusinessLogic/UIManager.h \ 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 \ @@ -55,6 +56,7 @@ SOURCES += src/BusinessLogic/UIManager.cpp \ 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 \ diff --git a/src/Domain/Configuration/Configuration.cpp b/src/Domain/Configuration/Configuration.cpp index 56a4472..f3c24d7 100644 --- a/src/Domain/Configuration/Configuration.cpp +++ b/src/Domain/Configuration/Configuration.cpp @@ -2,6 +2,7 @@ #include "ConnectionSettings.h" #include "StartupSettings.h" #include "DisplaySettings.h" +#include "DateTimeSettings.h" #include "Room.h" #include #include @@ -17,7 +18,8 @@ QString Configuration::sConfigurationPath = "/etc/QtMeetings.conf"; Configuration::Configuration() : iConnectionSettings( 0 ), iStartupSettings( 0 ), - iDisplaySettings( 0 ) + iDisplaySettings( 0 ), + iDateTimeSettings( 0 ) { } @@ -26,6 +28,7 @@ Configuration::~Configuration() delete iConnectionSettings; delete iStartupSettings; delete iDisplaySettings; + delete iDateTimeSettings; while ( !iRooms.isEmpty() ) { delete iRooms.takeFirst(); @@ -60,6 +63,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 +135,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 +293,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->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(); @@ -340,6 +377,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 +601,42 @@ 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; + + // 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(); diff --git a/src/Domain/Configuration/Configuration.h b/src/Domain/Configuration/Configuration.h index c08002d..5cd7e6d 100644 --- a/src/Domain/Configuration/Configuration.h +++ b/src/Domain/Configuration/Configuration.h @@ -11,6 +11,7 @@ class StartupSettings; class DisplaySettings; class Room; class QDomNode; +class DateTimeSettings; //! Domain class. Store application wide configuration values. /*! @@ -20,7 +21,7 @@ class QDomNode; */ class Configuration : public QObject { - Q_OBJECT +Q_OBJECT private: //! Constructor. @@ -76,6 +77,12 @@ public: * \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 @@ -87,8 +94,8 @@ public: * Sets room list. * \param aRooms List of rooms */ - void setRooms( const QList aRooms ); - + void setRooms(const QList aRooms); + public slots: //! Saves setting values to file. @@ -104,85 +111,100 @@ private: * \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 readRooms( const QDomNode &aXML ); + static QList 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. /*! @@ -190,7 +212,7 @@ private: * \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 @@ -205,6 +227,8 @@ private: StartupSettings *iStartupSettings; //! Stores display settings. DisplaySettings *iDisplaySettings; + //! Stores date/time settings. + DateTimeSettings *iDateTimeSettings; //! List of meeting rooms. QList iRooms; //! Stores administrator password. diff --git a/src/Domain/Configuration/DateTimeSettings.cpp b/src/Domain/Configuration/DateTimeSettings.cpp new file mode 100644 index 0000000..6cf5f1c --- /dev/null +++ b/src/Domain/Configuration/DateTimeSettings.cpp @@ -0,0 +1,120 @@ +#include "DateTimeSettings.h" +#include + +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); +} diff --git a/src/Domain/Configuration/DateTimeSettings.h b/src/Domain/Configuration/DateTimeSettings.h new file mode 100644 index 0000000..7de5bf6 --- /dev/null +++ b/src/Domain/Configuration/DateTimeSettings.h @@ -0,0 +1,94 @@ +#ifndef DATETIMESETTINGS_H_ +#define DATETIMESETTINGS_H_ + +#include +#include + +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_*/ diff --git a/src/IO/Communication/MessagingUtils.cpp b/src/IO/Communication/MessagingUtils.cpp index d12b73a..4387685 100644 --- a/src/IO/Communication/MessagingUtils.cpp +++ b/src/IO/Communication/MessagingUtils.cpp @@ -4,6 +4,7 @@ #include "MessagingUtils.h" #include "Meeting.h" #include "Configuration.h" +#include "DateTimeSettings.h" /* * BaseMessage class functions @@ -887,18 +888,19 @@ int ReqMsgGetUserAvailability::setTimeZone() 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 );