securitysettings/cpwlansecurityuiplugins/cpwpacmnui/src/cpwpacmnui_p.cpp
author hgs
Thu, 24 Jun 2010 11:23:08 +0300
changeset 34 ad1f037f1ac2
parent 26 9abfd4f00d37
child 47 712b4ffd76bb
permissions -rw-r--r--
201025
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
26
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
 * All rights reserved.
hgs
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
34
hgs
parents: 26
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
26
hgs
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
 *
hgs
parents:
diff changeset
     9
 * Initial Contributors:
hgs
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
 *
hgs
parents:
diff changeset
    12
 * Contributors:
hgs
parents:
diff changeset
    13
 *
hgs
parents:
diff changeset
    14
 * Description: 
hgs
parents:
diff changeset
    15
 *    Private Implementation for Control Panel QT UI for WPA/WPA2/802_Dot_1x configuration
hgs
parents:
diff changeset
    16
 *
hgs
parents:
diff changeset
    17
 */
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
/*
34
hgs
parents: 26
diff changeset
    20
 * %version: tr1cfwln#13 %
26
hgs
parents:
diff changeset
    21
 */
hgs
parents:
diff changeset
    22
 
hgs
parents:
diff changeset
    23
// User Includes
hgs
parents:
diff changeset
    24
#include "cpwpacmnui_p.h"
hgs
parents:
diff changeset
    25
#include "wpakeyvalidator.h"
hgs
parents:
diff changeset
    26
#include "cpwpacmneapui.h"
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
// System Includes
hgs
parents:
diff changeset
    29
#include <QStringList>
hgs
parents:
diff changeset
    30
#include <cpsettingformitemdata.h>
hgs
parents:
diff changeset
    31
#include <cpitemdatahelper.h>
hgs
parents:
diff changeset
    32
#include <cmconnectionmethod_shim.h>
hgs
parents:
diff changeset
    33
#include <eapqtplugininfo.h>
hgs
parents:
diff changeset
    34
#include <eapqtpluginhandle.h>
hgs
parents:
diff changeset
    35
#include <eapqtconfiginterface.h>
hgs
parents:
diff changeset
    36
#include <HbLineEdit>
hgs
parents:
diff changeset
    37
#include <HbEditorInterface>
hgs
parents:
diff changeset
    38
hgs
parents:
diff changeset
    39
// Trace Definition
hgs
parents:
diff changeset
    40
#include "OstTraceDefinitions.h"
hgs
parents:
diff changeset
    41
#ifdef OST_TRACE_COMPILER_IN_USE
hgs
parents:
diff changeset
    42
#include "cpwpacmnui_pTraces.h"
hgs
parents:
diff changeset
    43
#endif
hgs
parents:
diff changeset
    44
hgs
parents:
diff changeset
    45
hgs
parents:
diff changeset
    46
/*!
hgs
parents:
diff changeset
    47
 \class CpWpaCmnUiPrivate
hgs
parents:
diff changeset
    48
 \brief CpWpaCmnUiPrivate is a private class implementation the common Ui for WPA/WPA2/802.1x/WPA2 only 
hgs
parents:
diff changeset
    49
 Security Settings Control Panel Plugins,
hgs
parents:
diff changeset
    50
 which will allow viewing/editing of WPA/WPA2/802.1x/WPA2 Security Settings.
hgs
parents:
diff changeset
    51
 */
hgs
parents:
diff changeset
    52
/*!
hgs
parents:
diff changeset
    53
 * Constructor Common Ui (WPA/WPA2/802.1x/WPA2only) object
hgs
parents:
diff changeset
    54
 * 
hgs
parents:
diff changeset
    55
 * \param securityMode chosen by user , for which Ui is constructed and returned
hgs
parents:
diff changeset
    56
 * \param dataHelpper Control Panel Item data helpper object
hgs
parents:
diff changeset
    57
 * \param commonUi Pointer To public class for CpWpaCmnUiPrivate
hgs
parents:
diff changeset
    58
 */
hgs
parents:
diff changeset
    59
CpWpaCmnUiPrivate::CpWpaCmnUiPrivate(CMManagerShim::WlanSecMode securityMode,
hgs
parents:
diff changeset
    60
        CpItemDataHelper &dataHelpper) :
hgs
parents:
diff changeset
    61
    mDataHelper(dataHelpper), 
hgs
parents:
diff changeset
    62
    mCmnUi(NULL), 
hgs
parents:
diff changeset
    63
    mPskKeyText(NULL), 
hgs
parents:
diff changeset
    64
    mEapPlugins(NULL), 
hgs
parents:
diff changeset
    65
    mUnencryptedConnection(NULL),
hgs
parents:
diff changeset
    66
    mWpaEapItem(NULL),
hgs
parents:
diff changeset
    67
    mEapEntry(NULL),
hgs
parents:
diff changeset
    68
    mEapQtConfigInterface(NULL),  
hgs
parents:
diff changeset
    69
    mSecurityMode(securityMode),
hgs
parents:
diff changeset
    70
    mConnMethod(NULL),
hgs
parents:
diff changeset
    71
    mEnablePskMode(true),
hgs
parents:
diff changeset
    72
    mCurrentEapPlugin(0), 
hgs
parents:
diff changeset
    73
    mUnencryptState(false)
hgs
parents:
diff changeset
    74
{
hgs
parents:
diff changeset
    75
    Q_ASSERT(
hgs
parents:
diff changeset
    76
            mSecurityMode == CMManagerShim::WlanSecModeWpa ||
hgs
parents:
diff changeset
    77
            mSecurityMode == CMManagerShim::WlanSecModeWpa2 ||
hgs
parents:
diff changeset
    78
            mSecurityMode == CMManagerShim::WlanSecMode802_1x);
hgs
parents:
diff changeset
    79
    OstTrace1( TRACE_FLOW, DUP1_CPWPACMNUIPRIVATE_CPWPACMNUIPRIVATE, "CpWpaCmnUiPrivate::CpWpaCmnUiPrivate;mSecurityMode=%u", mSecurityMode );
hgs
parents:
diff changeset
    80
    
hgs
parents:
diff changeset
    81
}
hgs
parents:
diff changeset
    82
hgs
parents:
diff changeset
    83
/*!
hgs
parents:
diff changeset
    84
 * Destructor - Deletes objects owned by Common Ui
hgs
parents:
diff changeset
    85
 */
hgs
parents:
diff changeset
    86
CpWpaCmnUiPrivate::~CpWpaCmnUiPrivate()
hgs
parents:
diff changeset
    87
{
hgs
parents:
diff changeset
    88
    OstTraceFunctionEntry1( CPWPACMNUIPRIVATE_CPWPACMNUIPRIVATE_ENTRY, this );
hgs
parents:
diff changeset
    89
    //delete all dynamically allocated objects
hgs
parents:
diff changeset
    90
hgs
parents:
diff changeset
    91
    mCmnUi = NULL;
hgs
parents:
diff changeset
    92
    mConnMethod = NULL;
hgs
parents:
diff changeset
    93
hgs
parents:
diff changeset
    94
    OstTraceFunctionExit1( CPWPACMNUIPRIVATE_CPWPACMNUIPRIVATE_EXIT, this );
hgs
parents:
diff changeset
    95
}
hgs
parents:
diff changeset
    96
hgs
parents:
diff changeset
    97
// ======== MEMBER FUNCTIONS ========
hgs
parents:
diff changeset
    98
hgs
parents:
diff changeset
    99
