securitysettings/cpwlansecurityuiplugins/cpwpaui/src/cpwpaui.cpp
changeset 33 938269283a16
parent 22 093cf0757204
child 34 ad1f037f1ac2
--- a/securitysettings/cpwlansecurityuiplugins/cpwpaui/src/cpwpaui.cpp	Fri May 14 15:54:13 2010 +0300
+++ b/securitysettings/cpwlansecurityuiplugins/cpwpaui/src/cpwpaui.cpp	Fri Jun 11 13:40:22 2010 +0300
@@ -17,23 +17,20 @@
  */
 
 /*
- * %version: tr1cfwln#21.1.1 %
+ * %version: 27 %
  */
 //User Includes
 #include "cpwpaui.h"
 #include "cpwpacmnui.h"
-#include "wpakeyvalidator.h"
 
 // System includes
 #include <QStringList>
-#include <HbDeviceNotificationDialog>
-#include <QLocale>
-#include <qtranslator.h>
-#include <QCoreApplication>
 #include <cmconnectionmethod_shim.h>
 #include <cmmanagerdefines_shim.h>
 #include <eapqtconfiginterface.h>
+#include <HbTranslator>
 
+//Trace Definition
 #include "OstTraceDefinitions.h"
 #ifdef OST_TRACE_COMPILER_IN_USE
 #include "cpwpauiTraces.h"
@@ -42,29 +39,33 @@
 //Constants
 //The order in which WPA/WPA2 only mode appears in the list of available 
 //security modes
-const int UI_ORDER_WPA_WPA2 = 40;
+const int UI_ORDER_WPA_WPA2 = 20;
 /*!
  \class CpWpaUi
  \brief CpWpaUi implements the common Ui for WPA/WPA2 
  Security Settings Control Panel Plugins,
  which will allow viewing/editing of WPA/WPA2 Security Settings.
  */
-//Contructs WPA/WPA2 object
+/*!
+ * Constructor
+ */
 CpWpaUi::CpWpaUi() :
-    mUi(NULL), mCmCM(NULL), mEapQtConfigInterface(NULL)
+   mUi(NULL), 
+   mTranslator(new HbTranslator("cpwlansecsettingsplugin")),
+   mCmCM(NULL),
+   mEapQtConfigInterface(NULL),
+   mWpaUi(NULL)
 {
-    mTranslator = new QTranslator(this);
-    mTranslator->load(":/loc/wlan_en_GB.qm");
-
-    qApp->installTranslator(mTranslator);
+    
 
 }
 
-//Deletes all objects WPA/WPA2 owns
+//Destructor
 CpWpaUi::~CpWpaUi()
 {
     OstTraceFunctionEntry1(CPWPAUI_CPWPAUI_ENTRY,this);
-    //delete mEapQtConfigInterface;
+    delete mEapQtConfigInterface;
+    delete mTranslator;
     OstTraceFunctionExit1(CPWPAUI_CPWPAUI_EXIT,this);
 }
 
@@ -77,8 +78,8 @@
  */
 CMManagerShim::WlanSecMode CpWpaUi::securityMode() const
 {
-    OstTraceFunctionEntry1(CPWPAUI_MODE_ENTRY,this);
-    OstTraceFunctionExit1(CPWPAUI_MODE_EXIT,this);
+    OstTraceFunctionEntry1(CPWPAUI_SECURITYMODE_ENTRY,this);
+    OstTraceFunctionExit1(CPWPAUI_SECURITYMODE_EXIT,this);
     //return security mode
     return CMManagerShim::WlanSecModeWpa;
 }
