/*
* 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 the License "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:
* Private Implementation for Control Panel QT UI for WPA/WPA2/802_Dot_1x configuration
*
*/
/*
* %version: 6 %
*/
#ifndef CPWPACMNUI_P_H_
#define CPWPACMNUI_P_H_
// System includes
#include <HbMessageBox>
#include <cmmanagerdefines_shim.h>
// User includes
// Forward declarations
class CpItemDataHelper;
class CpSettingFormItemData;
class EapQtConfigInterface;
class CmConnectionMethodShim;
class EapEntryItemData;
class CpBaseSettingView;
class EapQtPluginInfo;
//class declaration
class CpWpaCmnUiPrivate :public QObject
{
Q_OBJECT
public:
CpWpaCmnUiPrivate(CMManagerShim::WlanSecMode securityMode,
CpItemDataHelper &dataHelpper);
~CpWpaCmnUiPrivate();
CpSettingFormItemData* createUi(
EapQtConfigInterface *mEapQtConfigInterface,
CmConnectionMethodShim *cmCM);
CpBaseSettingView *eapUiInstance();
bool validateSettings();
private:
CpSettingFormItemData* createWpaTypeSelector();
CpSettingFormItemData* createPskEditor();
CpSettingFormItemData* createEapSelector();
EapEntryItemData* createEapEntryItem();
CpSettingFormItemData *createUnencryptedBox();
void removeObjectFromView(CpSettingFormItemData *&object);
void loadWPAPskView();
void loadWPAEapView();
void loadUi();
void loadWPA_WPA2Fields();
void load802Dot1xFields();
void loadEapConfigurations();
void readValues();
bool tryUpdate();
void handleUpdateError();
void showMessageBox(
HbMessageBox::MessageBoxType type,
const QString &text);
void updateWpaType(int pskEnable);
void updatePskKey(QString& key);
void reset();
private slots:
void wpaTypeChanged(int pskEnable);
void pskKeyChanged();
void eapTypeChanged(int eapPlugin);
void unencryptConnStateChanged(int state);
static bool pluginLessThan(
const EapQtPluginInfo &plugin1,
const EapQtPluginInfo &plugin2);
void setEditorPreferences(const QModelIndex &modelIndex);
private:
Q_DISABLE_COPY(CpWpaCmnUiPrivate)
//!Data Helper from CpWlan Interface
CpItemDataHelper &mDataHelper;
//!Parent element encompassing all the Ui Setting Items
CpSettingFormItemData *mCmnUi;
//!ui element for Pre-Shared Key
CpSettingFormItemData *mPskKeyText;
/*!ui element ,holding the list of EAP plugins
* from which the user can choose
*/
CpSettingFormItemData *mEapPlugins;
/*!ui element to hold Encrypted Connection flag status,
* for 802.1x mode
*/
CpSettingFormItemData *mUnencryptedConnection;
//!Opens a separate View for the EAPmode chosen
CpSettingFormItemData *mWpaEapItem;
//!Stores the Pre-Shared key value entered
QString mKeyData;
//!List hthe EAP plugins
QList<EapQtPluginInfo> mPlugins;
//!Pointer to API that returns the Ui instance for the EAP plugin
EapEntryItemData *mEapEntry;
//!Pointer to EAP interface
EapQtConfigInterface *mEapQtConfigInterface;
//!Current mode chosen
CMManagerShim::WlanSecMode mSecurityMode;
//! Connection Settings Shim connection method pointer
CmConnectionMethodShim* mConnMethod;
//!Flag to indicate if its the EAP/PSK mode
bool mEnablePskMode;
//!The current EAP method chosen
int mCurrentEapPlugin;
//!Flag to indicate if Unecrypted Connection is enabled
bool mUnencryptState;
//! Message box for info notes
QSharedPointer<HbMessageBox> mMessageBox;
};
#endif /* CPWPACMNUI_P_H_ */