clock/clockui/clockviews/src/clockworldview.cpp
author hgs
Mon, 20 Sep 2010 12:44:39 +0530
changeset 75 7ac58b2aae6f
parent 70 a5ed90760192
permissions -rw-r--r--
201037
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
* All rights reserved.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
*
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
* Initial Contributors:
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
*
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
* Contributors:
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
*
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
* Description:
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
* Definition file for class ClockWorldView.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
*
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
*/
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
// System includes
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
#include <QGraphicsItem>
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
#include <QStandardItem>
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
#include <QStandardItemModel>
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
#include <HbInstance>
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
#include <HbAbstractViewItem>
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
#include <HbMenu>
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
#include <HbAction>
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
#include <HbStyleLoader>
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    28
#include <HbListView>
75
hgs
parents: 70
diff changeset
    29
#include <HbParameterLengthLimiter>
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    30
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
// User includes
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
#include "clockworldview.h"
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
#include "clockdocloader.h"
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
#include "clockappcontrollerif.h"
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
#include "clockcommon.h"
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    36
#include "settingsutility.h"
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    37
#include "timezoneclient.h"
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    38
#include "clockcityselectionlist.h"
45
hgs
parents: 18
diff changeset
    39
#include "clockhomecityitem.h"
57
hgs
parents: 55
diff changeset
    40
#include "OstTraceDefinitions.h"
hgs
parents: 55
diff changeset
    41
#ifdef OST_TRACE_COMPILER_IN_USE
hgs
parents: 55
diff changeset
    42
#include "clockworldviewTraces.h"
hgs
parents: 55
diff changeset
    43