/*!
hgs
parents:
diff changeset
   100
 * Creates the Ui instance based on the security mode;WPAWPA2/802.1x/WPA2 only 
hgs
parents:
diff changeset
   101
 * Owns the Ui instance
hgs
parents:
diff changeset
   102
 * 
hgs
parents:
diff changeset
   103
 * \param eapQtConfigInterface to list all eap plugins
hgs
parents:
diff changeset
   104
 * \param mCmCM Connection MethoD Qt interface
hgs
parents:
diff changeset
   105
 * 
hgs
parents:
diff changeset
   106
 * \return Ui instance for the security mode set
hgs
parents:
diff changeset
   107
 */
hgs
parents:
diff changeset
   108
hgs
parents:
diff changeset
   109
CpSettingFormItemData* CpWpaCmnUiPrivate::createUi(
hgs
parents:
diff changeset
   110
        EapQtConfigInterface *eapQtConfigInterface,
hgs
parents:
diff changeset
   111
        CmConnectionMethodShim *cmCM)
hgs
parents:
diff changeset
   112
{
hgs
parents:
diff changeset
   113
    OstTraceFunctionEntry1( CPWPACMNUIPRIVATE_CREATEUI_ENTRY, this );
hgs
parents:
diff changeset
   114
hgs
parents:
diff changeset
   115
    // NOT OWNED
hgs
parents:
diff changeset
   116
    mConnMethod = cmCM;
hgs
parents:
diff changeset
   117
    mEapQtConfigInterface = eapQtConfigInterface;
hgs
parents:
diff changeset
   118
    mPlugins.append(mEapQtConfigInterface->supportedOuterTypes());
hgs
parents:
diff changeset
   119
    qSort(mPlugins.begin(), mPlugins.end(), CpWpaCmnUiPrivate::pluginLessThan);
hgs
parents:
diff changeset
   120
hgs
parents:
diff changeset
   121
    mCmnUi = new CpSettingFormItemData(HbDataFormModelItem::GroupItem,
hgs
parents:
diff changeset
   122
            hbTrId("txt_occ_subhead_security_settings"));
hgs
parents:
diff changeset
   123
hgs
parents:
diff changeset
   124
    //LoadUi based on the security mode
hgs
parents:
diff changeset
   125
    loadUi();
hgs
parents:
diff changeset
   126
hgs
parents:
diff changeset
   127
    OstTraceFunctionExit1( CPWPACMNUIPRIVATE_CREATEUI_EXIT, this );
hgs
parents:
diff changeset
   128
    return mCmnUi;
hgs
parents:
diff changeset
   129
}
hgs
parents:
diff changeset
   130
hgs
parents:
diff changeset
   131
/*! 
hgs
parents:
diff changeset
   132
 Load the CpSettingFormItemData components,for the
hgs
parents:
diff changeset
   133
 EAP  mode
hgs
parents:
diff changeset
   134
 */
hgs
parents:
diff changeset
   135
CpBaseSettingView* CpWpaCmnUiPrivate::eapUiInstance()
hgs
parents:
diff changeset
   136
{
hgs
parents:
diff changeset
   137
    OstTraceFunctionEntry1( CPWPACMNUIPRIVATE_EAPUIINSTANCE_ENTRY, this );
hgs
parents:
diff changeset
   138
    
hgs
parents:
diff changeset
   139
    OstTraceFunctionExit1( CPWPACMNUIPRIVATE_EAPUIINSTANCE_EXIT, this );
hgs
parents:
diff changeset
   140
    return mEapQtConfigInterface->uiInstance(EapQtPluginHandle::PluginUndefined,
hgs
parents:
diff changeset
   141
            mPlugins.at(mCurrentEapPlugin).pluginHandle());
hgs
parents:
diff changeset
   142
}
hgs
parents:
diff changeset
   143
hgs
parents:
diff changeset
   144
hgs
parents:
diff changeset
   145
hgs
parents:
diff changeset
   146
/*!
hgs
parents:
diff changeset
   147
 * Creates Combo box for PSK and EAP mode selection.
hgs
parents:
diff changeset
   148
 * 
hgs
parents:
diff changeset
   149
 * @return CompoBox object.
hgs
parents:
diff changeset
   150
 */
hgs
parents:
diff changeset
   151
CpSettingFormItemData* CpWpaCmnUiPrivate::createWpaTypeSelector()
hgs
parents:
diff changeset
   152
{
hgs
parents:
diff changeset
   153
    OstTraceFunctionEntry1( CPWPACMNUIPRIVATE_CREATEWPATYPESELECTOR_ENTRY, this );
hgs
parents:
diff changeset
   154
hgs
parents:
diff changeset
   155
    // In case of the object exists just update the data
hgs
parents:
diff changeset
   156
    if (!mWpaEapItem) {
hgs
parents:
diff changeset
   157
        mWpaEapItem = new CpSettingFormItemData(
hgs
parents:
diff changeset
   158
                HbDataFormModelItem::ComboBoxItem, hbTrId(
hgs
parents:
diff changeset
   159
                        "txt_occ_setlabel_wpawpa2"), mCmnUi);
hgs
parents:
diff changeset
   160
hgs
parents:
diff changeset
   161
        QStringList wpatype;
hgs
parents:
diff changeset
   162
        wpatype.append(hbTrId("txt_occ_setlabel_wpawpa2_val_eap"));
hgs
parents:
diff changeset
   163
        wpatype.append(hbTrId("txt_occ_setlabel_wpawpa2_val_preshared_key"));
hgs
parents:
diff changeset
   164
hgs
parents:
diff changeset
   165
        mWpaEapItem->setContentWidgetData("items", wpatype);
hgs
parents:
diff changeset
   166
hgs
parents:
diff changeset
   167
        mDataHelper.addConnection(mWpaEapItem,
hgs
parents:
diff changeset
   168
                SIGNAL(currentIndexChanged(int)), this,
hgs
parents:
diff changeset
   169
                SLOT(wpaTypeChanged(int)));
hgs
parents:
diff changeset
   170
hgs
parents:
diff changeset
   171
        mCmnUi->appendChild(mWpaEapItem);
hgs
parents:
diff changeset
   172
    }
hgs
parents:
diff changeset
   173
hgs
parents:
diff changeset
   174
    mWpaEapItem->setContentWidgetData("currentIndex", mEnablePskMode ? 1 : 0);
hgs
parents:
diff changeset
   175
hgs
parents:
diff changeset
   176
    OstTraceFunctionExit1( CPWPACMNUIPRIVATE_CREATEWPATYPESELECTOR_EXIT, this );
hgs
parents:
diff changeset
   177
    return mWpaEapItem;
hgs
parents:
diff changeset
   178
}
hgs
parents:
diff changeset
   179
hgs
parents:
diff changeset
   180
/*!
hgs
parents:
diff changeset
   181
 * Creates LineEditor for WPA-PSK
hgs
parents:
diff changeset
   182
 * 
hgs
parents:
diff changeset
   183
 * @return LineEdit object.
hgs
parents:
diff changeset
   184
 */
hgs
parents:
diff changeset
   185
