diff -r 4697dfb2d7ad -r 238255e8b033 messagingapp/msgsettings/settingsview/src/msgsettingsform.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingapp/msgsettings/settingsview/src/msgsettingsform.cpp Fri Apr 16 14:56:15 2010 +0300 @@ -0,0 +1,141 @@ +/* + * 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 first form view for msg settings + * + */ + +#include "msgsettingsform.h" +#include "msgsettingsdataformcustomitem.h" + +#include +#include +#include +#include + +#include "debugtraces.h" + +//Localized constants +#define LOC_DELIVERY_REPORTS hbTrId("txt_messaging_setlabel_delivery_reports") +#define LOC_ON hbTrId("txt_messaging_setlabel_val_on") +#define LOC_OFF hbTrId("txt_messaging_setlabel_val_off") +#define LOC_REDUCED_SUPPORT hbTrId("txt_messaging_setlabel_val_reduced_support") +#define LOC_FULL_SUPPORT hbTrId("txt_messaging_setlabel_val_full_support") +#define LOC_ADVANCED hbTrId("txt_messaging_button_advanced") +#define LOC_CHAR_ENCODING hbTrId("txt_messaging_setlabel_character_encoding") + + +MsgSettingsForm::MsgSettingsForm(MsgSettingsViewManager* settingsViewManager, + QGraphicsItem *parent) +:HbDataForm(parent), mSettingsViewManager(settingsViewManager) +{ + this->setHeading(tr("Application settings: Messaging")); + + mSettingEngine = new MsgSettingEngine(); + + //initialize the form model + initSettingModel(); +} + +MsgSettingsForm::~MsgSettingsForm() +{ + delete mSettingEngine; +} + +void MsgSettingsForm::initSettingModel() +{ + HbDataFormModel *model = new HbDataFormModel(0); + + bool deliveryReoprt = false; + MsgSettingEngine::CharacterEncoding charEncoding = MsgSettingEngine::ReducedSupport; + + mSettingEngine->settingsDeliverReportAndCharEncoding(deliveryReoprt, charEncoding); + + QStringList deliveryReoprtList; + deliveryReoprtList << LOC_OFF << LOC_ON; + + int index = int(deliveryReoprt); + int otherIndex = (deliveryReoprt + 1) % deliveryReoprtList.count(); + + // 1. create the first item delivery reports + HbDataFormModelItem *deliverReports = new HbDataFormModelItem( + HbDataFormModelItem::ToggleValueItem, + LOC_DELIVERY_REPORTS, 0); + deliverReports->setContentWidgetData("text", deliveryReoprtList.at(index)); + deliverReports->setContentWidgetData("additionalText", deliveryReoprtList.at(otherIndex)); + + model->appendDataFormItem(deliverReports, model->invisibleRootItem()); + this->addConnection(deliverReports, SIGNAL(clicked()), + this,SLOT(onPressedDelReports())); + + // 2. Character encoding + HbDataFormModelItem *characterEncoding = new HbDataFormModelItem( + HbDataFormModelItem::ComboBoxItem, + LOC_CHAR_ENCODING, 0); + QStringList charEncodingList; + charEncodingList << LOC_REDUCED_SUPPORT << LOC_FULL_SUPPORT; + + index = int(charEncoding); + + characterEncoding->setContentWidgetData("items", charEncodingList); + characterEncoding->setContentWidgetData("currentIndex", index); + + model->appendDataFormItem(characterEncoding, model->invisibleRootItem()); + this->addConnection(characterEncoding, SIGNAL(currentIndexChanged(int)), + this,SLOT(changeCharEncoding(int))); + + // 3. CUSTOM SETTING ITEM HbButton + HbDataFormModelItem::DataItemType customItem = + static_cast (HbDataFormModelItem::CustomItemBase + 1); + + HbDataFormModelItem *advancedSettings + = model->appendDataFormItem(customItem, QString(), model->invisibleRootItem()); + + advancedSettings->setContentWidgetData("text", LOC_ADVANCED); + this->addConnection(advancedSettings, SIGNAL(clicked()), + this,SLOT(onPressedAdvanced())); + + this->setModel(model); +} + +void MsgSettingsForm::onPressedAdvanced() +{ + //tell view manager to open advanced view + mSettingsViewManager->openAdvancedView(); +} + +void MsgSettingsForm::onPressedDelReports() +{ + HbPushButton *btn = qobject_cast (sender()); + + if (btn) { + QString btnText = btn->text(); + + //check if the button pressed was On or Off + if (LOC_OFF == btnText) { + mSettingEngine->setDeliveryReport(false); + } + else { + mSettingEngine->setDeliveryReport(true); + } + } +} + +void MsgSettingsForm::changeCharEncoding(int index) +{ + //set the character encoding + mSettingEngine->setCharacterEncoding(MsgSettingEngine::CharacterEncoding(index)); +} + + +//EOF