#endif
hgs
parents: 55
diff changeset
    44
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
/*!
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
	\class ClockWorldView
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    48
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
	The world clock view of the clock application.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    50
 */
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    51
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    52
/*!
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    53
	Constructor.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    54
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    55
	\param parent The parent of type QGraphicsWidget.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    56
 */
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    57
ClockWorldView::ClockWorldView(QGraphicsItem *parent)
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    58
:HbView(parent),
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    59
 mSelectedItem(-1)
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    60
{
57
hgs
parents: 55
diff changeset
    61
	OstTraceFunctionEntry0( CLOCKWORLDVIEW_CLOCKWORLDVIEW_ENTRY );
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    62
	// Timer for updating list data upon time change/update.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    63
	mRefreshTimer = new QTimer();
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    64
	connect(
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    65
			mRefreshTimer, SIGNAL(timeout()),
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    66
			this, SLOT(refreshCityList()));
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    67
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    68
	// Create the model.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    69
	mCityListModel = new QStandardItemModel();
57
hgs
parents: 55
diff changeset
    70
	OstTraceFunctionExit0( CLOCKWORLDVIEW_CLOCKWORLDVIEW_EXIT );
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    71
}
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    72
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    73
/*!
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    74
	Destructor.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    75
 */
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    76
ClockWorldView::~ClockWorldView()
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    77
{
57
hgs
parents: 55
diff changeset
    78
	OstTraceFunctionEntry0( DUP1_CLOCKWORLDVIEW_CLOCKWORLDVIEW_ENTRY );
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    79
	if (mDocLoader) {
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    80
		delete mDocLoader;
45
hgs
parents: 18
diff changeset
    81
		mDocLoader = 0;
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    82
	}
45
hgs
parents: 18
diff changeset
    83
	if(mCityListModel){
hgs
parents: 18
diff changeset
    84
		delete mCityListModel;
hgs
parents: 18
diff changeset
    85
	}
hgs
parents: 18
diff changeset
    86
	
hgs
parents: 18
diff changeset
    87
	HbStyleLoader::unregisterFilePath(":/style/hblistviewitem.css");
hgs
parents: 18
diff changeset
    88
	HbStyleLoader::unregisterFilePath(":/style/hblistviewitem.widgetml");
hgs
parents: 18
diff changeset
    89
	HbStyleLoader::unregisterFilePath(":/style/hblistviewitem_color.css");
57
hgs
parents: 55
diff changeset
    90
	OstTraceFunctionExit0( DUP1_CLOCKWORLDVIEW_CLOCKWORLDVIEW_EXIT );
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    91
}
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    92
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    93
/*!
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    94
	Called by the ClockViewManager after loading the view from the docml.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    95
	The initializaion/setup of the view is done here.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    96
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    97
	\param controller The ClockAppController object.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    98
	\param docLoader Pointer to ClockDocLoader object.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    99
 */
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   100
void ClockWorldView::setupView(
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   101
		ClockAppControllerIf &controllerIf,
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   102
		ClockDocLoader *docLoader)
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   103
{
57
hgs
parents: 55
diff changeset
   104
	OstTraceFunctionEntry0( CLOCKWORLDVIEW_SETUPVIEW_ENTRY );
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   105
	mDocLoader = docLoader;
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   106
	mAppControllerIf = &controllerIf;
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   107
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   108
	mTimezoneClient = controllerIf.timezoneClient();
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   109
	mSettingsUtility = controllerIf.settingsUtility();
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   110
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   111
	// Establish required connections.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   112
	connect(
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   113
			mTimezoneClient, SIGNAL(timechanged()),
45
hgs
parents: 18
diff changeset
   114
			this, SLOT(updateAllLocationInfo()));
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   115
	connect(
45
hgs
parents: 18
diff changeset
   116
			mTimezoneClient, SIGNAL(autoTimeUpdateChanged(int)),
hgs
parents: 18
diff changeset
   117
			this, SLOT(updateCurrentLocationInfo(int)));
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   118
	connect(
45
hgs
parents: 18
diff changeset
   119
			mTimezoneClient, SIGNAL(cityUpdated()),
hgs
parents: 18
diff changeset
   120
			this, SLOT(updateAllLocationInfo()));
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   121
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   122
	mDisplayWorldClockView = static_cast<HbAction *> (
45
hgs
parents: 18
diff changeset
   123
			mDocLoader->findObject("worldClockAction"));
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   124
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   125
	mDisplayWorldClockView->setCheckable(true);
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   126
	mDisplayWorldClockView->setChecked(true);
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   127
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   128
	connect(
45
hgs
parents: 18
diff changeset
   129
			mDisplayWorldClockView, SIGNAL(changed()),
hgs
parents: 18
diff changeset
   130
			this, SLOT(refreshWorldView()));
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   131
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   132
	// Get the currently added locations to the list.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   133
	mCityInfoList = mTimezoneClient->getSavedLocations();
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   134
45
hgs
parents: 18
diff changeset
   135
	// Get the homecity widget.
hgs
parents: 18
diff changeset
   136
	mHomeCityWidget = qobject_cast<ClockHomeCityItem *>(
hgs
parents: 18
diff changeset
   137
			mDocLoader->findWidget(CLOCK_WORLD_HOMECITY));
hgs
parents: 18
diff changeset
   138
	
hgs
parents: 18
diff changeset
   139
	// Get the city list item.
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   140
	mCityListView = qobject_cast<HbListView *> (
45
hgs
parents: 18
diff changeset
   141
			mDocLoader->findWidget(CLOCK_WORLD_CITYLIST));
hgs
parents: 18
diff changeset
   142
	HbStyleLoader::registerFilePath(":/style/hblistviewitem.css");
hgs
parents: 18
diff changeset
   143
	HbStyleLoader::registerFilePath(":/style/hblistviewitem.widgetml");
hgs
parents: 18
diff changeset
   144
	HbStyleLoader::registerFilePath(":/style/hblistviewitem_color.css");
55
hgs
parents: 45
diff changeset
   145
	mCityListView->setLayoutName("citylist");
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   146
	mCityListView->setModel(mCityListModel);
70
hgs
parents: 64
diff changeset
   147
	mCityListView->setItemPixmapCacheEnabled(true);
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   148
	// Get the toolbar/menu actions.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   149
	mAddCityAction = static_cast<HbAction *> (
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   150
			mDocLoader->findObject("addCityAction"));
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   151
	connect(
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   152
			mAddCityAction, SIGNAL(triggered()),
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   153
			this, SLOT(handleAddLocation()));
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   154
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   155
	mShowAlarmsViewAction = static_cast<HbAction *> (
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   156
			mDocLoader->findObject("alarmsAction"));
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   157
	connect(
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   158
			mShowAlarmsViewAction, SIGNAL(triggered()),
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   159
			this, SLOT(showAlarmsView()));
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   160
45
hgs
parents: 18
diff changeset
   161
	HbMainWindow *window = hbInstance->allMainWindows().first();
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   162
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   163
	connect(
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   164
			window, SIGNAL(orientationChanged(Qt::Orientation)),
45
hgs
parents: 18
diff changeset
   165
			this, SLOT(loadSection(Qt::Orientation)));
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   166
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   167
	if (mCityInfoList.count() > 0) {
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   168
		// There is atleast one city. Refresh needed.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   169
		// Calculate after how much time the refresh has to happen.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   170
		QTime currentTime = QDateTime::currentDateTime().time();
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   171
		int after = 60 - currentTime.second();
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   172
		mRefreshTimer->start(after * 1000);
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   173
	}
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   174
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   175
	connect(
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   176
			mCityListView,
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   177
			SIGNAL(longPressed(HbAbstractViewItem *, const QPointF &)),
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   178
			this,
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   179
			SLOT(handleItemLongPressed(HbAbstractViewItem *, const QPointF &)));
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   180
45
hgs
parents: 18
diff changeset
   181
	// Update current location info.
hgs
parents: 18
diff changeset
   182
	updateCurrentLocationInfo(mTimezoneClient->timeUpdateOn());
hgs
parents: 18
diff changeset
   183
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   184
	// Populate the list.
45
hgs
parents: 18
diff changeset
   185
	for (int index = 0; index < mCityInfoList.count(); index++) {
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   186
		addCityToList(mCityInfoList.at(index));
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   187
	}
45
hgs
parents: 18
diff changeset
   188
	
hgs
parents: 18
diff changeset
   189
	// Adding the "Add city" in options menu.
hgs
parents: 18
diff changeset
   190
	mAddCityMenuAction = new HbAction(
hgs
parents: 18
diff changeset
   191
			QString(hbTrId("txt_clock_opt_add_city")),this);
hgs
parents: 18
diff changeset
   192
	menu()->addAction(mAddCityMenuAction);
hgs
parents: 18
diff changeset
   193
	mAddCityMenuAction->setVisible(true);
hgs
parents: 18
diff changeset
   194
	connect(
hgs
parents: 18
diff changeset
   195
			mAddCityMenuAction, SIGNAL(triggered()),
hgs
parents: 18
diff changeset
   196
			this, SLOT(handleAddLocation()));
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   197
45
hgs
parents: 18
diff changeset
   198
	// Check for disabling of addCityAction in view toolbar.
hgs
parents: 18
diff changeset
   199
	if ((KMaximumCityListCount-1) == mCityInfoList.count()) {
hgs
parents: 18
diff changeset
   200
		mAddCityAction->setEnabled(false);
hgs
parents: 18
diff changeset
   201
		mAddCityMenuAction->setVisible(false);
hgs
parents: 18
diff changeset
   202
	}
57
hgs
parents: 55
diff changeset
   203
	OstTraceFunctionExit0( CLOCKWORLDVIEW_SETUPVIEW_EXIT );
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   204
}
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   205
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   206
/*!
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   207
	Refreshes the data in the city list.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   208
 */
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   209
void ClockWorldView::refreshCityList()
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   210
{
57
hgs
parents: 55
diff changeset
   211
	OstTraceFunctionEntry0( CLOCKWORLDVIEW_REFRESHCITYLIST_ENTRY );
45
hgs
parents: 18
diff changeset
   212
	updateCurrentLocationInfo(mTimezoneClient->timeUpdateOn());
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   213
	int cityInfoCount = mCityInfoList.count();
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   214
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   215
	if (cityInfoCount) {
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   216
		QStandardItem *item = 0;
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   217
		for (int infoIndex = 0; infoIndex < cityInfoCount; infoIndex++) {
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   218
			item = mCityListModel->item(infoIndex);
45
hgs
parents: 18
diff changeset
   219
			item->setData(
hgs
parents: 18
diff changeset
   220
					getCityListDisplayString(mCityInfoList.at(infoIndex)),
hgs
parents: 18
diff changeset
   221
					Qt::DisplayRole);
hgs
parents: 18
diff changeset
   222
			item->setData(
hgs
parents: 18
diff changeset
   223
					getCityListDecorationString(mCityInfoList.at(infoIndex)),
hgs
parents: 18
diff changeset
   224
					Qt::DecorationRole);
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   225
		}
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   226
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   227
		// Start the timer again for one minute.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   228
		QTimer::singleShot(60 * 1000, this, SLOT(refreshCityList()));
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   229
	}
57
hgs
parents: 55
diff changeset
   230
	OstTraceFunctionExit0( CLOCKWORLDVIEW_REFRESHCITYLIST_EXIT );
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   231
}
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   232
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   233
/*!
45
hgs
parents: 18
diff changeset
   234
	Updates the current location info.
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   235
 */
45
hgs
parents: 18
diff changeset
   236