CpSettingFormItemData* CpWpaCmnUiPrivate::createPskEditor()
hgs
parents:
diff changeset
   186
{
hgs
parents:
diff changeset
   187
    OstTraceFunctionEntry1( CPWPACMNUIPRIVATE_CREATEPSKEDITOR_ENTRY, this );
hgs
parents:
diff changeset
   188
hgs
parents:
diff changeset
   189
    if (!mPskKeyText) {
hgs
parents:
diff changeset
   190
        mPskKeyText = new CpSettingFormItemData(
hgs
parents:
diff changeset
   191
                HbDataFormModelItem::TextItem, hbTrId(
hgs
parents:
diff changeset
   192
                        "txt_occ_setlabel_preshared_key"), mCmnUi);
hgs
parents:
diff changeset
   193
hgs
parents:
diff changeset
   194
        mPskKeyText->setContentWidgetData("echoMode", HbLineEdit::PasswordEchoOnEdit);
hgs
parents:
diff changeset
   195
        mPskKeyText->setContentWidgetData("smileysEnabled", "false");
hgs
parents:
diff changeset
   196
        mDataHelper.addConnection(mPskKeyText, SIGNAL( editingFinished ()),
hgs
parents:
diff changeset
   197
                this, SLOT(pskKeyChanged() ));
hgs
parents:
diff changeset
   198
        
hgs
parents:
diff changeset
   199
        mDataHelper.connectToForm(SIGNAL(itemShown (const QModelIndex &) ), 
hgs
parents:
diff changeset
   200
                   this, SLOT(setEditorPreferences(const QModelIndex &)));
hgs
parents:
diff changeset
   201
hgs
parents:
diff changeset
   202
        mCmnUi->appendChild(mPskKeyText);
hgs
parents:
diff changeset
   203
    }
hgs
parents:
diff changeset
   204
hgs
parents:
diff changeset
   205
    mPskKeyText->setContentWidgetData("text", mKeyData);
hgs
parents:
diff changeset
   206
hgs
parents:
diff changeset
   207
    OstTraceFunctionExit1( CPWPACMNUIPRIVATE_CREATEPSKEDITOR_EXIT, this );
hgs
parents:
diff changeset
   208
    return mPskKeyText;
hgs
parents:
diff changeset
   209
}
hgs
parents:
diff changeset
   210
hgs
parents:
diff changeset
   211
/*!
hgs
parents:
diff changeset
   212
 * Creates Combo box for EAP outer type selection
hgs
parents:
diff changeset
   213
 * 
hgs
parents:
diff changeset
   214
 * @return CompoBox object.
hgs
parents:
diff changeset
   215
 */
hgs
parents:
diff changeset
   216
CpSettingFormItemData* CpWpaCmnUiPrivate::createEapSelector()
hgs
parents:
diff changeset
   217
{
hgs
parents:
diff changeset
   218
    OstTraceFunctionEntry1( CPWPACMNUIPRIVATE_CREATEEAPSELECTOR_ENTRY, this );
hgs
parents:
diff changeset
   219
hgs
parents:
diff changeset
   220
    if (!mEapPlugins) {
hgs
parents:
diff changeset
   221
        mEapPlugins = new CpSettingFormItemData(
hgs
parents:
diff changeset
   222
            HbDataFormModelItem::ComboBoxItem, 
hgs
parents:
diff changeset
   223
            hbTrId("txt_occ_setlabel_eap_type"));
hgs
parents:
diff changeset
   224
hgs
parents:
diff changeset
   225
        QStringList list;
hgs
parents:
diff changeset
   226
        QList<EapQtPluginInfo>::iterator i;
hgs
parents:
diff changeset
   227
        for (i = mPlugins.begin() ; i != mPlugins.end() ; ++i){
hgs
parents:
diff changeset
   228
            list << i->localizationId();
hgs
parents:
diff changeset
   229
        }
hgs
parents:
diff changeset
   230
        
hgs
parents:
diff changeset
   231
        mEapPlugins->setContentWidgetData("items", list);
hgs
parents:
diff changeset
   232
hgs
parents:
diff changeset
   233
        mDataHelper.addConnection(mEapPlugins,
hgs
parents:
diff changeset
   234
            SIGNAL(currentIndexChanged(int)), this,
hgs
parents:
diff changeset
   235
            SLOT(eapTypeChanged(int)));
hgs
parents:
diff changeset
   236
hgs
parents:
diff changeset
   237
        mCmnUi->appendChild(mEapPlugins);
hgs
parents:
diff changeset
   238
    }
hgs
parents:
diff changeset
   239
hgs
parents:
diff changeset
   240
    mEapPlugins->setContentWidgetData("currentIndex", mCurrentEapPlugin);
hgs
parents:
diff changeset
   241
hgs
parents:
diff changeset
   242
    OstTraceFunctionExit1( CPWPACMNUIPRIVATE_CREATEEAPSELECTOR_EXIT, this );
hgs
parents:
diff changeset
   243
    return mEapPlugins;
hgs
parents:
diff changeset
   244
}
hgs
parents:
diff changeset
   245
hgs
parents:
diff changeset
   246
/*!
hgs
parents:
diff changeset
   247
 * Creates a button for EAP configurations
hgs
parents:
diff changeset
   248
 * 
hgs
parents:
diff changeset
   249
 * @return EntryItem for EAP
hgs
parents:
diff changeset
   250
 */
hgs
parents:
diff changeset
   251
EapEntryItemData* CpWpaCmnUiPrivate::createEapEntryItem()
hgs
parents:
diff changeset
   252
{
hgs
parents:
diff changeset
   253
    OstTraceFunctionEntry1( CPWPACMNUIPRIVATE_CREATEEAPENTRYITEM_ENTRY, this );
hgs
parents:
diff changeset
   254
hgs
parents:
diff changeset
   255
    if (!mEapEntry) {
hgs
parents:
diff changeset
   256
        mEapEntry = new EapEntryItemData(this, mDataHelper, hbTrId(
hgs
parents:
diff changeset
   257
                "txt_occ_button_eap_type_settings"));
hgs
parents:
diff changeset
   258
hgs
parents:
diff changeset
   259
        mCmnUi->appendChild(mEapEntry);
hgs
parents:
diff changeset
   260
    }
hgs
parents:
diff changeset
   261
hgs
parents:
diff changeset
   262
    OstTraceFunctionExit1( CPWPACMNUIPRIVATE_CREATEEAPENTRYITEM_EXIT, this );
hgs
parents:
diff changeset
   263
    return mEapEntry;
hgs
parents:
diff changeset
   264
}
hgs
parents:
diff changeset
   265
hgs
parents:
diff changeset
   266
/*!
hgs
parents:
diff changeset
   267
 * Creates Combo box for Unencrypted selection
hgs
parents:
diff changeset
   268
 * 
hgs
parents:
diff changeset
   269
 * @return CompoBox object.
hgs
parents:
diff changeset
   270
 */
hgs
parents:
diff changeset
   271
