diff -r 3255e7d5bd67 -r 989397f9511c cpsecplugins/cpadvancedsecplugin/inc/advsecsettingssecuritymodulemodel.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cpsecplugins/cpadvancedsecplugin/inc/advsecsettingssecuritymodulemodel.h Thu Oct 14 13:56:11 2010 +0300 @@ -0,0 +1,100 @@ +/* +* 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: Security module model in advanced security settings +* +*/ + +#ifndef ADVSECSETTINGSSECURITYMODULEMODEL_H +#define ADVSECSETTINGSSECURITYMODULEMODEL_H + +#include +#include + +class AdvSecSettingsSecurityModule; +class AdvSecSettingsSecurityModuleModelPrivate; + + +/** + * Security module model in advanced security settings. + */ +class AdvSecSettingsSecurityModuleModel : public QObject +{ + Q_OBJECT + +public: // constructor and destructor + explicit AdvSecSettingsSecurityModuleModel(QObject *parent = 0); + virtual ~AdvSecSettingsSecurityModuleModel(); + +public: // new definitions + enum SecurityModuleDetailsField { + Label, + Version, + Location, + SerialNumber, + Manufacturer + }; + enum AuthenticationStatus { + EPinEntered = 0x01, // Set if the module is open, PIN already entered + EPinRequested = 0x02, // Set if PIN code required to open the module + EPinChangeAllowed = 0x04, // Set if PIN code change is allowed + EPinBlocked = 0x10, // Set if PIN code is blocked, requires unblocking PIN + EBlockedPermanently = 0x20, // Set if PIN code blocked and cannot be unblocked + }; + +public: // new functions + void initialize(); + int moduleCount() const; + QMap moduleLabelsAndLocations() const; + void getModuleDetails(int moduleIndex); + void getModuleStatus(int moduleIndex); + // Functions related to PIN-G (aka access PIN, login PIN) + void setPinCodeRequestState(int moduleIndex, bool isRequested); + void changePinCode(int moduleIndex); // unblocks PIN code if EPinBlocked + void closeModule(int moduleIndex); + // Functions related to PIN-NR (aka signature PIN, signing PIN) + bool isSigningPinSupported(int moduleIndex) const; + void changeSigningPinCode(int moduleIndex); + bool isDeletable(int moduleIndex) const; + void deleteModule(int moduleIndex); + +signals: + void initializeCompleted(); + void detailsCompleted(QMap details); + void statusCompleted(int authenticationStatus); + void statusChanged(int moduleIndex, int authenticationStatus); + void pinCodeRequestStateCompleted(); + void pinCodeChangeCompleted(); + void closeCompleted(); + void signingPinCodeChangeCompleted(); + void deleteCompleted(); + void errorOccurred(int error); + +private: // new functions + void handleInitializeCompleted(); + void handleStatusCompleted(int authenticationStatus); + void handleStatusChanged(int moduleIndex, int authenticationStatus); + void handlePinCodeRequestSet(); + void handlePinCodeChanged(); + void handleModuleClosed(); + void handleSigningPinCodeChanged(); + void handleModuleDeleted(); + void handleError(int error); + +private: // data + Q_DISABLE_COPY(AdvSecSettingsSecurityModuleModel) + friend class AdvSecSettingsSecurityModuleModelPrivate; + AdvSecSettingsSecurityModuleModelPrivate *d_ptr; +}; + +#endif // ADVSECSETTINGSSECURITYMODULEMODEL_H