calendarui/settings/src/calensettings.cpp
author hgs
Mon, 12 Jul 2010 02:32:28 +0530
changeset 51 0b38fc5b94c6
parent 45 b6db4fd4947b
child 70 a5ed90760192
permissions -rw-r--r--
201027
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
 *
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
#include <QModelIndex>
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
#include <hbdataform.h>
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
#include <hbdataformmodel.h>
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
#include <hbdataformmodelitem.h>
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
#include <hbdataformviewitem.h>
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
#include <hbabstractbutton.h>
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
#include <xqsettingsmanager.h>
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
#include <xqsettingskey.h>
45
hgs
parents: 23
diff changeset
    26
#include <HbExtendedLocale.h>
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    28
#include "calensettings.h"
45
hgs
parents: 23
diff changeset
    29
#include "calenservices.h"
hgs
parents: 23
diff changeset
    30
#include "calendarprivatecrkeys.h"
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
45
hgs
parents: 23
diff changeset
    32
// Constants
hgs
parents: 23
diff changeset
    33
const int KValueZero( 0 );
hgs
parents: 23
diff changeset
    34
const int KValueOne( 1 );
hgs
parents: 23
diff changeset
    35
hgs
parents: 23
diff changeset
    36
hgs
parents: 23
diff changeset
    37
CalenSettings::CalenSettings(MCalenServices& services, HbDataForm *form, QObject *parent)
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    38
:QObject(parent),
45
hgs
parents: 23
diff changeset
    39
 mServices(services),
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    40
 mSettingsForm(form),
45
hgs
parents: 23
diff changeset
    41
 mSettingsModel(NULL),
hgs
parents: 23
diff changeset
    42
 mAlarmSnoozeTimeItem(NULL),
hgs
parents: 23
diff changeset
    43
 mShowWeekNumberItem(NULL),		 
hgs
parents: 23
diff changeset
    44
 mShowRegionalInfoItem(NULL),
hgs
parents: 23
diff changeset
    45
 mShowWeekStartOnInfoItem(NULL),
hgs
parents: 23
diff changeset
    46
 mStartOfWeekItem(NULL),
hgs
parents: 23
diff changeset
    47
 mWeekNumberItemAdded(false),
hgs
parents: 23
diff changeset
    48
 mRegionalpluginActive(false)
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
{   
45
hgs
parents: 23
diff changeset
    50
	mSettingsManager = new XQSettingsManager(this);
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    51
	mAlarmSnoozeCenrepKey = new XQSettingsKey(
45
hgs
parents: 23
diff changeset
    52
			XQSettingsKey::TargetCentralRepository,
hgs
parents: 23
diff changeset
    53
			KCRUidCalendar, KCalendarSnoozeTime);
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    54
	mWeekNumberCenrepKey = new XQSettingsKey(
45
hgs
parents: 23
diff changeset
    55
			XQSettingsKey::TargetCentralRepository,
hgs
parents: 23
diff changeset
    56
			KCRUidCalendar, KCalendarShowWeekNum);
hgs
parents: 23
diff changeset
    57
	mShowRegionalInfoKey = new XQSettingsKey(
hgs
parents: 23
diff changeset
    58
			XQSettingsKey::TargetCentralRepository,
hgs
parents: 23
diff changeset
    59
			KCRUidCalendar, KCalendarShowRegionalInfo);
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    60
}
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    61
45
hgs
parents: 23
diff changeset
    62
/*!
hgs
parents: 23
diff changeset
    63
	Destructor
hgs
parents: 23
diff changeset
    64
 */
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    65
CalenSettings::~CalenSettings()
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    66
{
45
hgs
parents: 23
diff changeset
    67
	if (mSettingsManager) {
hgs
parents: 23
diff changeset
    68
		delete mSettingsManager;
hgs
parents: 23
diff changeset
    69
	}
hgs
parents: 23
diff changeset
    70
	// Delete the cenrep keys
hgs
parents: 23
diff changeset
    71
	delete mAlarmSnoozeCenrepKey;
hgs
parents: 23
diff changeset
    72
	delete mWeekNumberCenrepKey;
hgs
parents: 23
diff changeset
    73
	delete mShowRegionalInfoKey;
hgs
parents: 23
diff changeset
    74
	
hgs
parents: 23
diff changeset
    75
	if (mSettingsModel) {
hgs
parents: 23
diff changeset
    76
		delete mSettingsModel;		
hgs
parents: 23
diff changeset
    77
	}
hgs
parents: 23
diff changeset
    78
	if (mAlarmSnoozeTimeHash.count()) {
hgs
parents: 23
diff changeset
    79
		// Clear the contents
hgs
parents: 23
diff changeset
    80
		mAlarmSnoozeTimeHash.clear();
hgs
parents: 23
diff changeset
    81
	}
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    82
}
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    83
45
hgs
parents: 23
diff changeset
    84