void ClockWorldView::updateCurrentLocationInfo(int networkTime)
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   237
{
57
hgs
parents: 55
diff changeset
   238
	OstTraceFunctionEntry0( CLOCKWORLDVIEW_UPDATECURRENTLOCATIONINFO_ENTRY );
45
hgs
parents: 18
diff changeset
   239
	HbMainWindow *window = hbInstance->allMainWindows().first();
hgs
parents: 18
diff changeset
   240
	Qt::Orientation currentOrienation = window->orientation();
hgs
parents: 18
diff changeset
   241
	loadSection(currentOrienation);
hgs
parents: 18
diff changeset
   242
hgs
parents: 18
diff changeset
   243
	if (!networkTime) {
hgs
parents: 18
diff changeset
   244
		// Get the updated home city.
hgs
parents: 18
diff changeset
   245
		LocationInfo homeCity = mTimezoneClient->getCurrentZoneInfoL();
hgs
parents: 18
diff changeset
   246
hgs
parents: 18
diff changeset
   247
		QMap<QString, QVariant> itemList;
hgs
parents: 18
diff changeset
   248
		QString value;
hgs
parents: 18
diff changeset
   249
		QDateTime dateTime = QDateTime::currentDateTime();
hgs
parents: 18
diff changeset
   250
55
hgs
parents: 45
diff changeset
   251
		// Show the date.
45
hgs
parents: 18
diff changeset
   252
		QString dateInfo = dateTime.toString(
hgs
parents: 18
diff changeset
   253
				mSettingsUtility->dateFormatString());
hgs
parents: 18
diff changeset
   254
		itemList.insert(value.setNum(ClockHomeCityItem::Date), dateInfo);
hgs
parents: 18
diff changeset
   255
hgs
parents: 18
diff changeset
   256
		// Show the city and country name.
hgs
parents: 18
diff changeset
   257
		QString placeInfo =
hgs
parents: 18
diff changeset
   258
				homeCity.cityName + tr(", ") + homeCity.countryName;
hgs
parents: 18
diff changeset
   259
		itemList.insert(value.setNum(ClockHomeCityItem::City), placeInfo);
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   260
45
hgs
parents: 18
diff changeset
   261
		// Show the time at that location.
hgs
parents: 18
diff changeset
   262
		QString timeInfo = dateTime.toString(
hgs
parents: 18
diff changeset
   263
				mSettingsUtility->timeFormatString());
hgs
parents: 18
diff changeset
   264
		itemList.insert(value.setNum(ClockHomeCityItem::Time), timeInfo);
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   265
45
hgs
parents: 18
diff changeset
   266
		//Use the home city specific icons.
hgs
parents: 18
diff changeset
   267
		// Display day/night indicators.
hgs
parents: 18
diff changeset
   268
		QString dayNightIconPath = "";
hgs
parents: 18
diff changeset
   269
		if (isDay(dateTime)) {
hgs
parents: 18
diff changeset
   270
			dayNightIconPath = "qtg_large_clock_home";
hgs
parents: 18
diff changeset
   271
		} else {
hgs
parents: 18
diff changeset
   272
			dayNightIconPath = "qtg_large_clock_night_home";
hgs
parents: 18
diff changeset
   273
		}
hgs
parents: 18
diff changeset
   274
		itemList.insert(value.setNum(
hgs
parents: 18
diff changeset
   275
				ClockHomeCityItem::DayNightIndicator), dayNightIconPath);
hgs
parents: 18
diff changeset
   276
hgs
parents: 18
diff changeset
   277
		// Show dst icon when needed.
55
hgs
parents: 45
diff changeset
   278
		QString dstIconPath = " ";
45
hgs
parents: 18
diff changeset
   279
		if (homeCity.dstOn) {
55
hgs
parents: 45
diff changeset
   280
			dstIconPath = "qtg_mono_day_light_saving_time";
45
hgs
parents: 18
diff changeset
   281
		}
55
hgs
parents: 45
diff changeset
   282
		itemList.insert(value.setNum(ClockHomeCityItem::Dst), dstIconPath);
hgs
parents: 45
diff changeset
   283
		
45
hgs
parents: 18
diff changeset
   284
		mHomeCityWidget->setHomeCityItemData(itemList);
hgs
parents: 18
diff changeset
   285
	}
57
hgs
parents: 55
diff changeset
   286
	OstTraceFunctionExit0( CLOCKWORLDVIEW_UPDATECURRENTLOCATIONINFO_EXIT );
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   287
}
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   288
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   289
/*!
45
hgs
parents: 18
diff changeset
   290
	Handles the long press on each item in the citylist.
hgs
parents: 18
diff changeset
   291
	Displays a list item specific context menu.
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   292
45
hgs
parents: 18
diff changeset
   293
	\param item The HbAbstractViewItem that was long pressed.
hgs
parents: 18
diff changeset
   294
	\param coords The position where mouse was pressed.
hgs
parents: 18
diff changeset
   295
 */
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   296
void ClockWorldView::handleItemLongPressed(
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   297
		HbAbstractViewItem *item, const QPointF &coords)
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   298
{
57
hgs
parents: 55
diff changeset
   299
	OstTraceFunctionEntry0( CLOCKWORLDVIEW_HANDLEITEMLONGPRESSED_ENTRY );
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   300
	// Get the ndex of the selected item.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   301
	mSelectedItem = item->modelIndex().row();
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   302
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   303
	// On long press we display item specific context menu.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   304
	HbMenu *itemContextMenu = new HbMenu();
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   305
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   306
	// Add the actions to the context menu.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   307
	mSetCurrentLocationAction = itemContextMenu->addAction(
45
hgs
parents: 18
diff changeset
   308
			hbTrId("txt_clk_menu_set_as_current_location"));
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   309
	mRemoveCityAction = itemContextMenu->addAction(
45
hgs
parents: 18
diff changeset
   310
			hbTrId("txt_clk_menu_delete"));
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   311
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   312
	// Show the menu.
45
hgs
parents: 18
diff changeset
   313
	itemContextMenu->open(this, SLOT(selectedMenuAction(HbAction*)));
hgs
parents: 18
diff changeset
   314
	itemContextMenu->setPreferredPos(coords);
hgs
parents: 18
diff changeset
   315
	itemContextMenu->setAttribute( Qt::WA_DeleteOnClose,true);
57
hgs
parents: 55
diff changeset
   316
	OstTraceFunctionExit0( CLOCKWORLDVIEW_HANDLEITEMLONGPRESSED_EXIT );
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   317
}
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   318
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   319
/*!
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   320
	This slot is called when Add location action is triggered. It is responsible
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   321
	for launching the city selection list.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   322
 */
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   323
void ClockWorldView::handleAddLocation()
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   324
{
57
hgs
parents: 55
diff changeset
   325
	OstTraceFunctionEntry0( CLOCKWORLDVIEW_HANDLEADDLOCATION_ENTRY );
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   326
	// Construct the city selection list and show the same.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   327
	mCitySelectionList = new ClockCitySelectionList(mTimezoneClient, this);
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   328
	connect(
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   329
			mCitySelectionList, SIGNAL(citySelected(LocationInfo)),
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   330
			this, SLOT(handleCitySelected(LocationInfo)));
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   331
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   332
	// Show the city list.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   333
	mCitySelectionList->showCityList();
57
hgs
parents: 55
diff changeset
   334
	OstTraceFunctionExit0( CLOCKWORLDVIEW_HANDLEADDLOCATION_EXIT );
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   335
}
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   336
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   337
/*!
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   338
	This slot handles delete action on the city list. It removes the item from
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   339
	the view.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   340
 */
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   341
void ClockWorldView::handleDeleteAction()
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   342
{
57
hgs
parents: 55
diff changeset
   343
	OstTraceFunctionEntry0( CLOCKWORLDVIEW_HANDLEDELETEACTION_ENTRY );
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   344
	if (-1 != mSelectedItem) {
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   345
		QStandardItem *item = mCityListModel->takeItem(mSelectedItem);
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   346
		mCityListModel->removeRow(mSelectedItem);
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   347
		delete item;
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   348
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   349
		mCityInfoList.removeAt(mSelectedItem);
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   350
		mSelectedItem = -1;
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   351
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   352
		// Update the data file.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   353
		mTimezoneClient->saveLocations(mCityInfoList);
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   354
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   355
		if (mCityInfoList.count() <= 0) {
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   356
			// No need to refresh the list anymore.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   357
			mRefreshTimer->stop();
45
hgs
parents: 18
diff changeset
   358
		} else if (mCityInfoList.count() < (KMaximumCityListCount-1) &&
hgs
parents: 18
diff changeset
   359
				!mAddCityAction->isEnabled()) {
hgs
parents: 18
diff changeset
   360
			mAddCityAction->setEnabled(true);
hgs
parents: 18
diff changeset
   361
			mAddCityMenuAction->setVisible(true);
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   362
		}
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   363
	}
57
hgs
parents: 55
diff changeset
   364
	OstTraceFunctionExit0( CLOCKWORLDVIEW_HANDLEDELETEACTION_EXIT );
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   365
}
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   366
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   367
/*!
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   368
	This slot sets the selected city as the current location.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   369
 */
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   370
void ClockWorldView::handleSetAsCurrentLocationAction()
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   371
{
57
hgs
parents: 55
diff changeset
   372
	OstTraceFunctionEntry0( CLOCKWORLDVIEW_HANDLESETASCURRENTLOCATIONACTION_ENTRY );
45
hgs
parents: 18
diff changeset
   373
	// Get the info of the selected item.
hgs
parents: 18
diff changeset
   374
	LocationInfo newHomeCity = mCityInfoList[mSelectedItem];
hgs
parents: 18
diff changeset
   375
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   376
	// Check if time update is set to ON.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   377
	// If yes, reset it to OFF and change the home location.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   378
	if (mTimezoneClient->timeUpdateOn()) {
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   379
		mTimezoneClient->setTimeUpdateOn(false);
45
hgs
parents: 18
diff changeset
   380
hgs
parents: 18
diff changeset
   381
		QStandardItem *item = mCityListModel->takeItem(mSelectedItem);
hgs
parents: 18
diff changeset
   382
		mCityListModel->removeRow(mSelectedItem);
hgs
parents: 18
diff changeset
   383
		delete item;
hgs
parents: 18
diff changeset
   384
hgs
parents: 18
diff changeset
   385
		mCityInfoList.removeAt(mSelectedItem);
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   386
	} else {
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   387
		// The current location and home city should be swapped.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   388
		// Store the info of current home city.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   389
		LocationInfo oldHomeCity = mTimezoneClient->getCurrentZoneInfoL();
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   390
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   391
		// Update the info list.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   392
		mCityInfoList.removeAt(mSelectedItem);
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   393
		mCityInfoList.insert(mSelectedItem, oldHomeCity);
45
hgs
parents: 18
diff changeset
   394
hgs
parents: 18
diff changeset
   395
	}
hgs
parents: 18
diff changeset
   396
	// Update the home city with the timezone server.
hgs
parents: 18
diff changeset
   397
	mTimezoneClient->setAsCurrentLocationL(newHomeCity);
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   398
45
hgs
parents: 18
diff changeset
   399
	// Update the current location info.
hgs
parents: 18
diff changeset
   400
	updateCurrentLocationInfo(mTimezoneClient->timeUpdateOn());
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   401
45
hgs
parents: 18
diff changeset
   402
	// Update the offset difference in each list item.
hgs
parents: 18
diff changeset
   403
	refreshCityList();
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   404
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   405
	// Update the data file.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   406
	mTimezoneClient->saveLocations(mCityInfoList);
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   407
	mSelectedItem = -1;
57
hgs
parents: 55
diff changeset
   408
	OstTraceFunctionExit0( CLOCKWORLDVIEW_HANDLESETASCURRENTLOCATIONACTION_EXIT );
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   409
}
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   410
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   411
/*!
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   412
	Slot to handle the case when a city has been selected in from the city
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   413
	selection list.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   414
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   415
	\param info of type LocationInfo which contains the city selected.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   416
 */
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   417
void ClockWorldView::handleCitySelected(LocationInfo info)
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   418
{
57
hgs
parents: 55
diff changeset
   419
	OstTraceFunctionEntry0( CLOCKWORLDVIEW_HANDLECITYSELECTED_ENTRY );
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   420
	// Info is invalid if the timezoneId is set to -1. We don't do anything in
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   421
	// that case.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   422
	if (-1 != info.timezoneId) {
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   423
		// Now we check if the city is already added in the list.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   424
		bool proceed = true;
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   425
		for (int i = 0; i < mCityInfoList.count(); i++) {
45
hgs
parents: 18
diff changeset
   426
			if (info.timezoneId == mCityInfoList.at(i).timezoneId
hgs
parents: 18
diff changeset
   427
					&& (info.cityName == mCityInfoList.at(i).cityName)
hgs
parents: 18
diff changeset
   428
					&& (info.countryName == mCityInfoList.at(i).countryName) ) {
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   429
				proceed = false;
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   430
				break;
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   431
			}
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   432
		}
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   433
45
hgs
parents: 18
diff changeset
   434
		LocationInfo currentCity = mTimezoneClient->getCurrentZoneInfoL();
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   435
		// Check if the selected city is not the home city.
45
hgs
parents: 18
diff changeset
   436
		if (
hgs
parents: 18
diff changeset
   437
				(info.timezoneId == currentCity.timezoneId)
hgs
parents: 18
diff changeset
   438
				&& (info.cityName == currentCity.cityName)
hgs
parents: 18
diff changeset
   439
				&& (info.countryName == currentCity.countryName)) {
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   440
			proceed = false;
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   441
		}
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   442
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   443
		if (proceed) {
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   444
			// This is new city totally. So add it.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   445
			// Add the city information to the list
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   446
			mCityInfoList.append(info);
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   447
			QModelIndex index = addCityToList(info);
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   448
			mCityListView->scrollTo(index);
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   449
			mTimezoneClient->saveLocations(mCityInfoList);
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   450
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   451
			// Start the refresh timer if it was stopped previously.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   452
			if (!mRefreshTimer->isActive()) {
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   453
				// Calculate after how much time the refresh has to happen.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   454
				QTime currentTime = QDateTime::currentDateTime().time();
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   455
				int after = 60 - currentTime.second();
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   456
				mRefreshTimer->start(after * 1000);
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   457
			}
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   458
		}
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   459
	}
45
hgs
parents: 18
diff changeset
   460
	if ((KMaximumCityListCount-1) == mCityInfoList.count() &&
hgs
parents: 18
diff changeset
   461
			mAddCityAction->isEnabled()) {
hgs
parents: 18
diff changeset
   462
		mAddCityAction->setEnabled(false);
hgs
parents: 18
diff changeset
   463
		mAddCityMenuAction->setVisible(false);
hgs
parents: 18
diff changeset
   464
	}
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   465
	// Cleanup.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   466
	mCitySelectionList->deleteLater();
57
hgs
parents: 55
diff changeset
   467
	OstTraceFunctionExit0( CLOCKWORLDVIEW_HANDLECITYSELECTED_EXIT );
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   468
}
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   469
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   470
/*!
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   471
	Navigates to the clock alarms view.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   472
 */
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   473
void ClockWorldView::showAlarmsView()
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   474
{
57
hgs
parents: 55
diff changeset
   475
	OstTraceFunctionEntry0( CLOCKWORLDVIEW_SHOWALARMSVIEW_ENTRY );
45
hgs
parents: 18
diff changeset
   476
	mAppControllerIf->switchToView(MainView);
57
hgs
parents: 55
diff changeset
   477
	OstTraceFunctionExit0( CLOCKWORLDVIEW_SHOWALARMSVIEW_EXIT );
45
hgs
parents: 18
diff changeset
   478
}
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   479
45
hgs
parents: 18
diff changeset
   480