@@ -92,27 +93,26 @@
  */
 QString CpWpaUi::securityModeTextId() const
 {
-    OstTraceFunctionEntry1(CPWPAUI_LOCALIZATIONID_ENTRY,this); 
-    OstTraceFunctionExit1(CPWPAUI_LOCALIZATIONID_EXIT,this);
+    OstTraceFunctionEntry1( CPWPAUI_SECURITYMODETEXTID_ENTRY, this );
+    OstTraceFunctionExit1( CPWPAUI_SECURITYMODETEXTID_EXIT, this );
     return "txt_occ_setlabel_wlan_security_mode_val_wpawpa2";
 }
 
 /*! 
- Sets the database reference (WLAN Service Table ID).
+ Sets the database reference IAP id.
 
  \param id Database reference
  */
 void CpWpaUi::setReference(CmConnectionMethodShim *cmCm, uint id)
 {
     OstTraceFunctionEntry1(CPWPAUI_SETREFERENCE_ENTRY,this);
-    // Assuming that id is the connection method Id/IAP Id.
-    mCmId = id;
-
-    /*if (!mEapQtConfigInterface) {
-     mEapQtConfigInterface = new EapQtConfigInterface(
-     EapQtConfigInterface::EapBearerTypeWlan, mCmId);
-     // fix, hangs
-     }*/
+    if (!mEapQtConfigInterface) {
+       mEapQtConfigInterface = new EapQtConfigInterface(
+               EapQtConfigInterface::EapBearerTypeWlan, id);
+    } 
+    else {
+       mEapQtConfigInterface->setConfigurationReference(id);     
+    }
 
     //mCmCM is not deleted assuming mCmManager owns it.
     mCmCM = cmCm;
@@ -146,149 +146,24 @@
     mWpaUi.reset(new CpWpaCmnUi(CMManagerShim::WlanSecModeWpa, dataHelper));
 
     mUi = mWpaUi->createUi(mEapQtConfigInterface, mCmCM);
-
-    connect(mWpaUi.data(), SIGNAL(keyChanged(QString&)), this, SLOT(pskKeyChanged(QString&)));
-
-    connect(mWpaUi.data(), SIGNAL(pskEapModeToggled(int)), this, SLOT(wpaTypeChanged(int)));
-
-    connect(mWpaUi.data(), SIGNAL(eapPluginChanged(int)), this, SLOT(currentEapPlugin(int)));
-    //}
+    
     OstTraceFunctionExit1(CPWPAUI_UIINSTANCE_EXIT,this);
     return mUi;
 }
 