/*!
hgs
parents: 23
diff changeset
    85
	Creates the settings model
hgs
parents: 23
diff changeset
    86
 */
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    87
void CalenSettings::createModel()
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    88
{
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    89
	// Remove the model.
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    90
	if (mSettingsForm->model()) {
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    91
		delete mSettingsForm->model();
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    92
		mSettingsForm->setModel(0);
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    93
		mSettingsModel = 0;
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    94
	}
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    95
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    96
	// Create a model and set it.
45
hgs
parents: 23
diff changeset
    97
	mSettingsModel = new HbDataFormModel(mSettingsForm);
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    98
	
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    99
	// Create the alarm snooze choices
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   100
	QStringList alarmSnoozeChoices;
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   101
	alarmSnoozeChoices << hbTrId(
45
hgs
parents: 23
diff changeset
   102
						"txt_calendar_setlabel_reminder_snooze_time_val_5_m")
hgs
parents: 23
diff changeset
   103
				<< hbTrId("txt_calendar_setlabel_reminder_snooze_time_val_10")
hgs
parents: 23
diff changeset
   104
				<< hbTrId("txt_calendar_setlabel_reminder_snooze_time_val_15")
hgs
parents: 23
diff changeset
   105
				<< hbTrId("txt_calendar_setlabel_reminder_snooze_time_val_30");
hgs
parents: 23
diff changeset
   106
	// Build the hash map for the alarm snooze time.
hgs
parents: 23
diff changeset
   107
	// The values are five, ten, fifteen and thirty minutes
hgs
parents: 23
diff changeset
   108
	mAlarmSnoozeTimeHash[0] = 5;
hgs
parents: 23
diff changeset
   109
	mAlarmSnoozeTimeHash[1] = 10;
hgs
parents: 23
diff changeset
   110
	mAlarmSnoozeTimeHash[2] = 15;
hgs
parents: 23
diff changeset
   111
	mAlarmSnoozeTimeHash[3] = 30;
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   112
	
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   113
	// Append Alarm Snooze Time Setting item
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   114
	mAlarmSnoozeTimeItem = new HbDataFormModelItem();
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   115
	mAlarmSnoozeTimeItem->setType(HbDataFormModelItem::ComboBoxItem);
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   116
	mAlarmSnoozeTimeItem->setData(HbDataFormModelItem::LabelRole, 
45
hgs
parents: 23
diff changeset
   117
					QString(hbTrId("txt_calendar_setlabel_reminder_snooze_time")));
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   118
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   119
	mAlarmSnoozeTimeItem->setContentWidgetData(QString("items"), 
45
hgs
parents: 23
diff changeset
   120
												alarmSnoozeChoices);
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   121
	mAlarmSnoozeTimeItem->setContentWidgetData(QString("currentIndex"), 0);
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   122
	mSettingsForm->addConnection(mAlarmSnoozeTimeItem, 
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   123
								SIGNAL(currentIndexChanged(int)),
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   124
								this, SLOT(handleAlarmSnoozeTimeChange(int)));
51
hgs
parents: 45
diff changeset
   125
	mAlarmSnoozeTimeItem->setContentWidgetData("objectName", "alarmSnoozeTime");
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   126
	mSettingsModel->appendDataFormItem(mAlarmSnoozeTimeItem);
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   127
	
45
hgs
parents: 23
diff changeset
   128
	// Create the weekday list based on start of week.
hgs
parents: 23
diff changeset
   129
	QStringList weekdaysList;
hgs
parents: 23
diff changeset
   130
	weekdaysList
hgs
parents: 23
diff changeset
   131
			<< hbTrId("txt_calendar_setlabel_week_starts_on_val_monday")
hgs
parents: 23
diff changeset
   132
			<< hbTrId("txt_calendar_setlabel_week_starts_on_val_tuesday")
hgs
parents: 23
diff changeset
   133
			<< hbTrId("txt_calendar_setlabel_week_starts_on_val_wednesday")
hgs
parents: 23
diff changeset
   134
			<< hbTrId("txt_calendar_setlabel_week_starts_on_val_thursday")
hgs
parents: 23
diff changeset
   135
			<< hbTrId("txt_calendar_setlabel_week_starts_on_val_friday")
hgs
parents: 23
diff changeset
   136
			<< hbTrId("txt_calendar_setlabel_week_starts_on_val_saturday")
hgs
parents: 23
diff changeset
   137
			<< hbTrId("txt_calendar_setlabel_week_starts_on_val_sunday");
hgs
parents: 23
diff changeset
   138
	// Start of week item.
hgs
parents: 23
diff changeset
   139
	mShowWeekStartOnInfoItem = mSettingsModel->appendDataFormItem(
hgs
parents: 23
diff changeset
   140
								HbDataFormModelItem::ComboBoxItem, 
hgs
parents: 23
diff changeset
   141
								hbTrId("txt_calendar_setlabel_week_starts_on"));
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   142
	
45
hgs
parents: 23
diff changeset
   143
	// Get start of week from the locale.
hgs
parents: 23
diff changeset
   144
    HbExtendedLocale locale = HbExtendedLocale::system();
hgs
parents: 23
diff changeset
   145
    mStartOfWeek = locale.startOfWeek();
hgs
parents: 23
diff changeset
   146
	mShowWeekStartOnInfoItem->setContentWidgetData("items", weekdaysList);
51
hgs
parents: 45
diff changeset
   147
	mShowWeekStartOnInfoItem->setContentWidgetData(
hgs
parents: 45
diff changeset
   148
			"currentIndex", mStartOfWeek);
hgs
parents: 45
diff changeset
   149
	mShowWeekStartOnInfoItem->setContentWidgetData("objectName", "startOfWeek");
45
hgs
parents: 23
diff changeset
   150
	mSettingsForm->addConnection(mShowWeekStartOnInfoItem, 
hgs
parents: 23
diff changeset
   151
									SIGNAL(currentIndexChanged(int)),
hgs
parents: 23
diff changeset
   152
									this, SLOT(setStartDayOfWeek(int)));
hgs
parents: 23
diff changeset
   153
	// Add the show week number item in the model
hgs
parents: 23
diff changeset
   154
	addWeekNumberItem();
hgs
parents: 23
diff changeset
   155
hgs
parents: 23
diff changeset
   156
	if (isPluginEnabled()) {
hgs
parents: 23
diff changeset
   157
		addRegionalInfoItem();
hgs
parents: 23
diff changeset
   158
	}
hgs
parents: 23
diff changeset
   159
}
hgs
parents: 23
diff changeset
   160