/*!
hgs
parents: 18
diff changeset
   481
	Slot which gets called when `World Clock' action is triggered from the view
hgs
parents: 18
diff changeset
   482
	toolbar. This is responsible for reloading the content of worldclock view.
hgs
parents: 18
diff changeset
   483
 */
hgs
parents: 18
diff changeset
   484
void ClockWorldView::refreshWorldView()
hgs
parents: 18
diff changeset
   485
{
57
hgs
parents: 55
diff changeset
   486
	OstTraceFunctionEntry0( CLOCKWORLDVIEW_REFRESHWORLDVIEW_ENTRY );
45
hgs
parents: 18
diff changeset
   487
	mDisplayWorldClockView->setChecked(true);
57
hgs
parents: 55
diff changeset
   488
	OstTraceFunctionExit0( CLOCKWORLDVIEW_REFRESHWORLDVIEW_EXIT );
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   489
}
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   490
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   491
/*!
45
hgs
parents: 18
diff changeset
   492
	Loads the appropriate section based on window orientaion.
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   493
 */
45
hgs
parents: 18
diff changeset
   494
void ClockWorldView::loadSection(Qt::Orientation orientation)
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   495
{
57
hgs
parents: 55
diff changeset
   496
	OstTraceFunctionEntry0( CLOCKWORLDVIEW_LOADSECTION_ENTRY );
45
hgs
parents: 18
diff changeset
   497
	bool networkTime = mTimezoneClient->timeUpdateOn();
hgs
parents: 18
diff changeset
   498
	bool loadSuccess;
hgs
parents: 18
diff changeset
   499
	if (Qt::Horizontal == orientation) {
hgs
parents: 18
diff changeset
   500
		if (networkTime) {
hgs
parents: 18
diff changeset
   501
			// Do not show home city.
hgs
parents: 18
diff changeset
   502
			mDocLoader->load(
hgs
parents: 18
diff changeset
   503
					CLOCK_WORLD_VIEW_DOCML,
hgs
parents: 18
diff changeset
   504
					CLOCK_WORLD_VIEW_LANDSCAPE_NOHOMECITY_SECTION,
hgs
parents: 18
diff changeset
   505
					&loadSuccess);
hgs
parents: 18
diff changeset
   506
			mHomeCityWidget->hide();
hgs
parents: 18
diff changeset
   507
		} else {
hgs
parents: 18
diff changeset
   508
			mDocLoader->load(
hgs
parents: 18
diff changeset
   509
					CLOCK_WORLD_VIEW_DOCML,
hgs
parents: 18
diff changeset
   510
					CLOCK_WORLD_VIEW_LANDSCAPE_HOMECITY_SECTION,
hgs
parents: 18
diff changeset
   511
					&loadSuccess);
hgs
parents: 18
diff changeset
   512
			mHomeCityWidget->show();
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   513
		}
45
hgs
parents: 18
diff changeset
   514
	} else if (Qt::Vertical == orientation) {
hgs
parents: 18
diff changeset
   515
		if (networkTime) {
hgs
parents: 18
diff changeset
   516
			// Do not show home city.
hgs
parents: 18
diff changeset
   517
			mDocLoader->load(
hgs
parents: 18
diff changeset
   518
					CLOCK_WORLD_VIEW_DOCML,
hgs
parents: 18
diff changeset
   519
					CLOCK_WORLD_VIEW_PORTRAIT_NOHOMECITY_SECTION,
hgs
parents: 18
diff changeset
   520
					&loadSuccess);
hgs
parents: 18
diff changeset
   521
			mHomeCityWidget->hide();
hgs
parents: 18
diff changeset
   522
		} else {
hgs
parents: 18
diff changeset
   523
			// Show home city.
hgs
parents: 18
diff changeset
   524
			mDocLoader->load(
hgs
parents: 18
diff changeset
   525
					CLOCK_WORLD_VIEW_DOCML,
hgs
parents: 18
diff changeset
   526
					CLOCK_WORLD_VIEW_PORTRAIT_HOMECITY_SECTION,
hgs
parents: 18
diff changeset
   527
					&loadSuccess);
hgs
parents: 18
diff changeset
   528
			mHomeCityWidget->show();
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   529
		}
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   530
	}
45
hgs
parents: 18
diff changeset
   531
	mCityListView->update();
57
hgs
parents: 55
diff changeset
   532
	OstTraceFunctionExit0( CLOCKWORLDVIEW_LOADSECTION_EXIT );
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   533
}
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   534
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   535
/*!
45
hgs
parents: 18
diff changeset
   536
	Slot which gets called for timeChanged signal of timezone client.
hgs
parents: 18
diff changeset
   537
	Refreshes both homecity & city list.
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   538
 */
