15 * |
15 * |
16 */ |
16 */ |
17 |
17 |
18 #include "msgsmscentersettingsform.h" |
18 #include "msgsmscentersettingsform.h" |
19 #include "msgsettingengine.h" |
19 #include "msgsettingengine.h" |
|
20 #include "msgsettingsdataformcustomitem.h" |
20 |
21 |
21 #include <hbdataformviewitem.h> |
22 #include <hbdataformviewitem.h> |
22 #include <hbdataformmodelitem.h> |
23 #include <hbdataformmodelitem.h> |
23 #include <hbdataformmodel.h> |
24 #include <hbdataformmodel.h> |
24 #include <hblineedit.h> |
25 #include <hblineedit.h> |
|
26 #include <HbNotificationDialog> |
25 #include <hbinputeditorinterface.h> |
27 #include <hbinputeditorinterface.h> |
|
28 #include <hbmessagebox.h> |
26 #include "debugtraces.h" |
29 #include "debugtraces.h" |
27 |
30 |
28 //Localized constants |
31 //Localized constants |
29 #define LOC_NEW_SMS_CENTRE hbTrId("txt_messaging_title_new_sms_message_centre") |
32 #define LOC_NEW_SMS_CENTRE hbTrId("txt_messaging_title_new_sms_message_centre") |
30 #define LOC_EDIT_SMS_CENTRE hbTrId("txt_messaging_title_edit_sms_message_centre") |
33 #define LOC_EDIT_SMS_CENTRE hbTrId("txt_messaging_title_edit_sms_message_centre") |
31 #define LOC_SMS_CENTRE_NAME hbTrId("txt_messaging_setlabel_message_centre_name") |
34 #define LOC_SMS_CENTRE_NAME hbTrId("txt_messaging_setlabel_message_centre_name") |
32 #define LOC_SMS_CENTRE_NUMBER hbTrId("txt_messaging_setlabel_message_centre_number") |
35 #define LOC_SMS_CENTRE_NUMBER hbTrId("txt_messaging_setlabel_message_centre_number") |
33 |
36 #define LOC_SMS_CENTRE_DELETE hbTrId("txt_messaging_button_delete_message_centre") |
34 |
37 #define LOC_MESSAGE_CENTER_SAVED hbTrId("txt_messaging_setlabel_message_centre_saved") |
35 MsgSMSCenterSettingsForm::MsgSMSCenterSettingsForm(int view, QGraphicsItem *parent) : |
38 #define LOC_BUTTON_DELETE hbTrId("txt_common_button_delete") |
|
39 #define LOC_BUTTON_CANCEL hbTrId("txt_common_button_cancel") |
|
40 |
|
41 MsgSMSCenterSettingsForm::MsgSMSCenterSettingsForm(int view, |
|
42 QGraphicsItem *parent) : |
36 HbDataForm(parent), mEdit1(0), mEdit2(0), mView(view) |
43 HbDataForm(parent), mEdit1(0), mEdit2(0), mView(view) |
37 { |
44 { |
38 QString heading; |
45 QString heading; |
39 if (mView == -1) { |
46 if (mView == -1) |
|
47 { |
40 heading = LOC_NEW_SMS_CENTRE; |
48 heading = LOC_NEW_SMS_CENTRE; |
41 } |
49 } |
42 else { |
50 else |
|
51 { |
43 heading = LOC_EDIT_SMS_CENTRE; |
52 heading = LOC_EDIT_SMS_CENTRE; |
|
53 //custom prototype |
|
54 MsgSettingsDataFormCustomItem* customPrototype = |
|
55 new MsgSettingsDataFormCustomItem(this); |
|
56 |
|
57 QList<HbAbstractViewItem*> protos = this->itemPrototypes(); |
|
58 protos.append(customPrototype); |
|
59 this->setItemPrototypes(protos); |
44 } |
60 } |
45 |
61 |
46 this->setHeading(heading); |
62 this->setHeading(heading); |
47 |
63 |
48 bool b = connect(this, |
64 bool b = connect(this, |
49 SIGNAL(itemShown(const QModelIndex&)), |
65 SIGNAL(itemShown(const QModelIndex&)), |
50 this, SLOT(onItemShown(const QModelIndex&))); |
66 this, |
51 |
67 SLOT(onItemShown(const QModelIndex&))); |
|
68 |
52 QDEBUG_WRITE_FORMAT("MsgSMSCenterSettingsForm::MsgSMSCenterSettingsForm initialized.. ", b) |
69 QDEBUG_WRITE_FORMAT("MsgSMSCenterSettingsForm::MsgSMSCenterSettingsForm initialized.. ", b) |
53 |
70 |
54 mSettingEngine = new MsgSettingEngine(); |
71 mSettingEngine = new MsgSettingEngine(); |
55 |
72 |
56 initSettingModel(); |
73 initSettingModel(); |
57 } |
74 } |
58 |
75 |
59 MsgSMSCenterSettingsForm::~MsgSMSCenterSettingsForm() |
76 MsgSMSCenterSettingsForm::~MsgSMSCenterSettingsForm() |
60 { |
77 { |
61 delete mSettingEngine; |
78 delete mSettingEngine; |
62 } |
79 } |
63 |
80 |
64 void MsgSMSCenterSettingsForm::initSettingModel() |
81 void MsgSMSCenterSettingsForm::initSettingModel() |
65 { |
82 { |
66 QDEBUG_WRITE("MsgSMSCenterSettingsForm::initSettingModel"); |
83 QDEBUG_WRITE("MsgSMSCenterSettingsForm::initSettingModel"); |
67 HbDataFormModel *settingsmodel = new HbDataFormModel(); |
84 HbDataFormModel *settingsmodel = new HbDataFormModel(); |
68 |
85 |
69 QString centerName = QString(); |
86 if (mView != -1) |
70 QString centerNumber = QString(); |
87 { |
71 |
88 mSettingEngine->smsCenterNameAndNumber(mView, |
72 if (mView != -1) { |
89 mCenterName, |
73 mSettingEngine->smsCenterNameAndNumber(mView, centerName, centerNumber); |
90 mCenterNumber); |
74 } |
91 } |
75 |
92 |
76 messageCenterName = new HbDataFormModelItem(HbDataFormModelItem::TextItem, |
93 messageCenterName = new HbDataFormModelItem(HbDataFormModelItem::TextItem, |
77 LOC_SMS_CENTRE_NAME, 0); |
94 LOC_SMS_CENTRE_NAME, |
78 |
95 0); |
79 messageCenterName->setContentWidgetData("text", centerName); |
96 |
80 |
97 messageCenterName->setContentWidgetData("text", mCenterName); |
81 settingsmodel->appendDataFormItem(messageCenterName, settingsmodel->invisibleRootItem()); |
98 |
82 |
99 settingsmodel->appendDataFormItem(messageCenterName, |
83 messageCenterNumber = new HbDataFormModelItem( |
100 settingsmodel->invisibleRootItem()); |
84 HbDataFormModelItem::TextItem, LOC_SMS_CENTRE_NUMBER, 0); |
101 |
85 |
102 messageCenterNumber |
86 messageCenterNumber->setContentWidgetData("text", centerNumber); |
103 = new HbDataFormModelItem(HbDataFormModelItem::TextItem, |
87 |
104 LOC_SMS_CENTRE_NUMBER, |
88 settingsmodel->appendDataFormItem(messageCenterNumber, settingsmodel->invisibleRootItem()); |
105 0); |
|
106 |
|
107 messageCenterNumber->setContentWidgetData("text", mCenterNumber); |
|
108 |
|
109 settingsmodel->appendDataFormItem(messageCenterNumber, |
|
110 settingsmodel->invisibleRootItem()); |
|
111 |
|
112 if (mView != -1) /// edit case delete button required |
|
113 { |
|
114 //CUSTOM SETTING ITEM HbButton |
|
115 HbDataFormModelItem::DataItemType |
|
116 customButtonGeneral = |
|
117 static_cast<HbDataFormModelItem::DataItemType> ( |
|
118 HbDataFormModelItem::CustomItemBase + 1); |
|
119 |
|
120 HbDataFormModelItem |
|
121 *deleteMessageCentre = |
|
122 settingsmodel->appendDataFormItem( |
|
123 customButtonGeneral, |
|
124 QString(""), |
|
125 settingsmodel->invisibleRootItem()); |
|
126 |
|
127 deleteMessageCentre->setContentWidgetData("text", |
|
128 LOC_SMS_CENTRE_DELETE); |
|
129 this->addConnection(deleteMessageCentre, |
|
130 SIGNAL(clicked()), |
|
131 this, |
|
132 SLOT(onPressedCustomButton())); |
|
133 } |
89 |
134 |
90 this->setModel(settingsmodel); |
135 this->setModel(settingsmodel); |
91 } |
136 } |
92 |
137 |
93 |
|
94 void MsgSMSCenterSettingsForm::commitChanges() |
138 void MsgSMSCenterSettingsForm::commitChanges() |
95 { |
139 { |
96 |
140 //commit changes |
97 //commit changes |
141 QString centerName; |
98 if(mEdit1) |
142 QString centerNumber; |
99 mCenterName = mEdit1->text(); |
143 |
100 |
144 if (mEdit1) |
|
145 centerName = mEdit1->text(); |
|
146 |
101 if (mEdit2) |
147 if (mEdit2) |
102 mCenterNumber = mEdit2->text(); |
148 centerNumber = mEdit2->text(); |
103 |
149 |
104 if (mCenterName.isEmpty() || mCenterNumber.isEmpty()) { |
150 // check if any of the field are empty |
|
151 // OR the data unchanged, then return dont commit |
|
152 if (centerName.isEmpty() || centerNumber.isEmpty() || (centerName |
|
153 == mCenterName && centerNumber == mCenterNumber)) |
|
154 { |
105 //if mCenterName or mCenterNumber is empty do not commit. |
155 //if mCenterName or mCenterNumber is empty do not commit. |
106 return; |
156 return; |
107 } |
157 } |
108 |
158 |
109 QDEBUG_WRITE("MsgSMSCenterSettingsForm::commitChanges"); |
159 QDEBUG_WRITE("MsgSMSCenterSettingsForm::commitChanges"); |
110 if (mView == -1) { |
160 if (mView == -1) |
111 mSettingEngine->addSmsMessageCenter(mCenterName, mCenterNumber); |
161 { |
112 } |
162 mSettingEngine->addSmsMessageCenter(centerName, centerNumber); |
113 else { |
163 } |
114 mSettingEngine->editSmsMessageCenter(mCenterName, mCenterNumber, mView); |
164 else |
|
165 { |
|
166 mSettingEngine->editSmsMessageCenter(centerName, |
|
167 centerNumber, |
|
168 mView); |
|
169 |
|
170 HbNotificationDialog::launchDialog(LOC_MESSAGE_CENTER_SAVED); |
115 } |
171 } |
116 QDEBUG_WRITE("ex MsgSMSCenterSettingsForm::commitChanges"); |
172 QDEBUG_WRITE("ex MsgSMSCenterSettingsForm::commitChanges"); |
117 |
|
118 } |
173 } |
119 |
174 |
120 void MsgSMSCenterSettingsForm::onItemShown(const QModelIndex& topLeft) |
175 void MsgSMSCenterSettingsForm::onItemShown(const QModelIndex& topLeft) |
121 { |
176 { |
122 |
177 |
123 QDEBUG_WRITE("DataForm MsgSMSCenterSettingsForm::onItemShown"); |
178 QDEBUG_WRITE("DataForm MsgSMSCenterSettingsForm::onItemShown"); |
124 HbDataFormModelItem *itemData = |
179 HbDataFormModelItem *itemData = |
125 static_cast<HbDataFormModel *> (model())->itemFromIndex(topLeft); |
180 static_cast<HbDataFormModel *> (model())->itemFromIndex(topLeft); |
126 |
181 |
127 if (itemData && itemData == messageCenterName && !mEdit1) |
182 if (itemData && itemData == messageCenterName && !mEdit1) |
128 { |
183 { |
129 QDEBUG_WRITE("messageCenterName updated.."); |
184 QDEBUG_WRITE("messageCenterName updated.."); |
130 mEdit1 = static_cast<HbLineEdit *>(this->dataFormViewItem(topLeft)->dataItemContentWidget()); |
185 mEdit1 |
131 } |
186 = static_cast<HbLineEdit *> ( |
|
187 this->dataFormViewItem( |
|
188 topLeft)->dataItemContentWidget()); |
|
189 } |
132 else if (itemData && itemData == messageCenterNumber && !mEdit2) |
190 else if (itemData && itemData == messageCenterNumber && !mEdit2) |
133 { |
191 { |
134 QDEBUG_WRITE("messageCenterNumber updated.."); |
192 QDEBUG_WRITE("messageCenterNumber updated.."); |
135 mEdit2 = static_cast<HbLineEdit *>(this->dataFormViewItem(topLeft)->dataItemContentWidget()); |
193 mEdit2 |
136 HbEditorInterface editorInterface(mEdit2); |
194 = static_cast<HbLineEdit *> ( |
137 editorInterface.setUpAsPhoneNumberEditor(); |
195 this->dataFormViewItem( |
138 |
196 topLeft)->dataItemContentWidget()); |
139 } |
197 |
140 |
198 HbEditorInterface editorInterface(mEdit2); |
141 } |
199 editorInterface.setUpAsPhoneNumberEditor(); |
|
200 |
|
201 } |
|
202 } |
|
203 |
|
204 void MsgSMSCenterSettingsForm::onPressedCustomButton() |
|
205 { |
|
206 bool result = HbMessageBox::question("Delete message centre ?", |
|
207 LOC_BUTTON_DELETE, |
|
208 LOC_BUTTON_CANCEL); |
|
209 |
|
210 if (result) |
|
211 { |
|
212 //delete from m/w -- mView is the index to delete |
|
213 mSettingEngine->deleteSmsMessageCenter(mView); |
|
214 emit deleteMessageCentreAndClose(); |
|
215 } |
|
216 } |
|
217 |
|
218 //eof |
|
219 |