CpSettingFormItemData* CpWpaCmnUiPrivate::createUnencryptedBox()
hgs
parents:
diff changeset
   272
{
hgs
parents:
diff changeset
   273
    OstTraceFunctionEntry1( CPWPACMNUIPRIVATE_CREATEUNENCRYPTEDBOX_ENTRY, this );
hgs
parents:
diff changeset
   274
hgs
parents:
diff changeset
   275
    if (!mUnencryptedConnection) {
hgs
parents:
diff changeset
   276
        mUnencryptedConnection = new CpSettingFormItemData(
hgs
parents:
diff changeset
   277
                HbDataFormModelItem::CheckBoxItem, hbTrId(
hgs
parents:
diff changeset
   278
                        "txt_occ_setlabel_unencrypted_connection"), mCmnUi);
hgs
parents:
diff changeset
   279
hgs
parents:
diff changeset
   280
        mUnencryptedConnection->setContentWidgetData("text", hbTrId(
hgs
parents:
diff changeset
   281
                "txt_occ_setlabel_unencrypted_connection_val_allowe"));
hgs
parents:
diff changeset
   282
hgs
parents:
diff changeset
   283
        mDataHelper.addConnection(mUnencryptedConnection,
hgs
parents:
diff changeset
   284
                SIGNAL( stateChanged(int)), this,
hgs
parents:
diff changeset
   285
                SLOT(unencryptConnStateChanged(int)));
hgs
parents:
diff changeset
   286
hgs
parents:
diff changeset
   287
        mCmnUi->appendChild(mUnencryptedConnection);
hgs
parents:
diff changeset
   288
   }
hgs
parents:
diff changeset
   289
hgs
parents:
diff changeset
   290
    mUnencryptedConnection->setContentWidgetData("checkState",
hgs
parents:
diff changeset
   291
            mUnencryptState ? Qt::Checked : Qt::Unchecked);
hgs
parents:
diff changeset
   292
hgs
parents:
diff changeset
   293
    OstTraceFunctionExit1( CPWPACMNUIPRIVATE_CREATEUNENCRYPTEDBOX_EXIT, this );
hgs
parents:
diff changeset
   294
    return mUnencryptedConnection;
hgs
parents:
diff changeset
   295
}
hgs
parents:
diff changeset
   296
hgs
parents:
diff changeset
   297
/*!
hgs
parents:
diff changeset
   298
 Removes provided object from the UI if it exists there and sets the pointer
hgs
parents:
diff changeset
   299
 to NULL.
hgs
parents:
diff changeset
   300
 
hgs
parents:
diff changeset
   301
 @param object object to be removed and nulled.
hgs
parents:
diff changeset
   302
 */
hgs
parents:
diff changeset
   303
void CpWpaCmnUiPrivate::removeObjectFromView(CpSettingFormItemData *&object)
hgs
parents:
diff changeset
   304
{
hgs
parents:
diff changeset
   305
    OstTraceFunctionEntry1( CPWPACMNUIPRIVATE_REMOVEOBJECTFROMVIEW_ENTRY, this );
hgs
parents:
diff changeset
   306
hgs
parents:
diff changeset
   307
    if (object) {
hgs
parents:
diff changeset
   308
        mCmnUi->removeChild(mCmnUi->indexOf(object));
hgs
parents:
diff changeset
   309
        object = NULL;
hgs
parents:
diff changeset
   310
    }
hgs
parents:
diff changeset
   311
    OstTraceFunctionExit1( CPWPACMNUIPRIVATE_REMOVEOBJECTFROMVIEW_EXIT, this );
hgs
parents:
diff changeset
   312
}
hgs
parents:
diff changeset
   313
hgs
parents:
diff changeset
   314
hgs
parents:
diff changeset
   315
/*! 
hgs
parents:
diff changeset
   316
 Load the CpSettingFormItemData components, based on the security 
hgs
parents:
diff changeset
   317
 mode chosen. Only those components that are required by that security
hgs
parents:
diff changeset
   318
 mode are loaded
hgs
parents:
diff changeset
   319
 */
hgs
parents:
diff changeset
   320
void CpWpaCmnUiPrivate::loadUi()
hgs
parents:
diff changeset
   321
{
hgs
parents:
diff changeset
   322
    OstTraceFunctionEntry1( CPWPACMNUIPRIVATE_LOADUI_ENTRY, this );
hgs
parents:
diff changeset
   323
hgs
parents:
diff changeset
   324
    //Read values From CommsDatbase
hgs
parents:
diff changeset
   325
    int err;
hgs
parents:
diff changeset
   326
    QT_TRYCATCH_ERROR(err, ( readValues()));
hgs
parents:
diff changeset
   327
    if (err != KErrNone) {
hgs
parents:
diff changeset
   328
        OstTrace1( TRACE_ERROR, CPWPACMNUIPRIVATE_CREATEUI, "CPWPACMNUI ReadValues returned %d", err );
hgs
parents:
diff changeset
   329
    }
hgs
parents:
diff changeset
   330
hgs
parents:
diff changeset
   331
    switch (mSecurityMode)
hgs
parents:
diff changeset
   332
        {
hgs
parents:
diff changeset
   333
        case CMManagerShim::WlanSecModeWpa:
hgs
parents:
diff changeset
   334
        case CMManagerShim::WlanSecModeWpa2:
hgs
parents:
diff changeset
   335
            createWpaTypeSelector();
hgs
parents:
diff changeset
   336
            if (mEnablePskMode) {
hgs
parents:
diff changeset
   337
                loadWPAPskView();
hgs
parents:
diff changeset
   338
            }
hgs
parents:
diff changeset
   339
            else {
hgs
parents:
diff changeset
   340
                loadWPAEapView();
hgs
parents:
diff changeset
   341
            }
hgs
parents:
diff changeset
   342
            break;
hgs
parents:
diff changeset
   343
hgs
parents:
diff changeset
   344
        case CMManagerShim::WlanSecMode802_1x:
hgs
parents:
diff changeset
   345
        default:
hgs
parents:
diff changeset
   346
            Q_ASSERT(mSecurityMode == CMManagerShim::WlanSecMode802_1x);
hgs
parents:
diff changeset
   347
            createEapSelector();
hgs
parents:
diff changeset
   348
            createEapEntryItem();
34
hgs
parents: 26
diff changeset
   349
#if 0  /* not supported for now */
26
hgs
parents:
diff changeset
   350
            createUnencryptedBox();
34
hgs
parents: 26
diff changeset
   351
#endif /* #if 0 */
26
hgs
parents:
diff changeset
   352
            break;
hgs
parents:
diff changeset
   353
        }
hgs
parents:
diff changeset
   354
hgs
parents:
diff changeset
   355
    OstTraceFunctionExit1( CPWPACMNUIPRIVATE_LOADUI_EXIT, this );
hgs
parents:
diff changeset
   356
}
hgs
parents:
diff changeset
   357
hgs
parents:
diff changeset
   358
/*! 
hgs
parents:
diff changeset
   359
 Load the CpSettingFormItemData components,for the
hgs
parents:
diff changeset
   360
 Pre-Shared key mode
hgs
parents:
diff changeset
   361
 */
hgs
parents:
diff changeset
   362
void CpWpaCmnUiPrivate::loadWPAPskView()
hgs
parents:
diff changeset
   363
{
hgs
parents:
diff changeset
   364
    OstTraceFunctionEntry1( CPWPACMNUIPRIVATE_LOADWPAPSKVIEW_ENTRY, this );
hgs
parents:
diff changeset
   365
hgs
parents:
diff changeset
   366
    removeObjectFromView(mEapPlugins);
hgs
parents:
diff changeset
   367
hgs
parents:
diff changeset
   368
    if (mEapEntry) {
hgs
parents:
diff changeset
   369
        mCmnUi->removeChild(mCmnUi->indexOf(mEapEntry));
hgs
parents:
diff changeset
   370
        mEapEntry = NULL;
hgs
parents:
diff changeset
   371
        }
hgs
parents:
diff changeset
   372
    createPskEditor();
hgs
parents:
diff changeset
   373
hgs
parents:
diff changeset
   374
    OstTraceFunctionExit1( CPWPACMNUIPRIVATE_LOADWPAPSKVIEW_EXIT, this );
hgs
parents:
diff changeset
   375
}
hgs
parents:
diff changeset
   376
hgs
parents:
diff changeset
   377
/*! 
hgs
parents:
diff changeset
   378
 Load the CpSettingFormItemData components,for the
hgs
parents:
diff changeset
   379
 EAP  mode
hgs
parents:
diff changeset
   380
 */
hgs
parents:
diff changeset
   381