45
hgs
parents: 18
diff changeset
   539
void ClockWorldView::updateAllLocationInfo()
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   540
{
57
hgs
parents: 55
diff changeset
   541
	OstTraceFunctionEntry0( CLOCKWORLDVIEW_UPDATEALLLOCATIONINFO_ENTRY );
45
hgs
parents: 18
diff changeset
   542
	updateCurrentLocationInfo(mTimezoneClient->timeUpdateOn());
hgs
parents: 18
diff changeset
   543
	updateCityList();
hgs
parents: 18
diff changeset
   544
	refreshCityList();
57
hgs
parents: 55
diff changeset
   545
	OstTraceFunctionExit0( CLOCKWORLDVIEW_UPDATEALLLOCATIONINFO_EXIT );
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   546
}
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   547
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   548
/*!
45
hgs
parents: 18
diff changeset
   549
	Slot to handle the selected context menu actions
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   550
 */
45
hgs
parents: 18
diff changeset
   551
void ClockWorldView::selectedMenuAction(HbAction *action)
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   552
{
57
hgs
parents: 55
diff changeset
   553
	OstTraceFunctionEntry0( CLOCKWORLDVIEW_SELECTEDMENUACTION_ENTRY );
45
hgs
parents: 18
diff changeset
   554
	if (action == mSetCurrentLocationAction) {
hgs
parents: 18
diff changeset
   555
		handleSetAsCurrentLocationAction();
hgs
parents: 18
diff changeset
   556
	} else if (action == mRemoveCityAction) {
hgs
parents: 18
diff changeset
   557
		handleDeleteAction();
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   558
	}
57
hgs
parents: 55
diff changeset
   559
	OstTraceFunctionExit0( CLOCKWORLDVIEW_SELECTEDMENUACTION_EXIT );
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   560
}
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   561
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   562
/*!
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   563
	Adds the location info to the city list.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   564
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   565
	\param locationInfo Details of the city to be added to the list.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   566
 */
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   567
QModelIndex ClockWorldView::addCityToList(const LocationInfo& locationInfo)
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   568
{
57
hgs
parents: 55
diff changeset
   569
	OstTraceFunctionEntry0( CLOCKWORLDVIEW_ADDCITYTOLIST_ENTRY );
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   570
	// Here we construct a model item and add it to the list model.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   571
	QStandardItem *modelItem = new QStandardItem();
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   572
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   573
	// Add the item to the model.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   574
	mCityListModel->appendRow(modelItem);
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   575
45
hgs
parents: 18
diff changeset
   576
	QModelIndex index = mCityListModel->indexFromItem(modelItem);
hgs
parents: 18
diff changeset
   577
	mCityListModel->setData(
hgs
parents: 18
diff changeset
   578
			index, getCityListDisplayString(locationInfo), Qt::DisplayRole);
hgs
parents: 18
diff changeset
   579
	mCityListModel->setData(
hgs
parents: 18
diff changeset
   580
			index, getCityListDecorationString(locationInfo),
hgs
parents: 18
diff changeset
   581
			Qt::DecorationRole);
hgs
parents: 18
diff changeset
   582
57
hgs
parents: 55
diff changeset
   583
	OstTraceFunctionExit0( CLOCKWORLDVIEW_ADDCITYTOLIST_EXIT );
45
hgs
parents: 18
diff changeset
   584
	return index;
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   585
}
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   586
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   587
/*!
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   588
	Checks if the given time is day or night.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   589
	6:00 AM and 6:00 PM is considered as day. Otherwise night.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   590
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   591
	\param dateTime Time for which check has to be performed.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   592
	\return bool True if it is day otherwise false.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   593
 */
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   594
bool ClockWorldView::isDay(QDateTime dateTime)
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   595
{
57
hgs
parents: 55
diff changeset
   596
	OstTraceFunctionEntry0( CLOCKWORLDVIEW_ISDAY_ENTRY );
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   597
	// It is day between 6:00 AM and 6:00 PM. Otherwise night.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   598
	if (17 < dateTime.time().hour() || 6 > dateTime.time().hour()) {
57
hgs
parents: 55
diff changeset
   599
		OstTraceFunctionExit0( CLOCKWORLDVIEW_ISDAY_EXIT );
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   600
		return false;
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   601
	}
57
hgs
parents: 55
diff changeset
   602
	OstTraceFunctionExit0( DUP1_CLOCKWORLDVIEW_ISDAY_EXIT );
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   603
	return true;
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   604
}
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   605
45
hgs
parents: 18
diff changeset
   606