hgs
parents: 23
diff changeset
   161
/*!
hgs
parents: 23
diff changeset
   162
	Adds the regional info item to the model
hgs
parents: 23
diff changeset
   163
 */
hgs
parents: 23
diff changeset
   164
void CalenSettings::addRegionalInfoItem()
hgs
parents: 23
diff changeset
   165
{
hgs
parents: 23
diff changeset
   166
	mRegionalpluginActive = true;
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
   167
	mShowRegionalInfoItem = new HbDataFormModelItem();
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
   168
	mShowRegionalInfoItem->setType(HbDataFormModelItem::ToggleValueItem);
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
   169
	mShowRegionalInfoItem->setData(HbDataFormModelItem::LabelRole, 
45
hgs
parents: 23
diff changeset
   170
				QString(hbTrId("txt_calendar_setlabel_show_lunar_calendar")));
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
   171
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
   172
	// For HbPushButton type properties -- to be used for toggle value item
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
   173
	mShowRegionalInfoItem->setContentWidgetData(QString("text"), 
45
hgs
parents: 23
diff changeset
   174
								QString(hbTrId("txt_calendar_button_no")));
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
   175
	mShowRegionalInfoItem->setContentWidgetData(QString("additionalText"), 
45
hgs
parents: 23
diff changeset
   176
								QString(hbTrId("txt_calendar_button_yes")));
51
hgs
parents: 45
diff changeset
   177
	mShowRegionalInfoItem->setContentWidgetData(
hgs
parents: 45
diff changeset
   178
			"objectName", "showRegionalInfo");
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
   179
	mSettingsForm->addConnection(mShowRegionalInfoItem, SIGNAL(clicked()),
45
hgs
parents: 23
diff changeset
   180
								this, SLOT(handleRegionalInfoChange()));
23
fd30d51f876b Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 18
diff changeset
   181
	mSettingsModel->appendDataFormItem(mShowRegionalInfoItem);
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   182
}
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   183
45
hgs
parents: 23
diff changeset
   184
