diff -r 238255e8b033 -r 84d9eb65b26f messagingapp/msgsettings/settingsview/src/msgsmscentersettingsform.cpp --- a/messagingapp/msgsettings/settingsview/src/msgsmscentersettingsform.cpp Fri Apr 16 14:56:15 2010 +0300 +++ b/messagingapp/msgsettings/settingsview/src/msgsmscentersettingsform.cpp Mon May 03 12:29:07 2010 +0300 @@ -17,12 +17,15 @@ #include "msgsmscentersettingsform.h" #include "msgsettingengine.h" +#include "msgsettingsdataformcustomitem.h" #include #include #include #include +#include #include +#include #include "debugtraces.h" //Localized constants @@ -30,30 +33,44 @@ #define LOC_EDIT_SMS_CENTRE hbTrId("txt_messaging_title_edit_sms_message_centre") #define LOC_SMS_CENTRE_NAME hbTrId("txt_messaging_setlabel_message_centre_name") #define LOC_SMS_CENTRE_NUMBER hbTrId("txt_messaging_setlabel_message_centre_number") - +#define LOC_SMS_CENTRE_DELETE hbTrId("txt_messaging_button_delete_message_centre") +#define LOC_MESSAGE_CENTER_SAVED hbTrId("txt_messaging_setlabel_message_centre_saved") +#define LOC_BUTTON_DELETE hbTrId("txt_common_button_delete") +#define LOC_BUTTON_CANCEL hbTrId("txt_common_button_cancel") -MsgSMSCenterSettingsForm::MsgSMSCenterSettingsForm(int view, QGraphicsItem *parent) : +MsgSMSCenterSettingsForm::MsgSMSCenterSettingsForm(int view, + QGraphicsItem *parent) : HbDataForm(parent), mEdit1(0), mEdit2(0), mView(view) { QString heading; - if (mView == -1) { + if (mView == -1) + { heading = LOC_NEW_SMS_CENTRE; } - else { + else + { heading = LOC_EDIT_SMS_CENTRE; + //custom prototype + MsgSettingsDataFormCustomItem* customPrototype = + new MsgSettingsDataFormCustomItem(this); + + QList protos = this->itemPrototypes(); + protos.append(customPrototype); + this->setItemPrototypes(protos); } this->setHeading(heading); bool b = connect(this, - SIGNAL(itemShown(const QModelIndex&)), - this, SLOT(onItemShown(const QModelIndex&))); - + SIGNAL(itemShown(const QModelIndex&)), + this, + SLOT(onItemShown(const QModelIndex&))); + QDEBUG_WRITE_FORMAT("MsgSMSCenterSettingsForm::MsgSMSCenterSettingsForm initialized.. ", b) - + mSettingEngine = new MsgSettingEngine(); - initSettingModel(); + initSettingModel(); } MsgSMSCenterSettingsForm::~MsgSMSCenterSettingsForm() @@ -63,79 +80,140 @@ void MsgSMSCenterSettingsForm::initSettingModel() { - QDEBUG_WRITE("MsgSMSCenterSettingsForm::initSettingModel"); + QDEBUG_WRITE("MsgSMSCenterSettingsForm::initSettingModel"); HbDataFormModel *settingsmodel = new HbDataFormModel(); - QString centerName = QString(); - QString centerNumber = QString(); - - if (mView != -1) { - mSettingEngine->smsCenterNameAndNumber(mView, centerName, centerNumber); + if (mView != -1) + { + mSettingEngine->smsCenterNameAndNumber(mView, + mCenterName, + mCenterNumber); } messageCenterName = new HbDataFormModelItem(HbDataFormModelItem::TextItem, - LOC_SMS_CENTRE_NAME, 0); + LOC_SMS_CENTRE_NAME, + 0); + + messageCenterName->setContentWidgetData("text", mCenterName); + + settingsmodel->appendDataFormItem(messageCenterName, + settingsmodel->invisibleRootItem()); - messageCenterName->setContentWidgetData("text", centerName); - - settingsmodel->appendDataFormItem(messageCenterName, settingsmodel->invisibleRootItem()); + messageCenterNumber + = new HbDataFormModelItem(HbDataFormModelItem::TextItem, + LOC_SMS_CENTRE_NUMBER, + 0); + + messageCenterNumber->setContentWidgetData("text", mCenterNumber); + + settingsmodel->appendDataFormItem(messageCenterNumber, + settingsmodel->invisibleRootItem()); - messageCenterNumber = new HbDataFormModelItem( - HbDataFormModelItem::TextItem, LOC_SMS_CENTRE_NUMBER, 0); + if (mView != -1) /// edit case delete button required + { + //CUSTOM SETTING ITEM HbButton + HbDataFormModelItem::DataItemType + customButtonGeneral = + static_cast ( + HbDataFormModelItem::CustomItemBase + 1); - messageCenterNumber->setContentWidgetData("text", centerNumber); - - settingsmodel->appendDataFormItem(messageCenterNumber, settingsmodel->invisibleRootItem()); + HbDataFormModelItem + *deleteMessageCentre = + settingsmodel->appendDataFormItem( + customButtonGeneral, + QString(""), + settingsmodel->invisibleRootItem()); + + deleteMessageCentre->setContentWidgetData("text", + LOC_SMS_CENTRE_DELETE); + this->addConnection(deleteMessageCentre, + SIGNAL(clicked()), + this, + SLOT(onPressedCustomButton())); + } this->setModel(settingsmodel); } - void MsgSMSCenterSettingsForm::commitChanges() { - - //commit changes - if(mEdit1) - mCenterName = mEdit1->text(); - + //commit changes + QString centerName; + QString centerNumber; + + if (mEdit1) + centerName = mEdit1->text(); + if (mEdit2) - mCenterNumber = mEdit2->text(); + centerNumber = mEdit2->text(); - if (mCenterName.isEmpty() || mCenterNumber.isEmpty()) { + // check if any of the field are empty + // OR the data unchanged, then return dont commit + if (centerName.isEmpty() || centerNumber.isEmpty() || (centerName + == mCenterName && centerNumber == mCenterNumber)) + { //if mCenterName or mCenterNumber is empty do not commit. return; } QDEBUG_WRITE("MsgSMSCenterSettingsForm::commitChanges"); - if (mView == -1) { - mSettingEngine->addSmsMessageCenter(mCenterName, mCenterNumber); + if (mView == -1) + { + mSettingEngine->addSmsMessageCenter(centerName, centerNumber); } - else { - mSettingEngine->editSmsMessageCenter(mCenterName, mCenterNumber, mView); + else + { + mSettingEngine->editSmsMessageCenter(centerName, + centerNumber, + mView); + + HbNotificationDialog::launchDialog(LOC_MESSAGE_CENTER_SAVED); } QDEBUG_WRITE("ex MsgSMSCenterSettingsForm::commitChanges"); - } void MsgSMSCenterSettingsForm::onItemShown(const QModelIndex& topLeft) - { - - QDEBUG_WRITE("DataForm MsgSMSCenterSettingsForm::onItemShown"); +{ + + QDEBUG_WRITE("DataForm MsgSMSCenterSettingsForm::onItemShown"); HbDataFormModelItem *itemData = - static_cast (model())->itemFromIndex(topLeft); + static_cast (model())->itemFromIndex(topLeft); if (itemData && itemData == messageCenterName && !mEdit1) - { - QDEBUG_WRITE("messageCenterName updated.."); - mEdit1 = static_cast(this->dataFormViewItem(topLeft)->dataItemContentWidget()); - } + { + QDEBUG_WRITE("messageCenterName updated.."); + mEdit1 + = static_cast ( + this->dataFormViewItem( + topLeft)->dataItemContentWidget()); + } else if (itemData && itemData == messageCenterNumber && !mEdit2) - { - QDEBUG_WRITE("messageCenterNumber updated.."); - mEdit2 = static_cast(this->dataFormViewItem(topLeft)->dataItemContentWidget()); - HbEditorInterface editorInterface(mEdit2); - editorInterface.setUpAsPhoneNumberEditor(); + { + QDEBUG_WRITE("messageCenterNumber updated.."); + mEdit2 + = static_cast ( + this->dataFormViewItem( + topLeft)->dataItemContentWidget()); + + HbEditorInterface editorInterface(mEdit2); + editorInterface.setUpAsPhoneNumberEditor(); + + } +} - } +void MsgSMSCenterSettingsForm::onPressedCustomButton() +{ + bool result = HbMessageBox::question("Delete message centre ?", + LOC_BUTTON_DELETE, + LOC_BUTTON_CANCEL); - } + if (result) + { + //delete from m/w -- mView is the index to delete + mSettingEngine->deleteSmsMessageCenter(mView); + emit deleteMessageCentreAndClose(); + } +} + +//eof +