/*!
hgs
parents: 18
diff changeset
   607
	Returns the QVariantList for citylist to be set for DisplayRole.
hgs
parents: 18
diff changeset
   608
	
hgs
parents: 18
diff changeset
   609
	/param locationInfo Details of the city to be added to the list.
hgs
parents: 18
diff changeset
   610
 */
hgs
parents: 18
diff changeset
   611
QVariantList ClockWorldView::getCityListDisplayString(
hgs
parents: 18
diff changeset
   612
		const LocationInfo& locationInfo)
hgs
parents: 18
diff changeset
   613
{
57
hgs
parents: 55
diff changeset
   614
	OstTraceFunctionEntry0( CLOCKWORLDVIEW_GETCITYLISTDISPLAYSTRING_ENTRY );
45
hgs
parents: 18
diff changeset
   615
	QVariantList displayString;
hgs
parents: 18
diff changeset
   616
	QDateTime dateTime = QDateTime::currentDateTime();
hgs
parents: 18
diff changeset
   617
	dateTime = dateTime.toUTC();
hgs
parents: 18
diff changeset
   618
	dateTime = dateTime.addSecs(locationInfo.zoneOffset * 60);
hgs
parents: 18
diff changeset
   619
hgs
parents: 18
diff changeset
   620
	// Show the date. If date is current date then show 'today'.
hgs
parents: 18
diff changeset
   621
	QString dateInfo = dateTime.toString(mSettingsUtility->dateFormatString());
hgs
parents: 18
diff changeset
   622
	if (dateTime.date() == QDate::currentDate()) {
hgs
parents: 18
diff changeset
   623
		dateInfo = hbTrId("txt_clock_main_view_dblist_daily_val_today");
hgs
parents: 18
diff changeset
   624
	}
hgs
parents: 18
diff changeset
   625
	displayString.append(dateInfo);
hgs
parents: 18
diff changeset
   626
hgs
parents: 18
diff changeset
   627
	// Show the city and country name.
hgs
parents: 18
diff changeset
   628
	QString placeInfo =
hgs
parents: 18
diff changeset
   629
			locationInfo.cityName + tr(", ") + locationInfo.countryName;
hgs
parents: 18
diff changeset
   630
	displayString.append(placeInfo);
hgs
parents: 18
diff changeset
   631
hgs
parents: 18
diff changeset
   632
	// Get the homecity information.
hgs
parents: 18
diff changeset
   633
	LocationInfo homeCityInfo = mTimezoneClient->getCurrentZoneInfoL();
hgs
parents: 18
diff changeset
   634
	// Find out if the city being added has an offset greater than or less than
hgs
parents: 18
diff changeset
   635
	// the homecity offset.
hgs
parents: 18
diff changeset
   636
	QString offsetDifference;
hgs
parents: 18
diff changeset
   637
	if (locationInfo.zoneOffset < homeCityInfo.zoneOffset) {
hgs
parents: 18
diff changeset
   638
		offsetDifference += "-";
hgs
parents: 18
diff changeset
   639
	} else if (locationInfo.zoneOffset > homeCityInfo.zoneOffset) {
hgs
parents: 18
diff changeset
   640
		offsetDifference += "+";
hgs
parents: 18
diff changeset
   641
	}
hgs
parents: 18
diff changeset
   642
	// Now get the hours and minutes.
hgs
parents: 18
diff changeset
   643
	int difference = qAbs(homeCityInfo.zoneOffset - locationInfo.zoneOffset);
hgs
parents: 18
diff changeset
   644
	int hours = difference / 60;
hgs
parents: 18
diff changeset
   645
	int minutes = difference % 60;
hgs
parents: 18
diff changeset
   646
	QString displayFormat("");
hgs
parents: 18
diff changeset
   647
	QString offsetString("");
hgs
parents: 18
diff changeset
   648
hgs
parents: 18
diff changeset
   649
	if ( hours && minutes ) {
hgs
parents: 18
diff changeset
   650
		if (hours == 1) {
hgs
parents: 18
diff changeset
   651
			displayFormat =
75
hgs
parents: 70
diff changeset
   652
					HbParameterLengthLimiter(hbTrId("txt_clock_dblist_daily_val_1_hr_2_mins"))
hgs
parents: 70
diff changeset
   653
					.arg(QString::number(hours)).arg(QString::number(minutes));
hgs
parents: 70
diff changeset
   654
			offsetDifference += displayFormat;
45
hgs
parents: 18
diff changeset
   655
		}
hgs
parents: 18
diff changeset
   656
		else {
hgs
parents: 18
diff changeset
   657
			displayFormat =
75
hgs
parents: 70
diff changeset
   658
					HbParameterLengthLimiter(hbTrId("txt_clock_dblist_daily_val_1_hrs_2_mins"))
hgs
parents: 70
diff changeset
   659
					.arg(QString::number(hours)).arg(QString::number(minutes));
hgs
parents: 70
diff changeset
   660
			offsetDifference += displayFormat;
45
hgs
parents: 18
diff changeset
   661
		}
hgs
parents: 18
diff changeset
   662
	}
hgs
parents: 18
diff changeset
   663
	else if ( hours ){
64
1881ad52dc45 201033_03
hgs
parents: 57
diff changeset
   664
		if(hours == 1) {
1881ad52dc45 201033_03
hgs
parents: 57
diff changeset
   665
			displayFormat = hbTrId("txt_clock_dblist_daily_val_ln_hr",hours);
1881ad52dc45 201033_03
hgs
parents: 57
diff changeset
   666
			offsetDifference += displayFormat;
45
hgs
parents: 18
diff changeset
   667
		}
hgs
parents: 18
diff changeset
   668
		else {
64
1881ad52dc45 201033_03
hgs
parents: 57
diff changeset
   669
			displayFormat = hbTrId("txt_clock_dblist_daily_val_ln_hr",hours);
1881ad52dc45 201033_03
hgs
parents: 57
diff changeset
   670
			offsetDifference += displayFormat;
45
hgs
parents: 18
diff changeset
   671
		}
hgs
parents: 18
diff changeset
   672
	}
hgs
parents: 18
diff changeset
   673
	else if (minutes){
64
1881ad52dc45 201033_03
hgs
parents: 57
diff changeset
   674
		displayFormat = hbTrId("txt_clock_dblist_daily_val_ln_mins",minutes);
1881ad52dc45 201033_03
hgs
parents: 57
diff changeset
   675
		offsetDifference += displayFormat;
45
hgs
parents: 18
diff changeset
   676
	} else {
64
1881ad52dc45 201033_03
hgs
parents: 57
diff changeset
   677
		displayFormat = hbTrId("txt_clock_dblist_daily_val_ln_hr",0);
1881ad52dc45 201033_03
hgs
parents: 57
diff changeset
   678
		offsetDifference += displayFormat;
45
hgs
parents: 18
diff changeset
   679
	}
hgs
parents: 18
diff changeset
   680
	displayString.append(offsetDifference);
hgs
parents: 18
diff changeset
   681
hgs
parents: 18
diff changeset
   682
	// Show the time at that location.
hgs
parents: 18
diff changeset
   683
	QString timeInfo = dateTime.toString(mSettingsUtility->timeFormatString());
hgs
parents: 18
diff changeset
   684
	displayString.append(timeInfo);
hgs
parents: 18
diff changeset
   685
57
hgs
parents: 55
diff changeset
   686
	OstTraceFunctionExit0( CLOCKWORLDVIEW_GETCITYLISTDISPLAYSTRING_EXIT );
45
hgs
parents: 18
diff changeset
   687
	return displayString;
hgs
parents: 18
diff changeset
   688
}
hgs
parents: 18
diff changeset
   689
