securitysettings/cpeapuiplugins/cpeaptlsmethodsui/src/cpeappacstoreui.cpp
changeset 52 c23bdf5a328a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/securitysettings/cpeapuiplugins/cpeaptlsmethodsui/src/cpeappacstoreui.cpp	Mon Oct 04 00:19:54 2010 +0300
@@ -0,0 +1,599 @@
+/*
+ * 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 PAC store configuration
+ *
+ */
+
+/*
+ * %version: 6 %
+ */
+
+// System includes
+#include <HbMessageBox>
+#include <HbInputDialog>
+#include <HbAction>
+#include <HbLineEdit>
+#include <cpsettingformitemdata.h>
+#include <cpitemdatahelper.h>
+#include <eapqtvalidator.h>
+#include <eapqtpacstoreconfig.h>
+
+// User includes
+#include "cpeaptlsmethodsui.h"
+#include "cpeappacstoreui.h"
+
+/*!
+ * \class CpEapPacStoreUi
+ * \brief Implementes PAC Store configuration group. 
+ */
+
+// External function prototypes
+
+// Local constants
+
+/*!
+ * First lineEdit of the dialog
+ */
+static const int FirstRow = 0;
+/*
+ * Second lineEdit of the dialog
+ */
+static const int SecondRow = 1;
+
+// ======== LOCAL FUNCTIONS ========
+
+// ======== MEMBER FUNCTIONS ========
+
+/*!
+ * Constructor.
+ * 
+ * @param [in] configIf  Pointer to EapQtConfigInterface
+ */
+
+CpEapPacStoreUi::CpEapPacStoreUi(EapQtConfigInterface *configIf) :
+        mConfigIf(configIf),
+        mItemDataHelper(NULL),
+        mPacStoreGroup(NULL),
+        mPacStorePassword(NULL),
+        mResetPacStore(NULL),
+        mPacStorePasswordState(0),
+        mExistPasswordDialog(NULL),
+        mNewPasswordDialog(NULL),
+        mMessageBox(NULL)
+{
+    qDebug("CpEapPacStoreUi::CpEapPacStoreUi()");
+}
+
+/*!
+ * Destructor.
+ */
+CpEapPacStoreUi::~CpEapPacStoreUi()
+{
+    qDebug("CpEapPacStoreUi::~CpEapPacStoreUi()");
+
+}
+
+/*!
+ * Returns PAC store UI group
+ * 
+ * @param [in] dataHelper  CpItemDataHelper to add Connections
+ * 
+ * @return PAC store group
+ */
+CpSettingFormItemData* CpEapPacStoreUi::uiInstance(
+    CpItemDataHelper &dataHelpper)
+{
+    //Store the address of the Data Helper
+    mItemDataHelper = &dataHelpper;
+    
+    mPacStoreGroup.reset(new CpSettingFormItemData(
+        HbDataFormModelItem::GroupItem, 
+        hbTrId("txt_occ_subhead_pac_store")));
+    mPacStoreGroup->setContentWidgetData("objectName", "CpEapPacStoreUiGroupItem");
+    
+    // Read PAC Store configuration
+    bool configurationRead = mConfigIf->readPacStoreConfiguration(
+        mPacStoreConfig);
+    if (!configurationRead) {
+        // Use default value - PAC store password prompt
+        qDebug("CpEapPacStoreUi::uiInstance - read PAC store configuration failed.");
+    }
+    
+    // Create PAC store password selection comboBox
+    createPacStorePassword();
+    
+    // Create Reset PAC store button
+    createResetPacStore();
+
+    return mPacStoreGroup.take();
+}
+
+/*!
+ * Creates PAC store password selection comboBox
+ */
+void CpEapPacStoreUi::createPacStorePassword()
+{
+    qDebug("CpEapPacStoreUi::createPacStorePassword()");
+    // Create PAC store password comboBox
+    mPacStorePassword = new CpSettingFormItemData(
+        HbDataFormModelItem::ComboBoxItem, 
+        hbTrId("txt_occ_setlabel_pac_store_password"));
+    mPacStoreGroup->appendChild(mPacStorePassword);
+    mPacStorePassword->setContentWidgetData(
+        "objectName", 
+        "CpEapPacStoreUiPassword");
+    
+    // Add items to comboBox List
+    QStringList items;
+    items << hbTrId("txt_occ_setlabel_pac_store_password_val_prompt")
+        << hbTrId("txt_occ_setlabel_pac_store_password_val_user_defin");
+    mPacStorePassword->setContentWidgetData("items", items);
+    
+    // Initialize selection from PAC store configuration
+    if (mPacStoreConfig.value(EapQtPacStoreConfig::PacStoreState).toInt() 
+        == EapQtPacStoreConfig::PacStoreStatePasswordStored) {
+        mPacStorePassword->setContentWidgetData("currentIndex", PacStorePasswordUserDefined);
+        mPacStorePasswordState = PacStorePasswordUserDefined;
+    } else {
+        mPacStorePassword->setContentWidgetData("currentIndex", PacStorePasswordPrompt);
+        mPacStorePasswordState = PacStorePasswordPrompt;
+    }
+    
+    // Connect signal for password state changed
+    mItemDataHelper->addConnection(mPacStorePassword, SIGNAL(currentIndexChanged(int)), this,
+        SLOT(pacStorePasswordChanged(int)));
+}
+
+/*!
+ * Creates reset PAC store button
+ */
+void CpEapPacStoreUi::createResetPacStore()
+{
+    qDebug("CpEapPacStoreUi::createResetPacStore()");
+    
+    // Create button
+    mResetPacStore = new CpSettingFormItemData(
+        HbDataFormModelItem::ToggleValueItem,
+        hbTrId(""));
+    mPacStoreGroup->appendChild(mResetPacStore);
+    mResetPacStore->setContentWidgetData(
+        "objectName", 
+        "CpEapPacStoreUiResetPacStore");    
+
+    // Define text for the button
+    mResetPacStore->setContentWidgetData("text",
+            hbTrId("txt_occ_button_reset_pac_store"));
+    mResetPacStore->setContentWidgetData("additionalText", 
+            hbTrId("txt_occ_button_reset_pac_store"));
+
+    // Connect signal for button pressed
+    mItemDataHelper->addConnection(
+        mResetPacStore, 
+        SIGNAL(valueChanged(QPersistentModelIndex, QVariant)), 
+        this,
+        SLOT(resetPacStoreButtonPressed(QPersistentModelIndex, QVariant)));
+}
+
+/*!
+ * Set PAC store password state.
+ * This is called when state changed has failed and state shall be restored. 
+ * 
+ * @param [in] state  Pac store password state: Prompt/Userd defined.
+ */
+void CpEapPacStoreUi::setPacStorePasswordState(const PacStorePasswordIndexes state)
+{
+    // Remove signal connection while state is restored
+    mItemDataHelper->removeConnection(mPacStorePassword, SIGNAL(currentIndexChanged(int)), this,
+        SLOT(pacStorePasswordChanged(int)));
+    mPacStorePassword->setContentWidgetData("currentIndex", state);
+    // Restore connection
+    mItemDataHelper->addConnection(mPacStorePassword, SIGNAL(currentIndexChanged(int)), this,
+        SLOT(pacStorePasswordChanged(int)));
+    mPacStorePasswordState = state;
+}
+
+/*!
+ * Show PAC store password query when PAC store already exists
+ */
+void CpEapPacStoreUi::showExistPasswordQuery()
+{
+    qDebug("CpEapPacStoreUi::showExistPasswordQuery()");
+    
+    // Create dialog
+    QScopedPointer<HbInputDialog> existPasswordDialog(new HbInputDialog());
+    existPasswordDialog->setObjectName("CpEapPacStoreUiExistPasswordDialog");
+    existPasswordDialog->setAttribute(Qt::WA_DeleteOnClose);
+    existPasswordDialog->setPromptText(hbTrId("txt_occ_dialog_pac_store_password"));
+    existPasswordDialog->setInputMode(HbInputDialog::TextInput);
+
+    // Add validator
+    mValidatorPacStore.reset( 
+        mConfigIf->validatorPacStore(
+            EapQtPacStoreConfig::PacStorePasswordConfirmation));
+    Q_ASSERT(mValidatorPacStore.data());
+    mValidatorPacStore->updateEditor(existPasswordDialog->lineEdit());
+
+    // Set Password echo mode
+    existPasswordDialog->setEchoMode(HbLineEdit::Password);
+    
+    // Configurate buttons
+    existPasswordDialog->clearActions();
+    HbAction *okAction = new HbAction(
+        hbTrId("txt_common_button_ok"),
+        existPasswordDialog.data());
+    existPasswordDialog->addAction(okAction);
+    okAction->setObjectName("CpEapPacStoreUiExistPasswordDialogOkAction");
+    bool connected = connect(okAction, 
+                             SIGNAL(triggered()), 
+                             this, 
+                             SLOT(completeExistPasswordQuery()));
+    Q_ASSERT(connected);
+    HbAction *cancelAction = new HbAction(
+        hbTrId("txt_common_button_cancel"),
+        existPasswordDialog.data());
+    existPasswordDialog->addAction(cancelAction);
+    cancelAction->setObjectName("CpEapPacStoreUiExistPasswordDialogCancelAction");
+    connected = connect(cancelAction, 
+                        SIGNAL(triggered()), 
+                        this, 
+                        SLOT(cancelPasswordQuery()));
+    Q_ASSERT(connected);
+
+    // Take the ownership of the dialog from QScopedPointer
+    mExistPasswordDialog = existPasswordDialog.take();
+    
+    // Show dialog
+    mExistPasswordDialog->show();
+}
+
+/*!
+ * Show create PAC store password query when no PAC store exists
+ */
+void CpEapPacStoreUi::showNewPasswordQuery()
+{
+    qDebug("CpEapPacStoreUi::showNewPasswordQuery()");
+
+    // Create dialog
+    QScopedPointer<HbInputDialog> newPasswordDialog(new HbInputDialog());
+    newPasswordDialog->setObjectName("CpEapPacStoreUiNewPasswordDialog");
+    newPasswordDialog->setAttribute(Qt::WA_DeleteOnClose);
+    newPasswordDialog->setAdditionalRowVisible(true);
+    newPasswordDialog->setPromptText(
+        hbTrId("txt_occ_dialog_create_password_for_encrypted_pac_s"), 
+        FirstRow);
+    newPasswordDialog->setPromptText(
+        hbTrId("txt_occ_dialog_verify_password"),
+        SecondRow);
+    newPasswordDialog->setInputMode(HbInputDialog::TextInput);
+    
+    // Add validators
+    mValidatorPacStore.reset( 
+        mConfigIf->validatorPacStore(
+            EapQtPacStoreConfig::PacStorePassword));
+    Q_ASSERT(mValidatorPacStore.data());
+    mValidatorPacStore->updateEditor(newPasswordDialog->lineEdit(FirstRow));
+    mValidatorPacStore->updateEditor(newPasswordDialog->lineEdit(SecondRow));
+
+    // Set Password echo mode
+    newPasswordDialog->setEchoMode(HbLineEdit::Password, FirstRow);
+    newPasswordDialog->setEchoMode(HbLineEdit::Password, SecondRow);
+    
+    // Configure buttons
+    newPasswordDialog->clearActions();
+    HbAction *okAction = new HbAction(
+        hbTrId("txt_common_button_ok"),
+        newPasswordDialog.data());
+    newPasswordDialog->addAction(okAction);
+    okAction->setObjectName("CpEapPacStoreUiNewPasswordDialogOkAction");
+    bool connected = connect(okAction, 
+                             SIGNAL(triggered()), 
+                             this, 
+                             SLOT(completeNewPasswordQuery()));
+    Q_ASSERT(connected);
+    HbAction *cancelAction = new HbAction(
+        hbTrId("txt_common_button_cancel"),
+        newPasswordDialog.data());
+    newPasswordDialog->addAction(cancelAction);
+    cancelAction->setObjectName("CpEapPacStoreUiNewPasswordDialogCancelAction");
+    connected = connect(cancelAction, 
+                        SIGNAL(triggered()), 
+                        this, 
+                        SLOT(cancelPasswordQuery()));
+    
+    // Take the ownership of the dialog from QScopedPointer
+    mNewPasswordDialog = newPasswordDialog.take();
+    
+    // Show dialog
+    mNewPasswordDialog->show();
+}
+
+/*!
+ * Shows message box with "OK" button using given text.
+ * 
+ * @param [in] type  Message box type
+ * @param [in] text  Text to be shown
+ */
+void CpEapPacStoreUi::showMessageBox(
+    HbMessageBox::MessageBoxType type,
+    const QString &text)
+{
+    // Create a message box
+    mMessageBox = QSharedPointer<HbMessageBox>(new HbMessageBox(type));
+    mMessageBox->setObjectName("CpEapPacStoreUiMessageBox");
+    mMessageBox->setText(text);
+    mMessageBox->setModal(true);
+    mMessageBox->setTimeout(HbPopup::NoTimeout);
+    mMessageBox->open();
+}
+
+/*!
+ * This slot is called when PAC Store password state has been changed
+ * 
+ * @param [in] value  New state of password (prompt/user defined)
+ */
+void CpEapPacStoreUi::pacStorePasswordChanged(int value)
+{
+    qDebug("CpEapPacStoreUi::pacStorePasswordChanged()");
+
+    if (mPacStorePasswordState != value) {
+        // Value is really changed
+        if (value == PacStorePasswordPrompt) {
+            // Prompt
+            qDebug("CpEapPacStoreUi::pacStorePasswordChanged - Prompt");
+            
+            //Show message box to confirm the PAC store password clearing
+            HbMessageBox *questionBox = new HbMessageBox(HbMessageBox::MessageTypeQuestion);
+            questionBox->setObjectName("CpEapPacStoreUiClearPasswordQuestion");
+            questionBox->setText(hbTrId("txt_occ_info_pac_store_password_will_no_longer_be"));
+            questionBox->setModal(true);
+            questionBox->setTimeout(HbPopup::NoTimeout);
+            questionBox->setAttribute(Qt::WA_DeleteOnClose);
+            questionBox->setStandardButtons(HbMessageBox::Yes | HbMessageBox::No);
+            questionBox->open(this,SLOT(clearPacStorePasswordConfirmed(int)));
+        } else {
+            //User defined
+            Q_ASSERT(value == PacStorePasswordUserDefined);
+            qDebug("CpEapPacStoreUi::pacStorePasswordChanged - User defined");
+            // Read from PAC store config if PAC store exists
+            EapQtPacStoreConfig pacStoreConfig;
+            bool configurationRead = mConfigIf->readPacStoreConfiguration(
+                pacStoreConfig);
+            if (!configurationRead) {
+                qDebug("CpEapPacStoreUi::pacStorePasswordChanged - read PAC store configuration failed.");
+            }
+
+            if (pacStoreConfig.value(EapQtPacStoreConfig::PacStoreState).toInt() 
+                == EapQtPacStoreConfig::PacStoreStatePasswordRequired) {
+                // PAC store exists, show 'PAC store password' query 
+                qDebug("CpEapPacStoreUi::pacStorePasswordChanged - Exist password query");
+                showExistPasswordQuery();
+            } else if (pacStoreConfig.value(EapQtPacStoreConfig::PacStoreState).toInt()
+                == EapQtPacStoreConfig::PacStoreStateStoreNotExists) {
+                // PAC store doesn't exist, show create password query
+                qDebug("CpEapPacStoreUi::pacStorePasswordChanged - Create new password");
+                showNewPasswordQuery();
+            } else {
+                // If password already stored no prompt needed
+                qDebug("CpEapPacStoreUi::pacStorePasswordChanged - Password stored");
+            }
+        }    
+    }
+}
+
+/*!
+ * Slot for handling "Reset PAC store" button presses.
+ * 
+ * @param [in] index  Obsolete parameter, not needed
+ * @param [in] value  Obsolete parameter, not needed
+ */
+void CpEapPacStoreUi::resetPacStoreButtonPressed(
+    QPersistentModelIndex index, 
+    QVariant value)
+{
+    qDebug("CpEapPacStoreUi::resetPacStoreButtonPressed");
+
+    Q_UNUSED(index);
+    Q_UNUSED(value);
+
+    //Show message box to confirm the PAC store resetting
+    HbMessageBox *questionBox = new HbMessageBox(HbMessageBox::MessageTypeQuestion);
+    questionBox->setObjectName("CpEapPacStoreUiRestPacStoreQuestion");
+    questionBox->setText(hbTrId("txt_occ_info_remove_pac_store_all_credentials_wil"));
+    questionBox->setModal(true);
+    questionBox->setTimeout(HbPopup::NoTimeout);
+    questionBox->setAttribute(Qt::WA_DeleteOnClose);
+    questionBox->setStandardButtons(HbMessageBox::Yes | HbMessageBox::No);
+    questionBox->open(this,SLOT(resetPacStoreConfirmed(int)));
+}
+
+/*!
+ * Slot for clear PAC store Password after confirmed.
+ * 
+ * @param [in] action  User action
+ */
+void CpEapPacStoreUi::clearPacStorePasswordConfirmed(int action)
+{
+    qDebug("CpEapPacStoreUi::clearPacStorePasswordConfirmed()");
+    if (action == HbMessageBox::Yes) {
+        // User Clicked Yes
+        // Clear PAC store password
+        EapQtPacStoreConfig pacStoreConfig;
+        pacStoreConfig.setValue(EapQtPacStoreConfig::PacStoreSavePassword, false);
+        bool status = mConfigIf->savePacStoreConfiguration(
+            pacStoreConfig);
+        qDebug("CpEapPacStoreUi::clearPacStorePasswordConfirmed - status: %d", status);
+        mPacStorePasswordState = PacStorePasswordPrompt;
+        // Show error note to user
+        if (!status) {
+            // Show error note to user
+            showMessageBox(
+                HbMessageBox::MessageTypeWarning,
+                hbTrId("txt_occ_info_unable_to_save_setting"));            
+        }
+    } else {
+        // User Clicked No
+        Q_ASSERT(action == HbMessageBox::No);
+        // Set PAC store password back to 'User defined'
+        setPacStorePasswordState(PacStorePasswordUserDefined);
+    }
+}
+
+/*!
+ * Slot for reset PAC store after confirmed.
+ * 
+ * @param [in] action  User action
+ */
+void CpEapPacStoreUi::resetPacStoreConfirmed(int action)
+{
+    qDebug("CpEapPacStoreUi::resetPacStoreConfirmed()");
+    if (action == HbMessageBox::Yes) {
+        // User Clicked Yes
+        // Reset PAC Store
+        EapQtPacStoreConfig pacStoreConfig;
+        pacStoreConfig.setValue(EapQtPacStoreConfig::PacStoreReset, true);
+        bool status = mConfigIf->savePacStoreConfiguration(
+            pacStoreConfig);
+        qDebug("CpEapPacStoreUi::resetPacStoreConfirmed - reset status: %d", status);
+        if (!status) {
+            // Show error note to user
+            showMessageBox(
+                HbMessageBox::MessageTypeWarning,
+                hbTrId("txt_occ_info_unable_to_save_setting"));
+        }
+        
+        // Set PAC store password selection to 'Prompt'
+        setPacStorePasswordState(PacStorePasswordPrompt);
+    } else {
+        // User Clicked No
+        Q_ASSERT(action == HbMessageBox::No);
+        // Do nothing (don't reset PAC store)
+        qDebug("CpEapPacStoreUi::resetPacStoreConfirmed - Do not reset.");
+    }
+}
+
+/*!
+ * Slot for confirm given PAC store password when PAC store exists
+ */
+void CpEapPacStoreUi::completeExistPasswordQuery()
+{
+    qDebug("CpEapPacStoreUi::completeExistPasswordQuery()");
+    QString password = mExistPasswordDialog->value().toString();
+    if (mValidatorPacStore->validate(password) == EapQtValidator::StatusOk) {
+        qDebug("CpEapPacStoreUi::completeExistPasswordQuery() - save password");
+        // Password is OK, save it
+        EapQtPacStoreConfig pacStoreConfig;
+        pacStoreConfig.setValue(EapQtPacStoreConfig::PacStorePassword, password);
+        pacStoreConfig.setValue(EapQtPacStoreConfig::PacStoreSavePassword, true);
+        bool status = mConfigIf->savePacStoreConfiguration(
+            pacStoreConfig);
+        qDebug("CpEapPacStoreUi::completeExistPasswordQuery - save status: %d", status);
+        if (status) {
+            mPacStorePasswordState = PacStorePasswordUserDefined;            
+        } else {
+            setPacStorePasswordState(PacStorePasswordPrompt);
+            // Show error note to user
+            showMessageBox(
+                HbMessageBox::MessageTypeWarning,
+                hbTrId("txt_occ_info_unable_to_save_setting"));
+        }
+
+    } else {
+        // Existing password cannot be changed
+        // Set PAC store password selection back to 'Prompt'
+        setPacStorePasswordState(PacStorePasswordPrompt);
+        // Show info popup
+        HbMessageBox *infoBox = new HbMessageBox(HbMessageBox::MessageTypeInformation);
+        infoBox->setObjectName("CpEapPacStoreUiPasswordCannotChangeInfo");
+        infoBox->setText(hbTrId("txt_occ_info_existing_password_cannot_be_changed"));
+        infoBox->setModal(true);
+        infoBox->setTimeout(HbPopup::NoTimeout);
+        infoBox->setAttribute(Qt::WA_DeleteOnClose);
+        infoBox->setStandardButtons(HbMessageBox::Ok);
+        infoBox->open();
+    }
+}
+
+/*!
+ * Slot for save given PAC store password when no PAC store exists
+ */
+void CpEapPacStoreUi::completeNewPasswordQuery()
+{
+    qDebug("CpEapPacStoreUi::completeNewPasswordQuery()");
+    QString password = mNewPasswordDialog->value(0).toString();
+    QString passwordConfirm = mNewPasswordDialog->value(1).toString();
+
+    if (password == passwordConfirm &&
+        mValidatorPacStore->validate(password) == EapQtValidator::StatusOk) {
+        // Password is OK, save it
+        qDebug("CpEapPacStoreUi::completeNewPasswordQuery() - password OK. Save it.");
+        EapQtPacStoreConfig pacStoreConfig;
+        pacStoreConfig.setValue(EapQtPacStoreConfig::PacStorePassword, password);
+        pacStoreConfig.setValue(EapQtPacStoreConfig::PacStoreSavePassword, true);
+        bool status = mConfigIf->savePacStoreConfiguration(
+            pacStoreConfig);
+        qDebug("CpEapPacStoreUi::completeNewPasswordQuery - save status: %d", status);
+        if (status) {
+            mPacStorePasswordState = PacStorePasswordUserDefined;
+        } else {
+            setPacStorePasswordState(PacStorePasswordPrompt);
+            // Show error note to user
+            showMessageBox(
+                HbMessageBox::MessageTypeWarning,
+                hbTrId("txt_occ_info_unable_to_save_setting"));
+        }
+    } else {
+        // Password is not OK, show info popup
+        qDebug("CpEapPacStoreUi::completeNewPasswordQuery() - password Not OK. Show popup.");
+        HbMessageBox *infoBox = new HbMessageBox(HbMessageBox::MessageTypeInformation);
+        infoBox->setObjectName("CpEapPacStoreUiInvalidPasswordInfo");
+        if (password != passwordConfirm) {
+            infoBox->setText(hbTrId("txt_occ_info_passwords_do_not_match_try_again"));
+        } else {
+            infoBox->setText(hbTrId("txt_occ_info_invalid_input"));
+        }
+        infoBox->setModal(true);
+        infoBox->setTimeout(HbPopup::NoTimeout);
+        infoBox->setAttribute(Qt::WA_DeleteOnClose);
+        infoBox->setStandardButtons(HbMessageBox::Ok);
+        infoBox->open(this,SLOT(invalidPasswordInfoClosed(int)));
+    }
+}
+
+/*!
+ * This function is called when user selects CANCEL from
+ * PAC store password or New PAC store password query popup.
+ * PAC store password selection is changed back to 'Prompt'.
+ */
+void CpEapPacStoreUi::cancelPasswordQuery()
+{
+    qDebug("CpEapPacStoreUi::cancelPasswordQuery()");
+    // Set PAC store password selection back to 'Prompt'
+    setPacStorePasswordState(PacStorePasswordPrompt);
+}
+
+/*!
+ * This function is called when user selects OK from
+ * 'Passwords do not match' or 'Invalid input' information popup.
+ * New PAC store password query dialog is shown again
+ * 
+ * @param [in] action  Obsolete parameter, not needed
+ */
+void CpEapPacStoreUi::invalidPasswordInfoClosed(int action)
+{
+    qDebug("CpEapPacStoreUi::invalidPasswordInfoClosed() - Show query again.");
+    Q_UNUSED(action);
+    
+    showNewPasswordQuery();    
+}