void CpWpaCmnUiPrivate::loadWPAEapView()
hgs
parents:
diff changeset
   382
{
hgs
parents:
diff changeset
   383
    OstTraceFunctionEntry1( CPWPACMNUIPRIVATE_LOADWPAEAPVIEW_ENTRY, this );
hgs
parents:
diff changeset
   384
hgs
parents:
diff changeset
   385
    removeObjectFromView(mPskKeyText);
hgs
parents:
diff changeset
   386
    createEapSelector();
hgs
parents:
diff changeset
   387
    createEapEntryItem();
hgs
parents:
diff changeset
   388
hgs
parents:
diff changeset
   389
    OstTraceFunctionExit1( CPWPACMNUIPRIVATE_LOADWPAEAPVIEW_EXIT, this );
hgs
parents:
diff changeset
   390
}
hgs
parents:
diff changeset
   391
hgs
parents:
diff changeset
   392
/*!
hgs
parents:
diff changeset
   393
 * Reads the wlan security wpa/wpa2 related fields from CommsDb 
hgs
parents:
diff changeset
   394
 */
hgs
parents:
diff changeset
   395
void CpWpaCmnUiPrivate::loadWPA_WPA2Fields()
hgs
parents:
diff changeset
   396
{
hgs
parents:
diff changeset
   397
    OstTraceFunctionEntry1( CPWPACMNUIPRIVATE_LOADWPA_WPA2FIELDS_ENTRY, this );
hgs
parents:
diff changeset
   398
    
hgs
parents:
diff changeset
   399
    mEnablePskMode = mConnMethod->getBoolAttribute(
hgs
parents:
diff changeset
   400
            CMManagerShim::WlanEnableWpaPsk);
hgs
parents:
diff changeset
   401
    
hgs
parents:
diff changeset
   402
    mKeyData = mConnMethod->getString8Attribute(
hgs
parents:
diff changeset
   403
            CMManagerShim::WlanWpaPreSharedKey);
hgs
parents:
diff changeset
   404
    
hgs
parents:
diff changeset
   405
    loadEapConfigurations();
hgs
parents:
diff changeset
   406
    
hgs
parents:
diff changeset
   407
    OstTraceFunctionExit1( CPWPACMNUIPRIVATE_LOADWPA_WPA2FIELDS_EXIT, this );
hgs
parents:
diff changeset
   408
}
hgs
parents:
diff changeset
   409
hgs
parents:
diff changeset
   410
/*!
hgs
parents:
diff changeset
   411
 Reads the WLAN security eap related fields from CommsDb and from EAP Qt 
hgs
parents:
diff changeset
   412
 Configuration Interface 
hgs
parents:
diff changeset
   413
 */
hgs
parents:
diff changeset
   414
void CpWpaCmnUiPrivate::load802Dot1xFields()
hgs
parents:
diff changeset
   415
{
hgs
parents:
diff changeset
   416
    OstTraceFunctionEntry1( CPWPACMNUIPRIVATE_LOAD802DOT1XFIELDS_ENTRY, this );
hgs
parents:
diff changeset
   417
    
hgs
parents:
diff changeset
   418
    loadEapConfigurations();
hgs
parents:
diff changeset
   419
    
hgs
parents:
diff changeset
   420
    mUnencryptState
hgs
parents:
diff changeset
   421
            = mConnMethod->getBoolAttribute(CMManagerShim::Wlan802_1xAllowUnencrypted);
hgs
parents:
diff changeset
   422
    
hgs
parents:
diff changeset
   423
    OstTraceFunctionExit1( CPWPACMNUIPRIVATE_LOAD802DOT1XFIELDS_EXIT, this );
hgs
parents:
diff changeset
   424
    }
hgs
parents:
diff changeset
   425
hgs
parents:
diff changeset
   426
/*!
hgs
parents:
diff changeset
   427
 Loads selected EAP method.
hgs
parents:
diff changeset
   428
 */
hgs
parents:
diff changeset
   429
void CpWpaCmnUiPrivate::loadEapConfigurations()
hgs
parents:
diff changeset
   430
{
hgs
parents:
diff changeset
   431
    OstTraceFunctionEntry1( CPWPACMNUIPRIVATE_LOADEAPCONFIGURATIONS_ENTRY, this );
hgs
parents:
diff changeset
   432
    
hgs
parents:
diff changeset
   433
    QList<EapQtPluginHandle> types = mEapQtConfigInterface->selectedOuterTypes();
hgs
parents:
diff changeset
   434
    mCurrentEapPlugin = 0;
hgs
parents:
diff changeset
   435
    if (types.length() > 0) {
hgs
parents:
diff changeset
   436
        for (int i = 0; i < mPlugins.length(); ++i)
hgs
parents:
diff changeset
   437
            {
hgs
parents:
diff changeset
   438
            if (mPlugins.at(i).pluginHandle() == types.at(0)) {
hgs
parents:
diff changeset
   439
                mCurrentEapPlugin = i;
hgs
parents:
diff changeset
   440
                break;
hgs
parents:
diff changeset
   441
            }
hgs
parents:
diff changeset
   442
        }
hgs
parents:
diff changeset
   443
   }
hgs
parents:
diff changeset
   444
 
hgs
parents:
diff changeset
   445
    else {
hgs
parents:
diff changeset
   446
        types.append(mPlugins.at(0).pluginHandle());
hgs
parents:
diff changeset
   447
        mEapQtConfigInterface->setSelectedOuterTypes(types);
hgs
parents:
diff changeset
   448
    }
hgs
parents:
diff changeset
   449
    OstTraceFunctionExit1( CPWPACMNUIPRIVATE_LOADEAPCONFIGURATIONS_EXIT, this );
hgs
parents:
diff changeset
   450
}
hgs
parents:
diff changeset
   451
hgs
parents:
diff changeset
   452
hgs
parents:
diff changeset
   453
/*!
hgs
parents:
diff changeset
   454
 * Reads the wlan security fields from CommsDb 
hgs
parents:
diff changeset
   455
 */
hgs
parents:
diff changeset
   456
void CpWpaCmnUiPrivate::readValues()
hgs
parents:
diff changeset
   457
{
hgs
parents:
diff changeset
   458
    OstTraceFunctionEntry1( CPWPACMNUIPRIVATE_READVALUES_ENTRY, this );
hgs
parents:
diff changeset
   459
    
hgs
parents:
diff changeset
   460
    switch (mSecurityMode)
hgs
parents:
diff changeset
   461
        {
hgs
parents:
diff changeset
   462
        case CMManagerShim::WlanSecModeWpa:
hgs
parents:
diff changeset
   463
        case CMManagerShim::WlanSecModeWpa2:
hgs
parents:
diff changeset
   464
            loadWPA_WPA2Fields();
hgs
parents:
diff changeset
   465
            break;
hgs
parents:
diff changeset
   466
    
hgs
parents:
diff changeset
   467
        case CMManagerShim::WlanSecMode802_1x:
hgs
parents:
diff changeset
   468
        default:
hgs
parents:
diff changeset
   469
            Q_ASSERT(mSecurityMode == CMManagerShim::WlanSecMode802_1x);
hgs
parents:
diff changeset
   470
            load802Dot1xFields();
hgs
parents:
diff changeset
   471
            break;
hgs
parents:
diff changeset
   472
        }
hgs
parents:
diff changeset
   473
    
hgs
parents:
diff changeset
   474
    OstTraceFunctionExit1( CPWPACMNUIPRIVATE_READVALUES_EXIT, this );
hgs
parents:
diff changeset
   475
}
hgs
parents:
diff changeset
   476
