messagingapp/msgsettings/msgsettingsplugin.deprecated/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 
       
    58 MsgAdvancedSettingsForm::MsgAdvancedSettingsForm(QGraphicsItem *parent) :
       
    59     HbDataForm(parent), mSmsServiceCenterModel(0), mEditEmailGateway(NULL),
       
    60         mEditEmailServiceNumber(NULL), mDefaultServiceCenter(0)
       
    61 {
       
    62     this->setHeading(LOC_ADVANCED_SETTINGS);
       
    63 
       
    64     mSettingEngine = new MsgSettingEngine();
       
    65 
       
    66     initGroupPageName();
       
    67     initSettingModel();
       
    68 
       
    69     connect(this, SIGNAL(activated(QModelIndex)), this, SLOT(onItemActivated(QModelIndex)));
       
    70 
       
    71 }
       
    72 
       
    73 MsgAdvancedSettingsForm::~MsgAdvancedSettingsForm()
       
    74 {
       
    75     delete mSettingEngine;
       
    76 }
       
    77 
       
    78 void MsgAdvancedSettingsForm::initGroupPageName()
       
    79 {
       
    80     mGroupPageName << LOC_MMS_SETTINGS 
       
    81                    << LOC_SMS_CENTRE_SETTINGS 
       
    82                    << tr("SMS E-mail settings");
       
    83 
       
    84     mmsSettingsGroup << LOC_MMS_CREATION_MODE 
       
    85                      << LOC_MMS_RETRIEVAL 
       
    86                      << LOC_ALLOW_ANONYMOUS_MMS 
       
    87                      << LOC_RECEIVE_MMS_ADVERTS 
       
    88                      << LOC_MMS_AP_IN_USE;
       
    89 
       
    90     mSmsMCSettingsGroup << LOC_SMS_CENTRE_IN_USE 
       
    91                         << LOC_ADD_NEW;
       
    92 
       
    93     mSmsEmailSettingsGroup << tr("E-mail gateway") << tr("E-mail service centre number");
       
    94 }
       
    95 
       
    96 void MsgAdvancedSettingsForm::initSettingModel()
       
    97 {
       
    98     HbDataFormModel *advancedSettingsmodel = new HbDataFormModel();
       
    99 
       
   100     mMMSGroup = new HbDataFormModelItem(HbDataFormModelItem::GroupItem, mGroupPageName.at(0), 0);
       
   101 
       
   102     HbDataFormModelItem* rootItem = advancedSettingsmodel->invisibleRootItem();
       
   103 
       
   104     advancedSettingsmodel->appendDataFormItem(mMMSGroup, rootItem);
       
   105 
       
   106     addMMSGroupItem(mMMSGroup);
       
   107 
       
   108     mSmsMCGroup = new HbDataFormModelItem(HbDataFormModelItem::GroupItem, mGroupPageName.at(1), 0);
       
   109 
       
   110     advancedSettingsmodel->appendDataFormItem(mSmsMCGroup, rootItem);
       
   111 
       
   112     addSmsMCGroupItem(mSmsMCGroup, advancedSettingsmodel);
       
   113 
       
   114     mSmsEmailGroup = new HbDataFormModelItem(HbDataFormModelItem::GroupItem, mGroupPageName.at(2),
       
   115         0);
       
   116 
       
   117     advancedSettingsmodel->appendDataFormItem(mSmsEmailGroup, rootItem);
       
   118 
       
   119     addSmsEmailGroupItem(mSmsEmailGroup);
       
   120 
       
   121     this->setModel(advancedSettingsmodel);
       
   122 }
       
   123 
       
   124 void MsgAdvancedSettingsForm::addMMSGroupItem(HbDataFormModelItem* parent)
       
   125 {
       
   126     //read settings
       
   127     MsgSettingEngine::MmsCreationMode creationMode = MsgSettingEngine::Guided;
       
   128     MsgSettingEngine::MmsRetrieval retrieval = MsgSettingEngine::AlwaysAutomatic;
       
   129     bool allowAnonymous = true;
       
   130     bool allowAdverts = true;
       
   131 
       
   132     mSettingEngine->advanceMmsSettings(creationMode, retrieval, allowAnonymous, allowAdverts);
       
   133     // add all the mmss group item
       
   134     HbDataFormModelItem *mmsCreationMode = new HbDataFormModelItem(
       
   135         HbDataFormModelItem::ComboBoxItem, mmsSettingsGroup.at(0), 0);
       
   136 
       
   137     QStringList mmsCreationModeList;
       
   138     mmsCreationModeList << LOC_RESTRICTED 
       
   139                         << LOC_GUIDED 
       
   140                         << LOC_FREE;
       
   141 
       
   142     mmsCreationMode->setContentWidgetData("items", mmsCreationModeList);
       
   143     mmsCreationMode->setContentWidgetData("currentIndex", int(creationMode));
       
   144 
       
   145     HbDataFormModelItem *mmsRetrieval = new HbDataFormModelItem(HbDataFormModelItem::ComboBoxItem,
       
   146         mmsSettingsGroup.at(1), 0);
       
   147 
       
   148     QStringList mmsRetrievalList;
       
   149     mmsRetrievalList << LOC_ALWAYS_AUTOMATIC 
       
   150                      << LOC_AUTO_HOME_NETWORK 
       
   151                      << LOC_MANUAL
       
   152                      << LOC_OFF
       
   153                      << LOC_ON;
       
   154 
       
   155     mmsRetrieval->setContentWidgetData("items", mmsRetrievalList);
       
   156     mmsRetrieval->setContentWidgetData("currentIndex", int(retrieval));
       
   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(defaultIndex));
       
   169     anonymousMMS->setContentWidgetData("additionalText", anonymousMMSList.at(alternateIndex));
       
   170 
       
   171     HbDataFormModelItem *mmsAdverts = new HbDataFormModelItem(HbDataFormModelItem::ToggleValueItem,
       
   172         mmsSettingsGroup.at(3), 0);
       
   173 
       
   174     QStringList mmsAdvertsList;
       
   175     mmsAdvertsList << LOC_MMS_NO 
       
   176                    << LOC_MMS_YES;
       
   177 
       
   178     defaultIndex = int(allowAdverts);
       
   179     alternateIndex = (defaultIndex + 1) % mmsAdvertsList.count();
       
   180 
       
   181     mmsAdverts->setContentWidgetData("text", mmsAdvertsList.at(defaultIndex));
       
   182     mmsAdverts->setContentWidgetData("additionalText", mmsAdvertsList.at(alternateIndex));
       
   183 
       
   184     HbDataFormModelItem *accessPoint = new HbDataFormModelItem(HbDataFormModelItem::ComboBoxItem,
       
   185         mmsSettingsGroup.at(4), 0);
       
   186 
       
   187     QStandardItemModel* comboModel = new QStandardItemModel();
       
   188 
       
   189     QStringList mmsList;
       
   190     int defaultAccessPointIndex = -1;
       
   191 
       
   192     mSettingEngine->allMMsAcessPoints(mmsList, defaultAccessPointIndex);
       
   193     int accessPoints = mmsList.count();
       
   194     for (int a = 0; a < accessPoints; ++a) {
       
   195         QStandardItem* item = new QStandardItem();
       
   196         item->setData(mmsList[a], Qt::DisplayRole);
       
   197         comboModel->appendRow(item);
       
   198     }
       
   199     accessPoint->setModel(comboModel);
       
   200     accessPoint->setContentWidgetData("items", mmsList);
       
   201     if (defaultAccessPointIndex >= 0) {
       
   202         accessPoint->setContentWidgetData("currentIndex", defaultAccessPointIndex);
       
   203     }
       
   204 
       
   205     parent->appendChild(mmsCreationMode);
       
   206     parent->appendChild(mmsRetrieval);
       
   207     parent->appendChild(anonymousMMS);
       
   208     parent->appendChild(mmsAdverts);
       
   209     parent->appendChild(accessPoint);
       
   210 }
       
   211 
       
   212 void MsgAdvancedSettingsForm::addSmsMCGroupItem(HbDataFormModelItem* parent,
       
   213     HbDataFormModel* advancedSettingsmodel)
       
   214 {
       
   215     // add all the sms message center group item
       
   216     HbDataFormModelItem *smsMessageCenter = new HbDataFormModelItem(
       
   217         HbDataFormModelItem::ComboBoxItem, mSmsMCSettingsGroup.at(0), 0);
       
   218 
       
   219     mSettingEngine->allSMSMessageCenter(mSmsServiceList, mDefaultServiceCenter);
       
   220 
       
   221     //create and fill service center model.
       
   222     createServiceCenterModel();
       
   223 
       
   224     smsMessageCenter->setContentWidgetData("currentIndex", mDefaultServiceCenter);
       
   225     parent->appendChild(smsMessageCenter);
       
   226 
       
   227     //CUSTOM SETTING ITEM HbButton
       
   228     HbDataFormModelItem::DataItemType customButtonGeneral =
       
   229         static_cast<HbDataFormModelItem::DataItemType> (HbDataFormModelItem::CustomItemBase + 1);
       
   230 
       
   231     int totalServices = mSmsServiceList.count();
       
   232     for (int index = 0; index < totalServices; index++) {
       
   233         HbDataFormModelItem *newMessageCenters = advancedSettingsmodel->appendDataFormItem(
       
   234             customButtonGeneral, QString(""), parent);
       
   235 
       
   236         newMessageCenters->setData(HbDataFormModelItem::KeyRole, mSmsServiceList.at(index));
       
   237     }
       
   238 
       
   239     HbDataFormModelItem *newMessageCenters = advancedSettingsmodel->appendDataFormItem(
       
   240         customButtonGeneral, QString(""), parent);
       
   241 
       
   242     newMessageCenters->setData(HbDataFormModelItem::KeyRole, mSmsMCSettingsGroup.at(1));
       
   243 }
       
   244 
       
   245 void MsgAdvancedSettingsForm::addSmsEmailGroupItem(HbDataFormModelItem* parent)
       
   246 {
       
   247     QString emailSmsNum = QString();
       
   248     QString emailGatewayTxt = QString();
       
   249 
       
   250     mSettingEngine->emailEmailGatewayAndServiceCenterNumber(emailGatewayTxt, emailSmsNum);
       
   251 
       
   252     // add all the sms email group item
       
   253     HbDataFormModelItem *emailGateway = new HbDataFormModelItem(HbDataFormModelItem::TextItem,
       
   254         mSmsEmailSettingsGroup.at(0), 0);
       
   255 
       
   256     emailGateway->setContentWidgetData("text", emailGatewayTxt);
       
   257 
       
   258     HbDataFormModelItem *emailService = new HbDataFormModelItem(HbDataFormModelItem::TextItem,
       
   259         mSmsEmailSettingsGroup.at(1), 0);
       
   260     emailService->setContentWidgetData("text", emailSmsNum);
       
   261 
       
   262     parent->appendChild(emailGateway);
       
   263     parent->appendChild(emailService);
       
   264 }
       
   265 
       
   266 void MsgAdvancedSettingsForm::onItemActivated(const QModelIndex &index)
       
   267 {
       
   268     HbDataFormModelItem *itemData = static_cast<HbDataFormModelItem *> (index.internalPointer());
       
   269     // to deal with orbit change temparialy
       
   270     if (itemData->type() > HbDataFormModelItem::GroupPageItem) {
       
   271         HbDataFormModelItem *pageItemData = const_cast<HbDataFormModelItem *> (itemData->parent());
       
   272         //get the widget of setting item
       
   273         HbWidget* widget = this->dataFormViewItem(index)->dataItemContentWidget();
       
   274         if (pageItemData) {
       
   275             //the first one is for mms group items
       
   276             if (pageItemData == mMMSGroup) {
       
   277                 switch (pageItemData->indexOf(itemData)) {
       
   278                 case 0: //mms creation mode
       
   279                     activateMMSCreationMode(widget);
       
   280                     break;
       
   281                 case 1: //mms retrieval
       
   282                     activateMMSRetrievalMode(widget);
       
   283                     break;
       
   284                 case 2: //anonymous msgs
       
   285                     activateMMSAnonymousMode(widget);
       
   286                     break;
       
   287                 case 3: //mms adverts
       
   288                     activateMMSAdverts(widget);
       
   289                     break;
       
   290                 case 4: //MMS Accesspoint
       
   291                     activateMMSAccesspoint(widget);
       
   292                     break;
       
   293                 default:
       
   294                     break;
       
   295                 }
       
   296             }
       
   297             else if (pageItemData == mSmsMCGroup) {
       
   298                 //the second one is for sms message center
       
   299                 if (pageItemData->indexOf(itemData) == 0) {
       
   300                     activateSMSCCenterList(widget);
       
   301                 }
       
   302                 else {
       
   303                     int btnIndex = pageItemData->indexOf(itemData);
       
   304                     activateCustomButtonListItems(widget, btnIndex);
       
   305                 }
       
   306             }
       
   307             else if (pageItemData == mSmsEmailGroup) {
       
   308                 switch (pageItemData->indexOf(itemData)) {
       
   309                 case 0:
       
   310                     activateEmailGateway(widget, mEditEmailGateway);
       
   311                     break;
       
   312                 case 1:
       
   313                     activateEmailServiceCenterNo(widget, mEditEmailServiceNumber);
       
   314                     break;
       
   315                 default:
       
   316                     break;
       
   317                 }
       
   318             }
       
   319         }
       
   320     }
       
   321 }
       
   322 
       
   323 void MsgAdvancedSettingsForm::activateSMSCCenterList(HbWidget* widget)
       
   324 {
       
   325     mSmsCenterComboBox = qobject_cast<HbComboBox *> (widget);
       
   326 
       
   327     if (mSmsCenterComboBox) {
       
   328         mSmsCenterComboBox->setModel(mSmsServiceCenterModel);
       
   329 
       
   330         //to avoid multiple connects.
       
   331         disconnect(mSmsCenterComboBox, SIGNAL(currentIndexChanged(int)), this,
       
   332             SLOT(onSMSCurrentIndexChanged(int)));
       
   333 
       
   334         mSmsCenterComboBox->setCurrentIndex(mDefaultServiceCenter);
       
   335 
       
   336         //map the sms message center selected
       
   337         connect(mSmsCenterComboBox, SIGNAL(currentIndexChanged(int)), this,
       
   338             SLOT(onSMSCurrentIndexChanged(int)));
       
   339     }
       
   340 }
       
   341 
       
   342 void MsgAdvancedSettingsForm::onSMSCurrentIndexChanged(int index)
       
   343 {
       
   344 #ifdef _DEBUG_TRACES_
       
   345     qDebug() << "Enter MsgAdvancedSettingsForm::onSMSCurrentIndexChanged index=" << index << "\n";
       
   346 #endif
       
   347 
       
   348     //set into msg settings
       
   349     mSettingEngine->setSMSMessageCenter(index);
       
   350 
       
   351 #ifdef _DEBUG_TRACES_
       
   352     qDebug() << "Exit MsgAdvancedSettingsForm::onSMSCurrentIndexChanged \n";
       
   353 #endif
       
   354 
       
   355 }
       
   356 
       
   357 void MsgAdvancedSettingsForm::activateCustomButtonListItems(HbWidget* widget, int btnIndex)
       
   358 {
       
   359     HbPushButton *btn = qobject_cast<HbPushButton *> (widget);
       
   360 
       
   361     if (btnIndex == mSmsServiceList.count() + 1) {
       
   362         btn->setText(mSmsMCSettingsGroup.at(1));
       
   363     }
       
   364     else {
       
   365         btn->setText(mSmsServiceList.at(btnIndex - 1));
       
   366     }
       
   367 
       
   368     if (btn) {
       
   369         //to avoid multiple connects.
       
   370         disconnect(btn, SIGNAL(clicked()), this, SLOT(onPressedCustomButton()));
       
   371 
       
   372         //activate the custom buttons
       
   373         connect(btn, SIGNAL(clicked()), this, SLOT(onPressedCustomButton()));
       
   374 
       
   375         disconnect(btn, SIGNAL(longPress(QPointF)), this, SLOT(onLongPress(QPointF)));
       
   376 
       
   377         connect(btn, SIGNAL(longPress(QPointF)), this, SLOT(onLongPress(QPointF)));
       
   378     }
       
   379 }
       
   380 
       
   381 void MsgAdvancedSettingsForm::activateMMSCreationMode(HbWidget* widget)
       
   382 {
       
   383     HbComboBox* combo = qobject_cast<HbComboBox *> (widget);
       
   384 
       
   385     if (combo) {
       
   386         //to avoid multiple connects.
       
   387         disconnect(combo, SIGNAL(currentIndexChanged(int)), this, SLOT(changeMMSCreationMode(int)));
       
   388 
       
   389         //map the mms access points selected
       
   390         connect(combo, SIGNAL(currentIndexChanged(int)), this, SLOT(changeMMSCreationMode(int)));
       
   391     }
       
   392 }
       
   393 
       
   394 void MsgAdvancedSettingsForm::changeMMSCreationMode(int index)
       
   395 {
       
   396     mSettingEngine->setMMSCreationmode(MsgSettingEngine::MmsCreationMode(index));
       
   397 }
       
   398 
       
   399 void MsgAdvancedSettingsForm::activateMMSRetrievalMode(HbWidget* widget)
       
   400 {
       
   401     HbComboBox* combo = qobject_cast<HbComboBox *> (widget);
       
   402 
       
   403     if (combo) {
       
   404         //to avoid multiple connects.
       
   405         disconnect(combo, SIGNAL(currentIndexChanged(int)), this, SLOT(changeMMSRetrievalMode(int)));
       
   406 
       
   407         //map the mms access points selected
       
   408         connect(combo, SIGNAL(currentIndexChanged(int)), this, SLOT(changeMMSRetrievalMode(int)));
       
   409     }
       
   410 }
       
   411 
       
   412 void MsgAdvancedSettingsForm::changeMMSRetrievalMode(int index)
       
   413 {
       
   414     mSettingEngine->setMMSRetrieval(MsgSettingEngine::MmsRetrieval(index));
       
   415 }
       
   416 
       
   417 void MsgAdvancedSettingsForm::activateMMSAnonymousMode(HbWidget* widget)
       
   418 {
       
   419     HbPushButton* toggleItem = qobject_cast<HbPushButton *> (widget);
       
   420 
       
   421     if (toggleItem) {
       
   422         //TODO Issue in DataForm Calling the itemActivated twice
       
   423         disconnect(toggleItem, SIGNAL(clicked()), this, SLOT(allowAnonymousMMS()));
       
   424 
       
   425         connect(toggleItem, SIGNAL(clicked()), this, SLOT(allowAnonymousMMS()));
       
   426     }
       
   427 }
       
   428 
       
   429 void MsgAdvancedSettingsForm::allowAnonymousMMS()
       
   430 {
       
   431     HbPushButton *btn = qobject_cast<HbPushButton *> (sender());
       
   432 
       
   433     if (btn) {
       
   434         QString btnText = btn->text();
       
   435 
       
   436         //check if the button pressed was Yes or NO
       
   437         if (LOC_MMS_YES == btnText) {
       
   438             mSettingEngine->setAnonymousMessages(true);
       
   439         }
       
   440         else {
       
   441             mSettingEngine->setAnonymousMessages(false);
       
   442         }
       
   443     }
       
   444 }
       
   445 
       
   446 void MsgAdvancedSettingsForm::activateMMSAdverts(HbWidget* widget)
       
   447 {
       
   448     HbPushButton* toggleItem = qobject_cast<HbPushButton *> (widget);
       
   449 
       
   450     if (toggleItem) {
       
   451         //TODO Issue in DataForm Calling the itemActivated twice
       
   452         disconnect(toggleItem, SIGNAL(clicked()), this, SLOT(allowMMSAdverts()));
       
   453 
       
   454         connect(toggleItem, SIGNAL(clicked()), this, SLOT(allowMMSAdverts()));
       
   455     }
       
   456 }
       
   457 
       
   458 void MsgAdvancedSettingsForm::allowMMSAdverts()
       
   459 {
       
   460     HbPushButton *btn = qobject_cast<HbPushButton *> (sender());
       
   461 
       
   462     if (btn) {
       
   463         QString btnText = btn->text();
       
   464 
       
   465         //check if the button pressed was Yes or NO
       
   466         if (LOC_MMS_NO == btnText) {
       
   467             mSettingEngine->setReceiveMMSAdverts(true);
       
   468         }
       
   469         else {
       
   470             mSettingEngine->setReceiveMMSAdverts(false);
       
   471         }
       
   472     }
       
   473 }
       
   474 
       
   475 void MsgAdvancedSettingsForm::activateMMSAccesspoint(HbWidget* widget)
       
   476 {
       
   477     HbComboBox* accessPointCombo = qobject_cast<HbComboBox *> (widget);
       
   478 
       
   479     //to avoid multiple connects.
       
   480     disconnect(accessPointCombo, SIGNAL(currentIndexChanged(int)), this,
       
   481         SLOT(changeAccessPoint(int)));
       
   482 
       
   483     //map the mms access points selected
       
   484     connect(accessPointCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(changeAccessPoint(int)));
       
   485 }
       
   486 
       
   487 void MsgAdvancedSettingsForm::onPressedCustomButton()
       
   488 {
       
   489     HbPushButton *btn = qobject_cast<HbPushButton *> (sender());
       
   490 
       
   491     if (btn) {
       
   492         QString btnText = btn->text();
       
   493         if (btnText == mSmsMCSettingsGroup.at(1)) {
       
   494             // emit the signal to open add view 
       
   495             emit newSMSCCenterClicked(-1);
       
   496         }
       
   497         else {
       
   498             int index = mSmsServiceList.indexOf(btnText);
       
   499             emit newSMSCCenterClicked(index);
       
   500         }
       
   501     }
       
   502 }
       
   503 
       
   504 void MsgAdvancedSettingsForm::changeAccessPoint(int index)
       
   505 {
       
   506 #ifdef _DEBUG_TRACES_
       
   507     qDebug() << "Enter MsgAdvancedSettingsForm::changeAccessPoint index=" << index << "\n";
       
   508 #endif
       
   509 
       
   510     // save to the mms settings
       
   511     mSettingEngine->setMMSAccesspoint(index);
       
   512 
       
   513 #ifdef _DEBUG_TRACES_
       
   514     qDebug() << "Exit MsgAdvancedSettingsForm::changeAccessPoint";
       
   515 #endif
       
   516 
       
   517 }
       
   518 
       
   519 void MsgAdvancedSettingsForm::refresh()
       
   520 {
       
   521     int childCount = mSmsMCGroup->childCount();
       
   522     //remove items after mSmsCenterComboBox till new center button.
       
   523     mSmsMCGroup->removeChildren(1, childCount - 2);
       
   524     updateSmsCenterModel();
       
   525 }
       
   526 
       
   527 void MsgAdvancedSettingsForm::commitEmailChanges()
       
   528 {
       
   529     if (mEditEmailGateway == NULL || mEditEmailServiceNumber == NULL) {
       
   530         return;
       
   531     }
       
   532 
       
   533     QString emailGateway = mEditEmailGateway->text();
       
   534     QString emailServiceCenter = mEditEmailServiceNumber->text();
       
   535 
       
   536 #ifdef _DEBUG_TRACES_
       
   537     qDebug() << "Enter MsgAdvancedSettingsForm::commitEmailChanges " << emailGateway << " "
       
   538         << emailServiceCenter;
       
   539 #endif
       
   540 
       
   541     mSettingEngine->setEmailGateway(emailGateway);
       
   542 
       
   543     //set the smsc center number
       
   544     mSettingEngine->setEmailSeriveCenterNumber(emailServiceCenter);
       
   545 
       
   546 #ifdef _DEBUG_TRACES_
       
   547     qDebug() << "Exit MsgAdvancedSettingsForm::commitEmailChanges\n";
       
   548 #endif
       
   549 
       
   550 }
       
   551 
       
   552 void MsgAdvancedSettingsForm::updateSmsCenterModel()
       
   553 {
       
   554     mSmsServiceList.clear();
       
   555     mSettingEngine->allSMSMessageCenter(mSmsServiceList, mDefaultServiceCenter);
       
   556 
       
   557     HbDataFormModelItem* smsCenterCombo = mSmsMCGroup->childAt(0);
       
   558     QAbstractItemModel* mod = const_cast<QAbstractItemModel*> (this->model());
       
   559     HbDataFormModel* advancedSettingsmodel = static_cast<HbDataFormModel*> (mod);
       
   560     int msgCenterComboIndex = advancedSettingsmodel->indexFromItem(smsCenterCombo).row();
       
   561 
       
   562     //clear model before refilling.
       
   563     mSmsServiceCenterModel->clear();
       
   564     fillServiceCenterModel();
       
   565 
       
   566     //CUSTOM SETTING ITEM HbButton
       
   567     HbDataFormModelItem::DataItemType customButtonGeneral =
       
   568         static_cast<HbDataFormModelItem::DataItemType> (HbDataFormModelItem::CustomItemBase + 1);
       
   569 
       
   570     int itemCount = mSmsServiceList.count();
       
   571     for (int i = 0; i < itemCount; ++i) {
       
   572         //add custom buttons.
       
   573         HbDataFormModelItem *messageCenters = new HbDataFormModelItem(customButtonGeneral,
       
   574             QString(), mSmsMCGroup);
       
   575 
       
   576         messageCenters->setData(HbDataFormModelItem::KeyRole, mSmsServiceList.at(i));
       
   577 
       
   578         advancedSettingsmodel->insertDataFormItem(msgCenterComboIndex + 1 + i, messageCenters,
       
   579             mSmsMCGroup);
       
   580     }
       
   581 }
       
   582 
       
   583 void MsgAdvancedSettingsForm::createServiceCenterModel()
       
   584 {
       
   585     mSmsServiceCenterModel = new QStandardItemModel();
       
   586 
       
   587     //to know when is model destroyed.
       
   588     connect(mSmsServiceCenterModel, SIGNAL(destroyed()), this, SLOT(createServiceCenterModel()));
       
   589 
       
   590     fillServiceCenterModel();
       
   591 }
       
   592 
       
   593 void MsgAdvancedSettingsForm::fillServiceCenterModel()
       
   594 {
       
   595     QStringList serviceCenters;
       
   596     mSettingEngine->allSMSMessageCenter(serviceCenters, mDefaultServiceCenter);
       
   597 
       
   598     int itemCount = serviceCenters.count();
       
   599     for (int i = 0; i < itemCount; ++i) {
       
   600         QStandardItem *item = new QStandardItem;
       
   601         item->setData(serviceCenters.at(i), Qt::DisplayRole);
       
   602         mSmsServiceCenterModel->appendRow(item);
       
   603     }
       
   604 }
       
   605 
       
   606 void MsgAdvancedSettingsForm::activateEmailGateway(HbWidget* widget, HbLineEdit* &edit)
       
   607 {
       
   608     // editing finished SIGNAL is still not coming in week48MCL
       
   609     HbLineEdit* editWidget = qobject_cast<HbLineEdit *> (widget);
       
   610 
       
   611     if (editWidget) {
       
   612         edit = editWidget;
       
   613         //connect(edit, SIGNAL(editingFinished()), this, SLOT(onEditingFinished()));
       
   614     }
       
   615 }
       
   616 
       
   617 void MsgAdvancedSettingsForm::activateEmailServiceCenterNo(HbWidget* widget, HbLineEdit* &edit)
       
   618 {
       
   619     // editing finished SIGNAL is still not coming in week48MCL
       
   620     HbLineEdit* editWidget = qobject_cast<HbLineEdit *> (widget);
       
   621 
       
   622     if (editWidget) {
       
   623         edit = editWidget;
       
   624         HbEditorInterface editorInterface(edit);
       
   625         editorInterface.setUpAsPhoneNumberEditor();
       
   626         //connect(edit, SIGNAL(editingFinished()), this, SLOT(onEditingFinished()));
       
   627     }
       
   628 }
       
   629 
       
   630 void MsgAdvancedSettingsForm::onLongPress(QPointF point)
       
   631 {
       
   632     Q_UNUSED(point);
       
   633 }
       
   634 //eof