hgs
parents: 18
diff changeset
   690
/*!
hgs
parents: 18
diff changeset
   691
	Returns the QVariantList for citylist to be set for DecorationRole.
hgs
parents: 18
diff changeset
   692
hgs
parents: 18
diff changeset
   693
	/param locationInfo Details of the city to be added to the list.
hgs
parents: 18
diff changeset
   694
 */
hgs
parents: 18
diff changeset
   695
QVariantList ClockWorldView::getCityListDecorationString(
hgs
parents: 18
diff changeset
   696
		const LocationInfo& locationInfo)
hgs
parents: 18
diff changeset
   697
{
57
hgs
parents: 55
diff changeset
   698
	OstTraceFunctionEntry0( CLOCKWORLDVIEW_GETCITYLISTDECORATIONSTRING_ENTRY );
45
hgs
parents: 18
diff changeset
   699
	QVariantList decorationString;
hgs
parents: 18
diff changeset
   700
	QDateTime dateTime = QDateTime::currentDateTime();
hgs
parents: 18
diff changeset
   701
	dateTime = dateTime.toUTC();
hgs
parents: 18
diff changeset
   702
	dateTime = dateTime.addSecs(locationInfo.zoneOffset * 60);
hgs
parents: 18
diff changeset
   703
hgs
parents: 18
diff changeset
   704
	// Display day/night indicators.
hgs
parents: 18
diff changeset
   705
	QString dayNightIconPath = "";
hgs
parents: 18
diff changeset
   706
	if (isDay(dateTime)) {
hgs
parents: 18
diff changeset
   707
		dayNightIconPath = "qtg_large_clock";
hgs
parents: 18
diff changeset
   708
	} else {
hgs
parents: 18
diff changeset
   709
		dayNightIconPath = "qtg_large_clock_night";
hgs
parents: 18
diff changeset
   710
	}
hgs
parents: 18
diff changeset
   711
	decorationString.append(HbIcon(dayNightIconPath));
hgs
parents: 18
diff changeset
   712
hgs
parents: 18
diff changeset
   713
	// Show dst icon when needed.
55
hgs
parents: 45
diff changeset
   714
	QString dstIconPath = "";
45
hgs
parents: 18
diff changeset
   715
	if (locationInfo.dstOn) {
55
hgs
parents: 45
diff changeset
   716
		dstIconPath = "qtg_mono_day_light_saving_time";
45
hgs
parents: 18
diff changeset
   717
	}
55
hgs
parents: 45
diff changeset
   718
	decorationString.append(HbIcon(dstIconPath));
hgs
parents: 45
diff changeset
   719
	
57
hgs
parents: 55
diff changeset
   720
	OstTraceFunctionExit0( CLOCKWORLDVIEW_GETCITYLISTDECORATIONSTRING_EXIT );
45
hgs
parents: 18
diff changeset
   721
	return decorationString;
hgs
parents: 18
diff changeset
   722
	
hgs
parents: 18
diff changeset
   723
}
hgs
parents: 18
diff changeset
   724