hgs
parents:
diff changeset
   477
hgs
parents:
diff changeset
   478
hgs
parents:
diff changeset
   479
/*!
hgs
parents:
diff changeset
   480
 * Tries an Update on Comms Db for the latest settings. 
hgs
parents:
diff changeset
   481
 * Catches and handles any exception while updating.
hgs
parents:
diff changeset
   482
 */
hgs
parents:
diff changeset
   483
bool CpWpaCmnUiPrivate::tryUpdate()
hgs
parents:
diff changeset
   484
{
hgs
parents:
diff changeset
   485
    OstTraceFunctionEntry1( CPWPACMNUIPRIVATE_TRYUPDATE_ENTRY, this );
hgs
parents:
diff changeset
   486
    int ret(true);
hgs
parents:
diff changeset
   487
    // Try update
hgs
parents:
diff changeset
   488
    try {
hgs
parents:
diff changeset
   489
        mConnMethod->update();
hgs
parents:
diff changeset
   490
    }
hgs
parents:
diff changeset
   491
    catch (const std::exception&) {
hgs
parents:
diff changeset
   492
        // Handle error
hgs
parents:
diff changeset
   493
        handleUpdateError();
hgs
parents:
diff changeset
   494
        OstTraceFunctionExit1( CPWPACMNUIPRIVATE_TRYUPDATE_EXIT, this );
hgs
parents:
diff changeset
   495
        ret = false;
hgs
parents:
diff changeset
   496
    }
hgs
parents:
diff changeset
   497
    OstTraceFunctionExit1( DUP1_CPWPACMNUIPRIVATE_TRYUPDATE_EXIT, this );
hgs
parents:
diff changeset
   498
    return ret;
hgs
parents:
diff changeset
   499
}
hgs
parents:
diff changeset
   500
hgs
parents:
diff changeset
   501
/*!
hgs
parents:
diff changeset
   502
 Handles failed CommsDat update.
hgs
parents:
diff changeset
   503
 */
hgs
parents:
diff changeset
   504
void CpWpaCmnUiPrivate::handleUpdateError()
hgs
parents:
diff changeset
   505
{
hgs
parents:
diff changeset
   506
    OstTraceFunctionEntry1( CPWPACMNUIPRIVATE_HANDLEUPDATEERROR_ENTRY, this );
hgs
parents:
diff changeset
   507
    // Show error note to user
hgs
parents:
diff changeset
   508
    showMessageBox(HbMessageBox::MessageTypeWarning, hbTrId(
hgs
parents:
diff changeset
   509
            "txt_occ_info_unable_to_save_setting"));
hgs
parents:
diff changeset
   510
    // Reload settings from CommsDat and update UI
hgs
parents:
diff changeset
   511
    try {
hgs
parents:
diff changeset
   512
        mConnMethod->refresh();
hgs
parents:
diff changeset
   513
    }
hgs
parents:
diff changeset
   514
    catch (const std::exception&) {
hgs
parents:
diff changeset
   515
        // Ignore error from refresh. Most likely this will not happen, but
hgs
parents:
diff changeset
   516
        // if it does, there isn't very much we can do.
hgs
parents:
diff changeset
   517
        OstTrace0( TRACE_ERROR, CPWPACMNUIPRIVATE_HANDLEUPDATEERROR, "CpWpaCmnUiPrivate::handleUpdateError" );
hgs
parents:
diff changeset
   518
hgs
parents:
diff changeset
   519
    };
hgs
parents:
diff changeset
   520
hgs
parents:
diff changeset
   521
    //Call reset on Ui elements
hgs
parents:
diff changeset
   522
    reset();
hgs
parents:
diff changeset
   523
    OstTraceFunctionExit1( CPWPACMNUIPRIVATE_HANDLEUPDATEERROR_EXIT, this );
hgs
parents:
diff changeset
   524
}
hgs
parents:
diff changeset
   525
hgs
parents:
diff changeset
   526
/*!
hgs
parents:
diff changeset
   527
 Shows message box with "OK" button using given text.
hgs
parents:
diff changeset
   528
 */
hgs
parents:
diff changeset
   529
void CpWpaCmnUiPrivate::showMessageBox(HbMessageBox::MessageBoxType type,
hgs
parents:
diff changeset
   530
    const QString &text)
hgs
parents:
diff changeset
   531
{
hgs
parents:
diff changeset
   532
    OstTraceFunctionEntry1( CPWPACMNUIPRIVATE_SHOWMESSAGEBOX_ENTRY, this );
hgs
parents:
diff changeset
   533
    // Create a message box
hgs
parents:
diff changeset
   534
    mMessageBox = QSharedPointer<HbMessageBox> (new HbMessageBox(type));
hgs
parents:
diff changeset
   535
    mMessageBox->setText(text);
hgs
parents:
diff changeset
   536
    mMessageBox->open();
hgs
parents:
diff changeset
   537
    OstTraceFunctionExit1( CPWPACMNUIPRIVATE_SHOWMESSAGEBOX_EXIT, this );
hgs
parents:
diff changeset
   538
}
hgs
parents:
diff changeset
   539
hgs
parents:
diff changeset
   540
/*!
hgs
parents:
diff changeset
   541
 * Resets all the Ui elements to their previous values,
hgs
parents:
diff changeset
   542
 * by reading values from DB 
hgs
parents:
diff changeset
   543
 */
hgs
parents:
diff changeset
   544
void CpWpaCmnUiPrivate::reset()
hgs
parents:
diff changeset
   545
{
hgs
parents:
diff changeset
   546
    OstTraceFunctionEntry1( CPWPACMNUIPRIVATE_RESET_ENTRY, this );
hgs
parents:
diff changeset
   547
    
hgs
parents:
diff changeset
   548
    //Reload Ui with the previous settings (read from Comms )
hgs
parents:
diff changeset
   549
    loadUi();
hgs
parents:
diff changeset
   550
    
hgs
parents:
diff changeset
   551
    OstTraceFunctionExit1( CPWPACMNUIPRIVATE_RESET_EXIT, this );
hgs
parents:
diff changeset
   552
}
hgs
parents:
diff changeset
   553
hgs
parents:
diff changeset
   554
/*!
hgs
parents:
diff changeset
   555
 Method to handle change in wpa mode :- PSK /EAP, 
hgs
parents:
diff changeset
   556
 Update Key in Comms
hgs
parents:
diff changeset
   557
hgs
parents:
diff changeset
   558
 \param pskEnable the current mode chosen
hgs
parents:
diff changeset
   559
 */
hgs
parents:
diff changeset
   560
void CpWpaCmnUiPrivate::updateWpaType(int pskEnable)
hgs
parents:
diff changeset
   561
{
hgs
parents:
diff changeset
   562
    OstTraceFunctionEntry1( CPWPACMNUIPRIVATE_UPDATEWPATYPE_ENTRY, this );
hgs
parents:
diff changeset
   563
    int err;
hgs
parents:
diff changeset
   564
    bool PskEnable = pskEnable ? true : false;
hgs
parents:
diff changeset
   565
    
hgs
parents:
diff changeset
   566
    QT_TRYCATCH_ERROR(err,mConnMethod->setBoolAttribute(CMManagerShim::WlanEnableWpaPsk, PskEnable));
hgs
parents:
diff changeset
   567
    
hgs
parents:
diff changeset
   568
    if (err != KErrNone) {
hgs
parents:
diff changeset
   569
        OstTrace1( TRACE_ERROR, CPWPACMNUIPRIVATE_UPDATEWPATYPE, "CpWpaCmnUiPrivate::updateWpaType;err=%d", err );
hgs
parents:
diff changeset
   570
    }
hgs
parents:
diff changeset
   571
    tryUpdate();
hgs
parents:
diff changeset
   572
    OstTraceFunctionExit1( CPWPACMNUIPRIVATE_UPDATEWPATYPE_EXIT, this );
hgs
parents:
diff changeset
   573
}
hgs
parents:
diff changeset
   574