/*!
hgs
parents: 23
diff changeset
   185
	Removes the regional info item from the model
hgs
parents: 23
diff changeset
   186
 */
hgs
parents: 23
diff changeset
   187
void CalenSettings::removeRegionalInfoItem()
hgs
parents: 23
diff changeset
   188
{
hgs
parents: 23
diff changeset
   189
	mSettingsForm->removeConnection(mShowRegionalInfoItem, SIGNAL(clicked()),
hgs
parents: 23
diff changeset
   190
									this, SLOT(handleRegionalInfoChange()));
hgs
parents: 23
diff changeset
   191
	mSettingsModel->removeItem(mShowRegionalInfoItem);
hgs
parents: 23
diff changeset
   192
	mRegionalpluginActive = false;
hgs
parents: 23
diff changeset
   193
}
hgs
parents: 23
diff changeset
   194
hgs
parents: 23
diff changeset
   195
/*!
hgs
parents: 23
diff changeset
   196
	Handles the alarm snooze time change
hgs
parents: 23
diff changeset
   197
 */
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   198
void CalenSettings::handleAlarmSnoozeTimeChange(int index)
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   199
{
45
hgs
parents: 23
diff changeset
   200
	if(mAlarmSnoozeTimeHash.value(index) > KValueZero) {
hgs
parents: 23
diff changeset
   201
		mSettingsManager->writeItemValue(*mAlarmSnoozeCenrepKey, mAlarmSnoozeTimeHash[index]);
hgs
parents: 23
diff changeset
   202
	}
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   203
}
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   204
45
hgs
parents: 23
diff changeset
   205
/*!
hgs
parents: 23
diff changeset
   206
	Handles the week number change
hgs
parents: 23
diff changeset
   207
 */
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   208
void CalenSettings::handleWeekNumberChange()
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   209
{
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   210
	QVariant data = mShowWeekNumberItem->contentWidgetData(QString("text"));
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   211
	QString value = data.toString();
45
hgs
parents: 23
diff changeset
   212
	if (!value.compare(hbTrId("txt_calendar_button_no"))) {
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   213
		// User has made it OFF.
45
hgs
parents: 23
diff changeset
   214
		mSettingsManager->writeItemValue(*mWeekNumberCenrepKey, KValueZero);
hgs
parents: 23
diff changeset
   215
	} else if (!value.compare(hbTrId("txt_calendar_button_yes"))) {
hgs
parents: 23
diff changeset
   216
		// User has made it ON.
hgs
parents: 23
diff changeset
   217
		mSettingsManager->writeItemValue(*mWeekNumberCenrepKey, KValueOne);
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   218
	}
45
hgs
parents: 23
diff changeset
   219
}
hgs
parents: 23
diff changeset
   220
hgs
parents: 23
diff changeset
   221
/*!
hgs
parents: 23
diff changeset
   222
	Handles the regional info option change
hgs
parents: 23
diff changeset
   223
 */
hgs
parents: 23
diff changeset
   224
void CalenSettings::handleRegionalInfoChange()
hgs
parents: 23
diff changeset
   225
{
hgs
parents: 23
diff changeset
   226
	QVariant data = mShowRegionalInfoItem->contentWidgetData(QString("text"));
hgs
parents: 23
diff changeset
   227
	QString value = data.toString();
hgs
parents: 23
diff changeset
   228
	if (!value.compare(hbTrId("txt_calendar_button_no"))) {
hgs
parents: 23
diff changeset
   229
		// User has made it OFF
hgs
parents: 23
diff changeset
   230
		mSettingsManager->writeItemValue(*mShowRegionalInfoKey, KValueZero);
hgs
parents: 23
diff changeset
   231
	} else if (!value.compare(hbTrId("txt_calendar_button_yes"))) {
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   232
		// User has made it ON.
45
hgs
parents: 23
diff changeset
   233
		mSettingsManager->writeItemValue(*mShowRegionalInfoKey, KValueOne);
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   234
	}
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   235
}
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   236
45
hgs
parents: 23
diff changeset
   237
