clock/clockui/clockplugins/datetimesettingsplugin/src/datetimesettingsview.cpp
changeset 45 b6db4fd4947b
parent 18 c198609911f9
child 57 bb2d3e476f29
--- a/clock/clockui/clockplugins/datetimesettingsplugin/src/datetimesettingsview.cpp	Mon May 03 12:30:32 2010 +0300
+++ b/clock/clockui/clockplugins/datetimesettingsplugin/src/datetimesettingsview.cpp	Mon Jun 28 15:22:02 2010 +0530
@@ -12,28 +12,108 @@
 * Contributors:
 *
 * Description:
-* Definition file for class ClockSettingsView.
+* Definition file for class DateTimeSettingsView.
 *
 */
 
+// System includes
+#include <QTimer>
+#include <QDateTime>
+#include <HbExtendedLocale>
+#include <cpitemdatahelper.h>
 
-#include <hbdataform.h>
+// User includes
 #include "datetimesettingsview.h"
 #include "clocksettingsview.h"
+#include "timezoneclient.h"
 
-DateTimeSettingsView::DateTimeSettingsView(QGraphicsItem *parent)
-:CpBaseSettingView(0, parent)
-{
-	HbDataForm *form = settingForm();
+/*!
+	\class DateTimeSettingsView
+
+	This class launches the clock settings view from control panel.
+ */
+
+/*!
+	Constructor.
 
-	if (form) {
-		form->setHeading(tr("Date & Time Settings"));
+	\param itemDataHelper CpItemDataHelper object.
+	\param text text to be displayed in first line.
+	\param description test to be displayed in second line.
+	\param icon to be displayed.
+	\param parent Parent of type HbDataFormModelItem
+ */
+DateTimeSettingsView::DateTimeSettingsView(
+		CpItemDataHelper &itemDataHelper, const QString &text,
+		const QString &description, const HbIcon &icon,
+		const HbDataFormModelItem *parent):
+		CpSettingFormEntryItemData(
+				itemDataHelper, text, description, icon, parent)
+{
+	// Construct the timezone client.
+	mTimezoneClient = TimezoneClient::getInstance();
+	connect(
+			mTimezoneClient, SIGNAL(timechanged()),
+			this, SLOT(updateDisplayTime()));
 
-		ClockSettingsView *settingsView = new ClockSettingsView(this);
-		settingsView->loadSettingsView();
-    }
+	// Start a timer. For updating the displayed time.
+	mTickTimer = new QTimer(this);
+	// Start the Timer for 1 minute.
+	mTickTimer->start(60000 - 1000 * QTime::currentTime().second());
+	connect(
+			mTickTimer, SIGNAL(timeout()),
+			this, SLOT(updateDisplayTime()));
 }
 
+/*!
+	Destructor.
+ */
 DateTimeSettingsView::~DateTimeSettingsView()
 {
+	if (mTickTimer) {
+		mTickTimer->stop();
+		delete mTickTimer;
+		mTickTimer = 0;
+	}
+	
+	if (!mTimezoneClient->isNull()) {
+		mTimezoneClient->deleteInstance();
+	}
 }
+
+/*!
+	Launches the clock settings view.
+ */
+void DateTimeSettingsView::onLaunchView()
+{
+	ClockSettingsView *settingsView = new ClockSettingsView(this);
+	settingsView->loadSettingsView();
+}
+
+/*!
+	Updates the second line i.e date & time.
+ */
+void DateTimeSettingsView::updateDisplayTime()
+{
+	HbExtendedLocale locale = HbExtendedLocale::system();
+	QString timeInfo = locale.format(
+			QTime::currentTime(), r_qtn_time_usual_with_zero);
+	QString dateinfo = locale.format(
+			QDate::currentDate(), r_qtn_date_usual_with_zero);
+	QString displayString;
+	displayString.append(timeInfo);
+	displayString.append(" ");
+	displayString.append(dateinfo);
+	setDescription(displayString);
+	// Start the Timer for 1 minute.
+	mTickTimer->start(60000);
+}
+
+/*!
+	createSettingView()
+ */
+CpBaseSettingView *DateTimeSettingsView::createSettingView() const
+{
+	return 0;
+}
+
+// End of file	--Don't remove this