--- a/messagingapp/msgsettings/settingsview/src/msgadvancedsettingsform.cpp Fri Apr 16 14:56:15 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,567 +0,0 @@
-/*
- * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of "Eclipse Public License v1.0"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description:This class is for drawing form for advanced view
- * settings
- *
- */
-
-#include "msgadvancedsettingsform.h"
-#include "msgsettingengine.h"
-
-#include <hbdataformviewitem.h>
-#include <hbdataformmodelitem.h>
-#include <hbdataformmodel.h>
-#include <hbpushbutton.h>
-#include <hbcombobox.h>
-#include <hbinputeditorinterface.h>
-#include <HbLineEdit>
-#include <QStandardItemModel>
-#include "debugtraces.h"
-
-//Localized Strings
-#define LOC_ADVANCED_SETTINGS hbTrId("txt_messaging_title_advanced_settings_messaging")
-#define LOC_MMS_SETTINGS hbTrId("txt_messaging_subhead_mms_settings")
-#define LOC_SMS_CENTRE_SETTINGS hbTrId("txt_messaging_subhead_sms_message_centre_settings")
-#define LOC_MMS_CREATION_MODE hbTrId("txt_messaging_setlabel_mms_creation_mode")
-#define LOC_MMS_RETRIEVAL hbTrId("txt_messaging_setlabel_mms_retrieval")
-#define LOC_ALLOW_ANONYMOUS_MMS hbTrId("txt_messaging_setlabel_allow_anonymous_mms_message")
-#define LOC_RECEIVE_MMS_ADVERTS hbTrId("txt_messaging_setlabel_receive_mms_adverts")
-#define LOC_MMS_AP_IN_USE hbTrId("txt_messaging_setlabel_mms_access_point_in_use")
-#define LOC_SMS_CENTRE_IN_USE hbTrId("txt_messaging_setlabel_sms_message_centre_in_use")
-#define LOC_ADD_NEW hbTrId("txt_messaging_button_add_new")
-
-#define LOC_RESTRICTED hbTrId("txt_messaging_setlabel_val_restricted")
-#define LOC_GUIDED hbTrId("txt_messaging_setlabel_val_guided")
-#define LOC_FREE hbTrId("txt_messaging_setlabel_val_free")
-
-#define LOC_ALWAYS_AUTOMATIC hbTrId("txt_messaging_setlabel_val_always_automatic")
-#define LOC_AUTO_HOME_NETWORK hbTrId("txt_messaging_setlabel_val_auto_home_network")
-#define LOC_MANUAL hbTrId("txt_messaging_setlabel_val_mannual")
-#define LOC_ON hbTrId("txt_messaging_setlabel_val_on")
-#define LOC_OFF hbTrId("txt_messaging_setlabel_val_off")
-
-#define LOC_MMS_YES hbTrId("txt_messaging_setlabel_allow_anonymous_mms_val_yes")
-#define LOC_MMS_NO hbTrId("txt_messaging_setlabel_allow_anonymous_mms_val_no")
-
-MsgAdvancedSettingsForm::MsgAdvancedSettingsForm(QGraphicsItem *parent) :
- HbDataForm(parent), mSmsServiceCenterModel(0), mEditEmailGateway(0),
- mEditEmailServiceNumber(0), mDefaultServiceCenter(0)
- {
- this->setHeading(LOC_ADVANCED_SETTINGS);
-
- mSettingEngine = new MsgSettingEngine();
-
- initGroupPageName();
- initSettingModel();
- }
-
-MsgAdvancedSettingsForm::~MsgAdvancedSettingsForm()
- {
- delete mSettingEngine;
- }
-
-void MsgAdvancedSettingsForm::initGroupPageName()
-{
- mGroupPageName << LOC_MMS_SETTINGS
- << LOC_SMS_CENTRE_SETTINGS
- << tr("SMS E-mail settings");
-
- mmsSettingsGroup << LOC_MMS_CREATION_MODE
- << LOC_MMS_RETRIEVAL
- << LOC_ALLOW_ANONYMOUS_MMS
- << LOC_RECEIVE_MMS_ADVERTS
- << LOC_MMS_AP_IN_USE;
-
- mSmsMCSettingsGroup << LOC_SMS_CENTRE_IN_USE
- << LOC_ADD_NEW;
-
- mSmsEmailSettingsGroup << tr("E-mail gateway") << tr("E-mail service centre number");
-}
-
-void MsgAdvancedSettingsForm::initSettingModel()
-{
- HbDataFormModel *advancedSettingsmodel = new HbDataFormModel();
-
- mMMSGroup = new HbDataFormModelItem(HbDataFormModelItem::GroupItem, mGroupPageName.at(0), 0);
-
- HbDataFormModelItem* rootItem = advancedSettingsmodel->invisibleRootItem();
-
- advancedSettingsmodel->appendDataFormItem(mMMSGroup, rootItem);
-
- addMMSGroupItem(mMMSGroup);
-
- mSmsMCGroup = new HbDataFormModelItem(HbDataFormModelItem::GroupItem, mGroupPageName.at(1), 0);
-
- advancedSettingsmodel->appendDataFormItem(mSmsMCGroup, rootItem);
-
- addSmsMCGroupItem(mSmsMCGroup, advancedSettingsmodel);
-
- mSmsEmailGroup = new HbDataFormModelItem(HbDataFormModelItem::GroupItem, mGroupPageName.at(2),
- 0);
-
- advancedSettingsmodel->appendDataFormItem(mSmsEmailGroup, rootItem);
-
- addSmsEmailGroupItem(mSmsEmailGroup);
-
- this->setModel(advancedSettingsmodel);
-}
-
-void MsgAdvancedSettingsForm::addMMSGroupItem(HbDataFormModelItem* parent)
-{
- //read settings
- MsgSettingEngine::MmsCreationMode creationMode = MsgSettingEngine::Guided;
- MsgSettingEngine::MmsRetrieval retrieval = MsgSettingEngine::AlwaysAutomatic;
- bool allowAnonymous = true;
- bool allowAdverts = true;
-
- mSettingEngine->advanceMmsSettings(creationMode, retrieval, allowAnonymous, allowAdverts);
- // add all the mmss group item
- HbDataFormModelItem *mmsCreationMode = new HbDataFormModelItem(
- HbDataFormModelItem::ComboBoxItem, mmsSettingsGroup.at(0), 0);
-
- QStringList mmsCreationModeList;
- mmsCreationModeList << LOC_RESTRICTED
- << LOC_GUIDED
- << LOC_FREE;
-
- mmsCreationMode->setContentWidgetData("items", mmsCreationModeList);
- mmsCreationMode->setContentWidgetData("currentIndex", int(creationMode));
- this->addConnection(mmsCreationMode, SIGNAL(currentIndexChanged(int)),
- this, SLOT(changeMMSCreationMode(int)));
-
- HbDataFormModelItem *mmsRetrieval = new HbDataFormModelItem(
- HbDataFormModelItem::ComboBoxItem, mmsSettingsGroup.at(1), 0);
-
- QStringList mmsRetrievalList;
- mmsRetrievalList << LOC_ALWAYS_AUTOMATIC
- << LOC_AUTO_HOME_NETWORK
- << LOC_MANUAL
- << LOC_OFF
- << LOC_ON;
-
- mmsRetrieval->setContentWidgetData("items", mmsRetrievalList);
- mmsRetrieval->setContentWidgetData("currentIndex", int(retrieval));
- this->addConnection(mmsRetrieval, SIGNAL(currentIndexChanged(int)), this,
- SLOT(changeMMSRetrievalMode(int)));
-
- HbDataFormModelItem *anonymousMMS = new HbDataFormModelItem(
- HbDataFormModelItem::ToggleValueItem, mmsSettingsGroup.at(2), 0);
-
- QStringList anonymousMMSList;
- anonymousMMSList << LOC_MMS_NO
- << LOC_MMS_YES;
-
- int defaultIndex = int(allowAnonymous);
- int alternateIndex = (defaultIndex + 1) % anonymousMMSList.count();
-
- anonymousMMS->setContentWidgetData("text", anonymousMMSList.at(
- defaultIndex));
- anonymousMMS->setContentWidgetData("additionalText", anonymousMMSList.at(
- alternateIndex));
- this->addConnection(anonymousMMS, SIGNAL(clicked()), this,
- SLOT(allowAnonymousMMS()));
-
- HbDataFormModelItem *mmsAdverts = new HbDataFormModelItem(HbDataFormModelItem::ToggleValueItem,
- mmsSettingsGroup.at(3), 0);
-
- QStringList mmsAdvertsList;
- mmsAdvertsList << LOC_MMS_NO
- << LOC_MMS_YES;
-
- defaultIndex = int(allowAdverts);
- alternateIndex = (defaultIndex + 1) % mmsAdvertsList.count();
-
- mmsAdverts->setContentWidgetData("text", mmsAdvertsList.at(defaultIndex));
- mmsAdverts->setContentWidgetData("additionalText", mmsAdvertsList.at(
- alternateIndex));
- this->addConnection(mmsAdverts, SIGNAL(clicked()), this,
- SLOT(allowMMSAdverts()));
-
- HbDataFormModelItem *accessPoint = new HbDataFormModelItem(HbDataFormModelItem::ComboBoxItem,
- mmsSettingsGroup.at(4), 0);
-
- QStandardItemModel* comboModel = new QStandardItemModel();
-
- QStringList mmsList;
- int defaultAccessPointIndex = -1;
-
- mSettingEngine->allMMsAcessPoints(mmsList, defaultAccessPointIndex);
- int accessPoints = mmsList.count();
- for (int a = 0; a < accessPoints; ++a)
- {
- QStandardItem* item = new QStandardItem();
- item->setData(mmsList[a], Qt::DisplayRole);
- comboModel->appendRow(item);
- }
- accessPoint->setModel(comboModel);
- accessPoint->setContentWidgetData("items", mmsList);
- if (defaultAccessPointIndex >= 0)
- {
- accessPoint->setContentWidgetData("currentIndex",
- defaultAccessPointIndex);
- }
- QDEBUG_WRITE_FORMAT("Settings: adding accesspoints..", defaultAccessPointIndex);
- this->addConnection(accessPoint, SIGNAL(currentIndexChanged(int)), this,
- SLOT(changeAccessPoint(int)));
-
- parent->appendChild(mmsCreationMode);
- parent->appendChild(mmsRetrieval);
- parent->appendChild(anonymousMMS);
- parent->appendChild(mmsAdverts);
- parent->appendChild(accessPoint);
-}
-
-void MsgAdvancedSettingsForm::addSmsMCGroupItem(HbDataFormModelItem* parent,
- HbDataFormModel* advancedSettingsmodel)
-{
- // add all the sms message center group item
- HbDataFormModelItem *smsMessageCenter = new HbDataFormModelItem(
- HbDataFormModelItem::ComboBoxItem, mSmsMCSettingsGroup.at(0), 0);
-
- mSettingEngine->allSMSMessageCenter(mSmsServiceList,
- mDefaultServiceCenter);
-
- QDEBUG_WRITE_FORMAT("MsgAdvancedSettingsForm::addSmsMCGroupItem Default", mDefaultServiceCenter);
- //create and fill service center model.
- createServiceCenterModel();
-
- smsMessageCenter->setModel(mSmsServiceCenterModel);
- smsMessageCenter->setContentWidgetData("items", mSmsServiceList);
-
- if (mDefaultServiceCenter > 0)
- {
- smsMessageCenter->setContentWidgetData("currentIndex",
- mDefaultServiceCenter);
- }
-
- this->addConnection(smsMessageCenter, SIGNAL(currentIndexChanged(int)),
- this, SLOT(onSMSCurrentIndexChanged(int)));
-
- parent->appendChild(smsMessageCenter);
-
- //CUSTOM SETTING ITEM HbButton
- HbDataFormModelItem::DataItemType
- customButtonGeneral =
- static_cast<HbDataFormModelItem::DataItemType> (HbDataFormModelItem::CustomItemBase
- + 1);
-
- int totalServices = mSmsServiceList.count();
- for (int index = 0; index < totalServices; index++)
- {
- HbDataFormModelItem *newMessageCenters =
- advancedSettingsmodel->appendDataFormItem(
- customButtonGeneral, QString(""), parent);
-
- newMessageCenters->setContentWidgetData("text", mSmsServiceList.at(
- index));
- this->addConnection(
- newMessageCenters,
- SIGNAL(clicked()),
- this,
- SLOT(onPressedCustomButton()));
- this->addConnection(
- newMessageCenters,
- SIGNAL(longPress(QPointF)),
- this,
- SLOT(onLongPress(QPointF)));
- }
-
- HbDataFormModelItem *newMessageCenters = advancedSettingsmodel->appendDataFormItem(
- customButtonGeneral, QString(""), parent);
-
- newMessageCenters->setContentWidgetData("text", mSmsMCSettingsGroup.at(1));
- this->addConnection(newMessageCenters, SIGNAL(clicked()),
- this,SLOT(onPressedCustomButton()));
- this->addConnection(newMessageCenters, SIGNAL(longPress(QPointF)),
- this,SLOT(onLongPress(QPointF)));
- }
-
-void MsgAdvancedSettingsForm::addSmsEmailGroupItem(
- HbDataFormModelItem* parent)
- {
- QString emailSmsNum = QString();
- QString emailGatewayTxt = QString();
-
- mSettingEngine->emailEmailGatewayAndServiceCenterNumber(emailGatewayTxt,
- emailSmsNum);
-
- // add all the sms email group item
- emailGateway = new HbDataFormModelItem(HbDataFormModelItem::TextItem,
- mSmsEmailSettingsGroup.at(0), 0);
-
- emailGateway->setContentWidgetData("text", emailGatewayTxt);
- connect(emailGateway->model(),
- SIGNAL(dataChanged(const QModelIndex&, const QModelIndex&)),
- this, SLOT(onDataChanged(const QModelIndex&, const QModelIndex&)));
-
- emailService = new HbDataFormModelItem(HbDataFormModelItem::TextItem,
- mSmsEmailSettingsGroup.at(1), 0);
- emailService->setContentWidgetData("text", emailSmsNum);
- connect(emailService->model(),
- SIGNAL(dataChanged(const QModelIndex&, const QModelIndex&)),
- this, SLOT(onDataChanged(const QModelIndex&, const QModelIndex&)));
-
- parent->appendChild(emailGateway);
- parent->appendChild(emailService);
-
- }
-
-void MsgAdvancedSettingsForm::onSMSCurrentIndexChanged(int index)
- {
-#ifdef _DEBUG_TRACES_
- qDebug()
- << "Enter MsgAdvancedSettingsForm::onSMSCurrentIndexChanged index="
- << index << "\n";
-#endif
-
- //set into msg settings
- mSettingEngine->setSMSMessageCenter(index);
-
-#ifdef _DEBUG_TRACES_
- qDebug() << "Exit MsgAdvancedSettingsForm::onSMSCurrentIndexChanged \n";
-#endif
-
- }
-
-// mms settings slots defined here
-void MsgAdvancedSettingsForm::changeMMSCreationMode(int index)
- {
- mSettingEngine->setMMSCreationmode(MsgSettingEngine::MmsCreationMode(
- index));
- }
-
-void MsgAdvancedSettingsForm::changeMMSRetrievalMode(int index)
- {
- mSettingEngine->setMMSRetrieval(MsgSettingEngine::MmsRetrieval(index));
- }
-
-void MsgAdvancedSettingsForm::allowAnonymousMMS()
- {
- HbPushButton *btn = qobject_cast<HbPushButton *> (sender());
-
- if (btn)
- {
- QString btnText = btn->text();
-
- //check if the button pressed was Yes or NO
- if (LOC_MMS_YES == btnText)
- {
- mSettingEngine->setAnonymousMessages(true);
- }
- else
- {
- mSettingEngine->setAnonymousMessages(false);
- }
- }
- }
-
-void MsgAdvancedSettingsForm::allowMMSAdverts()
- {
- HbPushButton *btn = qobject_cast<HbPushButton *> (sender());
-
- if (btn)
- {
- QString btnText = btn->text();
-
- //check if the button pressed was Yes or NO
- if (LOC_MMS_NO == btnText)
- {
- mSettingEngine->setReceiveMMSAdverts(true);
- }
- else
- {
- mSettingEngine->setReceiveMMSAdverts(false);
- }
- }
- }
-
-void MsgAdvancedSettingsForm::changeAccessPoint(int index)
- {
-#ifdef _DEBUG_TRACES_
- qDebug() << "Enter MsgAdvancedSettingsForm::changeAccessPoint index="
- << index << "\n";
-#endif
-
- // save to the mms settings
- mSettingEngine->setMMSAccesspoint(index);
-
-#ifdef _DEBUG_TRACES_
- qDebug() << "Exit MsgAdvancedSettingsForm::changeAccessPoint";
-#endif
- }
-
-void MsgAdvancedSettingsForm::onPressedCustomButton()
- {
- HbPushButton *btn = qobject_cast<HbPushButton *> (sender());
-
- if (btn)
- {
- QString btnText = btn->text();
- if (btnText == mSmsMCSettingsGroup.at(1))
- {
- // emit the signal to open add view
- emit newSMSCCenterClicked(-1);
- }
- else
- {
- int index = mSmsServiceList.indexOf(btnText);
- emit newSMSCCenterClicked(index);
- }
- }
- }
-
-void MsgAdvancedSettingsForm::refresh()
- {
- int childCount = mSmsMCGroup->childCount();
- //remove items after mSmsCenterComboBox till new center button.
- if (childCount > 0){
- mSmsMCGroup->removeChildren(1, childCount - 2);
- }
- updateSmsCenterModel();
- }
-
-void MsgAdvancedSettingsForm::commitEmailChanges()
- {
- if (mEditEmailGateway == NULL || mEditEmailServiceNumber == NULL)
- {
- return;
- }
-
- QString emailGateway = mEditEmailGateway->text();
- QString emailServiceCenter = mEditEmailServiceNumber->text();
-
-#ifdef _DEBUG_TRACES_
- qDebug() << "Enter MsgAdvancedSettingsForm::commitEmailChanges "
- << emailGateway << " " << emailServiceCenter;
-#endif
-
- mSettingEngine->setEmailGateway(emailGateway);
-
- //set the smsc center number
- mSettingEngine->setEmailSeriveCenterNumber(emailServiceCenter);
-
-#ifdef _DEBUG_TRACES_
- qDebug() << "Exit MsgAdvancedSettingsForm::commitEmailChanges\n";
-#endif
-
- }
-
-void MsgAdvancedSettingsForm::updateSmsCenterModel()
- {
- mSmsServiceList.clear();
- mSettingEngine->allSMSMessageCenter(mSmsServiceList,
- mDefaultServiceCenter);
-
- HbDataFormModelItem* smsCenterCombo = mSmsMCGroup->childAt(0);
- QAbstractItemModel* mod = const_cast<QAbstractItemModel*> (this->model());
- HbDataFormModel* advancedSettingsmodel =
- static_cast<HbDataFormModel*> (mod);
- int msgCenterComboIndex = advancedSettingsmodel->indexFromItem(
- smsCenterCombo).row();
-
- //clear model before refilling.
- mSmsServiceCenterModel->clear();
- fillServiceCenterModel();
-
- //CUSTOM SETTING ITEM HbButton
- HbDataFormModelItem::DataItemType
- customButtonGeneral =
- static_cast<HbDataFormModelItem::DataItemType> (HbDataFormModelItem::CustomItemBase
- + 1);
-
- int itemCount = mSmsServiceList.count();
- for (int i = 0; i < itemCount; ++i)
- {
- //add custom buttons.
- HbDataFormModelItem *messageCenters = new HbDataFormModelItem(
- customButtonGeneral, QString(), mSmsMCGroup);
-
- messageCenters->setData(HbDataFormModelItem::KeyRole,
- mSmsServiceList.at(i));
-
- advancedSettingsmodel->insertDataFormItem(
- msgCenterComboIndex + 1 + i, messageCenters, mSmsMCGroup);
- }
- }
-
-void MsgAdvancedSettingsForm::createServiceCenterModel()
- {
- mSmsServiceCenterModel = new QStandardItemModel();
-
- //to know when is model destroyed.
- connect(mSmsServiceCenterModel, SIGNAL(destroyed()), this,
- SLOT(createServiceCenterModel()));
-
- fillServiceCenterModel();
- }
-
-void MsgAdvancedSettingsForm::fillServiceCenterModel()
- {
- QStringList serviceCenters;
- mSettingEngine->allSMSMessageCenter(serviceCenters, mDefaultServiceCenter);
-
- int itemCount = serviceCenters.count();
-
- QDEBUG_WRITE_FORMAT("MsgAdvancedSettingsForm::fillServiceCenterModel..", itemCount);
- for (int i = 0; i < itemCount; ++i)
- {
- QStandardItem *item = new QStandardItem;
- item->setData(serviceCenters.at(i), Qt::DisplayRole);
- QDEBUG_WRITE_FORMAT("MsgAdvancedSettingsForm::fillServiceCenterModel Setdata", serviceCenters.at(i));
- mSmsServiceCenterModel->appendRow(item);
- }
- }
-
-void MsgAdvancedSettingsForm::activateEmailServiceCenterNo(HbWidget* widget,
- HbLineEdit* &edit)
- {
- // editing finished SIGNAL is still not coming in week48MCL
- HbLineEdit* editWidget = qobject_cast<HbLineEdit *> (widget);
-
- if (editWidget)
- {
- edit = editWidget;
- HbEditorInterface editorInterface(edit);
- editorInterface.setUpAsPhoneNumberEditor();
- //connect(edit, SIGNAL(editingFinished()), this, SLOT(onEditingFinished()));
- }
- }
-
-void MsgAdvancedSettingsForm::onLongPress(QPointF point)
- {
- Q_UNUSED(point);
- }
-
-void MsgAdvancedSettingsForm::onDataChanged(const QModelIndex& topLeft,
- const QModelIndex& bottomRight)
- {
- HbDataFormModelItem *itemData =
- static_cast<HbDataFormModel *> (model())->itemFromIndex(topLeft);
-
- if (itemData && itemData == emailGateway && !mEditEmailGateway)
- {
- mEditEmailGateway =
- static_cast<HbLineEdit *>(this->dataFormViewItem(topLeft)->dataItemContentWidget());
- }
- else if (itemData && itemData == emailService && !mEditEmailServiceNumber)
- {
- mEditEmailServiceNumber =
- static_cast<HbLineEdit *>(this->dataFormViewItem(topLeft)->dataItemContentWidget());
- HbEditorInterface editorInterface(mEditEmailServiceNumber);
- editorInterface.setUpAsPhoneNumberEditor();
-
- }
-
- }
- //eof