/*!
hgs
parents: 23
diff changeset
   238
	Populates the settings model
hgs
parents: 23
diff changeset
   239
 */
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   240
void CalenSettings::populateSettingList()
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   241
{   
45
hgs
parents: 23
diff changeset
   242
	// Read the values from cenrep
hgs
parents: 23
diff changeset
   243
	// Read the initial values from the cenrep
hgs
parents: 23
diff changeset
   244
	QVariant value = mSettingsManager->readItemValue(*mAlarmSnoozeCenrepKey);
hgs
parents: 23
diff changeset
   245
	uint alarmSnoozeTime = value.toUInt();
hgs
parents: 23
diff changeset
   246
hgs
parents: 23
diff changeset
   247
	// Get the value from the hash and set the value to the form
hgs
parents: 23
diff changeset
   248
	int choiceIndex = mAlarmSnoozeTimeHash.key(alarmSnoozeTime);
hgs
parents: 23
diff changeset
   249
	mAlarmSnoozeTimeItem->setContentWidgetData(QString("currentIndex"), 
hgs
parents: 23
diff changeset
   250
														choiceIndex);
hgs
parents: 23
diff changeset
   251
	// Get start of week from the locale.
hgs
parents: 23
diff changeset
   252
	HbExtendedLocale locale = HbExtendedLocale::system();
hgs
parents: 23
diff changeset
   253
	mStartOfWeek = locale.startOfWeek();
hgs
parents: 23
diff changeset
   254
hgs
parents: 23
diff changeset
   255
	mShowWeekStartOnInfoItem->setContentWidgetData("currentIndex", mStartOfWeek);
hgs
parents: 23
diff changeset
   256
	//update the show week number option
hgs
parents: 23
diff changeset
   257
	updateShowWeekItem();
hgs
parents: 23
diff changeset
   258
	// Check the the regional info plugin is loaded now or not
hgs
parents: 23
diff changeset
   259
	if (isPluginEnabled()) {
hgs
parents: 23
diff changeset
   260
		// If the plugin was already there just populate the item
hgs
parents: 23
diff changeset
   261
		// else add the regional info item and then populate
hgs
parents: 23
diff changeset
   262
		if (mRegionalpluginActive) {
hgs
parents: 23
diff changeset
   263
			populateRegionalInfo();
hgs
parents: 23
diff changeset
   264
		}else {
hgs
parents: 23
diff changeset
   265
			addRegionalInfoItem();
hgs
parents: 23
diff changeset
   266
			populateRegionalInfo();
hgs
parents: 23
diff changeset
   267
		}
hgs
parents: 23
diff changeset
   268
	}else {
hgs
parents: 23
diff changeset
   269
		// If the plugin is removed now and if it was loaded before
hgs
parents: 23
diff changeset
   270
		// remove the item
hgs
parents: 23
diff changeset
   271
		if (mRegionalpluginActive) {
hgs
parents: 23
diff changeset
   272
			removeRegionalInfoItem();
hgs
parents: 23
diff changeset
   273
		}
hgs
parents: 23
diff changeset
   274
	}
hgs
parents: 23
diff changeset
   275
	mSettingsForm->setModel(mSettingsModel);
hgs
parents: 23
diff changeset
   276
}
hgs
parents: 23
diff changeset
   277
hgs
parents: 23
diff changeset
   278
/*!
hgs
parents: 23
diff changeset
   279
	Populates the regional info item
hgs
parents: 23
diff changeset
   280
 */
hgs
parents: 23
diff changeset
   281