hgs
parents: 18
diff changeset
   725
/*!
hgs
parents: 18
diff changeset
   726
	Updates the city list according to the home city.
hgs
parents: 18
diff changeset
   727
 */
hgs
parents: 18
diff changeset
   728
void ClockWorldView::updateCityList()
hgs
parents: 18
diff changeset
   729
{
57
hgs
parents: 55
diff changeset
   730
	OstTraceFunctionEntry0( CLOCKWORLDVIEW_UPDATECITYLIST_ENTRY );
45
hgs
parents: 18
diff changeset
   731
	int cityInfoCount = mCityInfoList.count();
hgs
parents: 18
diff changeset
   732
hgs
parents: 18
diff changeset
   733
	if (cityInfoCount) {
hgs
parents: 18
diff changeset
   734
		bool deletion = false;
55
hgs
parents: 45
diff changeset
   735
		bool valueUpdated = false;
45
hgs
parents: 18
diff changeset
   736
		int index;
hgs
parents: 18
diff changeset
   737
		LocationInfo currentCity = mTimezoneClient->getCurrentZoneInfoL();
55
hgs
parents: 45
diff changeset
   738
		// Remove the new home city if it is already added to the list.
45
hgs
parents: 18
diff changeset
   739
		for (index = 0; index < cityInfoCount; index++) {
hgs
parents: 18
diff changeset
   740
			if (currentCity.timezoneId == mCityInfoList.at(index).timezoneId
hgs
parents: 18
diff changeset
   741
					&& (currentCity.cityName ==
hgs
parents: 18
diff changeset
   742
							mCityInfoList.at(index).cityName)
hgs
parents: 18
diff changeset
   743
					&& (currentCity.countryName ==
hgs
parents: 18
diff changeset
   744
							mCityInfoList.at(index).countryName) ) {
hgs
parents: 18
diff changeset
   745
				deletion = true;
hgs
parents: 18
diff changeset
   746
				break;
hgs
parents: 18
diff changeset
   747
			}
hgs
parents: 18
diff changeset
   748
		}
hgs
parents: 18
diff changeset
   749
		if (deletion) {
hgs
parents: 18
diff changeset
   750
			QStandardItem *item = mCityListModel->takeItem(index);
hgs
parents: 18
diff changeset
   751
			mCityListModel->removeRow(index);
hgs
parents: 18
diff changeset
   752
			delete item;
hgs
parents: 18
diff changeset
   753
hgs
parents: 18
diff changeset
   754
			mCityInfoList.removeAt(index);
hgs
parents: 18
diff changeset
   755
			index = -1;
hgs
parents: 18
diff changeset
   756
hgs
parents: 18
diff changeset
   757
			// Update the data file.
hgs
parents: 18
diff changeset
   758
			mTimezoneClient->saveLocations(mCityInfoList);
hgs
parents: 18
diff changeset
   759
hgs
parents: 18
diff changeset
   760
			if (mCityInfoList.count() <= 0) {
hgs
parents: 18
diff changeset
   761
				// No need to refresh the list anymore.
hgs
parents: 18
diff changeset
   762
				mRefreshTimer->stop();
hgs
parents: 18
diff changeset
   763
			} else if (mCityInfoList.count() < (KMaximumCityListCount-1) &&
hgs
parents: 18
diff changeset
   764
					!mAddCityAction->isEnabled()) {
hgs
parents: 18
diff changeset
   765
				mAddCityAction->setEnabled(true);
hgs
parents: 18
diff changeset
   766
				mAddCityMenuAction->setVisible(true);
hgs
parents: 18
diff changeset
   767
			}
hgs
parents: 18
diff changeset
   768
			
hgs
parents: 18
diff changeset
   769
		}
55
hgs
parents: 45
diff changeset
   770
		
hgs
parents: 45
diff changeset
   771
		for (int index = 0; index < cityInfoCount; ++index) {
hgs
parents: 45
diff changeset
   772
			int tzid = mCityInfoList[index].timezoneId;
hgs
parents: 45
diff changeset
   773
			bool dst = mTimezoneClient->isDSTOnL(tzid);
hgs
parents: 45
diff changeset
   774
			if (dst != mCityInfoList[index].dstOn) {
hgs
parents: 45
diff changeset
   775
				mCityInfoList[index].dstOn = dst;
hgs
parents: 45
diff changeset
   776
				valueUpdated = true;
hgs
parents: 45
diff changeset
   777
			}
hgs
parents: 45
diff changeset
   778
hgs
parents: 45
diff changeset
   779
		}
hgs
parents: 45
diff changeset
   780
		
hgs
parents: 45
diff changeset
   781
		if (valueUpdated) {
hgs
parents: 45
diff changeset
   782
			// Update the data file.
hgs
parents: 45
diff changeset
   783
			mTimezoneClient->saveLocations(mCityInfoList);
hgs
parents: 45
diff changeset
   784
        }
45
hgs
parents: 18
diff changeset
   785
	}
57
hgs
parents: 55
diff changeset
   786
	OstTraceFunctionExit0( CLOCKWORLDVIEW_UPDATECITYLIST_EXIT );
45
hgs
parents: 18
diff changeset
   787
}
hgs
parents: 18
diff changeset
   788
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   789
// End of file-- Don't delete.