messagingapp/msgsettings/settingsview/src/msgsettingsform.cpp
changeset 27 e4592d119491
parent 25 84d9eb65b26f
child 47 5b14749788d7
equal deleted inserted replaced
25:84d9eb65b26f 27:e4592d119491
    20 
    20 
    21 #include <hbdataformmodelitem.h>
    21 #include <hbdataformmodelitem.h>
    22 #include <hbdataformmodel.h>
    22 #include <hbdataformmodel.h>
    23 #include <hbcombobox.h>
    23 #include <hbcombobox.h>
    24 #include <hbpushbutton.h>
    24 #include <hbpushbutton.h>
    25 #include <QStandardItemModel>
       
    26 
    25 
    27 #include "debugtraces.h"
    26 #include "debugtraces.h"
    28 
    27 
    29 //Localized constants
    28 //Localized constants
    30 #define LOC_MESSAGE_SETTINGS_HEADING hbTrId("txt_messaging_title_messaging_settings")
       
    31 #define LOC_RECEIVING_SERVICE_MESSAGES hbTrId("txt_messaging_setlabel_receiving_service_messages")
    29 #define LOC_RECEIVING_SERVICE_MESSAGES hbTrId("txt_messaging_setlabel_receiving_service_messages")
    32 #define LOC_ON hbTrId("txt_messaging_setlabel_val_on")
    30 #define LOC_ON hbTrId("txt_messaging_setlabel_val_on")
    33 #define LOC_OFF hbTrId("txt_messaging_setlabel_val_off")
    31 #define LOC_OFF hbTrId("txt_messaging_setlabel_val_off")
    34 #define LOC_REDUCED_SUPPORT hbTrId("txt_messaging_setlabel_val_reduced_support")
    32 #define LOC_REDUCED_SUPPORT hbTrId("txt_messaging_setlabel_val_reduced_support")
    35 #define LOC_FULL_SUPPORT hbTrId("txt_messaging_setlabel_val_full_support")
    33 #define LOC_FULL_SUPPORT hbTrId("txt_messaging_setlabel_val_full_support")
    49 #define LOC_AUTO_HOME_NETWORK hbTrId("txt_messaging_setlabel_val_auto_home_network")
    47 #define LOC_AUTO_HOME_NETWORK hbTrId("txt_messaging_setlabel_val_auto_home_network")
    50 #define LOC_MANUAL hbTrId("txt_messaging_setlabel_val_mannual")
    48 #define LOC_MANUAL hbTrId("txt_messaging_setlabel_val_mannual")
    51 #define LOC_MMS_YES hbTrId("txt_messaging_setlabel_allow_anonymous_mms_val_yes")
    49 #define LOC_MMS_YES hbTrId("txt_messaging_setlabel_allow_anonymous_mms_val_yes")
    52 #define LOC_MMS_NO hbTrId("txt_messaging_setlabel_allow_anonymous_mms_val_no")
    50 #define LOC_MMS_NO hbTrId("txt_messaging_setlabel_allow_anonymous_mms_val_no")
    53 
    51 
    54 MsgSettingsForm::MsgSettingsForm(QGraphicsItem *parent) :
    52 MsgSettingsForm::MsgSettingsForm(
       
    53         MsgSettingsView::SettingsView settingsView,
       
    54         QGraphicsItem *parent) :
    55     HbDataForm(parent)
    55     HbDataForm(parent)
    56 {
    56 {
    57     this->setHeading(LOC_MESSAGE_SETTINGS_HEADING);
       
    58 
       
    59     mSettingEngine = new MsgSettingEngine();
    57     mSettingEngine = new MsgSettingEngine();
    60 
    58 
    61     //custom prototype
    59     //custom prototype
    62     MsgSettingsDataFormCustomItem* customPrototype =
    60     MsgSettingsDataFormCustomItem* customPrototype =
    63             new MsgSettingsDataFormCustomItem(this);
    61             new MsgSettingsDataFormCustomItem(this);
    67     this->setItemPrototypes(protos);
    65     this->setItemPrototypes(protos);
    68 
    66 
    69     mSmsMCSettingsGroup << LOC_SMS_CENTRE_IN_USE << LOC_ADD_NEW;
    67     mSmsMCSettingsGroup << LOC_SMS_CENTRE_IN_USE << LOC_ADD_NEW;
    70 
    68 
    71     //initialize the form model
    69     //initialize the form model
    72     initSettingModel();
    70     initSettingModel(settingsView);
    73 }
    71 }
    74 
    72 
    75 MsgSettingsForm::~MsgSettingsForm()
    73 MsgSettingsForm::~MsgSettingsForm()
    76 {
    74 {
    77     delete mSettingEngine;
    75     delete mSettingEngine;
    78 }
    76 }
    79 
    77 
    80 void MsgSettingsForm::initSettingModel()
    78 void MsgSettingsForm::initSettingModel(
       
    79         MsgSettingsView::SettingsView settingsView)
    81 {
    80 {
    82     settingsModel = new HbDataFormModel(0);
    81     settingsModel = new HbDataFormModel(0);
    83 
    82 
    84     MsgSettingEngine::CharacterEncoding charEncoding =
    83     MsgSettingEngine::CharacterEncoding charEncoding =
    85             MsgSettingEngine::ReducedSupport;
    84             MsgSettingEngine::ReducedSupport;
   152                                       settingsModel->invisibleRootItem());
   151                                       settingsModel->invisibleRootItem());
   153 
   152 
   154     addSmsMCGroupItem(mSmsMCGroup);
   153     addSmsMCGroupItem(mSmsMCGroup);
   155 
   154 
   156     this->setModel(settingsModel);
   155     this->setModel(settingsModel);
       
   156     
       
   157     if (settingsView == MsgSettingsView::MMSView)
       
   158     {
       
   159         //set MMS Settings as expanded
       
   160         QModelIndex index_mms = settingsModel->indexFromItem(mmsGroup);
       
   161         //TODO: dataform issue on expanding one group item
       
   162         //this->setExpanded(index_mms, true);
       
   163     }
       
   164     else if(settingsView == MsgSettingsView::SMSView)
       
   165     {
       
   166         //expandSMSSettings();
       
   167     }
       
   168         
   157 }
   169 }
   158 
   170 
   159 void MsgSettingsForm::refreshViewForm()
   171 void MsgSettingsForm::refreshViewForm()
   160 {
   172 {
   161     updateSmsMCGroupItem(mSmsMCGroup);
   173     updateSmsMCGroupItem(mSmsMCGroup);
   166     //1. update the combobox model item
   178     //1. update the combobox model item
   167     int defaultServiceCenter = -1;
   179     int defaultServiceCenter = -1;
   168     mSmsServiceList.clear();
   180     mSmsServiceList.clear();
   169     mSettingEngine->allSMSMessageCenter(mSmsServiceList, defaultServiceCenter);
   181     mSettingEngine->allSMSMessageCenter(mSmsServiceList, defaultServiceCenter);
   170 
   182 
   171     mSmsServiceCenterModel->clear();
   183     //set the content widget data again    
   172     
   184     smsMessageCenter->setContentWidgetData("items", mSmsServiceList);
   173     //recreate all the model items 
   185     if(defaultServiceCenter > 0)
   174     int itemCount = mSmsServiceList.count();
   186     {
   175     for (int i = 0; i < itemCount; ++i)
       
   176     {
       
   177         QStandardItem *item = new QStandardItem;
       
   178         item->setData(mSmsServiceList.at(i), Qt::DisplayRole);
       
   179         mSmsServiceCenterModel->appendRow(item);
       
   180     }
       
   181     //set the content widget data again
       
   182     if(itemCount > 0)
       
   183     {
       
   184        smsMessageCenter->setContentWidgetData("items", mSmsServiceList);
       
   185     }
       
   186 
       
   187     smsMessageCenter->setContentWidgetData("currentIndex",
   187     smsMessageCenter->setContentWidgetData("currentIndex",
   188                                                defaultServiceCenter);
   188                                                defaultServiceCenter);
       
   189     }
   189     
   190     
   190     //2. refresh all the custom buttons again
   191     //2. refresh all the custom buttons again
   191     int childCount = parent->childCount();
   192     int childCount = parent->childCount();
   192     int totalServices = mSmsServiceList.count();
   193     int totalServices = mSmsServiceList.count();
   193 
   194 
   301     HbDataFormModelItem *accessPoint =
   302     HbDataFormModelItem *accessPoint =
   302             new HbDataFormModelItem(HbDataFormModelItem::ComboBoxItem,
   303             new HbDataFormModelItem(HbDataFormModelItem::ComboBoxItem,
   303                                     LOC_MMS_AP_IN_USE,
   304                                     LOC_MMS_AP_IN_USE,
   304                                     0);
   305                                     0);
   305 
   306 
   306     QStandardItemModel* comboModel = new QStandardItemModel();
       
   307 
       
   308     QStringList mmsList;
   307     QStringList mmsList;
   309     int defaultAccessPointIndex = -1;
   308     int defaultAccessPointIndex = -1;
   310 
   309 
   311     mSettingEngine->allMMsAcessPoints(mmsList, defaultAccessPointIndex);
   310     mSettingEngine->allMMsAcessPoints(mmsList, defaultAccessPointIndex);
   312     int accessPoints = mmsList.count();
       
   313     for (int a = 0; a < accessPoints; ++a)
       
   314     {
       
   315         QStandardItem* item = new QStandardItem();
       
   316         item->setData(mmsList[a], Qt::DisplayRole);
       
   317         comboModel->appendRow(item);
       
   318     }
       
   319     accessPoint->setModel(comboModel);
       
   320     accessPoint->setContentWidgetData("items", mmsList);
   311     accessPoint->setContentWidgetData("items", mmsList);
   321     if (defaultAccessPointIndex >= 0)
   312     if (defaultAccessPointIndex >= 0)
   322     {
   313     {
   323         accessPoint->setContentWidgetData("currentIndex",
   314         accessPoint->setContentWidgetData("currentIndex",
   324                                           defaultAccessPointIndex);
   315                                           defaultAccessPointIndex);
   343                                       mSmsMCSettingsGroup.at(0),
   334                                       mSmsMCSettingsGroup.at(0),
   344                                       0);
   335                                       0);
   345 
   336 
   346     int defaultServiceCenter = -1;
   337     int defaultServiceCenter = -1;
   347     mSmsServiceList.clear();
   338     mSmsServiceList.clear();
       
   339     
   348     mSettingEngine->allSMSMessageCenter(mSmsServiceList, defaultServiceCenter);
   340     mSettingEngine->allSMSMessageCenter(mSmsServiceList, defaultServiceCenter);
   349     mSmsServiceCenterModel = new QStandardItemModel(this);
       
   350 
       
   351     int itemCount = mSmsServiceList.count();
       
   352     for (int i = 0; i < itemCount; ++i)
       
   353     {
       
   354         QStandardItem *item = new QStandardItem;
       
   355         item->setData(mSmsServiceList.at(i), Qt::DisplayRole);
       
   356         mSmsServiceCenterModel->appendRow(item);
       
   357     }
       
   358 
       
   359     smsMessageCenter->setModel(mSmsServiceCenterModel);
       
   360     smsMessageCenter->setContentWidgetData("items", mSmsServiceList);
   341     smsMessageCenter->setContentWidgetData("items", mSmsServiceList);
   361 
       
   362     if (defaultServiceCenter >= 0)
   342     if (defaultServiceCenter >= 0)
   363     {
   343     {
   364         smsMessageCenter->setContentWidgetData("currentIndex",
   344         smsMessageCenter->setContentWidgetData("currentIndex",
   365                                                defaultServiceCenter);
   345                                                defaultServiceCenter);
   366     }
   346     }