void CalenSettings::populateRegionalInfo()
hgs
parents: 23
diff changeset
   282
{
hgs
parents: 23
diff changeset
   283
	QVariant value  = mSettingsManager->readItemValue(*mShowRegionalInfoKey);
hgs
parents: 23
diff changeset
   284
	uint showRegionalInfo = value.toUInt();
hgs
parents: 23
diff changeset
   285
hgs
parents: 23
diff changeset
   286
	if (showRegionalInfo) {
hgs
parents: 23
diff changeset
   287
		mShowRegionalInfoItem->setContentWidgetData(
hgs
parents: 23
diff changeset
   288
				QString("text"), QString(hbTrId("txt_calendar_button_yes")));
hgs
parents: 23
diff changeset
   289
		mShowRegionalInfoItem->setContentWidgetData(
hgs
parents: 23
diff changeset
   290
				QString("additionalText"), QString(
hgs
parents: 23
diff changeset
   291
						hbTrId("txt_calendar_button_no")));
hgs
parents: 23
diff changeset
   292
	} else {
hgs
parents: 23
diff changeset
   293
		mShowRegionalInfoItem->setContentWidgetData(
hgs
parents: 23
diff changeset
   294
				QString("text"), QString(hbTrId("txt_calendar_button_no")));
hgs
parents: 23
diff changeset
   295
		mShowRegionalInfoItem->setContentWidgetData(
hgs
parents: 23
diff changeset
   296
				QString("additionalText"), QString(
hgs
parents: 23
diff changeset
   297
						hbTrId("txt_calendar_button_yes")));
hgs
parents: 23
diff changeset
   298
	}
hgs
parents: 23
diff changeset
   299
}
hgs
parents: 23
diff changeset
   300
hgs
parents: 23
diff changeset
   301
/*!
hgs
parents: 23
diff changeset
   302
	Adds the week number item in the model
hgs
parents: 23
diff changeset
   303
 */
hgs
parents: 23
diff changeset
   304
void CalenSettings::addWeekNumberItem()
hgs
parents: 23
diff changeset
   305
{
hgs
parents: 23
diff changeset
   306
	mWeekNumberItemAdded = true;
hgs
parents: 23
diff changeset
   307
	// Append Show Week Number settings item
hgs
parents: 23
diff changeset
   308
	mShowWeekNumberItem = new HbDataFormModelItem();
hgs
parents: 23
diff changeset
   309
	mShowWeekNumberItem->setType(HbDataFormModelItem::ToggleValueItem);
hgs
parents: 23
diff changeset
   310
hgs
parents: 23
diff changeset
   311
	QStringList values;
hgs
parents: 23
diff changeset
   312
	values << hbTrId("txt_calendar_button_no")
hgs
parents: 23
diff changeset
   313
			<< hbTrId("txt_calendar_button_yes");
hgs
parents: 23
diff changeset
   314
	mShowWeekNumberItem->setData(HbDataFormModelItem::LabelRole, 
hgs
parents: 23
diff changeset
   315
					QString(hbTrId("txt_calendar_setlabel_show_week_numbers")));
51
hgs
parents: 45
diff changeset
   316
	mShowWeekNumberItem->setContentWidgetData("objectName", "showWeekNumber");
45
hgs
parents: 23
diff changeset
   317
hgs
parents: 23
diff changeset
   318
	mSettingsModel->appendDataFormItem(mShowWeekNumberItem);
hgs
parents: 23
diff changeset
   319
	mSettingsForm->addConnection(mShowWeekNumberItem, SIGNAL(clicked()), 
hgs
parents: 23
diff changeset
   320
									this, SLOT(handleWeekNumberChange()));
hgs
parents: 23
diff changeset
   321
}
hgs
parents: 23
diff changeset
   322
hgs
parents: 23
diff changeset
   323
/*!
hgs
parents: 23
diff changeset
   324
	Returns true if the regional plugin is loaded
hgs
parents: 23
diff changeset
   325
 */
hgs
parents: 23
diff changeset
   326
bool CalenSettings::isPluginEnabled()
hgs
parents: 23
diff changeset
   327
{
hgs
parents: 23
diff changeset
   328
	QString *pluginInfo = mServices.InfobarTextL();
hgs
parents: 23
diff changeset
   329
	if (!pluginInfo) {
hgs
parents: 23
diff changeset
   330
		return false;
hgs
parents: 23
diff changeset
   331
	} else {
hgs
parents: 23
diff changeset
   332
		return true;
hgs
parents: 23
diff changeset
   333
	}
hgs
parents: 23
diff changeset
   334
}
hgs
parents: 23
diff changeset
   335
hgs
parents: 23
diff changeset
   336
/*!
hgs
parents: 23
diff changeset
   337
	Sets the start day of the week to the locale
hgs
parents: 23
diff changeset
   338
	Is called when user selects week day
hgs
parents: 23
diff changeset
   339
 */
