clock/clockui/clockplugins/datetimesettingsplugin/src/datetimesettingsview.cpp
author hgs
Mon, 09 Aug 2010 18:30:52 +0530
changeset 57 bb2d3e476f29
parent 45 b6db4fd4947b
child 63 a3cb48f6c889
permissions -rw-r--r--
201031

/*
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description:
* Definition file for class DateTimeSettingsView.
*
*/

// System includes
#include <QTimer>
#include <QDateTime>
#include <HbExtendedLocale>
#include <cpitemdatahelper.h>

// User includes
#include "datetimesettingsview.h"
#include "clocksettingsview.h"
#include "timezoneclient.h"
#include "OstTraceDefinitions.h"
#ifdef OST_TRACE_COMPILER_IN_USE
#include "datetimesettingsviewTraces.h"
#endif


/*!
	\class DateTimeSettingsView

	This class launches the clock settings view from control panel.
 */

/*!
	Constructor.

	\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)
{
	OstTraceFunctionEntry0( DATETIMESETTINGSVIEW_DATETIMESETTINGSVIEW_ENTRY );
	// Construct the timezone client.
	mTimezoneClient = TimezoneClient::getInstance();
	connect(
			mTimezoneClient, SIGNAL(timechanged()),
			this, SLOT(updateDisplayTime()));

	// 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()));
	OstTraceFunctionExit0( DATETIMESETTINGSVIEW_DATETIMESETTINGSVIEW_EXIT );
}

/*!
	Destructor.
 */
DateTimeSettingsView::~DateTimeSettingsView()
{
	OstTraceFunctionEntry0( DUP1_DATETIMESETTINGSVIEW_DATETIMESETTINGSVIEW_ENTRY );
	if (mTickTimer) {
		mTickTimer->stop();
		delete mTickTimer;
		mTickTimer = 0;
	}
	
	if (!mTimezoneClient->isNull()) {
		mTimezoneClient->deleteInstance();
	}
	OstTraceFunctionExit0( DUP1_DATETIMESETTINGSVIEW_DATETIMESETTINGSVIEW_EXIT );
}

/*!
	Launches the clock settings view.
 */
void DateTimeSettingsView::onLaunchView()
{
	OstTraceFunctionEntry0( DATETIMESETTINGSVIEW_ONLAUNCHVIEW_ENTRY );
	ClockSettingsView *settingsView = new ClockSettingsView(this);
	settingsView->loadSettingsView();
	OstTraceFunctionExit0( DATETIMESETTINGSVIEW_ONLAUNCHVIEW_EXIT );
}

/*!
	Updates the second line i.e date & time.
 */
void DateTimeSettingsView::updateDisplayTime()
{
	OstTraceFunctionEntry0( DATETIMESETTINGSVIEW_UPDATEDISPLAYTIME_ENTRY );
	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);
	OstTraceFunctionExit0( DATETIMESETTINGSVIEW_UPDATEDISPLAYTIME_EXIT );
}

/*!
	createSettingView()
 */
CpBaseSettingView *DateTimeSettingsView::createSettingView() const
{
	OstTraceFunctionEntry0( DATETIMESETTINGSVIEW_CREATESETTINGVIEW_ENTRY );
	OstTraceFunctionExit0( DATETIMESETTINGSVIEW_CREATESETTINGVIEW_EXIT );
	return 0;
}

// End of file	--Don't remove this