hgs
parents:
diff changeset
   575
/*!
hgs
parents:
diff changeset
   576
 Slot to handle change in pre-shared key string
hgs
parents:
diff changeset
   577
hgs
parents:
diff changeset
   578
 \param key changed string for PSK
hgs
parents:
diff changeset
   579
 */
hgs
parents:
diff changeset
   580
void CpWpaCmnUiPrivate::updatePskKey(QString &key)
hgs
parents:
diff changeset
   581
{
hgs
parents:
diff changeset
   582
    OstTraceFunctionEntry1( CPWPACMNUIPRIVATE_UPDATEPSKKEY_ENTRY, this );
hgs
parents:
diff changeset
   583
    int err;
hgs
parents:
diff changeset
   584
    //Check for Validity of Pre-shared Key
hgs
parents:
diff changeset
   585
    WpaKeyValidator::KeyStatus keystatus = WpaKeyValidator::validateWpaKey(key);
hgs
parents:
diff changeset
   586
    
hgs
parents:
diff changeset
   587
    if (keystatus == WpaKeyValidator::KeyStatusOk) {
hgs
parents:
diff changeset
   588
        QT_TRYCATCH_ERROR(err, mConnMethod->setString8Attribute(CMManagerShim::WlanWpaPreSharedKey, key));
hgs
parents:
diff changeset
   589
        if (err != KErrNone) {
hgs
parents:
diff changeset
   590
            OstTrace1( TRACE_ERROR, CPWPACMNUIPRIVATE_UPDATEPSKKEY, "CpWpaCmnUiPrivate::updatePskKey;err=%d", err );
hgs
parents:
diff changeset
   591
        }
hgs
parents:
diff changeset
   592
        tryUpdate();
hgs
parents:
diff changeset
   593
        
hgs
parents:
diff changeset
   594
        //Store the String that was just set
hgs
parents:
diff changeset
   595
        mKeyData = key;
hgs
parents:
diff changeset
   596
    }
hgs
parents:
diff changeset
   597
    else {
hgs
parents:
diff changeset
   598
        showMessageBox(HbMessageBox::MessageTypeWarning, hbTrId(
hgs
parents:
diff changeset
   599
                "txt_occ_info_invalid_input"));
hgs
parents:
diff changeset
   600
    }
hgs
parents:
diff changeset
   601
    OstTraceFunctionExit1( CPWPACMNUIPRIVATE_UPDATEPSKKEY_EXIT, this );
hgs
parents:
diff changeset
   602
}
hgs
parents:
diff changeset
   603
hgs
parents:
diff changeset
   604
hgs
parents:
diff changeset
   605
hgs
parents:
diff changeset
   606
//====================== PRIVATE SLOTS===================================
hgs
parents:
diff changeset
   607
hgs
parents:
diff changeset
   608
hgs
parents:
diff changeset
   609
/*!
hgs
parents:
diff changeset
   610
 Slot to handle change in wpa mode :- PSK /EAP
hgs
parents:
diff changeset
   611
 Emits a mode change signal to the  security plugin 
hgs
parents:
diff changeset
   612
 to indicate the change
hgs
parents:
diff changeset
   613
hgs
parents:
diff changeset
   614
 \param pskEnable the current mode chosen
hgs
parents:
diff changeset
   615
 */
hgs
parents:
diff changeset
   616
void CpWpaCmnUiPrivate::wpaTypeChanged(int pskEnable)
hgs
parents:
diff changeset
   617
{
hgs
parents:
diff changeset
   618
    OstTraceFunctionEntry1( CPWPACMNUIPRIVATE_WPATYPECHANGED_ENTRY, this );
hgs
parents:
diff changeset
   619
    
hgs
parents:
diff changeset
   620
    mEnablePskMode = pskEnable == 0 ? false : true;
hgs
parents:
diff changeset
   621
    
hgs
parents:
diff changeset
   622
    if (mEnablePskMode) {
hgs
parents:
diff changeset
   623
        loadWPAPskView();
hgs
parents:
diff changeset
   624
    }
hgs
parents:
diff changeset
   625
    else {
hgs
parents:
diff changeset
   626
        loadWPAEapView();
hgs
parents:
diff changeset
   627
    }
hgs
parents:
diff changeset
   628
    
hgs
parents:
diff changeset
   629
    //Update pskEnable flag in DB
hgs
parents:
diff changeset
   630
    updateWpaType(pskEnable);
hgs
parents:
diff changeset
   631
hgs
parents:
diff changeset
   632
    OstTraceFunctionExit1( CPWPACMNUIPRIVATE_WPATYPECHANGED_EXIT, this );
hgs
parents:
diff changeset
   633
}
hgs
parents:
diff changeset
   634
hgs
parents:
diff changeset
   635
/*!
hgs
parents:
diff changeset
   636
 Slot to handle change in eap method in use.
hgs
parents:
diff changeset
   637
 Emits signal back to the security plugin to indicate 
hgs
parents:
diff changeset
   638
 the change
hgs
parents:
diff changeset
   639
 \param currentplugin plugin number to indicate the
hgs
parents:
diff changeset
   640
 eap method in use
hgs
parents:
diff changeset
   641
 */
hgs
parents:
diff changeset
   642
void CpWpaCmnUiPrivate::eapTypeChanged(int eapPlugin)
hgs
parents:
diff changeset
   643
{
hgs
parents:
diff changeset
   644
    OstTraceFunctionEntry1( CPWPACMNUIPRIVATE_EAPTYPECHANGED_ENTRY, this );
hgs
parents:
diff changeset
   645
    
hgs
parents:
diff changeset
   646
    mCurrentEapPlugin = eapPlugin;
hgs
parents:
diff changeset
   647
    QList<EapQtPluginHandle> outerHandles;
hgs
parents:
diff changeset
   648
    outerHandles.append(mPlugins.at(mCurrentEapPlugin).pluginHandle());
hgs
parents:
diff changeset
   649
    mEapQtConfigInterface->setSelectedOuterTypes(outerHandles);
hgs
parents:
diff changeset
   650
    
hgs
parents:
diff changeset
   651
    OstTraceFunctionExit1( CPWPACMNUIPRIVATE_EAPTYPECHANGED_EXIT, this );
hgs
parents:
diff changeset
   652
}
hgs
parents:
diff changeset
   653
hgs
parents:
diff changeset
   654
/*!
hgs
parents:
diff changeset
   655
 Slot to handle change in pre-shared key string
hgs
parents:
diff changeset
   656
 Emits signal back to the security plugin to indicate 
hgs
parents:
diff changeset
   657
 the change
hgs
parents:
diff changeset
   658
hgs
parents:
diff changeset
   659
 */
hgs
parents:
diff changeset
   660
