messagingapp/msgsettings/settingsview/src/msgadvancedsettingsform.cpp
changeset 25 84d9eb65b26f
parent 23 238255e8b033
child 27 e4592d119491
child 37 518b245aa84c
child 79 2981cb3aa489
equal deleted inserted replaced
23:238255e8b033 25:84d9eb65b26f
     1 /*
       
     2  * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3  * All rights reserved.
       
     4  * This component and the accompanying materials are made available
       
     5  * under the terms of "Eclipse Public License v1.0"
       
     6  * which accompanies this distribution, and is available
       
     7  * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8  *
       
     9  * Initial Contributors:
       
    10  * Nokia Corporation - initial contribution.
       
    11  *
       
    12  * Contributors:
       
    13  *
       
    14  * Description:This class is for drawing form for advanced view 
       
    15  * settings
       
    16  *
       
    17  */
       
    18 
       
    19 #include "msgadvancedsettingsform.h"
       
    20 #include "msgsettingengine.h"
       
    21 
       
    22 #include <hbdataformviewitem.h>
       
    23 #include <hbdataformmodelitem.h>
       
    24 #include <hbdataformmodel.h>
       
    25 #include <hbpushbutton.h>
       
    26 #include <hbcombobox.h>
       
    27 #include <hbinputeditorinterface.h>
       
    28 #include <HbLineEdit>
       
    29 #include <QStandardItemModel>
       
    30 #include "debugtraces.h"
       
    31 
       
    32 //Localized Strings
       
    33 #define LOC_ADVANCED_SETTINGS hbTrId("txt_messaging_title_advanced_settings_messaging")
       
    34 #define LOC_MMS_SETTINGS hbTrId("txt_messaging_subhead_mms_settings")
       
    35 #define LOC_SMS_CENTRE_SETTINGS hbTrId("txt_messaging_subhead_sms_message_centre_settings")
       
    36 #define LOC_MMS_CREATION_MODE hbTrId("txt_messaging_setlabel_mms_creation_mode")
       
    37 #define LOC_MMS_RETRIEVAL hbTrId("txt_messaging_setlabel_mms_retrieval")
       
    38 #define LOC_ALLOW_ANONYMOUS_MMS hbTrId("txt_messaging_setlabel_allow_anonymous_mms_message")
       
    39 #define LOC_RECEIVE_MMS_ADVERTS hbTrId("txt_messaging_setlabel_receive_mms_adverts")
       
    40 #define LOC_MMS_AP_IN_USE hbTrId("txt_messaging_setlabel_mms_access_point_in_use")
       
    41 #define LOC_SMS_CENTRE_IN_USE hbTrId("txt_messaging_setlabel_sms_message_centre_in_use")
       
    42 #define LOC_ADD_NEW hbTrId("txt_messaging_button_add_new")
       
    43 
       
    44 #define LOC_RESTRICTED hbTrId("txt_messaging_setlabel_val_restricted")
       
    45 #define LOC_GUIDED hbTrId("txt_messaging_setlabel_val_guided")
       
    46 #define LOC_FREE hbTrId("txt_messaging_setlabel_val_free")
       
    47 
       
    48 #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")
       
    50 #define LOC_MANUAL hbTrId("txt_messaging_setlabel_val_mannual")
       
    51 #define LOC_ON hbTrId("txt_messaging_setlabel_val_on")
       
    52 #define LOC_OFF hbTrId("txt_messaging_setlabel_val_off")
       
    53 
       
    54 #define LOC_MMS_YES hbTrId("txt_messaging_setlabel_allow_anonymous_mms_val_yes")
       
    55 #define LOC_MMS_NO hbTrId("txt_messaging_setlabel_allow_anonymous_mms_val_no")
       
    56 
       
    57 MsgAdvancedSettingsForm::MsgAdvancedSettingsForm(QGraphicsItem *parent) :
       
    58     HbDataForm(parent), mSmsServiceCenterModel(0), mEditEmailGateway(0),
       
    59             mEditEmailServiceNumber(0), mDefaultServiceCenter(0)
       
    60     {
       
    61     this->setHeading(LOC_ADVANCED_SETTINGS);
       
    62 
       
    63     mSettingEngine = new MsgSettingEngine();
       
    64 
       
    65     initGroupPageName();
       
    66     initSettingModel();
       
    67     }
       
    68 
       
    69 MsgAdvancedSettingsForm::~MsgAdvancedSettingsForm()
       
    70     {
       
    71     delete mSettingEngine;
       
    72     }
       
    73 
       
    74 void MsgAdvancedSettingsForm::initGroupPageName()
       
    75 {
       
    76     mGroupPageName << LOC_MMS_SETTINGS 
       
    77                    << LOC_SMS_CENTRE_SETTINGS 
       
    78                    << tr("SMS E-mail settings");
       
    79 
       
    80     mmsSettingsGroup << LOC_MMS_CREATION_MODE 
       
    81                      << LOC_MMS_RETRIEVAL 
       
    82                      << LOC_ALLOW_ANONYMOUS_MMS 
       
    83                      << LOC_RECEIVE_MMS_ADVERTS 
       
    84                      << LOC_MMS_AP_IN_USE;
       
    85 
       
    86     mSmsMCSettingsGroup << LOC_SMS_CENTRE_IN_USE 
       
    87                         << LOC_ADD_NEW;
       
    88 
       
    89     mSmsEmailSettingsGroup << tr("E-mail gateway") << tr("E-mail service centre number");
       
    90 }
       
    91 
       
    92 void MsgAdvancedSettingsForm::initSettingModel()
       
    93 {
       
    94     HbDataFormModel *advancedSettingsmodel = new HbDataFormModel();
       
    95 
       
    96     mMMSGroup = new HbDataFormModelItem(HbDataFormModelItem::GroupItem, mGroupPageName.at(0), 0);
       
    97 
       
    98     HbDataFormModelItem* rootItem = advancedSettingsmodel->invisibleRootItem();
       
    99 
       
   100     advancedSettingsmodel->appendDataFormItem(mMMSGroup, rootItem);
       
   101 
       
   102     addMMSGroupItem(mMMSGroup);
       
   103 
       
   104     mSmsMCGroup = new HbDataFormModelItem(HbDataFormModelItem::GroupItem, mGroupPageName.at(1), 0);
       
   105 
       
   106     advancedSettingsmodel->appendDataFormItem(mSmsMCGroup, rootItem);
       
   107 
       
   108     addSmsMCGroupItem(mSmsMCGroup, advancedSettingsmodel);
       
   109 
       
   110     mSmsEmailGroup = new HbDataFormModelItem(HbDataFormModelItem::GroupItem, mGroupPageName.at(2),
       
   111         0);
       
   112 
       
   113     advancedSettingsmodel->appendDataFormItem(mSmsEmailGroup, rootItem);
       
   114 
       
   115     addSmsEmailGroupItem(mSmsEmailGroup);
       
   116 
       
   117     this->setModel(advancedSettingsmodel);
       
   118 }
       
   119 
       
   120 void MsgAdvancedSettingsForm::addMMSGroupItem(HbDataFormModelItem* parent)
       
   121 {
       
   122     //read settings
       
   123     MsgSettingEngine::MmsCreationMode creationMode = MsgSettingEngine::Guided;
       
   124     MsgSettingEngine::MmsRetrieval retrieval = MsgSettingEngine::AlwaysAutomatic;
       
   125     bool allowAnonymous = true;
       
   126     bool allowAdverts = true;
       
   127 
       
   128     mSettingEngine->advanceMmsSettings(creationMode, retrieval, allowAnonymous, allowAdverts);
       
   129     // add all the mmss group item
       
   130     HbDataFormModelItem *mmsCreationMode = new HbDataFormModelItem(
       
   131         HbDataFormModelItem::ComboBoxItem, mmsSettingsGroup.at(0), 0);
       
   132 
       
   133     QStringList mmsCreationModeList;
       
   134     mmsCreationModeList << LOC_RESTRICTED 
       
   135                         << LOC_GUIDED 
       
   136                         << LOC_FREE;
       
   137 
       
   138     mmsCreationMode->setContentWidgetData("items", mmsCreationModeList);
       
   139     mmsCreationMode->setContentWidgetData("currentIndex", int(creationMode));
       
   140     this->addConnection(mmsCreationMode, SIGNAL(currentIndexChanged(int)),
       
   141             this, SLOT(changeMMSCreationMode(int)));
       
   142 
       
   143     HbDataFormModelItem *mmsRetrieval = new HbDataFormModelItem(
       
   144             HbDataFormModelItem::ComboBoxItem, mmsSettingsGroup.at(1), 0);
       
   145 
       
   146     QStringList mmsRetrievalList;
       
   147     mmsRetrievalList << LOC_ALWAYS_AUTOMATIC 
       
   148                      << LOC_AUTO_HOME_NETWORK 
       
   149                      << LOC_MANUAL
       
   150                      << LOC_OFF
       
   151                      << LOC_ON;
       
   152 
       
   153     mmsRetrieval->setContentWidgetData("items", mmsRetrievalList);
       
   154     mmsRetrieval->setContentWidgetData("currentIndex", int(retrieval));
       
   155     this->addConnection(mmsRetrieval, SIGNAL(currentIndexChanged(int)), this,
       
   156             SLOT(changeMMSRetrievalMode(int)));
       
   157 
       
   158     HbDataFormModelItem *anonymousMMS = new HbDataFormModelItem(
       
   159         HbDataFormModelItem::ToggleValueItem, mmsSettingsGroup.at(2), 0);
       
   160 
       
   161     QStringList anonymousMMSList;
       
   162     anonymousMMSList << LOC_MMS_NO 
       
   163                      << LOC_MMS_YES;
       
   164 
       
   165     int defaultIndex = int(allowAnonymous);
       
   166     int alternateIndex = (defaultIndex + 1) % anonymousMMSList.count();
       
   167 
       
   168     anonymousMMS->setContentWidgetData("text", anonymousMMSList.at(
       
   169             defaultIndex));
       
   170     anonymousMMS->setContentWidgetData("additionalText", anonymousMMSList.at(
       
   171             alternateIndex));
       
   172     this->addConnection(anonymousMMS, SIGNAL(clicked()), this,
       
   173             SLOT(allowAnonymousMMS()));
       
   174 
       
   175     HbDataFormModelItem *mmsAdverts = new HbDataFormModelItem(HbDataFormModelItem::ToggleValueItem,
       
   176         mmsSettingsGroup.at(3), 0);
       
   177 
       
   178     QStringList mmsAdvertsList;
       
   179     mmsAdvertsList << LOC_MMS_NO 
       
   180                    << LOC_MMS_YES;
       
   181 
       
   182     defaultIndex = int(allowAdverts);
       
   183     alternateIndex = (defaultIndex + 1) % mmsAdvertsList.count();
       
   184 
       
   185     mmsAdverts->setContentWidgetData("text", mmsAdvertsList.at(defaultIndex));
       
   186     mmsAdverts->setContentWidgetData("additionalText", mmsAdvertsList.at(
       
   187             alternateIndex));
       
   188     this->addConnection(mmsAdverts, SIGNAL(clicked()), this,
       
   189             SLOT(allowMMSAdverts()));
       
   190 
       
   191     HbDataFormModelItem *accessPoint = new HbDataFormModelItem(HbDataFormModelItem::ComboBoxItem,
       
   192         mmsSettingsGroup.at(4), 0);
       
   193 
       
   194     QStandardItemModel* comboModel = new QStandardItemModel();
       
   195 
       
   196     QStringList mmsList;
       
   197     int defaultAccessPointIndex = -1;
       
   198 
       
   199     mSettingEngine->allMMsAcessPoints(mmsList, defaultAccessPointIndex);
       
   200     int accessPoints = mmsList.count();
       
   201     for (int a = 0; a < accessPoints; ++a)
       
   202         {
       
   203         QStandardItem* item = new QStandardItem();
       
   204         item->setData(mmsList[a], Qt::DisplayRole);
       
   205         comboModel->appendRow(item);
       
   206         }
       
   207     accessPoint->setModel(comboModel);
       
   208     accessPoint->setContentWidgetData("items", mmsList);
       
   209     if (defaultAccessPointIndex >= 0)
       
   210         {
       
   211         accessPoint->setContentWidgetData("currentIndex",
       
   212                 defaultAccessPointIndex);
       
   213         }
       
   214     QDEBUG_WRITE_FORMAT("Settings: adding accesspoints..", defaultAccessPointIndex);
       
   215     this->addConnection(accessPoint, SIGNAL(currentIndexChanged(int)), this,
       
   216             SLOT(changeAccessPoint(int)));
       
   217 
       
   218     parent->appendChild(mmsCreationMode);
       
   219     parent->appendChild(mmsRetrieval);
       
   220     parent->appendChild(anonymousMMS);
       
   221     parent->appendChild(mmsAdverts);
       
   222     parent->appendChild(accessPoint);
       
   223 }
       
   224 
       
   225 void MsgAdvancedSettingsForm::addSmsMCGroupItem(HbDataFormModelItem* parent,
       
   226     HbDataFormModel* advancedSettingsmodel)
       
   227 {
       
   228     // add all the sms message center group item
       
   229     HbDataFormModelItem *smsMessageCenter = new HbDataFormModelItem(
       
   230         HbDataFormModelItem::ComboBoxItem, mSmsMCSettingsGroup.at(0), 0);
       
   231 
       
   232     mSettingEngine->allSMSMessageCenter(mSmsServiceList,
       
   233             mDefaultServiceCenter);
       
   234             
       
   235     QDEBUG_WRITE_FORMAT("MsgAdvancedSettingsForm::addSmsMCGroupItem Default", mDefaultServiceCenter);
       
   236     //create and fill service center model.
       
   237     createServiceCenterModel();
       
   238 
       
   239     smsMessageCenter->setModel(mSmsServiceCenterModel);
       
   240     smsMessageCenter->setContentWidgetData("items", mSmsServiceList);
       
   241     
       
   242     if (mDefaultServiceCenter > 0)
       
   243     {
       
   244      smsMessageCenter->setContentWidgetData("currentIndex",
       
   245              mDefaultServiceCenter);
       
   246     }
       
   247     
       
   248     this->addConnection(smsMessageCenter, SIGNAL(currentIndexChanged(int)),
       
   249             this, SLOT(onSMSCurrentIndexChanged(int)));
       
   250 
       
   251     parent->appendChild(smsMessageCenter);
       
   252 
       
   253     //CUSTOM SETTING ITEM HbButton
       
   254     HbDataFormModelItem::DataItemType
       
   255             customButtonGeneral =
       
   256                     static_cast<HbDataFormModelItem::DataItemType> (HbDataFormModelItem::CustomItemBase
       
   257                             + 1);
       
   258 
       
   259     int totalServices = mSmsServiceList.count();
       
   260     for (int index = 0; index < totalServices; index++)
       
   261         {
       
   262         HbDataFormModelItem *newMessageCenters =
       
   263                 advancedSettingsmodel->appendDataFormItem(
       
   264                         customButtonGeneral, QString(""), parent);
       
   265 
       
   266         newMessageCenters->setContentWidgetData("text", mSmsServiceList.at(
       
   267                 index));
       
   268         this->addConnection(
       
   269                 newMessageCenters, 
       
   270                 SIGNAL(clicked()), 
       
   271                 this,
       
   272                 SLOT(onPressedCustomButton()));
       
   273         this->addConnection(
       
   274                 newMessageCenters, 
       
   275                 SIGNAL(longPress(QPointF)),
       
   276                 this,
       
   277                 SLOT(onLongPress(QPointF)));
       
   278         }
       
   279 
       
   280     HbDataFormModelItem *newMessageCenters = advancedSettingsmodel->appendDataFormItem(
       
   281             customButtonGeneral, QString(""), parent);
       
   282 
       
   283     newMessageCenters->setContentWidgetData("text", mSmsMCSettingsGroup.at(1));
       
   284     this->addConnection(newMessageCenters, SIGNAL(clicked()),
       
   285             this,SLOT(onPressedCustomButton()));
       
   286     this->addConnection(newMessageCenters, SIGNAL(longPress(QPointF)),
       
   287     this,SLOT(onLongPress(QPointF)));
       
   288     }
       
   289 
       
   290 void MsgAdvancedSettingsForm::addSmsEmailGroupItem(
       
   291         HbDataFormModelItem* parent)
       
   292     {
       
   293     QString emailSmsNum = QString();
       
   294     QString emailGatewayTxt = QString();
       
   295 
       
   296     mSettingEngine->emailEmailGatewayAndServiceCenterNumber(emailGatewayTxt,
       
   297             emailSmsNum);
       
   298 
       
   299     // add all the sms email group item
       
   300     emailGateway = new HbDataFormModelItem(HbDataFormModelItem::TextItem,
       
   301             mSmsEmailSettingsGroup.at(0), 0);
       
   302 
       
   303     emailGateway->setContentWidgetData("text", emailGatewayTxt);
       
   304     connect(emailGateway->model(),
       
   305             SIGNAL(dataChanged(const QModelIndex&, const QModelIndex&)),
       
   306             this, SLOT(onDataChanged(const QModelIndex&, const QModelIndex&)));
       
   307 
       
   308     emailService = new HbDataFormModelItem(HbDataFormModelItem::TextItem,
       
   309             mSmsEmailSettingsGroup.at(1), 0);
       
   310     emailService->setContentWidgetData("text", emailSmsNum);
       
   311     connect(emailService->model(),
       
   312                 SIGNAL(dataChanged(const QModelIndex&, const QModelIndex&)),
       
   313                 this, SLOT(onDataChanged(const QModelIndex&, const QModelIndex&)));
       
   314     
       
   315     parent->appendChild(emailGateway);
       
   316     parent->appendChild(emailService);
       
   317 
       
   318     }
       
   319 
       
   320 void MsgAdvancedSettingsForm::onSMSCurrentIndexChanged(int index)
       
   321     {
       
   322 #ifdef _DEBUG_TRACES_
       
   323     qDebug()
       
   324             << "Enter MsgAdvancedSettingsForm::onSMSCurrentIndexChanged index="
       
   325             << index << "\n";
       
   326 #endif
       
   327 
       
   328     //set into msg settings
       
   329     mSettingEngine->setSMSMessageCenter(index);
       
   330 
       
   331 #ifdef _DEBUG_TRACES_
       
   332     qDebug() << "Exit MsgAdvancedSettingsForm::onSMSCurrentIndexChanged \n";
       
   333 #endif
       
   334 
       
   335     }
       
   336 
       
   337 // mms settings slots defined here
       
   338 void MsgAdvancedSettingsForm::changeMMSCreationMode(int index)
       
   339     {
       
   340     mSettingEngine->setMMSCreationmode(MsgSettingEngine::MmsCreationMode(
       
   341             index));
       
   342     }
       
   343 
       
   344 void MsgAdvancedSettingsForm::changeMMSRetrievalMode(int index)
       
   345     {
       
   346     mSettingEngine->setMMSRetrieval(MsgSettingEngine::MmsRetrieval(index));
       
   347     }
       
   348 
       
   349 void MsgAdvancedSettingsForm::allowAnonymousMMS()
       
   350     {
       
   351     HbPushButton *btn = qobject_cast<HbPushButton *> (sender());
       
   352 
       
   353     if (btn)
       
   354         {
       
   355         QString btnText = btn->text();
       
   356 
       
   357         //check if the button pressed was Yes or NO
       
   358         if (LOC_MMS_YES == btnText)
       
   359             {
       
   360             mSettingEngine->setAnonymousMessages(true);
       
   361             }
       
   362         else
       
   363             {
       
   364             mSettingEngine->setAnonymousMessages(false);
       
   365             }
       
   366         }
       
   367     }
       
   368 
       
   369 void MsgAdvancedSettingsForm::allowMMSAdverts()
       
   370     {
       
   371     HbPushButton *btn = qobject_cast<HbPushButton *> (sender());
       
   372 
       
   373     if (btn)
       
   374         {
       
   375         QString btnText = btn->text();
       
   376 
       
   377         //check if the button pressed was Yes or NO
       
   378         if (LOC_MMS_NO == btnText)
       
   379             {
       
   380             mSettingEngine->setReceiveMMSAdverts(true);
       
   381             }
       
   382         else
       
   383             {
       
   384             mSettingEngine->setReceiveMMSAdverts(false);
       
   385             }
       
   386         }
       
   387     }
       
   388 
       
   389 void MsgAdvancedSettingsForm::changeAccessPoint(int index)
       
   390     {
       
   391 #ifdef _DEBUG_TRACES_
       
   392     qDebug() << "Enter MsgAdvancedSettingsForm::changeAccessPoint index="
       
   393             << index << "\n";
       
   394 #endif
       
   395 
       
   396     // save to the mms settings
       
   397     mSettingEngine->setMMSAccesspoint(index);
       
   398 
       
   399 #ifdef _DEBUG_TRACES_
       
   400     qDebug() << "Exit MsgAdvancedSettingsForm::changeAccessPoint";
       
   401 #endif
       
   402     }
       
   403 
       
   404 void MsgAdvancedSettingsForm::onPressedCustomButton()
       
   405     {
       
   406     HbPushButton *btn = qobject_cast<HbPushButton *> (sender());
       
   407 
       
   408     if (btn)
       
   409         {
       
   410         QString btnText = btn->text();
       
   411         if (btnText == mSmsMCSettingsGroup.at(1))
       
   412             {
       
   413             // emit the signal to open add view 
       
   414             emit newSMSCCenterClicked(-1);
       
   415             }
       
   416         else
       
   417             {
       
   418             int index = mSmsServiceList.indexOf(btnText);
       
   419             emit newSMSCCenterClicked(index);
       
   420             }
       
   421         }
       
   422     }
       
   423 
       
   424 void MsgAdvancedSettingsForm::refresh()
       
   425     {
       
   426     int childCount = mSmsMCGroup->childCount();
       
   427     //remove items after mSmsCenterComboBox till new center button.
       
   428     if (childCount > 0){
       
   429         mSmsMCGroup->removeChildren(1, childCount - 2);
       
   430       }
       
   431     updateSmsCenterModel();
       
   432     }
       
   433 
       
   434 void MsgAdvancedSettingsForm::commitEmailChanges()
       
   435     {
       
   436     if (mEditEmailGateway == NULL || mEditEmailServiceNumber == NULL)
       
   437         {
       
   438         return;
       
   439         }
       
   440 
       
   441     QString emailGateway = mEditEmailGateway->text();
       
   442     QString emailServiceCenter = mEditEmailServiceNumber->text();
       
   443 
       
   444 #ifdef _DEBUG_TRACES_
       
   445     qDebug() << "Enter MsgAdvancedSettingsForm::commitEmailChanges "
       
   446             << emailGateway << " " << emailServiceCenter;
       
   447 #endif
       
   448 
       
   449     mSettingEngine->setEmailGateway(emailGateway);
       
   450 
       
   451     //set the smsc center number
       
   452     mSettingEngine->setEmailSeriveCenterNumber(emailServiceCenter);
       
   453 
       
   454 #ifdef _DEBUG_TRACES_
       
   455     qDebug() << "Exit MsgAdvancedSettingsForm::commitEmailChanges\n";
       
   456 #endif
       
   457 
       
   458     }
       
   459 
       
   460 void MsgAdvancedSettingsForm::updateSmsCenterModel()
       
   461     {
       
   462     mSmsServiceList.clear();
       
   463     mSettingEngine->allSMSMessageCenter(mSmsServiceList,
       
   464             mDefaultServiceCenter);
       
   465 
       
   466     HbDataFormModelItem* smsCenterCombo = mSmsMCGroup->childAt(0);
       
   467     QAbstractItemModel* mod = const_cast<QAbstractItemModel*> (this->model());
       
   468     HbDataFormModel* advancedSettingsmodel =
       
   469             static_cast<HbDataFormModel*> (mod);
       
   470     int msgCenterComboIndex = advancedSettingsmodel->indexFromItem(
       
   471             smsCenterCombo).row();
       
   472 
       
   473     //clear model before refilling.
       
   474     mSmsServiceCenterModel->clear();
       
   475     fillServiceCenterModel();
       
   476 
       
   477     //CUSTOM SETTING ITEM HbButton
       
   478     HbDataFormModelItem::DataItemType
       
   479             customButtonGeneral =
       
   480                     static_cast<HbDataFormModelItem::DataItemType> (HbDataFormModelItem::CustomItemBase
       
   481                             + 1);
       
   482 
       
   483     int itemCount = mSmsServiceList.count();
       
   484     for (int i = 0; i < itemCount; ++i)
       
   485         {
       
   486         //add custom buttons.
       
   487         HbDataFormModelItem *messageCenters = new HbDataFormModelItem(
       
   488                 customButtonGeneral, QString(), mSmsMCGroup);
       
   489 
       
   490         messageCenters->setData(HbDataFormModelItem::KeyRole,
       
   491                 mSmsServiceList.at(i));
       
   492 
       
   493         advancedSettingsmodel->insertDataFormItem(
       
   494                 msgCenterComboIndex + 1 + i, messageCenters, mSmsMCGroup);
       
   495         }
       
   496     }
       
   497 
       
   498 void MsgAdvancedSettingsForm::createServiceCenterModel()
       
   499     {
       
   500     mSmsServiceCenterModel = new QStandardItemModel();
       
   501 
       
   502     //to know when is model destroyed.
       
   503     connect(mSmsServiceCenterModel, SIGNAL(destroyed()), this,
       
   504             SLOT(createServiceCenterModel()));
       
   505 
       
   506     fillServiceCenterModel();
       
   507     }
       
   508 
       
   509 void MsgAdvancedSettingsForm::fillServiceCenterModel()
       
   510     {
       
   511     QStringList serviceCenters;
       
   512     mSettingEngine->allSMSMessageCenter(serviceCenters, mDefaultServiceCenter);
       
   513 
       
   514     int itemCount = serviceCenters.count();
       
   515     
       
   516     QDEBUG_WRITE_FORMAT("MsgAdvancedSettingsForm::fillServiceCenterModel..", itemCount);
       
   517     for (int i = 0; i < itemCount; ++i)
       
   518         {
       
   519         QStandardItem *item = new QStandardItem;
       
   520         item->setData(serviceCenters.at(i), Qt::DisplayRole);
       
   521         QDEBUG_WRITE_FORMAT("MsgAdvancedSettingsForm::fillServiceCenterModel Setdata", serviceCenters.at(i));
       
   522         mSmsServiceCenterModel->appendRow(item);
       
   523         }
       
   524     }
       
   525 
       
   526 void MsgAdvancedSettingsForm::activateEmailServiceCenterNo(HbWidget* widget,
       
   527         HbLineEdit* &edit)
       
   528     {
       
   529     // editing finished SIGNAL is still not coming in week48MCL
       
   530     HbLineEdit* editWidget = qobject_cast<HbLineEdit *> (widget);
       
   531 
       
   532     if (editWidget)
       
   533         {
       
   534         edit = editWidget;
       
   535         HbEditorInterface editorInterface(edit);
       
   536         editorInterface.setUpAsPhoneNumberEditor();
       
   537         //connect(edit, SIGNAL(editingFinished()), this, SLOT(onEditingFinished()));
       
   538         }
       
   539     }
       
   540 
       
   541 void MsgAdvancedSettingsForm::onLongPress(QPointF point)
       
   542     {
       
   543     Q_UNUSED(point);
       
   544     }
       
   545 
       
   546 void MsgAdvancedSettingsForm::onDataChanged(const QModelIndex& topLeft,
       
   547         const QModelIndex& bottomRight)
       
   548     {
       
   549     HbDataFormModelItem *itemData =
       
   550     static_cast<HbDataFormModel *> (model())->itemFromIndex(topLeft);
       
   551 
       
   552     if (itemData && itemData == emailGateway && !mEditEmailGateway)
       
   553         {
       
   554              mEditEmailGateway = 
       
   555                      static_cast<HbLineEdit *>(this->dataFormViewItem(topLeft)->dataItemContentWidget());
       
   556          }
       
   557     else if (itemData && itemData == emailService && !mEditEmailServiceNumber)
       
   558                 {
       
   559                 mEditEmailServiceNumber = 
       
   560                         static_cast<HbLineEdit *>(this->dataFormViewItem(topLeft)->dataItemContentWidget());
       
   561                 HbEditorInterface editorInterface(mEditEmailServiceNumber);
       
   562                     editorInterface.setUpAsPhoneNumberEditor();
       
   563 
       
   564                         }
       
   565 
       
   566                     }
       
   567                 //eof