--- a/calendarui/settings/src/calensettings.cpp Wed Jun 23 18:11:28 2010 +0300
+++ b/calendarui/settings/src/calensettings.cpp Tue Jul 06 14:14:56 2010 +0300
@@ -29,17 +29,25 @@
#include "calenservices.h"
#include "calendarprivatecrkeys.h"
+// Constants
+const int KValueZero( 0 );
+const int KValueOne( 1 );
+
+
CalenSettings::CalenSettings(MCalenServices& services, HbDataForm *form, QObject *parent)
:QObject(parent),
mServices(services),
mSettingsForm(form),
- mSettingsModel(0),
+ mSettingsModel(NULL),
+ mAlarmSnoozeTimeItem(NULL),
+ mShowWeekNumberItem(NULL),
mShowRegionalInfoItem(NULL),
mShowWeekStartOnInfoItem(NULL),
+ mStartOfWeekItem(NULL),
mWeekNumberItemAdded(false),
mRegionalpluginActive(false)
{
- mSettingsManager = new XQSettingsManager(this);
+ mSettingsManager = new XQSettingsManager(this);
mAlarmSnoozeCenrepKey = new XQSettingsKey(
XQSettingsKey::TargetCentralRepository,
KCRUidCalendar, KCalendarSnoozeTime);
@@ -49,23 +57,33 @@
mShowRegionalInfoKey = new XQSettingsKey(
XQSettingsKey::TargetCentralRepository,
KCRUidCalendar, KCalendarShowRegionalInfo);
-
- // Read the initial values from the cenrep
- QVariant value = mSettingsManager->readItemValue(*mAlarmSnoozeCenrepKey);
- mAlarmSnoozeTime = value.toUInt();
-
- value = mSettingsManager->readItemValue(*mWeekNumberCenrepKey);
- mShowWeekNumber = value.toUInt();
-
- value = mSettingsManager->readItemValue(*mShowRegionalInfoKey);
- mShowRegionalInfo = value.toUInt();
}
+/*!
+ Destructor
+ */
CalenSettings::~CalenSettings()
{
- // Nothing yet.
+ if (mSettingsManager) {
+ delete mSettingsManager;
+ }
+ // Delete the cenrep keys
+ delete mAlarmSnoozeCenrepKey;
+ delete mWeekNumberCenrepKey;
+ delete mShowRegionalInfoKey;
+
+ if (mSettingsModel) {
+ delete mSettingsModel;
+ }
+ if (mAlarmSnoozeTimeHash.count()) {
+ // Clear the contents
+ mAlarmSnoozeTimeHash.clear();
+ }
}
+/*!
+ Creates the settings model
+ */
void CalenSettings::createModel()
{
// Remove the model.
@@ -76,24 +94,30 @@
}
// Create a model and set it.
- mSettingsModel = new HbDataFormModel();
+ mSettingsModel = new HbDataFormModel(mSettingsForm);
// Create the alarm snooze choices
QStringList alarmSnoozeChoices;
alarmSnoozeChoices << hbTrId(
- "txt_calendar_setlabel_alarm_snooze_time_val_5_minu")
- << hbTrId("txt_calendar_setlabel_alarm_snooze_time_val_10_min")
- << hbTrId("txt_calendar_setlabel_alarm_snooze_time_val_15_min")
- << hbTrId("txt_calendar_setlabel_alarm_snooze_time_val_30_min");
+ "txt_calendar_setlabel_reminder_snooze_time_val_5_m")
+ << hbTrId("txt_calendar_setlabel_reminder_snooze_time_val_10")
+ << hbTrId("txt_calendar_setlabel_reminder_snooze_time_val_15")
+ << hbTrId("txt_calendar_setlabel_reminder_snooze_time_val_30");
+ // Build the hash map for the alarm snooze time.
+ // The values are five, ten, fifteen and thirty minutes
+ mAlarmSnoozeTimeHash[0] = 5;
+ mAlarmSnoozeTimeHash[1] = 10;
+ mAlarmSnoozeTimeHash[2] = 15;
+ mAlarmSnoozeTimeHash[3] = 30;
// Append Alarm Snooze Time Setting item
mAlarmSnoozeTimeItem = new HbDataFormModelItem();
mAlarmSnoozeTimeItem->setType(HbDataFormModelItem::ComboBoxItem);
mAlarmSnoozeTimeItem->setData(HbDataFormModelItem::LabelRole,
- QString(hbTrId("txt_calendar_setlabel_alarm_snooze_time")));
+ QString(hbTrId("txt_calendar_setlabel_reminder_snooze_time")));
mAlarmSnoozeTimeItem->setContentWidgetData(QString("items"),
- alarmSnoozeChoices);
+ alarmSnoozeChoices);
mAlarmSnoozeTimeItem->setContentWidgetData(QString("currentIndex"), 0);
mSettingsForm->addConnection(mAlarmSnoozeTimeItem,
SIGNAL(currentIndexChanged(int)),
@@ -103,309 +127,256 @@
// Create the weekday list based on start of week.
QStringList weekdaysList;
weekdaysList
- << QString("Monday")//hbTrId("txt_clk_setlabel_val_monday")//@TODO set to proper localization strings once available
- << QString("Tuesday")//hbTrId("txt_clk_setlabel_val_tuesday")
- << QString("Wednesday")//hbTrId("txt_clk_setlabel_val_wednesday")
- << QString("Thursday")//hbTrId("txt_clk_setlabel_val_thursday")
- << QString("Friday")//hbTrId("txt_clk_setlabel_val_friday")
- << QString("Saturday")//hbTrId("txt_clk_setlabel_val_saturday")
- << QString("Sunday");//hbTrId("txt_clk_setlabel_val_sunday");
+ << hbTrId("txt_calendar_setlabel_week_starts_on_val_monday")
+ << hbTrId("txt_calendar_setlabel_week_starts_on_val_tuesday")
+ << hbTrId("txt_calendar_setlabel_week_starts_on_val_wednesday")
+ << hbTrId("txt_calendar_setlabel_week_starts_on_val_thursday")
+ << hbTrId("txt_calendar_setlabel_week_starts_on_val_friday")
+ << hbTrId("txt_calendar_setlabel_week_starts_on_val_saturday")
+ << hbTrId("txt_calendar_setlabel_week_starts_on_val_sunday");
// Start of week item.
- mShowWeekStartOnInfoItem = mSettingsModel->appendDataFormItem(HbDataFormModelItem::ComboBoxItem,QString("Week Starts On"));
- // hbTrId("txt_clock_setlabel_week_starts_on"));//@TODO set to proper localization strings once available
+ mShowWeekStartOnInfoItem = mSettingsModel->appendDataFormItem(
+ HbDataFormModelItem::ComboBoxItem,
+ hbTrId("txt_calendar_setlabel_week_starts_on"));
+
// Get start of week from the locale.
HbExtendedLocale locale = HbExtendedLocale::system();
mStartOfWeek = locale.startOfWeek();
mShowWeekStartOnInfoItem->setContentWidgetData("items", weekdaysList);
mShowWeekStartOnInfoItem->setContentWidgetData("currentIndex", mStartOfWeek);
- mSettingsForm->addConnection(mShowWeekStartOnInfoItem, SIGNAL(currentIndexChanged(int)),
- this, SLOT(setStartDayOfWeek(int)));
- //add show week number item in the model
+ mSettingsForm->addConnection(mShowWeekStartOnInfoItem,
+ SIGNAL(currentIndexChanged(int)),
+ this, SLOT(setStartDayOfWeek(int)));
+ // Add the show week number item in the model
+ addWeekNumberItem();
- addWeekNumberItem();
- mSettingsModel->appendDataFormItem(mShowWeekNumberItem);
-
- if(isPluginEnabled()) {
+ if (isPluginEnabled()) {
addRegionalInfoItem();
}
}
-
+
+/*!
+ Adds the regional info item to the model
+ */
void CalenSettings::addRegionalInfoItem()
{
mRegionalpluginActive = true;
- // Regional info is the second item in the model
- int index = mSettingsModel->indexFromItem(mAlarmSnoozeTimeItem).row() + 1;
-
- mShowRegionalInfoItem = mSettingsModel->insertDataFormItem(
- index ,
- HbDataFormModelItem::ToggleValueItem,
- QString(hbTrId("txt_calendar_setlabel_show_lunar_calendar")),
- mSettingsModel->invisibleRootItem());
+ mShowRegionalInfoItem = new HbDataFormModelItem();
+ mShowRegionalInfoItem->setType(HbDataFormModelItem::ToggleValueItem);
+ mShowRegionalInfoItem->setData(HbDataFormModelItem::LabelRole,
+ QString(hbTrId("txt_calendar_setlabel_show_lunar_calendar")));
// For HbPushButton type properties -- to be used for toggle value item
mShowRegionalInfoItem->setContentWidgetData(QString("text"),
- QString(hbTrId("txt_calendar_button_no")));
+ QString(hbTrId("txt_calendar_button_no")));
mShowRegionalInfoItem->setContentWidgetData(QString("additionalText"),
- QString(hbTrId("txt_calendar_button_yes")));
+ QString(hbTrId("txt_calendar_button_yes")));
mSettingsForm->addConnection(mShowRegionalInfoItem, SIGNAL(clicked()),
- this, SLOT(handleRegionalInfoChange()));
-
+ this, SLOT(handleRegionalInfoChange()));
+ mSettingsModel->appendDataFormItem(mShowRegionalInfoItem);
}
+/*!
+ Removes the regional info item from the model
+ */
void CalenSettings::removeRegionalInfoItem()
{
mSettingsForm->removeConnection(mShowRegionalInfoItem, SIGNAL(clicked()),
this, SLOT(handleRegionalInfoChange()));
- mSettingsModel->removeItem(mShowRegionalInfoItem);
- mRegionalpluginActive = false;
+ mSettingsModel->removeItem(mShowRegionalInfoItem);
+ mRegionalpluginActive = false;
}
+/*!
+ Handles the alarm snooze time change
+ */
void CalenSettings::handleAlarmSnoozeTimeChange(int index)
{
-switch(index)
- {
- case 0:
- {
- mSettingsManager->writeItemValue(*mAlarmSnoozeCenrepKey, 5);
- }
- break;
- case 1:
- {
- mSettingsManager->writeItemValue(*mAlarmSnoozeCenrepKey, 10);
- }
- break;
- case 2:
- {
- mSettingsManager->writeItemValue(*mAlarmSnoozeCenrepKey, 15);
- }
- break;
- case 3:
- {
- mSettingsManager->writeItemValue(*mAlarmSnoozeCenrepKey, 30);
- }
- break;
- default:
- break;
- }
- QVariant value = mSettingsManager->readItemValue(*mAlarmSnoozeCenrepKey);
- uint time = value.toUInt();
+ if(mAlarmSnoozeTimeHash.value(index) > KValueZero) {
+ mSettingsManager->writeItemValue(*mAlarmSnoozeCenrepKey, mAlarmSnoozeTimeHash[index]);
+ }
}
+/*!
+ Handles the week number change
+ */
void CalenSettings::handleWeekNumberChange()
{
QVariant data = mShowWeekNumberItem->contentWidgetData(QString("text"));
QString value = data.toString();
- if(!value.compare(hbTrId("txt_calendar_button_no")))
- {
+ if (!value.compare(hbTrId("txt_calendar_button_no"))) {
// User has made it OFF.
- mShowWeekNumber = 0;
- mSettingsManager->writeItemValue(*mWeekNumberCenrepKey, 0);
+ mSettingsManager->writeItemValue(*mWeekNumberCenrepKey, KValueZero);
+ } else if (!value.compare(hbTrId("txt_calendar_button_yes"))) {
+ // User has made it ON.
+ mSettingsManager->writeItemValue(*mWeekNumberCenrepKey, KValueOne);
}
- else if(!value.compare(hbTrId("txt_calendar_button_yes")))
- {
+}
+
+/*!
+ Handles the regional info option change
+ */
+void CalenSettings::handleRegionalInfoChange()
+{
+ QVariant data = mShowRegionalInfoItem->contentWidgetData(QString("text"));
+ QString value = data.toString();
+ if (!value.compare(hbTrId("txt_calendar_button_no"))) {
+ // User has made it OFF
+ mSettingsManager->writeItemValue(*mShowRegionalInfoKey, KValueZero);
+ } else if (!value.compare(hbTrId("txt_calendar_button_yes"))) {
// User has made it ON.
- mShowWeekNumber = 1;
- mSettingsManager->writeItemValue(*mWeekNumberCenrepKey, 1);
+ mSettingsManager->writeItemValue(*mShowRegionalInfoKey, KValueOne);
}
}
-void CalenSettings::handleRegionalInfoChange()
-{
- QVariant data = mShowRegionalInfoItem->contentWidgetData(QString("text"));
- QString value = data.toString();
- if(!value.compare(hbTrId("txt_calendar_button_no"))) {
- // User has made it OFF
- mShowRegionalInfo = 0;
- mSettingsManager->writeItemValue(*mShowRegionalInfoKey, 0);
- } else if(!value.compare(hbTrId("txt_calendar_button_yes"))) {
- // User has made it ON.
- mShowRegionalInfo = 1;
- mSettingsManager->writeItemValue(*mShowRegionalInfoKey, 1);
- }
-}
-
+/*!
+ Populates the settings model
+ */
void CalenSettings::populateSettingList()
{
- // Read the values from cenrep
- // Read the initial values from the cenrep
- QVariant value = mSettingsManager->readItemValue(*mAlarmSnoozeCenrepKey);
- mAlarmSnoozeTime = value.toUInt();
-
- value = mSettingsManager->readItemValue(*mWeekNumberCenrepKey);
- mShowWeekNumber = value.toUInt();
-
- // set the value to the form
- int choiceIndex = 0;
- switch(mAlarmSnoozeTime)
- {
- case 5:
- choiceIndex = 0;
- break;
- case 10:
- choiceIndex = 1;
- break;
- case 15:
- choiceIndex = 2;
- break;
- case 30:
- choiceIndex = 3;
- break;
- default:
- choiceIndex = 0;
- break;
- }
- mAlarmSnoozeTimeItem->setContentWidgetData(QString("currentIndex"),
- choiceIndex);
-
+ // Read the values from cenrep
+ // Read the initial values from the cenrep
+ QVariant value = mSettingsManager->readItemValue(*mAlarmSnoozeCenrepKey);
+ uint alarmSnoozeTime = value.toUInt();
+
+ // Get the value from the hash and set the value to the form
+ int choiceIndex = mAlarmSnoozeTimeHash.key(alarmSnoozeTime);
+ mAlarmSnoozeTimeItem->setContentWidgetData(QString("currentIndex"),
+ choiceIndex);
// Get start of week from the locale.
- HbExtendedLocale locale = HbExtendedLocale::system();
- mStartOfWeek = locale.startOfWeek();
-
-
- mShowWeekStartOnInfoItem->setContentWidgetData("currentIndex", mStartOfWeek);
- //update the show week number option
- updateShowWeekItem();
- // Check the the regional info plugin is loaded now or not
- if(isPluginEnabled()) {
- // If the plugin was already there just populate the item
- // else add the regional info item and then populate
- if(mRegionalpluginActive) {
- populateRegionalInfo();
- }else {
- addRegionalInfoItem();
- populateRegionalInfo();
- }
- }else {
- // If the plugin is removed now and if it was loaded before
- // remove the item
- if(mRegionalpluginActive) {
- removeRegionalInfoItem();
- }
- }
- mSettingsForm->setModel(mSettingsModel);
+ HbExtendedLocale locale = HbExtendedLocale::system();
+ mStartOfWeek = locale.startOfWeek();
+
+ mShowWeekStartOnInfoItem->setContentWidgetData("currentIndex", mStartOfWeek);
+ //update the show week number option
+ updateShowWeekItem();
+ // Check the the regional info plugin is loaded now or not
+ if (isPluginEnabled()) {
+ // If the plugin was already there just populate the item
+ // else add the regional info item and then populate
+ if (mRegionalpluginActive) {
+ populateRegionalInfo();
+ }else {
+ addRegionalInfoItem();
+ populateRegionalInfo();
+ }
+ }else {
+ // If the plugin is removed now and if it was loaded before
+ // remove the item
+ if (mRegionalpluginActive) {
+ removeRegionalInfoItem();
+ }
+ }
+ mSettingsForm->setModel(mSettingsModel);
}
+/*!
+ Populates the regional info item
+ */
void CalenSettings::populateRegionalInfo()
{
- QVariant value = mSettingsManager->readItemValue(*mShowRegionalInfoKey);
- mShowRegionalInfo = value.toUInt();
-
- if (mShowRegionalInfo) {
- mShowRegionalInfoItem->setContentWidgetData(
- QString("text"), QString(hbTrId("txt_calendar_button_yes")));
- mShowRegionalInfoItem->setContentWidgetData(
- QString("additionalText"), QString(
- hbTrId("txt_calendar_button_no")));
- } else {
- mShowRegionalInfoItem->setContentWidgetData(
- QString("text"), QString(hbTrId("txt_calendar_button_no")));
- mShowRegionalInfoItem->setContentWidgetData(
- QString("additionalText"), QString(
- hbTrId("txt_calendar_button_yes")));
- }
-
-}
+ QVariant value = mSettingsManager->readItemValue(*mShowRegionalInfoKey);
+ uint showRegionalInfo = value.toUInt();
-void CalenSettings::addWeekNumberItem()
-{
- mWeekNumberItemAdded = true;
- // Append Show Week Number settings item
- mShowWeekNumberItem = new HbDataFormModelItem();
- mShowWeekNumberItem->setType(HbDataFormModelItem::ToggleValueItem);
- QStringList values;
- values << hbTrId("txt_calendar_button_no")
- << hbTrId("txt_calendar_button_yes");
- mShowWeekNumberItem->setData(HbDataFormModelItem::LabelRole,
- QString(hbTrId("txt_calendar_setlabel_show_week_numbers")));
-
-
- // For HbPushButton type properties -- to be used for toggle value item
- if(mShowWeekNumber)
- {
- mShowWeekNumberItem->setContentWidgetData(QString("text"),
- QString(hbTrId("txt_calendar_button_yes")));
- mShowWeekNumberItem->setContentWidgetData(QString("additionalText"),
- QString(hbTrId("txt_calendar_button_no")));
- }
- else
- {
- mShowWeekNumberItem->setContentWidgetData(QString("text"),
- QString(hbTrId("txt_calendar_button_no")));
- mShowWeekNumberItem->setContentWidgetData(QString("additionalText"),
- QString(hbTrId("txt_calendar_button_yes")));
- }
-
- mSettingsForm->addConnection(mShowWeekNumberItem, SIGNAL(clicked()),
- this, SLOT(handleWeekNumberChange()));
+ if (showRegionalInfo) {
+ mShowRegionalInfoItem->setContentWidgetData(
+ QString("text"), QString(hbTrId("txt_calendar_button_yes")));
+ mShowRegionalInfoItem->setContentWidgetData(
+ QString("additionalText"), QString(
+ hbTrId("txt_calendar_button_no")));
+ } else {
+ mShowRegionalInfoItem->setContentWidgetData(
+ QString("text"), QString(hbTrId("txt_calendar_button_no")));
+ mShowRegionalInfoItem->setContentWidgetData(
+ QString("additionalText"), QString(
+ hbTrId("txt_calendar_button_yes")));
+ }
}
/*!
- Returns true if plugin is loaded
+ Adds the week number item in the model
+ */
+void CalenSettings::addWeekNumberItem()
+{
+ mWeekNumberItemAdded = true;
+ // Append Show Week Number settings item
+ mShowWeekNumberItem = new HbDataFormModelItem();
+ mShowWeekNumberItem->setType(HbDataFormModelItem::ToggleValueItem);
+
+ QStringList values;
+ values << hbTrId("txt_calendar_button_no")
+ << hbTrId("txt_calendar_button_yes");
+ mShowWeekNumberItem->setData(HbDataFormModelItem::LabelRole,
+ QString(hbTrId("txt_calendar_setlabel_show_week_numbers")));
+
+ mSettingsModel->appendDataFormItem(mShowWeekNumberItem);
+ mSettingsForm->addConnection(mShowWeekNumberItem, SIGNAL(clicked()),
+ this, SLOT(handleWeekNumberChange()));
+}
+
+/*!
+ Returns true if the regional plugin is loaded
*/
bool CalenSettings::isPluginEnabled()
{
- QString *pluginInfo = mServices.InfobarTextL();
- if (!pluginInfo) {
- return false;
- } else {
- return true;
- }
+ QString *pluginInfo = mServices.InfobarTextL();
+ if (!pluginInfo) {
+ return false;
+ } else {
+ return true;
+ }
}
-// ---------------------------------------------------------
-// CalenSettings::setStartDayOfWeek
-// sets the start day of the week to the locale
-// calls when user select week day
-// ---------------------------------------------------------
-//
+
+/*!
+ Sets the start day of the week to the locale
+ Is called when user selects week day
+ */
void CalenSettings::setStartDayOfWeek(const int index)
- {
- TLocale locale;
- TDay day = (TDay)index;
- //set the start day of the week to locale
- locale.SetStartOfWeek(day);
- locale.Set();
- updateShowWeekItem();
- }
+{
+ TLocale locale;
+ TDay day = (TDay)index;
+ //set the start day of the week to locale
+ locale.SetStartOfWeek(day);
+ locale.Set();
+ updateShowWeekItem();
+}
-// ---------------------------------------------------------
-// CalenSettings::updateShowWeekItem
-// update the show week number option
-// ---------------------------------------------------------
-//
+/*!
+ Updates the show week number option
+ */
void CalenSettings::updateShowWeekItem()
- {
- // Get start of week from the locale.
- HbExtendedLocale locale = HbExtendedLocale::system();
- mStartOfWeek = locale.startOfWeek();
- mShowWeekStartOnInfoItem->setContentWidgetData("currentIndex", mStartOfWeek);
- //if start day is not Monday
- //set the show week number option dimmed ,
- //else set to proper status
- if(mStartOfWeek != HbExtendedLocale::Monday)
- {
- mShowWeekNumberItem->setContentWidgetData(QString("text"),
- QString(hbTrId("txt_calendar_button_no")));
- mShowWeekNumberItem->setContentWidgetData(QString("additionalText"),
- QString(hbTrId("txt_calendar_button_yes")));
- mShowWeekNumberItem->setEnabled(false);
- }
- else
- {
- if(mShowWeekNumber)
- {
- mShowWeekNumberItem->setContentWidgetData(QString("text"),
- QString(hbTrId("txt_calendar_button_yes")));
- mShowWeekNumberItem->setContentWidgetData(QString("additionalText"),
- QString(hbTrId("txt_calendar_button_no")));
- }
- else
- {
- mShowWeekNumberItem->setContentWidgetData(QString("text"),
- QString(hbTrId("txt_calendar_button_no")));
- mShowWeekNumberItem->setContentWidgetData(QString("additionalText"),
- QString(hbTrId("txt_calendar_button_yes")));
- }
- mShowWeekNumberItem->setEnabled(true);
- }
- }
+{
+ // Get start of week from the locale.
+ HbExtendedLocale locale = HbExtendedLocale::system();
+ mStartOfWeek = locale.startOfWeek();
+ mShowWeekStartOnInfoItem->setContentWidgetData("currentIndex", mStartOfWeek);
+
+ // Read the value form cenrep
+ QVariant value = mSettingsManager->readItemValue(*mWeekNumberCenrepKey);
+ uint showWeekNumber = value.toUInt();
+
+ //if start day is not Monday
+ //set the show week number option dimmed ,
+ //else set to proper status
+ if(mStartOfWeek != HbExtendedLocale::Monday) {
+ mShowWeekNumberItem->setContentWidgetData(QString("text"),
+ QString(hbTrId("txt_calendar_button_no")));
+ mShowWeekNumberItem->setContentWidgetData(QString("additionalText"),
+ QString(hbTrId("txt_calendar_button_yes")));
+ mShowWeekNumberItem->setEnabled(false);
+ } else {
+ if(showWeekNumber) {
+ mShowWeekNumberItem->setContentWidgetData(QString("text"),
+ QString(hbTrId("txt_calendar_button_yes")));
+ mShowWeekNumberItem->setContentWidgetData(QString("additionalText"),
+ QString(hbTrId("txt_calendar_button_no")));
+ } else {
+ mShowWeekNumberItem->setContentWidgetData(QString("text"),
+ QString(hbTrId("txt_calendar_button_no")));
+ mShowWeekNumberItem->setContentWidgetData(QString("additionalText"),
+ QString(hbTrId("txt_calendar_button_yes")));
+ }
+ mShowWeekNumberItem->setEnabled(true);
+ }
+}
// End of file