52 delete mSettingEngine; |
77 delete mSettingEngine; |
53 } |
78 } |
54 |
79 |
55 void MsgSettingsForm::initSettingModel() |
80 void MsgSettingsForm::initSettingModel() |
56 { |
81 { |
57 HbDataFormModel *model = new HbDataFormModel(0); |
82 settingsModel = new HbDataFormModel(0); |
58 |
83 |
59 bool deliveryReoprt = false; |
84 MsgSettingEngine::CharacterEncoding charEncoding = |
60 MsgSettingEngine::CharacterEncoding charEncoding = MsgSettingEngine::ReducedSupport; |
85 MsgSettingEngine::ReducedSupport; |
61 |
86 |
62 mSettingEngine->settingsDeliverReportAndCharEncoding(deliveryReoprt, charEncoding); |
87 bool receiveServiceMessages = false; |
63 |
88 |
64 QStringList deliveryReoprtList; |
89 mSettingEngine->settingsServiceMessagesAndCharEncoding( |
65 deliveryReoprtList << LOC_OFF << LOC_ON; |
90 receiveServiceMessages, |
66 |
91 charEncoding); |
67 int index = int(deliveryReoprt); |
92 |
68 int otherIndex = (deliveryReoprt + 1) % deliveryReoprtList.count(); |
93 // 1. Character encoding |
69 |
94 HbDataFormModelItem *characterEncoding = |
70 // 1. create the first item delivery reports |
95 new HbDataFormModelItem(HbDataFormModelItem::ComboBoxItem, |
71 HbDataFormModelItem *deliverReports = new HbDataFormModelItem( |
96 LOC_CHAR_ENCODING, |
72 HbDataFormModelItem::ToggleValueItem, |
97 0); |
73 LOC_DELIVERY_REPORTS, 0); |
|
74 deliverReports->setContentWidgetData("text", deliveryReoprtList.at(index)); |
|
75 deliverReports->setContentWidgetData("additionalText", deliveryReoprtList.at(otherIndex)); |
|
76 |
|
77 model->appendDataFormItem(deliverReports, model->invisibleRootItem()); |
|
78 this->addConnection(deliverReports, SIGNAL(clicked()), |
|
79 this,SLOT(onPressedDelReports())); |
|
80 |
|
81 // 2. Character encoding |
|
82 HbDataFormModelItem *characterEncoding = new HbDataFormModelItem( |
|
83 HbDataFormModelItem::ComboBoxItem, |
|
84 LOC_CHAR_ENCODING, 0); |
|
85 QStringList charEncodingList; |
98 QStringList charEncodingList; |
86 charEncodingList << LOC_REDUCED_SUPPORT << LOC_FULL_SUPPORT; |
99 charEncodingList << LOC_REDUCED_SUPPORT << LOC_FULL_SUPPORT; |
87 |
100 |
88 index = int(charEncoding); |
101 int index = int (charEncoding); |
89 |
102 |
90 characterEncoding->setContentWidgetData("items", charEncodingList); |
103 characterEncoding->setContentWidgetData("items", charEncodingList); |
91 characterEncoding->setContentWidgetData("currentIndex", index); |
104 characterEncoding->setContentWidgetData("currentIndex", index); |
92 |
105 |
93 model->appendDataFormItem(characterEncoding, model->invisibleRootItem()); |
106 settingsModel->appendDataFormItem(characterEncoding, |
94 this->addConnection(characterEncoding, SIGNAL(currentIndexChanged(int)), |
107 settingsModel->invisibleRootItem()); |
95 this,SLOT(changeCharEncoding(int))); |
108 this->addConnection(characterEncoding, |
|
109 SIGNAL(currentIndexChanged(int)), |
|
110 this, |
|
111 SLOT(changeCharEncoding(int))); |
|
112 |
|
113 //2. receiving service messages |
|
114 QStringList serviceMessagesList; |
|
115 serviceMessagesList << LOC_OFF << LOC_ON; |
|
116 |
|
117 index = int (receiveServiceMessages); |
|
118 int otherIndex = (receiveServiceMessages + 1) % serviceMessagesList.count(); |
|
119 |
|
120 HbDataFormModelItem *serviceMessagesItem = |
|
121 new HbDataFormModelItem(HbDataFormModelItem::ComboBoxItem, |
|
122 LOC_RECEIVING_SERVICE_MESSAGES, |
|
123 0); |
|
124 |
|
125 serviceMessagesItem->setContentWidgetData("items", serviceMessagesList); |
|
126 serviceMessagesItem->setContentWidgetData("currentIndex", index); |
|
127 |
|
128 settingsModel->appendDataFormItem(serviceMessagesItem, |
|
129 settingsModel->invisibleRootItem()); |
|
130 this->addConnection(serviceMessagesItem, |
|
131 SIGNAL(clicked()), |
|
132 this, |
|
133 SLOT(onPressedServiceMessages())); |
|
134 |
|
135 // 3. MMS Settings |
|
136 HbDataFormModelItem* mmsGroup = |
|
137 new HbDataFormModelItem(HbDataFormModelItem::GroupItem, |
|
138 LOC_MMS_SETTINGS, |
|
139 0); |
|
140 |
|
141 settingsModel->appendDataFormItem(mmsGroup, |
|
142 settingsModel->invisibleRootItem()); |
|
143 |
|
144 addMMSGroupItem(mmsGroup); |
|
145 |
|
146 // 4. SMS Settings |
|
147 mSmsMCGroup = new HbDataFormModelItem(HbDataFormModelItem::GroupItem, |
|
148 LOC_SMS_CENTRE_SETTINGS, |
|
149 0); |
|
150 |
|
151 settingsModel->appendDataFormItem(mSmsMCGroup, |
|
152 settingsModel->invisibleRootItem()); |
|
153 |
|
154 addSmsMCGroupItem(mSmsMCGroup); |
|
155 |
|
156 this->setModel(settingsModel); |
|
157 } |
|
158 |
|
159 void MsgSettingsForm::refreshViewForm() |
|
160 { |
|
161 updateSmsMCGroupItem(mSmsMCGroup); |
|
162 } |
|
163 |
|
164 void MsgSettingsForm::updateSmsMCGroupItem(HbDataFormModelItem* parent) |
|
165 { |
|
166 //1. update the combobox model item |
|
167 int defaultServiceCenter = -1; |
|
168 mSmsServiceList.clear(); |
|
169 mSettingEngine->allSMSMessageCenter(mSmsServiceList, defaultServiceCenter); |
|
170 |
|
171 mSmsServiceCenterModel->clear(); |
96 |
172 |
97 // 3. CUSTOM SETTING ITEM HbButton |
173 //recreate all the model items |
98 HbDataFormModelItem::DataItemType customItem = |
174 int itemCount = mSmsServiceList.count(); |
99 static_cast<HbDataFormModelItem::DataItemType> (HbDataFormModelItem::CustomItemBase + 1); |
175 for (int i = 0; i < itemCount; ++i) |
100 |
176 { |
101 HbDataFormModelItem *advancedSettings |
177 QStandardItem *item = new QStandardItem; |
102 = model->appendDataFormItem(customItem, QString(), model->invisibleRootItem()); |
178 item->setData(mSmsServiceList.at(i), Qt::DisplayRole); |
|
179 mSmsServiceCenterModel->appendRow(item); |
|
180 } |
|
181 //set the content widget data again |
|
182 if(itemCount > 0) |
|
183 { |
|
184 smsMessageCenter->setContentWidgetData("items", mSmsServiceList); |
|
185 } |
|
186 |
|
187 smsMessageCenter->setContentWidgetData("currentIndex", |
|
188 defaultServiceCenter); |
103 |
189 |
104 advancedSettings->setContentWidgetData("text", LOC_ADVANCED); |
190 //2. refresh all the custom buttons again |
105 this->addConnection(advancedSettings, SIGNAL(clicked()), |
191 int childCount = parent->childCount(); |
106 this,SLOT(onPressedAdvanced())); |
192 int totalServices = mSmsServiceList.count(); |
107 |
193 |
108 this->setModel(model); |
194 //custom buttons start from index 1 till childCount-2 |
109 } |
195 int list_index = 0, child_index = 1; |
110 |
196 for (; list_index < totalServices && child_index <= childCount - 2; list_index++, child_index++) |
111 void MsgSettingsForm::onPressedAdvanced() |
197 { |
112 { |
198 //get the existing custom item instance |
113 //tell view manager to open advanced view |
199 HbDataFormModelItem* customItem = parent->childAt(child_index); |
114 mSettingsViewManager->openAdvancedView(); |
200 customItem->setContentWidgetData("text", mSmsServiceList.at(list_index)); |
115 } |
201 } |
116 |
202 |
117 void MsgSettingsForm::onPressedDelReports() |
203 //if extra child items are remaining then delete those from parent |
|
204 for(;child_index <= childCount - 2; |
|
205 child_index++) |
|
206 { |
|
207 parent->removeChild(child_index); |
|
208 } |
|
209 |
|
210 //create all new custom items if new are added in list |
|
211 //CUSTOM SETTING ITEM HbButton |
|
212 HbDataFormModelItem::DataItemType |
|
213 customButtonGeneral = |
|
214 static_cast<HbDataFormModelItem::DataItemType> (HbDataFormModelItem::CustomItemBase |
|
215 + 1); |
|
216 for (; list_index < totalServices; list_index++, child_index++) |
|
217 { |
|
218 HbDataFormModelItem* newChild = |
|
219 new HbDataFormModelItem(customButtonGeneral); |
|
220 |
|
221 newChild->setContentWidgetData("text", mSmsServiceList.at(list_index)); |
|
222 parent->insertChild(child_index, newChild); |
|
223 |
|
224 this->addConnection(newChild, |
|
225 SIGNAL(clicked()), |
|
226 this, |
|
227 SLOT(onPressedCustomButton())); |
|
228 } |
|
229 } |
|
230 |
|
231 void MsgSettingsForm::addMMSGroupItem(HbDataFormModelItem* parent) |
|
232 { |
|
233 //read settings |
|
234 MsgSettingEngine::MmsRetrieval retrieval = |
|
235 MsgSettingEngine::AlwaysAutomatic; |
|
236 bool allowAnonymous = true; |
|
237 bool allowAdverts = true; |
|
238 |
|
239 mSettingEngine->advanceMmsSettings(retrieval, |
|
240 allowAnonymous, |
|
241 allowAdverts); |
|
242 |
|
243 // add all the mms group item |
|
244 |
|
245 HbDataFormModelItem *mmsRetrieval = |
|
246 new HbDataFormModelItem(HbDataFormModelItem::ComboBoxItem, |
|
247 LOC_MMS_RETRIEVAL, |
|
248 0); |
|
249 |
|
250 QStringList mmsRetrievalList; |
|
251 mmsRetrievalList << LOC_ALWAYS_AUTOMATIC << LOC_AUTO_HOME_NETWORK |
|
252 << LOC_MANUAL << LOC_OFF; |
|
253 |
|
254 mmsRetrieval->setContentWidgetData("items", mmsRetrievalList); |
|
255 mmsRetrieval->setContentWidgetData("currentIndex", int (retrieval)); |
|
256 this->addConnection(mmsRetrieval, |
|
257 SIGNAL(currentIndexChanged(int)), |
|
258 this, |
|
259 SLOT(changeMMSRetrievalMode(int))); |
|
260 |
|
261 HbDataFormModelItem *anonymousMMS = |
|
262 new HbDataFormModelItem(HbDataFormModelItem::ToggleValueItem, |
|
263 LOC_ALLOW_ANONYMOUS_MMS, |
|
264 0); |
|
265 |
|
266 QStringList anonymousMMSList; |
|
267 anonymousMMSList << LOC_MMS_NO << LOC_MMS_YES; |
|
268 |
|
269 int defaultIndex = int (allowAnonymous); |
|
270 int alternateIndex = (defaultIndex + 1) % anonymousMMSList.count(); |
|
271 |
|
272 anonymousMMS->setContentWidgetData("text", |
|
273 anonymousMMSList.at(defaultIndex)); |
|
274 anonymousMMS->setContentWidgetData("additionalText", |
|
275 anonymousMMSList.at(alternateIndex)); |
|
276 this->addConnection(anonymousMMS, |
|
277 SIGNAL(clicked()), |
|
278 this, |
|
279 SLOT(allowAnonymousMMS())); |
|
280 |
|
281 HbDataFormModelItem *mmsAdverts = |
|
282 new HbDataFormModelItem(HbDataFormModelItem::ToggleValueItem, |
|
283 LOC_RECEIVE_MMS_ADVERTS, |
|
284 0); |
|
285 |
|
286 QStringList mmsAdvertsList; |
|
287 mmsAdvertsList << LOC_MMS_NO << LOC_MMS_YES; |
|
288 |
|
289 defaultIndex = int (allowAdverts); |
|
290 alternateIndex = (defaultIndex + 1) % mmsAdvertsList.count(); |
|
291 |
|
292 mmsAdverts->setContentWidgetData("text", mmsAdvertsList.at(defaultIndex)); |
|
293 mmsAdverts->setContentWidgetData("additionalText", |
|
294 mmsAdvertsList.at(alternateIndex)); |
|
295 |
|
296 this->addConnection(mmsAdverts, |
|
297 SIGNAL(clicked()), |
|
298 this, |
|
299 SLOT(allowMMSAdverts())); |
|
300 |
|
301 HbDataFormModelItem *accessPoint = |
|
302 new HbDataFormModelItem(HbDataFormModelItem::ComboBoxItem, |
|
303 LOC_MMS_AP_IN_USE, |
|
304 0); |
|
305 |
|
306 QStandardItemModel* comboModel = new QStandardItemModel(); |
|
307 |
|
308 QStringList mmsList; |
|
309 int defaultAccessPointIndex = -1; |
|
310 |
|
311 mSettingEngine->allMMsAcessPoints(mmsList, defaultAccessPointIndex); |
|
312 int accessPoints = mmsList.count(); |
|
313 for (int a = 0; a < accessPoints; ++a) |
|
314 { |
|
315 QStandardItem* item = new QStandardItem(); |
|
316 item->setData(mmsList[a], Qt::DisplayRole); |
|
317 comboModel->appendRow(item); |
|
318 } |
|
319 accessPoint->setModel(comboModel); |
|
320 accessPoint->setContentWidgetData("items", mmsList); |
|
321 if (defaultAccessPointIndex >= 0) |
|
322 { |
|
323 accessPoint->setContentWidgetData("currentIndex", |
|
324 defaultAccessPointIndex); |
|
325 } |
|
326 QDEBUG_WRITE_FORMAT("Settings: adding accesspoints..", defaultAccessPointIndex); |
|
327 this->addConnection(accessPoint, |
|
328 SIGNAL(currentIndexChanged(int)), |
|
329 this, |
|
330 SLOT(changeAccessPoint(int))); |
|
331 |
|
332 parent->appendChild(mmsRetrieval); |
|
333 parent->appendChild(anonymousMMS); |
|
334 parent->appendChild(mmsAdverts); |
|
335 parent->appendChild(accessPoint); |
|
336 } |
|
337 |
|
338 void MsgSettingsForm::addSmsMCGroupItem(HbDataFormModelItem* parent) |
|
339 { |
|
340 // add all the sms message center group item |
|
341 smsMessageCenter |
|
342 = new HbDataFormModelItem(HbDataFormModelItem::ComboBoxItem, |
|
343 mSmsMCSettingsGroup.at(0), |
|
344 0); |
|
345 |
|
346 int defaultServiceCenter = -1; |
|
347 mSmsServiceList.clear(); |
|
348 mSettingEngine->allSMSMessageCenter(mSmsServiceList, defaultServiceCenter); |
|
349 mSmsServiceCenterModel = new QStandardItemModel(this); |
|
350 |
|
351 int itemCount = mSmsServiceList.count(); |
|
352 for (int i = 0; i < itemCount; ++i) |
|
353 { |
|
354 QStandardItem *item = new QStandardItem; |
|
355 item->setData(mSmsServiceList.at(i), Qt::DisplayRole); |
|
356 mSmsServiceCenterModel->appendRow(item); |
|
357 } |
|
358 |
|
359 smsMessageCenter->setModel(mSmsServiceCenterModel); |
|
360 smsMessageCenter->setContentWidgetData("items", mSmsServiceList); |
|
361 |
|
362 if (defaultServiceCenter >= 0) |
|
363 { |
|
364 smsMessageCenter->setContentWidgetData("currentIndex", |
|
365 defaultServiceCenter); |
|
366 } |
|
367 |
|
368 this->addConnection(smsMessageCenter, |
|
369 SIGNAL(currentIndexChanged(int)), |
|
370 this, |
|
371 SLOT(onSMSCurrentIndexChanged(int))); |
|
372 |
|
373 parent->appendChild(smsMessageCenter); |
|
374 |
|
375 //CUSTOM SETTING ITEM HbButton |
|
376 HbDataFormModelItem::DataItemType |
|
377 customButtonGeneral = |
|
378 static_cast<HbDataFormModelItem::DataItemType> (HbDataFormModelItem::CustomItemBase |
|
379 + 1); |
|
380 |
|
381 int totalServices = mSmsServiceList.count(); |
|
382 for (int index = 0; index < totalServices; index++) |
|
383 { |
|
384 HbDataFormModelItem *newMessageCenters = |
|
385 settingsModel->appendDataFormItem(customButtonGeneral, |
|
386 QString(""), |
|
387 parent); |
|
388 |
|
389 newMessageCenters->setContentWidgetData("text", |
|
390 mSmsServiceList.at(index)); |
|
391 this->addConnection(newMessageCenters, |
|
392 SIGNAL(clicked()), |
|
393 this, |
|
394 SLOT(onPressedCustomButton())); |
|
395 } |
|
396 |
|
397 HbDataFormModelItem *newMessageCenters = |
|
398 settingsModel->appendDataFormItem(customButtonGeneral, |
|
399 QString(""), |
|
400 parent); |
|
401 |
|
402 newMessageCenters->setContentWidgetData("text", mSmsMCSettingsGroup.at(1)); |
|
403 this->addConnection(newMessageCenters, |
|
404 SIGNAL(clicked()), |
|
405 this, |
|
406 SLOT(onPressedCustomButton())); |
|
407 } |
|
408 |
|
409 void MsgSettingsForm::onPressedServiceMessages() |
118 { |
410 { |
119 HbPushButton *btn = qobject_cast<HbPushButton *> (sender()); |
411 HbPushButton *btn = qobject_cast<HbPushButton *> (sender()); |
120 |
412 |
121 if (btn) { |
413 if (btn) |
|
414 { |
122 QString btnText = btn->text(); |
415 QString btnText = btn->text(); |
123 |
416 |
124 //check if the button pressed was On or Off |
417 //check if the button pressed was On or Off |
125 if (LOC_OFF == btnText) { |
418 if (LOC_OFF == btnText) |
126 mSettingEngine->setDeliveryReport(false); |
419 { |
127 } |
420 mSettingEngine->setReceiveSerivceMessages(false); |
128 else { |
421 } |
129 mSettingEngine->setDeliveryReport(true); |
422 else |
|
423 { |
|
424 mSettingEngine->setReceiveSerivceMessages(true); |
130 } |
425 } |
131 } |
426 } |
132 } |
427 } |
133 |
428 |
134 void MsgSettingsForm::changeCharEncoding(int index) |
429 void MsgSettingsForm::changeCharEncoding(int index) |
135 { |
430 { |
136 //set the character encoding |
431 //set the character encoding |
137 mSettingEngine->setCharacterEncoding(MsgSettingEngine::CharacterEncoding(index)); |
432 mSettingEngine->setCharacterEncoding(MsgSettingEngine::CharacterEncoding(index)); |
138 } |
433 } |
139 |
434 |
140 |
435 void MsgSettingsForm::changeMMSRetrievalMode(int index) |
|
436 { |
|
437 mSettingEngine->setMMSRetrieval(MsgSettingEngine::MmsRetrieval(index)); |
|
438 } |
|
439 |
|
440 void MsgSettingsForm::allowAnonymousMMS() |
|
441 { |
|
442 HbPushButton *btn = qobject_cast<HbPushButton *> (sender()); |
|
443 |
|
444 if (btn) |
|
445 { |
|
446 QString btnText = btn->text(); |
|
447 |
|
448 //check if the button pressed was Yes or NO |
|
449 if (LOC_MMS_YES == btnText) |
|
450 { |
|
451 mSettingEngine->setAnonymousMessages(true); |
|
452 } |
|
453 else |
|
454 { |
|
455 mSettingEngine->setAnonymousMessages(false); |
|
456 } |
|
457 } |
|
458 } |
|
459 |
|
460 void MsgSettingsForm::allowMMSAdverts() |
|
461 { |
|
462 HbPushButton *btn = qobject_cast<HbPushButton *> (sender()); |
|
463 |
|
464 if (btn) |
|
465 { |
|
466 QString btnText = btn->text(); |
|
467 |
|
468 //check if the button pressed was Yes or NO |
|
469 if (LOC_MMS_NO == btnText) |
|
470 { |
|
471 mSettingEngine->setReceiveMMSAdverts(true); |
|
472 } |
|
473 else |
|
474 { |
|
475 mSettingEngine->setReceiveMMSAdverts(false); |
|
476 } |
|
477 } |
|
478 } |
|
479 |
|
480 void MsgSettingsForm::changeAccessPoint(int index) |
|
481 { |
|
482 // save to the mms settings |
|
483 mSettingEngine->setMMSAccesspoint(index); |
|
484 } |
|
485 |
|
486 void MsgSettingsForm::onPressedCustomButton() |
|
487 { |
|
488 HbPushButton *btn = qobject_cast<HbPushButton *> (sender()); |
|
489 |
|
490 if (btn) |
|
491 { |
|
492 QString btnText = btn->text(); |
|
493 if (btnText == mSmsMCSettingsGroup.at(1)) |
|
494 { |
|
495 // emit the signal to open add view |
|
496 emit newSMSCCenterClicked(-1); |
|
497 } |
|
498 else |
|
499 { |
|
500 int index = mSmsServiceList.indexOf(btnText); |
|
501 emit newSMSCCenterClicked(index); |
|
502 } |
|
503 } |
|
504 } |
|
505 |
|
506 void MsgSettingsForm::onSMSCurrentIndexChanged(int index) |
|
507 { |
|
508 //set into msg settings |
|
509 mSettingEngine->setSMSMessageCenter(index); |
|
510 } |
|
511 |
|
512 void MsgSettingsForm::expandSMSSettings() |
|
513 { |
|
514 QModelIndex index_sms = settingsModel->indexFromItem(mSmsMCGroup); |
|
515 |
|
516 this->setExpanded(index_sms, true); |
|
517 } |
141 //EOF |
518 //EOF |