messagingapp/msgsettings/settingsview/src/msgsmscentersettingsform.cpp
changeset 25 84d9eb65b26f
parent 23 238255e8b033
child 27 e4592d119491
child 37 518b245aa84c
equal deleted inserted replaced
23:238255e8b033 25:84d9eb65b26f
    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