-
-// ======== LOCAL FUNCTIONS ========
-
 /*!
- Slot to handle change in wpa mode :- PSK /EAP
-
- \param pskEnable the current mode chosen
- */
-/*void CpWpaUi::wpaTypeChanged(int pskEnable)
-{
-    int err;
-    OstTraceFunctionEntry1(CPWPAUI_WPATYPECHANGED_ENTRY,this);
-
-    bool PskEnable = pskEnable ? ETrue : EFalse;
-
-    QT_TRYCATCH_ERROR(err,mCmCM->setBoolAttribute(CMManagerShim::WlanEnableWpaPsk, PskEnable));
-    
-    if(err !=KErrNone) {
-              OstTrace1( TRACE_ERROR, CPWPAUI_WPATYPECHANGED, "ERROR WPA/WPA2 wpatypereturned returned %d", err );
-    }
-    tryUpdate();
-    OstTraceFunctionExit1(CPWPAUI_WPATYPECHANGED_EXIT,this);
-}*/
-
-/*!
- Slot to handle change in pre-shared key string
-
- \param key changed string for PSK
- */
-void CpWpaUi::pskKeyChanged(QString &key)
-{
-    int err;
-    OstTraceFunctionEntry1(CPWPAUI_PSKKEYCHANGED_ENTRY,this);
-    //Store to native s60 type for validation 
-    TPtrC ptrName(reinterpret_cast<const TText*> (key.constData()));
-
-    //Check for Validity of Pre-shared Key
-    WpaKeyValidator::KeyStatus keystatus = WpaKeyValidator::validateWpaKey(key);
-
-    if (keystatus == WpaKeyValidator::KeyStatusOk) {
-
-        QT_TRYCATCH_ERROR(err,mCmCM->setString8Attribute(CMManagerShim::WlanWpaPreSharedKey, key));
-        if(err !=KErrNone) {
-          OstTrace1( TRACE_ERROR,CPWPAUI_PSKKEYCHANGED, "ERROR WPA/WPA2: pskKeyChanged returned %d", err );
-        }
-        tryUpdate();
-    }
-    else {
-    showMessageBox(HbMessageBox::MessageTypeWarning, hbTrId(
-                      "txt_occ_info_invalid_input"));
-    }
-    OstTraceFunctionExit1(CPWPAUI_PSKKEYCHANGED_EXIT,this);
-}
-
-/*!
- Slot to handle change in eap method in use
- \param currentplugin plugin number to indicate the
- eap method in use
- */
-/*void CpWpaUi::currentEapPlugin(int  plugin )
-{
-    OstTraceFunctionEntry1(CPWPAUI_CURRENTEAPPLUGIN_ENTRY,this);
+   Validates current security settings. This function is called whenever
+   user tries to exit from the settings view. If the plugin determines
+   that some settings need editing before considered valid, it shall
+   return false. A dialog will be shown to the user indicating that
+   settings are still incomplete and asking if he/she wishes to exit
+   anyway.
 
-    //define enum to store the current EAP type
-    //mCmCM->setIntAttribute( use appropriate enum to get the eap plugin index );
-    OstTraceFunctionExit1(CPWPAUI_CURRENTEAPPLUGIN_EXIT,this);
-}*/
-
-bool CpWpaUi::tryUpdate()
-{
-    OstTraceFunctionEntry1(CPWPAUI_TRYUPDATE_ENTRY,this);
-
-    // Try update
-    try {
-        mCmCM->update();
-    } catch (const std::exception&) {
-        // Handle error
-        handleUpdateError();
-
-        OstTraceFunctionExit1(CPWPAUI_TRYUPDATE_EXIT,this);
-        return false;
-    }
-
-    OstTraceFunctionExit1(DUP1_CPWPAUI_TRYUPDATE_EXIT,this);
-    return true;
-}
-
-/*!
- Handles failed CommsDat update.
- */
-void CpWpaUi::handleUpdateError()
+   \return True if security settings for WPA/WPA2 are valid, false if not.
+*/
+bool CpWpaUi::validateSettings()
 {
-    OstTraceFunctionEntry1(CPWPAUI_HANDLEUPDATEERROR_ENTRY,this);
-
-    // Show error note to user
-    showMessageBox(HbMessageBox::MessageTypeWarning, hbTrId("txt_occ_info_unable_to_save_setting"));
-    // Reload settings from CommsDat and update UI
-    try {
-        mCmCM->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,
-            CPWPAUI_HANDLEUPDATEERROR,
-            "Refresh failed");
-    };
-    updateWpaSettings();
-
-    OstTraceFunctionExit1(CPWPAUI_HANDLEUPDATEERROR_EXIT,this);
-}
-
-/*!
- Shows message box with "OK" button using given text.
- */
-void CpWpaUi::showMessageBox(HbMessageBox::MessageBoxType type, const QString &text)
-{
-    OstTraceFunctionEntry1(CPWPAUI_SHOWMESSAGEBOX_ENTRY,this);
-
-    // Create a message box
-    mMessageBox = QSharedPointer<HbMessageBox> (new HbMessageBox(type));
-    mMessageBox->setText(text);
-    mMessageBox->open();
-
-    OstTraceFunctionExit1(CPWPAUI_SHOWMESSAGEBOX_EXIT,this);
-}
-
-void CpWpaUi::updateWpaSettings()
-{
-    OstTraceFunctionEntry1(CPWPAUI_UPDATEWPASETTINGS_ENTRY,this);
-    mWpaUi->reset();
-    OstTraceFunctionExit1(CPWPAUI_UPDATEWPASETTINGS_EXIT,this);
+    return mWpaUi->validateSettings();
 }
 
 Q_EXPORT_PLUGIN2(CpWpaUi, CpWpaUi)