void CpWpaCmnUiPrivate::pskKeyChanged()
hgs
parents:
diff changeset
   661
{
hgs
parents:
diff changeset
   662
    OstTraceFunctionEntry1( CPWPACMNUIPRIVATE_PSKKEYCHANGED_ENTRY, this );
hgs
parents:
diff changeset
   663
    
hgs
parents:
diff changeset
   664
    QVariant keyValue = mPskKeyText->contentWidgetData("text");
hgs
parents:
diff changeset
   665
    QString keyString = keyValue.toString();
hgs
parents:
diff changeset
   666
    
hgs
parents:
diff changeset
   667
    //Update Pre Shared key in DB
hgs
parents:
diff changeset
   668
    updatePskKey(keyString);
hgs
parents:
diff changeset
   669
    OstTraceFunctionExit1( CPWPACMNUIPRIVATE_PSKKEYCHANGED_EXIT, this );
hgs
parents:
diff changeset
   670
}
hgs
parents:
diff changeset
   671
hgs
parents:
diff changeset
   672
/*!
hgs
parents:
diff changeset
   673
 Slot to handle change in the state of unencrypted connection;
hgs
parents:
diff changeset
   674
 to indicate if such a connection is allowed.
hgs
parents:
diff changeset
   675
 Emits signal back to the security plugin to indicate 
hgs
parents:
diff changeset
   676
 the change
hgs
parents:
diff changeset
   677
 \param state checked-Allowed / Unchecked-Not allowed 
hgs
parents:
diff changeset
   678
 */
hgs
parents:
diff changeset
   679
void CpWpaCmnUiPrivate::unencryptConnStateChanged(int state)
hgs
parents:
diff changeset
   680
{
hgs
parents:
diff changeset
   681
    OstTraceFunctionEntry1( CPWPACMNUIPRIVATE_UNENCRYPTCONNSTATECHANGED_ENTRY, this );
hgs
parents:
diff changeset
   682
    
hgs
parents:
diff changeset
   683
    bool checked  = (state == Qt::Checked) ? true : false;
hgs
parents:
diff changeset
   684
    mConnMethod->setBoolAttribute(
hgs
parents:
diff changeset
   685
            CMManagerShim::Wlan802_1xAllowUnencrypted,checked);
hgs
parents:
diff changeset
   686
    
hgs
parents:
diff changeset
   687
    tryUpdate();
hgs
parents:
diff changeset
   688
    
hgs
parents:
diff changeset
   689
    //store the Unencrypted Connection State
hgs
parents:
diff changeset
   690
    mUnencryptState  = checked;
hgs
parents:
diff changeset
   691
    
hgs
parents:
diff changeset
   692
    OstTraceFunctionExit1( CPWPACMNUIPRIVATE_UNENCRYPTCONNSTATECHANGED_EXIT, this );
hgs
parents:
diff changeset
   693
}
hgs
parents:
diff changeset
   694
hgs
parents:
diff changeset
   695
/*!
hgs
parents:
diff changeset
   696
 * Slot that configures the editor settings for Pre-Shared Key Field.
hgs
parents:
diff changeset
   697
 * This slot is invoked whenever a new item(s) are shown in the current view 
hgs
parents:
diff changeset
   698
 * 
hgs
parents:
diff changeset
   699
 * \param modelIndex Index of the current item in the  model
hgs
parents:
diff changeset
   700
 */
hgs
parents:
diff changeset
   701
void CpWpaCmnUiPrivate::setEditorPreferences(const QModelIndex &modelIndex)
hgs
parents:
diff changeset
   702
{
hgs
parents:
diff changeset
   703
    
hgs
parents:
diff changeset
   704
    HbDataFormModelItem *item = mDataHelper.modelItemFromModelIndex(modelIndex);
hgs
parents:
diff changeset
   705
hgs
parents:
diff changeset
   706
    /* Configure settings only for text fields*/
hgs
parents:
diff changeset
   707
    if(item->type() == HbDataFormModelItem::TextItem) {
hgs
parents:
diff changeset
   708
        HbLineEdit *edit = qobject_cast<HbLineEdit*>(mDataHelper.widgetFromModelIndex(modelIndex));           
hgs
parents:
diff changeset
   709
        HbEditorInterface editInterface(edit);    
hgs
parents:
diff changeset
   710
        editInterface.setInputConstraints(HbEditorConstraintLatinAlphabetOnly);
hgs
parents:
diff changeset
   711
        edit->setInputMethodHints(Qt::ImhNoPredictiveText);    
hgs
parents:
diff changeset
   712
        }
hgs
parents:
diff changeset
   713
}
hgs
parents:
diff changeset
   714
hgs
parents:
diff changeset
   715
/*!
hgs
parents:
diff changeset
   716
   Validates current security settings. This function is called whenever
hgs
parents:
diff changeset
   717
   user tries to exit from the settings view. If the plugin determines
hgs
parents:
diff changeset
   718
   that some settings need editing before considered valid, it shall
hgs
parents:
diff changeset
   719
   return false. A dialog will be shown to the user indicating that
hgs
parents:
diff changeset
   720
   settings are still incomplete and asking if he/she wishes to exit
hgs
parents:
diff changeset
   721
   anyway.
hgs
parents:
diff changeset
   722
hgs
parents:
diff changeset
   723
   \return True if security settings fpr WPA/WPA2 , WPA2 only are valid,
hgs
parents:
diff changeset
   724
    false if not.
hgs
parents:
diff changeset
   725
*/
hgs
parents:
diff changeset
   726
bool CpWpaCmnUiPrivate::validateSettings()
hgs
parents:
diff changeset
   727
{
hgs
parents:
diff changeset
   728
    bool ret(false);
hgs
parents:
diff changeset
   729
    if(mEnablePskMode) {
hgs
parents:
diff changeset
   730
        //Check the latest string entered for the Pre-Shared key in the text box
hgs
parents:
diff changeset
   731
        QVariant keyValue = mPskKeyText->contentWidgetData("text");
hgs
parents:
diff changeset
   732
        QString keyString = keyValue.toString();
hgs
parents:
diff changeset
   733
        WpaKeyValidator::KeyStatus keystatus = WpaKeyValidator::validateWpaKey(keyString);
hgs
parents:
diff changeset
   734
            
hgs
parents:
diff changeset
   735
            if (keystatus == WpaKeyValidator::KeyStatusOk && (!keyString.isEmpty())) {
hgs
parents:
diff changeset
   736
            ret= true;
hgs
parents:
diff changeset
   737
            }
hgs
parents:
diff changeset
   738
    }
hgs
parents:
diff changeset
   739
    else{
hgs
parents:
diff changeset
   740
    //return true if EAP mode
hgs
parents:
diff changeset
   741
    ret = true;
hgs
parents:
diff changeset
   742
    }
hgs
parents:
diff changeset
   743
    return ret;
hgs
parents:
diff changeset
   744
}
hgs
parents:
diff changeset
   745
hgs
parents:
diff changeset
   746
/*!
hgs
parents:
diff changeset
   747
   comparator for qSort() method to sort Eap plugins based on ordernumber.
hgs
parents:
diff changeset
   748
   
hgs
parents:
diff changeset
   749
   @param plugin1 Plugin1
hgs
parents:
diff changeset
   750
   @param plugin2 Plugin2  
hgs
parents:
diff changeset
   751
 */
hgs
parents:
diff changeset
   752
bool CpWpaCmnUiPrivate::pluginLessThan(
hgs
parents:
diff changeset
   753
    const EapQtPluginInfo &plugin1,
hgs
parents:
diff changeset
   754
    const EapQtPluginInfo &plugin2)
hgs
parents:
diff changeset
   755
{
hgs
parents:
diff changeset
   756
    return plugin1.orderNumber() < plugin2.orderNumber(); 
hgs
parents:
diff changeset
   757
}
hgs
parents:
diff changeset
   758
hgs
parents:
diff changeset
   759