20 |
20 |
21 #include <hbdataformmodelitem.h> |
21 #include <hbdataformmodelitem.h> |
22 #include <hbdataformmodel.h> |
22 #include <hbdataformmodel.h> |
23 #include <hbcombobox.h> |
23 #include <hbcombobox.h> |
24 #include <hbpushbutton.h> |
24 #include <hbpushbutton.h> |
25 #include <QStandardItemModel> |
|
26 |
25 |
27 #include "debugtraces.h" |
26 #include "debugtraces.h" |
28 |
27 |
29 //Localized constants |
28 //Localized constants |
30 #define LOC_MESSAGE_SETTINGS_HEADING hbTrId("txt_messaging_title_messaging_settings") |
|
31 #define LOC_RECEIVING_SERVICE_MESSAGES hbTrId("txt_messaging_setlabel_receiving_service_messages") |
29 #define LOC_RECEIVING_SERVICE_MESSAGES hbTrId("txt_messaging_setlabel_receiving_service_messages") |
32 #define LOC_ON hbTrId("txt_messaging_setlabel_val_on") |
30 #define LOC_ON hbTrId("txt_messaging_setlabel_val_on") |
33 #define LOC_OFF hbTrId("txt_messaging_setlabel_val_off") |
31 #define LOC_OFF hbTrId("txt_messaging_setlabel_val_off") |
34 #define LOC_REDUCED_SUPPORT hbTrId("txt_messaging_setlabel_val_reduced_support") |
32 #define LOC_REDUCED_SUPPORT hbTrId("txt_messaging_setlabel_val_reduced_support") |
35 #define LOC_FULL_SUPPORT hbTrId("txt_messaging_setlabel_val_full_support") |
33 #define LOC_FULL_SUPPORT hbTrId("txt_messaging_setlabel_val_full_support") |
45 #define LOC_MMS_AP_IN_USE hbTrId("txt_messaging_setlabel_mms_access_point_in_use") |
43 #define LOC_MMS_AP_IN_USE hbTrId("txt_messaging_setlabel_mms_access_point_in_use") |
46 #define LOC_SMS_CENTRE_IN_USE hbTrId("txt_messaging_setlabel_sms_message_centre_in_use") |
44 #define LOC_SMS_CENTRE_IN_USE hbTrId("txt_messaging_setlabel_sms_message_centre_in_use") |
47 #define LOC_ADD_NEW hbTrId("txt_messaging_button_add_new") |
45 #define LOC_ADD_NEW hbTrId("txt_messaging_button_add_new") |
48 #define LOC_ALWAYS_AUTOMATIC hbTrId("txt_messaging_setlabel_val_always_automatic") |
46 #define LOC_ALWAYS_AUTOMATIC hbTrId("txt_messaging_setlabel_val_always_automatic") |
49 #define LOC_AUTO_HOME_NETWORK hbTrId("txt_messaging_setlabel_val_auto_home_network") |
47 #define LOC_AUTO_HOME_NETWORK hbTrId("txt_messaging_setlabel_val_auto_home_network") |
50 #define LOC_MANUAL hbTrId("txt_messaging_setlabel_val_mannual") |
48 #define LOC_MANUAL hbTrId("txt_messaging_setlabel_val_manual") |
51 #define LOC_MMS_YES hbTrId("txt_messaging_setlabel_allow_anonymous_mms_val_yes") |
49 #define LOC_MMS_YES hbTrId("txt_messaging_setlabel_allow_anonymous_mms_val_yes") |
52 #define LOC_MMS_NO hbTrId("txt_messaging_setlabel_allow_anonymous_mms_val_no") |
50 #define LOC_MMS_NO hbTrId("txt_messaging_setlabel_allow_anonymous_mms_val_no") |
53 |
51 |
54 MsgSettingsForm::MsgSettingsForm(QGraphicsItem *parent) : |
52 MsgSettingsForm::MsgSettingsForm( |
|
53 MsgSettingsView::SettingsView settingsView, |
|
54 QGraphicsItem *parent) : |
55 HbDataForm(parent) |
55 HbDataForm(parent) |
56 { |
56 { |
57 this->setHeading(LOC_MESSAGE_SETTINGS_HEADING); |
|
58 |
|
59 mSettingEngine = new MsgSettingEngine(); |
57 mSettingEngine = new MsgSettingEngine(); |
60 |
58 |
61 //custom prototype |
59 //custom prototype |
62 MsgSettingsDataFormCustomItem* customPrototype = |
60 MsgSettingsDataFormCustomItem* customPrototype = |
63 new MsgSettingsDataFormCustomItem(this); |
61 new MsgSettingsDataFormCustomItem(this); |
67 this->setItemPrototypes(protos); |
65 this->setItemPrototypes(protos); |
68 |
66 |
69 mSmsMCSettingsGroup << LOC_SMS_CENTRE_IN_USE << LOC_ADD_NEW; |
67 mSmsMCSettingsGroup << LOC_SMS_CENTRE_IN_USE << LOC_ADD_NEW; |
70 |
68 |
71 //initialize the form model |
69 //initialize the form model |
72 initSettingModel(); |
70 initSettingModel(settingsView); |
73 } |
71 } |
74 |
72 |
75 MsgSettingsForm::~MsgSettingsForm() |
73 MsgSettingsForm::~MsgSettingsForm() |
76 { |
74 { |
77 delete mSettingEngine; |
75 delete mSettingEngine; |
78 } |
76 } |
79 |
77 |
80 void MsgSettingsForm::initSettingModel() |
78 void MsgSettingsForm::initSettingModel( |
|
79 MsgSettingsView::SettingsView settingsView) |
81 { |
80 { |
82 settingsModel = new HbDataFormModel(0); |
81 settingsModel = new HbDataFormModel(0); |
83 |
82 |
84 MsgSettingEngine::CharacterEncoding charEncoding = |
83 MsgSettingEngine::CharacterEncoding charEncoding = |
85 MsgSettingEngine::ReducedSupport; |
84 MsgSettingEngine::ReducedSupport; |
152 settingsModel->invisibleRootItem()); |
151 settingsModel->invisibleRootItem()); |
153 |
152 |
154 addSmsMCGroupItem(mSmsMCGroup); |
153 addSmsMCGroupItem(mSmsMCGroup); |
155 |
154 |
156 this->setModel(settingsModel); |
155 this->setModel(settingsModel); |
|
156 |
|
157 if (settingsView == MsgSettingsView::MMSView) |
|
158 { |
|
159 //set MMS Settings as expanded |
|
160 QModelIndex index_mms = settingsModel->indexFromItem(mmsGroup); |
|
161 //TODO: dataform issue on expanding one group item |
|
162 //this->setExpanded(index_mms, true); |
|
163 } |
|
164 else if(settingsView == MsgSettingsView::SMSView) |
|
165 { |
|
166 //expandSMSSettings(); |
|
167 } |
|
168 |
157 } |
169 } |
158 |
170 |
159 void MsgSettingsForm::refreshViewForm() |
171 void MsgSettingsForm::refreshViewForm() |
160 { |
172 { |
161 updateSmsMCGroupItem(mSmsMCGroup); |
173 updateSmsMCGroupItem(mSmsMCGroup); |
166 //1. update the combobox model item |
178 //1. update the combobox model item |
167 int defaultServiceCenter = -1; |
179 int defaultServiceCenter = -1; |
168 mSmsServiceList.clear(); |
180 mSmsServiceList.clear(); |
169 mSettingEngine->allSMSMessageCenter(mSmsServiceList, defaultServiceCenter); |
181 mSettingEngine->allSMSMessageCenter(mSmsServiceList, defaultServiceCenter); |
170 |
182 |
171 mSmsServiceCenterModel->clear(); |
183 //set the content widget data again |
172 |
184 smsMessageCenter->setContentWidgetData("items", mSmsServiceList); |
173 //recreate all the model items |
185 if(defaultServiceCenter > 0) |
174 int itemCount = mSmsServiceList.count(); |
186 { |
175 for (int i = 0; i < itemCount; ++i) |
|
176 { |
|
177 QStandardItem *item = new QStandardItem; |
|
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", |
187 smsMessageCenter->setContentWidgetData("currentIndex", |
188 defaultServiceCenter); |
188 defaultServiceCenter); |
|
189 } |
189 |
190 |
190 //2. refresh all the custom buttons again |
191 //2. refresh all the custom buttons again |
191 int childCount = parent->childCount(); |
192 int childCount = parent->childCount(); |
192 int totalServices = mSmsServiceList.count(); |
193 int totalServices = mSmsServiceList.count(); |
193 |
194 |
301 HbDataFormModelItem *accessPoint = |
302 HbDataFormModelItem *accessPoint = |
302 new HbDataFormModelItem(HbDataFormModelItem::ComboBoxItem, |
303 new HbDataFormModelItem(HbDataFormModelItem::ComboBoxItem, |
303 LOC_MMS_AP_IN_USE, |
304 LOC_MMS_AP_IN_USE, |
304 0); |
305 0); |
305 |
306 |
306 QStandardItemModel* comboModel = new QStandardItemModel(); |
|
307 |
|
308 QStringList mmsList; |
307 QStringList mmsList; |
309 int defaultAccessPointIndex = -1; |
308 int defaultAccessPointIndex = -1; |
310 |
309 |
311 mSettingEngine->allMMsAcessPoints(mmsList, defaultAccessPointIndex); |
310 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); |
311 accessPoint->setContentWidgetData("items", mmsList); |
321 if (defaultAccessPointIndex >= 0) |
312 if (defaultAccessPointIndex >= 0) |
322 { |
313 { |
323 accessPoint->setContentWidgetData("currentIndex", |
314 accessPoint->setContentWidgetData("currentIndex", |
324 defaultAccessPointIndex); |
315 defaultAccessPointIndex); |
343 mSmsMCSettingsGroup.at(0), |
334 mSmsMCSettingsGroup.at(0), |
344 0); |
335 0); |
345 |
336 |
346 int defaultServiceCenter = -1; |
337 int defaultServiceCenter = -1; |
347 mSmsServiceList.clear(); |
338 mSmsServiceList.clear(); |
|
339 |
348 mSettingEngine->allSMSMessageCenter(mSmsServiceList, defaultServiceCenter); |
340 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); |
341 smsMessageCenter->setContentWidgetData("items", mSmsServiceList); |
361 |
|
362 if (defaultServiceCenter >= 0) |
342 if (defaultServiceCenter >= 0) |
363 { |
343 { |
364 smsMessageCenter->setContentWidgetData("currentIndex", |
344 smsMessageCenter->setContentWidgetData("currentIndex", |
365 defaultServiceCenter); |
345 defaultServiceCenter); |
366 } |
346 } |