--- a/cmmanager/cppacketdataapplugin/src/cppacketdataapview.cpp Tue Aug 31 15:35:44 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,596 +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 packet data AP settings view header file.
-*
-*/
-
-// System includes
-#include <QString>
-#include <QStringList>
-#include <QVariant>
-#include <HbMainWindow>
-#include <HbMenu>
-#include <HbDataForm>
-#include <HbDataFormModel>
-#include <HbDataFormViewItem>
-#include <HbLineEdit>
-#include <HbEditorInterface>
-#include <HbUrlFilter>
-#include <HbPopup>
-#include <HbMessageBox>
-#include <HbAction>
-#include <cpsettingformitemdata.h>
-#include <cmconnectionmethod_shim.h>
-
-// User includes
-#include "cppacketdataapplugin.h"
-#include "cppacketdataapview.h"
-#include "cppacketdataapadvancedview.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "cppacketdataapviewTraces.h"
-#endif
-
-/*!
- \class CpPacketDataApView
- \brief Implements the settings view for packet data bearer access points.
-*/
-
-// External function prototypes
-
-// Local constants
-
-// ======== LOCAL FUNCTIONS ========
-
-// ======== MEMBER FUNCTIONS ========
-
-/*!
- Constructor.
-*/
-CpPacketDataApView::CpPacketDataApView(
- CmConnectionMethodShim *cmConnectionMethod,
- QGraphicsItem *parent) :
- CpBaseSettingView(0, parent),
- mForm(0),
- mModel(0),
- mApSettingsGroupItem(0),
- mConnectionNameItem(0),
- mAccessPointNameItem(0),
- mUserNameItem(0),
- mPasswordItem(0),
- mAuthenticationItem(0),
- mHomepageItem(0),
- mAdvancedSettingsAction(0),
- mCmConnectionMethod(cmConnectionMethod),
- mMessageBox(0)
-{
- OstTraceFunctionEntry0(CPPACKETDATAAPVIEW_CPPACKETDATAAPVIEW_ENTRY);
-
- HbMenu *menu = this->menu();
- mAdvancedSettingsAction = menu->addAction(
- hbTrId("txt_occ_opt_advanced_settings"));
- bool status = connect(
- menu,
- SIGNAL(triggered(HbAction*)),
- this,
- SLOT(menuActionTriggered(HbAction*)));
- Q_ASSERT(status);
-
- // Construct packet data AP settings UI
- mForm = new HbDataForm();
- this->setWidget(mForm);
- mModel = new HbDataFormModel(mForm);
- mForm->setModel(mModel);
-
- // Add access point settings group
- createAccessPointSettingsGroup();
-
- status = connect(
- mForm,
- SIGNAL(itemShown(const QModelIndex)),
- this,
- SLOT(setEditorPreferences(const QModelIndex)));
- Q_ASSERT(status);
-
- // Expand Access point settings group
- mForm->setExpanded(mModel->indexFromItem(mApSettingsGroupItem), true);
-
- OstTraceFunctionExit0(CPPACKETDATAAPVIEW_CPPACKETDATAAPVIEW_EXIT);
-}
-
-/*!
- Destructor.
-*/
-CpPacketDataApView::~CpPacketDataApView()
-{
- OstTraceFunctionEntry0(DUP1_CPPACKETDATAAPVIEW_CPPACKETDATAAPVIEW_ENTRY);
-
- OstTraceFunctionExit0(DUP1_CPPACKETDATAAPVIEW_CPPACKETDATAAPVIEW_EXIT);
-}
-
-/*!
- Adds settings group with all settings items to the model.
-*/
-void CpPacketDataApView::createAccessPointSettingsGroup()
-{
- OstTraceFunctionEntry0(CPPACKETDATAAPVIEW_CREATEACCESSPOINTSETTINGSGROUP_ENTRY);
-
- // Access point settings group
- mApSettingsGroupItem = new HbDataFormModelItem(
- HbDataFormModelItem::GroupItem,
- hbTrId("txt_occ_subhead_access_point_settings"));
- mModel->appendDataFormItem(mApSettingsGroupItem);
-
- // Connection name
- mConnectionNameItem = new CpSettingFormItemData(
- HbDataFormModelItem::TextItem,
- hbTrId("txt_occ_setlabel_connection_name"));
- // Connect signal and add item to group
- mForm->addConnection(
- mConnectionNameItem,
- SIGNAL(editingFinished()),
- this,
- SLOT(connectionNameChanged()));
- mConnectionNameItem->setContentWidgetData("objectName", "connectionNameEdit");
- mApSettingsGroupItem->appendChild(mConnectionNameItem);
-
- // Access point name
- mAccessPointNameItem = new CpSettingFormItemData(
- HbDataFormModelItem::TextItem,
- hbTrId("txt_occ_setlabel_access_point_name"));
- // Connect signal and add item to group
- mForm->addConnection(
- mAccessPointNameItem,
- SIGNAL(editingFinished()),
- this,
- SLOT(accessPointNameChanged()));
- mAccessPointNameItem->setContentWidgetData("objectName", "accessPointNameEdit");
- mApSettingsGroupItem->appendChild(mAccessPointNameItem);
-
- // User name
- mUserNameItem = new CpSettingFormItemData(
- HbDataFormModelItem::TextItem,
- hbTrId("txt_occ_setlabel_user_name"));
- // Connect signal and add item to group
- mForm->addConnection(
- mUserNameItem,
- SIGNAL(editingFinished()),
- this,
- SLOT(userNameChanged()));
- mUserNameItem->setContentWidgetData("objectName", "userNameEdit");
- mApSettingsGroupItem->appendChild(mUserNameItem);
-
- // Password
- mPasswordItem = new CpSettingFormItemData(
- HbDataFormModelItem::TextItem,
- hbTrId("txt_occ_setlabel_password"));
- mPasswordItem->setContentWidgetData("echoMode", "PasswordEchoOnEdit");
- // Connect signal and add item to group
- mForm->addConnection(
- mPasswordItem,
- SIGNAL(editingFinished()),
- this,
- SLOT(passwordChanged()));
- mPasswordItem->setContentWidgetData("objectName", "passwordEdit");
- mApSettingsGroupItem->appendChild(mPasswordItem);
-
- // Authentication
- mAuthenticationItem = new CpSettingFormItemData(
- HbDataFormModelItem::ComboBoxItem,
- hbTrId("txt_occ_setlabel_authentication"));
- // Add items to combobox
- QStringList authenticationItems;
- authenticationItems
- << hbTrId("txt_occ_setlabel_authentication_val_normal")
- << hbTrId("txt_occ_setlabel_authentication_val_secure");
- mAuthenticationItem->setContentWidgetData("items", authenticationItems);
- // Construct map to link item indexes to setting values
- mAuthenticationMap.insert(0, false); // normal (plaintext allowed)
- mAuthenticationMap.insert(1, true); // secure (plaintext disabled)
- // Connect signal and add item to group
- mForm->addConnection(
- mAuthenticationItem,
- SIGNAL(currentIndexChanged(int)),
- this,
- SLOT(authenticationChanged(int)));
- mAuthenticationItem->setContentWidgetData("objectName", "authenticationCB");
- mApSettingsGroupItem->appendChild(mAuthenticationItem);
-
- // Homepage
- mHomepageItem = new CpSettingFormItemData(
- HbDataFormModelItem::TextItem,
- hbTrId("txt_occ_setlabel_homepage"));
- // Connect signal and add item to group
- mForm->addConnection(
- mHomepageItem,
- SIGNAL(editingFinished()),
- this,
- SLOT(homepageChanged()));
- mHomepageItem->setContentWidgetData("objectName", "homePageEdit");
- mApSettingsGroupItem->appendChild(mHomepageItem);
-
- // Read settings from CommsDat and update widgets
- updateAccessPointSettingsGroup();
-
- OstTraceFunctionExit0(CPPACKETDATAAPVIEW_CREATEACCESSPOINTSETTINGSGROUP_EXIT);
-}
-
-/*!
- Reads attribute values and updates "Access point settings" group settings.
-*/
-void CpPacketDataApView::updateAccessPointSettingsGroup()
-{
- OstTraceFunctionEntry0(CPPACKETDATAAPVIEW_UPDATEACCESSPOINTSETTINGSGROUP_ENTRY);
-
- // Get attributes from CommsDat and set values to UI widgets
-
- // Connection name
- QString connectionName = mCmConnectionMethod->getStringAttribute(
- CMManagerShim::CmName);
- mConnectionNameItem->setContentWidgetData("text", connectionName);
-
- // Access point name
- QString accessPointName = mCmConnectionMethod->getStringAttribute(
- CMManagerShim::PacketDataAPName);
- mAccessPointNameItem->setContentWidgetData("text", accessPointName);
-
- // User name
- QString userName = mCmConnectionMethod->getStringAttribute(
- CMManagerShim::PacketDataIFAuthName);
- mUserNameItem->setContentWidgetData("text", userName);
-
- // Password
- QString password = mCmConnectionMethod->getStringAttribute(
- CMManagerShim::PacketDataIFAuthPass);
- mPasswordItem->setContentWidgetData("text", password);
-
- // Authentication
- bool disablePlainText = mCmConnectionMethod->getBoolAttribute(
- CMManagerShim::PacketDataDisablePlainTextAuth);
- mAuthenticationItem->setContentWidgetData("currentIndex",
- mAuthenticationMap.key(disablePlainText));
-
- // Homepage
- QString homepage = mCmConnectionMethod->getStringAttribute(
- CMManagerShim::CmStartPage);
- mHomepageItem->setContentWidgetData("text", homepage);
-
- OstTraceFunctionExit0(CPPACKETDATAAPVIEW_UPDATEACCESSPOINTSETTINGSGROUP_EXIT);
-}
-
-/*!
- Shows message box with "OK" button using given text.
-*/
-void CpPacketDataApView::showMessageBox(
- HbMessageBox::MessageBoxType type,
- const QString &text)
-{
- OstTraceFunctionEntry0(CPPACKETDATAAPVIEW_SHOWMESSAGEBOX_ENTRY);
-
- // Create a message box
- mMessageBox = QSharedPointer<HbMessageBox>(new HbMessageBox(type));
- mMessageBox->setText(text);
- mMessageBox->setModal(true);
- mMessageBox->setTimeout(HbPopup::NoTimeout);
- mMessageBox->open();
-
- OstTraceFunctionExit0(CPPACKETDATAAPVIEW_SHOWMESSAGEBOX_EXIT);
-}
-
-/*!
- Tries to update connection method changes to CommsDat.
- Returns "true" if success, "false" if some error happened.
-*/
-bool CpPacketDataApView::tryUpdate()
-{
- OstTraceFunctionEntry0(CPPACKETDATAAPVIEW_TRYUPDATE_ENTRY);
-
- // Try update
- try {
- mCmConnectionMethod->update();
- }
- catch (const std::exception&) {
- // Handle error
- handleUpdateError();
-
- OstTraceFunctionExit0(CPPACKETDATAAPVIEW_TRYUPDATE_EXIT);
- return false;
- }
-
- OstTraceFunctionExit0(DUP1_CPPACKETDATAAPVIEW_TRYUPDATE_EXIT);
- return true;
-}
-
-/*!
- Handles failed CommsDat update.
- */
-void CpPacketDataApView::handleUpdateError()
-{
- OstTraceFunctionEntry0(CPPACKETDATAAPVIEW_HANDLEUPDATEERROR_ENTRY);
-
- // Show error note to user
- showMessageBox(
- HbMessageBox::MessageTypeWarning,
- hbTrId("txt_occ_info_unable_to_save_setting"));
- // Reload settings from CommsDat and update UI
- try {
- mCmConnectionMethod->refresh();
- }
- catch (const std::exception&) {
- // Ignore error from refresh. Most likely this will not happen, but
- // if it does, there isn't very much we can do.
- OstTrace0(
- TRACE_ERROR,
- CPPACKETDATAAPVIEW_HANDLEUPDATEERROR,
- "Refresh failed");
- };
- updateAccessPointSettingsGroup();
-
- OstTraceFunctionExit0(CPPACKETDATAAPVIEW_HANDLEUPDATEERROR_EXIT);
-}
-
-/*!
- Updates connection name to CommsDat.
-*/
-void CpPacketDataApView::connectionNameChanged()
-{
- OstTraceFunctionEntry0(CPPACKETDATAAPVIEW_CONNECTIONNAMECHANGED_ENTRY);
-
- QString connectionName =
- mConnectionNameItem->contentWidgetData("text").toString();
- if (!connectionName.isEmpty()) {
- // Update to CommsDat
- mCmConnectionMethod->setStringAttribute(
- CMManagerShim::CmName,
- connectionName);
- if (tryUpdate()) {
- // Update successful
- // Read name because in case the name already exists it will
- // be made unique by CMManager
- connectionName = mCmConnectionMethod->getStringAttribute(
- CMManagerShim::CmName);
- mConnectionNameItem->setContentWidgetData("text", connectionName);
- }
- } else {
- // Inform user of invalid name
- showMessageBox(
- HbMessageBox::MessageTypeInformation,
- hbTrId("txt_occ_info_invalid_name"));
-
- // Empty name not allowed, revert back to old value in CommsDat
- connectionName = mCmConnectionMethod->getStringAttribute(
- CMManagerShim::CmName);
- mConnectionNameItem->setContentWidgetData("text", connectionName);
- }
-
- OstTraceFunctionExit0(CPPACKETDATAAPVIEW_CONNECTIONNAMECHANGED_EXIT);
-}
-
-/*!
- Updates access point name to CommsDat.
-*/
-void CpPacketDataApView::accessPointNameChanged()
-{
- OstTraceFunctionEntry0(CPPACKETDATAAPVIEW_ACCESSPOINTNAMECHANGED_ENTRY);
-
- // Update to CommsDat
- QString accessPointName =
- mAccessPointNameItem->contentWidgetData("text").toString();
- if (!accessPointName.isEmpty()) {
- mCmConnectionMethod->setStringAttribute(
- CMManagerShim::PacketDataAPName,
- accessPointName);
- (void)tryUpdate();
- } else {
- // Inform user of invalid name
- showMessageBox(
- HbMessageBox::MessageTypeInformation,
- hbTrId("txt_occ_info_invalid_name"));
-
- // Empty name not allowed, revert back to old value in CommsDat
- accessPointName = mCmConnectionMethod->getStringAttribute(
- CMManagerShim::PacketDataAPName);
- mAccessPointNameItem->setContentWidgetData("text", accessPointName);
- }
-
- OstTraceFunctionExit0(CPPACKETDATAAPVIEW_ACCESSPOINTNAMECHANGED_EXIT);
-}
-
-/*!
- Updates user name to CommsDat.
-*/
-void CpPacketDataApView::userNameChanged()
-{
- OstTraceFunctionEntry0(CPPACKETDATAAPVIEW_USERNAMECHANGED_ENTRY);
-
- // Update to CommsDat
- QVariant userName = mUserNameItem->contentWidgetData("text");
- mCmConnectionMethod->setStringAttribute(
- CMManagerShim::PacketDataIFAuthName,
- userName.toString());
- (void)tryUpdate();
-
- OstTraceFunctionExit0(CPPACKETDATAAPVIEW_USERNAMECHANGED_EXIT);
-}
-
-/*!
- Updates password to CommsDat.
-*/
-void CpPacketDataApView::passwordChanged()
-{
- OstTraceFunctionEntry0(CPPACKETDATAAPVIEW_PASSWORDCHANGED_ENTRY);
-
- // Update to CommsDat
- QVariant password = mPasswordItem->contentWidgetData("text");
- mCmConnectionMethod->setStringAttribute(
- CMManagerShim::PacketDataIFAuthPass,
- password.toString());
- (void)tryUpdate();
-
- OstTraceFunctionExit0(CPPACKETDATAAPVIEW_PASSWORDCHANGED_EXIT);
-}
-
-/*!
- Updates authentication setting to CommsDat.
-*/
-void CpPacketDataApView::authenticationChanged(int index)
-{
- OstTraceFunctionEntry0(CPPACKETDATAAPVIEW_AUTHENTICATIONCHANGED_ENTRY);
-
- // Update to CommsDat
- mCmConnectionMethod->setBoolAttribute(
- CMManagerShim::PacketDataDisablePlainTextAuth,
- mAuthenticationMap.value(index));
- (void)tryUpdate();
-
- OstTraceFunctionExit0(CPPACKETDATAAPVIEW_AUTHENTICATIONCHANGED_EXIT);
-}
-
-/*!
- Updates homepage to CommsDat.
-*/
-void CpPacketDataApView::homepageChanged()
-{
- OstTraceFunctionEntry0(CPPACKETDATAAPVIEW_HOMEPAGECHANGED_ENTRY);
-
- // Update to CommsDat
- QString homepage = mHomepageItem->contentWidgetData("text").toString();
- mCmConnectionMethod->setStringAttribute(
- CMManagerShim::CmStartPage, homepage);
- (void)tryUpdate();
-
- OstTraceFunctionExit0(CPPACKETDATAAPVIEW_HOMEPAGECHANGED_EXIT);
-}
-
-/*!
- Handles menu actions.
-*/
-void CpPacketDataApView::menuActionTriggered(HbAction *action)
-{
- OstTraceFunctionEntry0(CPPACKETDATAAPVIEW_MENUACTIONTRIGGERED_ENTRY);
-
- if (action == mAdvancedSettingsAction) {
- // "Advanced settings" selected
- HbMainWindow *mainWindow = this->mainWindow();
-
- // Create the advanced settings view
- HbView *newView = new CpPacketDataApAdvancedView(mCmConnectionMethod);
- // Connect signal to return back to the previous view
- bool status = QObject::connect(
- newView,
- SIGNAL(aboutToClose()),
- this,
- SLOT(restoreCurrentView()));
- Q_ASSERT(status);
-
- // Show the advanced settings view
- mainWindow->addView(newView);
- mainWindow->setCurrentView(newView);
- }
-
- OstTraceFunctionExit0(CPPACKETDATAAPVIEW_MENUACTIONTRIGGERED_EXIT);
-}
-
-/*!
- Deletes the current view and sets this view as the current one.
-*/
-void CpPacketDataApView::restoreCurrentView()
-{
- OstTraceFunctionEntry0(CPPACKETDATAAPVIEW_RESTORECURRENTVIEW_ENTRY);
-
- HbMainWindow *mainWindow = this->mainWindow();
-
- // Remove the previous view and delete it
- HbView *prevView = mainWindow->currentView();
- mainWindow->removeView(prevView);
- prevView->deleteLater();
-
- // Set this view on top
- mainWindow->setCurrentView(this);
-
- OstTraceFunctionExit0(CPPACKETDATAAPVIEW_RESTORECURRENTVIEW_EXIT);
-}
-
-/*!
- Sets editor preferences for all HbLineEdit items.
-*/
-void CpPacketDataApView::setEditorPreferences(const QModelIndex modelIndex)
-{
- OstTraceFunctionEntry0(CPPACKETDATAAPVIEW_SETEDITORPREFERENCES_ENTRY);
-
- HbDataFormViewItem *viewItem = qobject_cast<HbDataFormViewItem *>
- (mForm->itemByIndex(modelIndex));
- HbDataFormModelItem *modelItem = mModel->itemFromIndex(modelIndex);
-
- if (modelItem == mConnectionNameItem
- || modelItem == mAccessPointNameItem
- || modelItem == mUserNameItem
- || modelItem == mPasswordItem
- || modelItem == mHomepageItem ) {
- // HbLineEdit items, get editor and editor interface
- HbLineEdit *edit = qobject_cast<HbLineEdit *>
- (viewItem->dataItemContentWidget());
- HbEditorInterface editInterface(edit);
-
- if (modelItem == mConnectionNameItem) {
- // Setup editor for connection name
- editInterface.setInputConstraints(HbEditorConstraintLatinAlphabetOnly);
- edit->setInputMethodHints(Qt::ImhNoPredictiveText);
- edit->setMaxLength(CMManagerShim::CmNameLength);
- } else if (modelItem == mAccessPointNameItem) {
- // Setup editor for packet data AP name
- editInterface.setMode(HbInputModeNone);
- editInterface.setInputConstraints(HbEditorConstraintLatinAlphabetOnly);
- editInterface.setDigitType(HbDigitTypeNone);
- edit->setInputMethodHints(
- Qt::ImhNoPredictiveText
- | Qt::ImhPreferLowercase);
- edit->setMaxLength(CMManagerShim::PacketDataAPNameLength);
- } else if (modelItem == mUserNameItem) {
- // Setup editor for user name
- editInterface.setMode(HbInputModeNone);
- editInterface.setInputConstraints(HbEditorConstraintLatinAlphabetOnly);
- editInterface.setEditorClass(HbInputEditorClassUsername);
- editInterface.setDigitType(HbDigitTypeNone);
- edit->setInputMethodHints(
- Qt::ImhNoPredictiveText
- | Qt::ImhPreferLowercase);
- edit->setMaxLength(CMManagerShim::PacketDataIFAuthNameLength);
- } else if (modelItem == mPasswordItem) {
- // Setup editor for password
- editInterface.setMode(HbInputModeNone);
- editInterface.setInputConstraints(HbEditorConstraintLatinAlphabetOnly);
- editInterface.setEditorClass(HbInputEditorClassPassword);
- editInterface.setDigitType(HbDigitTypeNone);
- edit->setInputMethodHints(
- Qt::ImhNoPredictiveText
- | Qt::ImhPreferLowercase);
- edit->setMaxLength(CMManagerShim::PacketDataIFAuthPassLength);
- } else { /* mHomepageItem */
- // Setup editor for URL
- editInterface.setMode(HbInputModeNone);
- editInterface.setInputConstraints(HbEditorConstraintLatinAlphabetOnly);
- editInterface.setFilter(HbUrlFilter::instance());
- editInterface.setEditorClass(HbInputEditorClassUrl);
- editInterface.setDigitType(HbDigitTypeNone);
- edit->setInputMethodHints(
- Qt::ImhNoPredictiveText
- | Qt::ImhPreferLowercase);
- edit->setMaxLength(CMManagerShim::CmStartPageLength);
- }
- }
-
- OstTraceFunctionExit0(CPPACKETDATAAPVIEW_SETEDITORPREFERENCES_EXIT);
-}