hgs
parents: 23
diff changeset
   340
void CalenSettings::setStartDayOfWeek(const int index)
hgs
parents: 23
diff changeset
   341
{
hgs
parents: 23
diff changeset
   342
	TLocale locale;
hgs
parents: 23
diff changeset
   343
	TDay day = (TDay)index;
hgs
parents: 23
diff changeset
   344
	//set the start day of the week to locale
hgs
parents: 23
diff changeset
   345
	locale.SetStartOfWeek(day);
hgs
parents: 23
diff changeset
   346
	locale.Set();
hgs
parents: 23
diff changeset
   347
	updateShowWeekItem();
hgs
parents: 23
diff changeset
   348
}
hgs
parents: 23
diff changeset
   349
hgs
parents: 23
diff changeset
   350
/*!
hgs
parents: 23
diff changeset
   351
	Updates the show  week number option
hgs
parents: 23
diff changeset
   352
 */
hgs
parents: 23
diff changeset
   353
void CalenSettings::updateShowWeekItem()
hgs
parents: 23
diff changeset
   354
{
hgs
parents: 23
diff changeset
   355
	// Get start of week from the locale.
hgs
parents: 23
diff changeset
   356
	HbExtendedLocale locale = HbExtendedLocale::system();
hgs
parents: 23
diff changeset
   357
	mStartOfWeek = locale.startOfWeek();
hgs
parents: 23
diff changeset
   358
	mShowWeekStartOnInfoItem->setContentWidgetData("currentIndex", mStartOfWeek);
hgs
parents: 23
diff changeset
   359
hgs
parents: 23
diff changeset
   360
	// Read the value form cenrep
hgs
parents: 23
diff changeset
   361
	QVariant value = mSettingsManager->readItemValue(*mWeekNumberCenrepKey);
hgs
parents: 23
diff changeset
   362
	uint showWeekNumber = value.toUInt();
hgs
parents: 23
diff changeset
   363
hgs
parents: 23
diff changeset
   364
	//if start day is not Monday
hgs
parents: 23
diff changeset
   365
	//set the show week number option dimmed ,
hgs
parents: 23
diff changeset
   366
	//else set to proper status
hgs
parents: 23
diff changeset
   367
	if(mStartOfWeek != HbExtendedLocale::Monday) {
hgs
parents: 23
diff changeset
   368
		mShowWeekNumberItem->setContentWidgetData(QString("text"), 
hgs
parents: 23
diff changeset
   369
									QString(hbTrId("txt_calendar_button_no")));
hgs
parents: 23
diff changeset
   370
		mShowWeekNumberItem->setContentWidgetData(QString("additionalText"), 
hgs
parents: 23
diff changeset
   371
									QString(hbTrId("txt_calendar_button_yes")));
hgs
parents: 23
diff changeset
   372
		mShowWeekNumberItem->setEnabled(false);
hgs
parents: 23
diff changeset
   373
	} else {
hgs
parents: 23
diff changeset
   374
		if(showWeekNumber) {
hgs
parents: 23
diff changeset
   375
			mShowWeekNumberItem->setContentWidgetData(QString("text"), 
hgs
parents: 23
diff changeset
   376
									QString(hbTrId("txt_calendar_button_yes")));
hgs
parents: 23
diff changeset
   377
			mShowWeekNumberItem->setContentWidgetData(QString("additionalText"), 
hgs
parents: 23
diff changeset
   378
									QString(hbTrId("txt_calendar_button_no")));
hgs
parents: 23
diff changeset
   379
		} else {
hgs
parents: 23
diff changeset
   380
			mShowWeekNumberItem->setContentWidgetData(QString("text"), 
hgs
parents: 23
diff changeset
   381
									QString(hbTrId("txt_calendar_button_no")));
hgs
parents: 23
diff changeset
   382
			mShowWeekNumberItem->setContentWidgetData(QString("additionalText"),
hgs
parents: 23
diff changeset
   383
									QString(hbTrId("txt_calendar_button_yes")));
hgs
parents: 23
diff changeset
   384
		}
hgs
parents: 23
diff changeset
   385
		mShowWeekNumberItem->setEnabled(true);
hgs
parents: 23
diff changeset
   386
	}
18
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   387
}
c198609911f9 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   388
// End of file