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->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();
{
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;
+
+ 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();
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"
+
+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();
+ return (time.toString("hh:mm:ss"));
+}
+
+QString DateTimeSettings::standardTimeChange_Month()
+{
+ QDate date = this->iStandardTimeChangeMoment.date();
+ return (date.toString("MM"));
+}
+
+QString DateTimeSettings::standardTimeChange_Day()
+{
+ QDate date = this->iStandardTimeChangeMoment.date();
+ return (date.toString("dd"));
+}
+
+QString DateTimeSettings::daylightSaveTimeChange_Time()
+{
+ QTime time = this->iDaylightSaveTimeChangeMoment.time();
+ return (time.toString("hh:mm:ss"));
+}
+
+QString DateTimeSettings::daylightSaveTimeChange_Month()
+{
+ QDate date = this->iDaylightSaveTimeChangeMoment.date();
+ return (date.toString("MM"));
+}
+
+QString DateTimeSettings::daylightSaveTimeChange_Day()
+{
+ QDate date = this->iDaylightSaveTimeChangeMoment.date();
+ return (date.toString("dd"));
+}
+
+void DateTimeSettings::setDaylightSaveTimeChange(const QDateTime &aDaylightSaveTimeChange)
+{
+ this->iDaylightSaveTimeChangeMoment = aDaylightSaveTimeChange;
+}
+
+void DateTimeSettings::setStandardTimeChange(const QDateTime &aStandardTimeChange)
+{
+ this->iStandardTimeChangeMoment = aStandardTimeChange;
+}
+
+void DateTimeSettings::setDayOfWeek(const QString aDay)
+{
+ this->iDayOfWeek = aDay;
+}
+
+QString DateTimeSettings::dayOfWeek()
+{
+ 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_*/