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