--- a/securitysettings/cpeapuiplugins/cpeapsimakaui/src/cpeapsimakaui.cpp Tue Aug 31 15:16:37 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,417 +0,0 @@
-/*
- * Copyright (c) 2010 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:
- * Control Panel QT UI for EAP-SIM and EAP-AKA method configuration
- *
- */
-
-/*
- * %version: 18 %
- */
-
-// System includes
-#include <HbDataForm>
-#include <HbDataFormModel>
-#include <HbDataFormViewItem>
-#include <HbParameterLengthLimiter>
-#include <HbMessageBox>
-#include <HbAction>
-#include <HbLineEdit>
-#include <cpsettingformitemdata.h>
-#include <cpitemdatahelper.h>
-#include <eapqtvalidator.h>
-#include <eapqtexpandedeaptype.h>
-
-// User includes
-#include "cpeapsimakaui.h"
-
-/*!
- * \class CpEapSimAkaUi
- * \brief Implementes EAP-SIM and EAP-AKA method configuration ui.
- */
-
-// External function prototypes
-
-// Local constants
-
-// ======== LOCAL FUNCTIONS ========
-
-// ======== MEMBER FUNCTIONS ========
-
-/*!
- * Constructor.
- *
- * @param bearer Bearer type of the accessed configuration.
- * @param iapId IAP ID of the accessed configuration.
- * @param plugin Plugin.
- * @param outerHandle Outer handle.
- */
-CpEapSimAkaUi::CpEapSimAkaUi(
- const EapQtConfigInterface::EapBearerType bearer,
- const int iapId,
- const EapQtPluginInfo &plugin,
- const EapQtPluginHandle& outerHandle) :
- mConfigIf(NULL),
- mPluginInfo(plugin),
- mOuterHandle(outerHandle),
- mForm(NULL),
- mModel(NULL),
- mItemDataHelper(NULL),
- mGroupItem(NULL),
- mUsernameAutomatic(NULL),
- mUsername(NULL),
- mRealmAutomatic(NULL),
- mRealm(NULL),
- mValidatorRealm(NULL),
- mValidatorUsername(NULL)
-{
- qDebug("CpEapSimAkaUi::CpEapSimAkaUi");
-
- // IAP must be valid in construction (check includes
- // EapQtConfigInterface::IapIdUndefined)
- if (iapId < 0) {
- QT_THROW(std::bad_alloc());
- // scoped pointer gets deleted automaticaly on exception
- }
-
- // Get EAP config interface
- mConfigIf.reset(new EapQtConfigInterface(bearer, iapId));
-
- createUi();
-}
-
-/*!
- * Destructor.
- */
-CpEapSimAkaUi::~CpEapSimAkaUi()
-{
- qDebug("CpEapSimAkaUi::~CpEapSimAkaUi");
-
- // mValidatorRealm, mValidatorUsername
- // mConfigIf: scoped pointer deleted automatically
-}
-
-/*!
- * Creates EAP-SIM/AKA UI and initilizes settings read via
- * EapQtConfigInterface
- */
-void CpEapSimAkaUi::createUi()
-{
- qDebug("CpEapSimAkaUi::createUi");
-
- // Read EAP Configurations
- bool configurationRead = mConfigIf->readConfiguration(mOuterHandle, mPluginInfo.pluginHandle(),
- mEapConfig);
- if (!configurationRead) {
- qDebug("CpEapSimAkaUi::initializeSimAkaUi - read configuration failed.");
- }
-
- // Construct EAP-SIM/AKA settings UI
- mForm = new HbDataForm();
- this->setWidget(mForm);
- mModel = new HbDataFormModel(mForm);
-
- mGroupItem = new HbDataFormModelItem(HbDataFormModelItem::GroupItem,
- HbParameterLengthLimiter(
- hbTrId("txt_occ_subhead_eap_module_settings")).arg(
- mPluginInfo.localizationId()));
- mModel->appendDataFormItem(mGroupItem);
-
- // The parameter given as 0 is a HbDataForm pointer, not parent
- mItemDataHelper = new CpItemDataHelper(0);
- mItemDataHelper->setParent(this);
-
- // Create UI components
- createUsername();
- createRealm();
-
- mItemDataHelper->bindToForm(mForm);
- mForm->setModel(mModel);
-
- // Connect signal to add validators when items get activated (visualization created).
- bool connected = connect(mForm, SIGNAL( itemShown(const QModelIndex&) ), this,
- SLOT( setValidator(const QModelIndex) ));
- Q_ASSERT(connected);
-
- // Expand EAP-SIM/AKA settings group
- mForm->setExpanded(mModel->indexFromItem(mGroupItem), true);
-}
-
-/*!
- * Creates Username group:
- * Generate automatically checkBox and username lineEdit
- */
-void CpEapSimAkaUi::createUsername()
-{
- qDebug("CpEapSimAkaUi::createUsername()");
- // UsernameAutomatic
- mUsernameAutomatic = new CpSettingFormItemData(HbDataFormModelItem::CheckBoxItem, hbTrId(
- "txt_occ_setlabel_user_name"));
- mUsernameAutomatic->setContentWidgetData("text", hbTrId(
- "txt_occ_setlabel_user_name_val_generate_automatica"));
- // Initialize the value from EapQtConfig
- // Generate username automatically is selected by default
- mUsernameAutomatic->setContentWidgetData("checkState", boolToCheckState(mEapConfig.value(
- EapQtConfig::UsernameAutomatic).toBool()));
- // Connect signal to disable/enable username when usernameAutomatic changed
- mForm->addConnection(mUsernameAutomatic, SIGNAL(stateChanged(int)), this,
- SLOT(usernameAutomaticChanged(int)));
- mGroupItem->appendChild(mUsernameAutomatic);
-
- //Username
- mUsername = new CpSettingFormItemData(HbDataFormModelItem::TextItem, hbTrId(
- "txt_occ_setlabel_user_name"));
- mUsername->setContentWidgetData("text", mEapConfig.value(EapQtConfig::Username));
- // Dim username if usernameAutomatic selected
- usernameAutomaticChanged(mUsernameAutomatic->contentWidgetData("checkState") == Qt::Checked);
- mGroupItem->appendChild(mUsername);
-}
-
-/*!
- * Creates Realm group:
- * Generate automatically checkBox and realm lineEdit
- */
-void CpEapSimAkaUi::createRealm()
-{
- qDebug("CpEapSimAkaUi::createRealm()");
- // RealmAutomatic
- mRealmAutomatic = new CpSettingFormItemData(HbDataFormModelItem::CheckBoxItem, hbTrId(
- "txt_occ_setlabel_realm"));
- mRealmAutomatic->setContentWidgetData("text", hbTrId(
- "txt_occ_setlabel_realm_val_generate_automatically"));
- // Initialize the value from EapQtConfig
- // Generate realm automatically is selected by default
- mRealmAutomatic->setContentWidgetData("checkState", boolToCheckState(mEapConfig.value(
- EapQtConfig::RealmAutomatic).toBool()));
- // connect signal to disable/enable realm when realmAutomatic changed
- mForm->addConnection(mRealmAutomatic, SIGNAL(stateChanged(int)), this,
- SLOT(realmAutomaticChanged(int)));
- mGroupItem->appendChild(mRealmAutomatic);
-
- //Realm
- mRealm = new CpSettingFormItemData(HbDataFormModelItem::TextItem, hbTrId(
- "txt_occ_setlabel_realm"));
- mRealm->setContentWidgetData("text", mEapConfig.value(EapQtConfig::Realm));
- // Dim realm if realmAutomatic selected
- realmAutomaticChanged(mRealmAutomatic->contentWidgetData("checkState") == Qt::Checked);
- mGroupItem->appendChild(mRealm);
-}
-
-/*!
- * Adds validators.
- *
- * @param modelIndex Model index
- */
-void CpEapSimAkaUi::setValidator(const QModelIndex modelIndex)
-{
- qDebug("CpEapUserPasswordUi::itemActivated");
-
- HbDataFormViewItem *viewItem = qobject_cast<HbDataFormViewItem *>
- (mForm->itemByIndex(modelIndex));
- HbDataFormModelItem *modelItem = mModel->itemFromIndex(modelIndex);
-
- if (modelItem == mUsername) {
- // When username lineEdit is activated (shown) first time, validator is added
- mValidatorUsername.reset(mConfigIf->validatorEap(mPluginInfo.pluginHandle().type(),
- EapQtConfig::Username));
- HbLineEdit *edit = qobject_cast<HbLineEdit *> (viewItem->dataItemContentWidget());
- mValidatorUsername->updateEditor(edit);
- }
- else if (modelItem == mRealm) {
- // When realm lineEdit is activated (shown) first time, validator is added
- mValidatorRealm.reset(mConfigIf->validatorEap(mPluginInfo.pluginHandle().type(),
- EapQtConfig::Realm));
- HbLineEdit *edit = qobject_cast<HbLineEdit *> (viewItem->dataItemContentWidget());
- mValidatorRealm->updateEditor(edit);
- }
-}
-
-/*!
- * This is called when user is about to exit the view.
- * Validates configuration and saves settings.
- * If configuration is not valid prompts question dialog.
- * If user chooses "OK" leaves without saving.
- *
- */
-void CpEapSimAkaUi::close()
-{
- qDebug("CpEapSimAkaUi::close");
-
- // Validate configuration
- if (validate()) {
- qDebug("CpEapSimAkaUi::close - Validation OK");
-
- // Store settings
- if (storeSettings()){
- qDebug("CpEapSimAkaUi::close - Settings stored, close view");
- // Close view
- CpBaseSettingView::close();
- }
- else {
- qDebug("CpEapSimAkaUi::close - Store settings failed, prompt warning");
- // Store failed. Show error note to user
- QScopedPointer<HbMessageBox> infoBox;
- infoBox.reset(new HbMessageBox(
- HbMessageBox::MessageTypeWarning));
- infoBox->setAttribute(Qt::WA_DeleteOnClose);
- infoBox->setText(hbTrId("txt_occ_info_unable_to_save_setting"));
- infoBox->clearActions();
- // Connect 'OK'-button to CpBaseSettingView 'aboutToClose'-signal
- HbAction *okAction = new HbAction(hbTrId("txt_common_button_ok"));
- infoBox->addAction(okAction);
- bool connected = connect(
- okAction,
- SIGNAL(triggered()),
- this,
- SIGNAL(aboutToClose()));
- Q_ASSERT(connected);
- infoBox->open();
- infoBox.take();
- }
- }
- else {
- qDebug("CpEapSimAkaUi::close - validation failed. Prompt question.");
- QScopedPointer<HbMessageBox> messageBox;
- messageBox.reset(new HbMessageBox(
- HbMessageBox::MessageTypeQuestion));
- messageBox->setAttribute(Qt::WA_DeleteOnClose);
- messageBox->setText(hbTrId("txt_occ_info_incomplete_details_return_without_sa"));
- messageBox->clearActions();
- // Connect 'YES'-button to CpBaseSettingView 'aboutToClose'-signal
- HbAction *okAction = new HbAction(hbTrId("txt_common_button_yes"));
- messageBox->addAction(okAction);
- bool connected = connect(
- okAction,
- SIGNAL(triggered()),
- this,
- SIGNAL(aboutToClose()));
- Q_ASSERT(connected);
- // Clicking 'NO'-button does nothing
- HbAction *cancelAction = new HbAction(hbTrId("txt_common_button_no"));
- messageBox->addAction(cancelAction);
- messageBox->setTimeout(HbPopup::NoTimeout);
- messageBox->open();
- messageBox.take();
- }
-}
-
-/*!
- * Dims the realm if generate realm automatically has been selected.
- *
- * @param state Tells is generate automatically checked.
- */
-void CpEapSimAkaUi::realmAutomaticChanged(int state)
-{
- qDebug("CpEapSimAkaUi::realmAutomaticChanged");
-
- mRealm->setContentWidgetData("enabled", !checkStateToBool(state));
-}
-
-/*!
- * Dims the username if generate username automatically has been selected.
- *
- * @param state Tells is generate automatically checked.
- */
-void CpEapSimAkaUi::usernameAutomaticChanged(int state)
-{
- qDebug("CpEapSimAkaUi::usernameAutomaticChanged");
-
- mUsername->setContentWidgetData("enabled", !checkStateToBool(state));
-}
-
-/*!
- * Converts check box state to boolean.
- *
- * @param state Check box state
- *
- * @return true if Check box is checked, false otherwise.
- */
-bool CpEapSimAkaUi::checkStateToBool(const int state)
-{
- return (Qt::Unchecked == state ? false : true);
-}
-
-/*!
- * Converts boolean to check box state.
- *
- * @param state Tells is check box checked.
- *
- * @return Qt check state
- */
-int CpEapSimAkaUi::boolToCheckState(const bool state)
-{
- return (false == state ? Qt::Unchecked : Qt::Checked);
-}
-
-/*!
- * Validates settings configuration.
- *
- * @return true if configuration OK, false otherwise.
- */
-bool CpEapSimAkaUi::validate()
-{
- bool valid = false;
-
- if (validateGroup(mUsername, mUsernameAutomatic, mValidatorUsername.data())
- && validateGroup(mRealm, mRealmAutomatic, mValidatorRealm.data())) {
- valid = true;
- }
-
- return valid;
-}
-
-/*!
- * Validates checkBox and lineEdit group.
- *
- * @return true if OK, false otherwise.
- */
-bool CpEapSimAkaUi::validateGroup(CpSettingFormItemData *edit, CpSettingFormItemData *checkBox,
- EapQtValidator *validator)
-{
- bool status = false;
- // true if generate automatically is checked or given value is valid
- if (checkBox->contentWidgetData("checkState") == Qt::Checked
- || EapQtValidator::StatusOk == validator->validate(
- edit->contentWidgetData("text"))) {
- status = true;
- }
- return status;
-}
-
-/*!
- * Stores settings given via SIM-AKA configuration UI
- *
- * @return false if saving failed, true otherwise
- */
-bool CpEapSimAkaUi::storeSettings()
-{
- qDebug("CpEapSimAkaUi::storeSettings");
-
- EapQtConfig eapConfig;
-
- eapConfig.setValue(EapQtConfig::OuterType, qVariantFromValue(mOuterHandle));
- eapConfig.setValue(EapQtConfig::UsernameAutomatic, checkStateToBool(
- mUsernameAutomatic->contentWidgetData("checkState").toInt()));
- eapConfig.setValue(EapQtConfig::Username, mUsername->contentWidgetData("text"));
- eapConfig.setValue(EapQtConfig::RealmAutomatic, checkStateToBool(
- mRealmAutomatic->contentWidgetData("checkState").toInt()));
- eapConfig.setValue(EapQtConfig::Realm, mRealm->contentWidgetData("text"));
-
- // Save configuration
- if (!mConfigIf->saveConfiguration(mPluginInfo.pluginHandle(), eapConfig)) {
- qDebug("CpEapSimAkaUi::storeSettings - configuration saving failed.");
- return false;
- }
- return true;
-}