--- a/gba/gbaserver/src/bootstrap.cpp Thu Oct 14 13:56:11 2010 +0300
+++ b/gba/gbaserver/src/bootstrap.cpp Wed Oct 20 14:51:23 2010 +0300
@@ -332,7 +332,7 @@
void C3GPPBootstrap::GetBootstrappingMaterialL(
const TDesC8& aBSFAddress,
const TDesC8& aNAFURL,
- const TDesC8& aUICC_LABEL,
+ const TDesC8& /*aUICC_LABEL*/,
const TUint8& aFlags,
const TDesC8& aKeyUsage,
TDes8 &aKsNAF,
@@ -384,10 +384,9 @@
GBA_TRACE_DEBUG(("NAF ID ="));
GBA_TRACE_DEBUG(*iNAFID);
-
-
- GBA_TRACE_DEBUG(("UICC label is:"));
- GBA_TRACE_DEBUG(aUICC_LABEL);
+
+ //GBA_TRACE_DEBUG(("UICC label is:"));
+ //GBA_TRACE_DEBUG(aUICC_LABEL);
// Get IMPI
TPtr8 ptrIdentity = iIdentity->Des();
--- a/gba/gbaserver/src/dataretriever.cpp Thu Oct 14 13:56:11 2010 +0300
+++ b/gba/gbaserver/src/dataretriever.cpp Wed Oct 20 14:51:23 2010 +0300
@@ -683,10 +683,10 @@
// C3GPPBootstrapHttpHandler::MHFRunError()
// -----------------------------------------------------------------------------
//
-TInt C3GPPBootstrapHttpHandler::MHFRunError(TInt aError, RHTTPTransaction /*aTransaction*/, const THTTPEvent& aEvent)
+TInt C3GPPBootstrapHttpHandler::MHFRunError(TInt aError, RHTTPTransaction /*aTransaction*/, const THTTPEvent& /*aEvent*/)
{
GBA_TRACE_DEBUG_NUM(("MHFRunError called with error code = %d"), aError);
- GBA_TRACE_DEBUG_NUM(("MHFRunError called with http event = %d"),aEvent.iStatus );
+ //GBA_TRACE_DEBUG_NUM(("MHFRunError called with http event = %d"),aEvent.iStatus );
// tell caller that there was an error
TRAPD(err, iEventSink->EventRequestCompletedL(aError));
return err;
@@ -959,7 +959,7 @@
// -----------------------------------------------------------------------------
//
void C3GPPBootstrapHttpHandler::EncodeDigestAuthL( const RString& aUsername,
- const RString& aPW,
+ const RString& /*aPW*/,
RHTTPTransaction& aTransaction,
TInt aHeaderPart,
const THTTPHdrVal& aRequestUri )
@@ -972,8 +972,8 @@
GBA_TRACE_DEBUG(("Username:"));
GBA_TRACE_DEBUG(aUsername.DesC());
- GBA_TRACE_DEBUG(("Passwd:"));
- GBA_TRACE_DEBUG_BINARY(aPW.DesC());
+ //GBA_TRACE_DEBUG(("Passwd:"));
+ //GBA_TRACE_DEBUG_BINARY(aPW.DesC());
TBuf8<KHashLength> hash;
TBuf8<KHashLength> cnonce;
--- a/pkiutilities/DeviceToken/Src/Shared/DevTokenCertInfo.cpp Thu Oct 14 13:56:11 2010 +0300
+++ b/pkiutilities/DeviceToken/Src/Shared/DevTokenCertInfo.cpp Wed Oct 20 14:51:23 2010 +0300
@@ -73,8 +73,10 @@
aSize,
aSubjectKeyId,
aIssuerKeyId,
- aCertificateId);
+ aCertificateId);
+ CleanupStack::PushL( self );
self->ConstructL(NULL);
+ CleanupStack::Pop( self );
return self;
}
@@ -101,7 +103,9 @@
aIssuerKeyId,
aCertificateId,
aDeletable);
+ CleanupStack::PushL( self );
self->ConstructL(NULL);
+ CleanupStack::Pop( self );
return self;
}
--- a/pkiutilities/securitydialognotifiersrv/src/securitydialogoperbasicpinquery.cpp Thu Oct 14 13:56:11 2010 +0300
+++ b/pkiutilities/securitydialognotifiersrv/src/securitydialogoperbasicpinquery.cpp Wed Oct 20 14:51:23 2010 +0300
@@ -106,7 +106,7 @@
HBufC* caption = NULL;
TInt minLength = 0;
- TInt maxLength = 0;
+ TInt maxLength = KPINLabelMaxLength;
TInt mode = ESecUiAlphaSupported | ESecUiSecretSupported | ESecUiCancelSupported |
ESecUiEmergencyNotSupported;
if( iPinInput->iPIN.iPINLabel == KBasicPinQueryKeyStorePassphrase )
--- a/remotelock/RemoteLockEngine/Src/RemoteLock.cpp Thu Oct 14 13:56:11 2010 +0300
+++ b/remotelock/RemoteLockEngine/Src/RemoteLock.cpp Wed Oct 20 14:51:23 2010 +0300
@@ -593,7 +593,13 @@
void CRemoteLock::CheckSettingsL()
{
RL_TRACE_PRINT(" [ rl.exe ] CheckSettingsL () ");
- iRemoteLockSetting->GetEnabled( iIsEnabled );
+ TBool remoteLockStatus( EFalse );
+
+ remoteLockStatus = iRemoteLockSetting->GetEnabled( iIsEnabled );
+ if(!remoteLockStatus)
+ {
+ RL_TRACE_PRINT(" [ rl.exe ] !remoteLockStatus ");
+ }
delete iStoredCode;
iStoredCode = NULL;
--- a/secsrv_plat/keyguard_access_api/inc/keyguardaccessapi.h Thu Oct 14 13:56:11 2010 +0300
+++ b/secsrv_plat/keyguard_access_api/inc/keyguardaccessapi.h Wed Oct 20 14:51:23 2010 +0300
@@ -119,6 +119,11 @@
IMPORT_C TInt TestPanicClient( );
+ /**
+ * Confirms that the server is running
+ * @return KErrNone if succeeded
+ */
+ IMPORT_C TInt AutolockStatus( TInt aCommand, TInt aParam);
private:
--- a/secsrv_plat/security_code_ui_api/inc/SecUiSecurityHandler.h Thu Oct 14 13:56:11 2010 +0300
+++ b/secsrv_plat/security_code_ui_api/inc/SecUiSecurityHandler.h Wed Oct 20 14:51:23 2010 +0300
@@ -25,9 +25,9 @@
#include <etelmm.h>
#include <rmmcustomapi.h>
-#include <aknquerydialog.h>
-#include <aknnotedialog.h>
-
+#include <e32base.h>
+#define EErrorTone 1
+#define EConfirmationTone 2
// FORWARD DECLARATIONS
class RTASecuritySession;
@@ -120,6 +120,7 @@
* CancelOpenQuery
*/
TInt CancelOpenQuery(TInt aStatus);
+ HBufC* TranslateLC(const TDesC& aMessageId, TInt aFlags);
private: // DATA
/*****************************************************
@@ -129,7 +130,6 @@
RMobilePhone& iPhone;
TBool iQueryCanceled;
CCodeQueryDialog* iSecurityDlg;
- CAknNoteDialog* iNoteDlg;
TBool* iDestroyedPtr;
RMmCustomAPI iCustomPhone;
RTASecuritySession* iSecuritySession;
--- a/secsrv_plat/security_code_ui_api/inc/SecUiSecuritySettings.h Thu Oct 14 13:56:11 2010 +0300
+++ b/secsrv_plat/security_code_ui_api/inc/SecUiSecuritySettings.h Wed Oct 20 14:51:23 2010 +0300
@@ -24,7 +24,6 @@
// INCLUDES
#include <etelmm.h>
#include <rmmcustomapi.h>
-#include <aknnotedialog.h>
#define KSecUiAskNever 1
#define KSecUiAskOnlyIfInvalid 2
@@ -172,7 +171,7 @@
*
* @return Void
*/
- static void ShowResultNoteL(TInt aResourceID, CAknNoteDialog::TTone aTone);
+ static void ShowResultNoteL(TInt aResourceID, TInt aTone);
IMPORT_C TInt ChangeRemoteLockStatusL( TBool& aRemoteLockStatus, TDes& aRemoteLockCode, TInt aAutoLockPeriod );
@@ -198,6 +197,7 @@
*/
IMPORT_C TInt AskSecCodeParamsL(RMobilePhone::TMobilePassword &aOldPassword, TInt aFlags, TDes& aCaption, TInt aShowError);
IMPORT_C TInt ChangePinRequestParamsL(TInt aEnable, RMobilePhone::TMobilePassword aOldPassword, TInt aFlags, TDes& aCaption, TInt aShowError);
+ IMPORT_C static HBufC* TranslateLC(const TDesC& aMessageId, TInt aFlags);
private:
--- a/securitydialogs/Autolock/PubSub/SecurityUIsPrivatePSKeys.h Thu Oct 14 13:56:11 2010 +0300
+++ b/securitydialogs/Autolock/PubSub/SecurityUIsPrivatePSKeys.h Wed Oct 20 14:51:23 2010 +0300
@@ -72,12 +72,15 @@
const TUint32 KSecurityUIsScreenSaverStatus = 0x00000306;
enum TSecurityUIsScreenSaverValues
{
- ESecurityUIsScreenSaverUninitialized = 0,
- ESecurityUIsScreenSaverOn,
- ESecurityUIsScreenSaverOff,
- ESecurityUIsScreenSaverOffWhileUnguardQuery,
- ESecurityUIsScreenSaverOffWhileUnlockQuery,
- ESecurityUIsScreenSaverLastValue
+ EDeviceDialogUninitialized = -1,
+ EDeviceDialogDestroyed = 0,
+ EDeviceDialogCreated = 1,
+ EDeviceDialogRaised = 2,
+ EDeviceDialogScreenSaverHidden = 0x10,
+ EDeviceDialogScreenSaverReDisplay = 0x11,
+ EDeviceDialogScreenSaver = 0x12,
+ EDeviceDialogLockIcon= 0x20,
+ EDeviceDialogLastValue
};
/**
--- a/securitydialogs/Autolock/src/Autolock.cpp Thu Oct 14 13:56:11 2010 +0300
+++ b/securitydialogs/Autolock/src/Autolock.cpp Wed Oct 20 14:51:23 2010 +0300
@@ -35,6 +35,7 @@
#include <hbdevicemessagebox.h>
#include <lockappclientserver.h>
+#include <centralrepository.h>
#include "Autolock.h"
#include <xqserviceutil.h>
@@ -87,6 +88,7 @@
static const char *KSnsrCmdUnlock = "unlock";
static const char *KSnsrCmdSwitchLights = "switch_lights";
static const char *KSnsrCmdSwitchLowPower = "switch_low_power";
+static const char *KSnsrCmdResetActiveModeTimer = "resetActiveModeTimer";
Autolock::Autolock(QWidget *parent, Qt::WFlags f) :
QWidget(parent, f),
@@ -123,7 +125,7 @@
RDEBUG("autolockState", autolockState);
if (autolockState == EAutolockStatusUninitialized)
{
- autolockState = EAutolockOff; // not-initialized means taht the unlock-query hasn't been displayed. Therefore the device should not stay locked.
+ autolockState = EAutolockOff; // not-initialized means that the unlock-query hasn't been displayed. Therefore the device should not stay locked.
}
ret = RProperty::Set(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, autolockState); // this might re-set it. That's not bad. It will re-notify all listeners.
RDEBUG("Set KCoreAppUIsAutolockStatus", ret);
@@ -146,22 +148,13 @@
TSecurityPolicy::EAlwaysPass));
RDEBUG("defined KSecurityUIsDismissDialog", ret);
- // call TARM so that it verifies that configuration is in sync. This might internally accept the (default) lock code, but doesn't dismiss the query.
- // Note: this is fast : 0.02 seconds
- RSCPClient scpClientConfiguration;
- User::LeaveIfError( scpClientConfiguration.Connect() );
- CleanupClosePushL( scpClientConfiguration );
- RDEBUG("call CheckConfiguration KSCPComplete", KSCPComplete);
- TInt finalConfStatus = scpClientConfiguration.CheckConfiguration( KSCPComplete );
- RDEBUG("finalConfStatus", finalConfStatus);
- CleanupStack::PopAndDestroy(); // scpClientConfiguration
+ ret = RProperty::Define(KPSUidSecurityUIs, KSecurityUIsScreenSaverStatus, RProperty::EInt, TSecurityPolicy(TSecurityPolicy::EAlwaysPass), writePolicy);
+ RDEBUG("defined KSecurityUIsScreenSaverStatus", ret);
mService = new AutolockService(this);
/* Adjust the palette */
-#if defined(Q_WS_S60)
- // this is defined.
- RDEBUG( "Q_WS_S60", 1 );
+ RDEBUG( "Palette", 1 );
QPalette p = qApp->palette();
QColor color(192,192,192);
QColor bg(201,250,250);
@@ -175,14 +168,13 @@
p.setColor(QPalette::Link, QColor(240,40,40));
qApp->setPalette(p);
-#endif
RDEBUG("connect", 1);
#if defined(Q_WS_X11) || defined(Q_WS_WIN)
RDEBUG( "Q_WS_X11", 1 );
setFixedSize(QSize(360,640)); // nHD
-#elif defined(Q_WS_S60)
+#else
// this doesn't work well
// showMaximized();
showFullScreen();
@@ -198,10 +190,12 @@
iLockCodeQueryInDisplay = EFalse;
Q_UNUSED(cRresult);
TInt err = 0;
+ err = err;
iProcessingEvent = -1;
iLockStatusPrev = ELockNotActive;
iLockStatus = ELockNotActive;
+ iSCPConfigured = 0;
QT_TRAP_THROWING(repository = CRepository::NewL(KCRUidSecuritySettings));
cRresult = repository->Get(KSettingsAutolockStatus, lockValue);
RDEBUG("KSettingsAutolockStatus", KSettingsAutolockStatus);
@@ -323,6 +317,7 @@
void Autolock::adjustInactivityTimers(int aReason)
{
RDEBUG("aReason", aReason);
+ aReason = aReason;
TInt keyguardTime = 0;
TInt lockTime = 0;
CRepository* repository = NULL;
@@ -403,7 +398,9 @@
{
RDEBUG("aMode", aMode);
RDEBUG("aReason", aReason);
+ aReason = aReason;
RDEBUG("aCaller", aCaller);
+ aCaller = aCaller;
TInt err = 0;
if(aMode!=ESecurityUIsLightsLockOffRequest && aMode!=ELockAppDisableKeyguard)
{
@@ -582,6 +579,8 @@
void Autolock::setLabelNumber(QString label, QString number)
{
RDEBUG("0", 0);
+ label = label;
+ number = number;
}
// Used on debug environment for printing the Request in understandable format
@@ -875,7 +874,7 @@
}
else
{
- RDEBUG("not set KCoreAppUIsAutolockStatus because already ", EAutolockOff);
+ RDEBUG("not set KCoreAppUIsAutolockStatus because already EAutolockOff", EAutolockOff);
}
// Not needed. SysAp turns the lights when keyguard is disabled
// TurnLights(ESecurityUIsLightsLockOnRequest, aReason, 0x14);
@@ -897,7 +896,7 @@
}
else
{
- RDEBUG("not set KCoreAppUIsAutolockStatus because already ", EAutolockOff);
+ RDEBUG("not set KCoreAppUIsAutolockStatus because already EAutolockOff", EAutolockOff);
}
TurnLights(ESecurityUIsLightsLockOffRequest, aReason, 0x16); // same for keyguard and devicelock
// cRresult = repositoryDevicelock->Set(KSettingsAutolockStatus, 0);
@@ -915,7 +914,7 @@
}
else
{
- RDEBUG("not set KCoreAppUIsAutolockStatus because already ", EManualLocked);
+ RDEBUG("not set KCoreAppUIsAutolockStatus because already EManualLocked", EManualLocked);
}
TurnLights(ESecurityUIsLightsQueryOnRequest, aReason, 0x18);
// cRresult = repositoryDevicelock->Set(KSettingsAutolockStatus, 1);
@@ -927,6 +926,7 @@
delete repositoryDevicelock;
delete repositoryKeyguard;
// this is the real point where everything is done.
+ RDEBUG("iLockStatusPrev", iLockStatusPrev);
iLockStatusPrev = iLockStatus;
iLockStatus = aReason;
RDEBUG("setting iLockStatus", iLockStatus);
@@ -1178,6 +1178,52 @@
}
}
break;
+ case 0x100: // Start/confirm server
+ {
+ // call TARM so that it verifies that configuration is in sync. This might internally accept the (default) lock code, but doesn't dismiss the query.
+ // Note: this is fast : 0.02 seconds
+ TInt secuiOperation=mParam1;
+ TInt iStartup=0; // this comes as a flag, part of secuiOperation
+ iStartup = iStartup;
+ RDEBUG("secuiOperation", secuiOperation);
+ RDEBUG("iSCPConfigured", iSCPConfigured);
+ errorInProcess = KErrNone;
+ if(secuiOperation>=0x1000)
+ {
+ iStartup=1;
+ secuiOperation-=0x1000;
+ }
+ if(secuiOperation==0 /*unknown*/ || secuiOperation==2 /*PIN*/)
+ {
+ // nothing to do. SCP should not be verified on PIN ; only on lock-query at boot
+ RDEBUG("nothing to do because secuiOperation", secuiOperation);
+ RDEBUG("KErrCompletion", KErrCompletion);
+ errorInProcess = KErrCompletion;
+ }
+ else
+ {
+ // usually secuiOperation=6
+ if(!iSCPConfigured)
+ {
+ RSCPClient scpClientConfiguration;
+ User::LeaveIfError( scpClientConfiguration.Connect() );
+ CleanupClosePushL( scpClientConfiguration );
+ RDEBUG("call CheckConfiguration KSCPComplete", KSCPComplete);
+ TInt finalConfStatus = scpClientConfiguration.CheckConfiguration( KSCPComplete );
+ RDEBUG("finalConfStatus", finalConfStatus);
+ CleanupStack::PopAndDestroy(); // scpClientConfiguration
+ iSCPConfigured=1;
+ errorInProcess = KErrNone;
+ }
+ else
+ {
+ RDEBUG("nothing to do because iSCPConfigured", iSCPConfigured);
+ RDEBUG("KErrAlreadyExists", KErrAlreadyExists);
+ errorInProcess = KErrAlreadyExists;
+ }
+ }
+ }
+ break;
default:
{
RDEBUG("default", ret);
@@ -1204,11 +1250,14 @@
if (target == EDeviceDialogDestroyed || target == EDeviceDialogScreenSaverHidden) // hide
{
+ /*
+ This doesn't work since Avkon deprecations
RDEBUG("ReleaseContext", R_AVKON_DEFAULT_SKEY_LIST);
static_cast<CAknAppUi*>(CEikonEnv::Static()->EikAppUi())->KeySounds()->ReleaseContext();
RDEBUG("PopContext", 0x90);
static_cast<CAknAppUi*>(CEikonEnv::Static()->EikAppUi())->KeySounds()->PopContext();
RDEBUG("ReleaseContext done", 0x92);
+ */
// aReason is not important here, but let's check nevertheless
if (aReason != ELockAppDisableKeyguard && aReason != ELockAppDisableDevicelock && aReason != ELockAppOfferDevicelock)
@@ -1277,6 +1326,9 @@
}
else if (target == EDeviceDialogCreated || target == EDeviceDialogScreenSaverReDisplay) // show
{
+ /*
+ This doesn't work since Avkon deprecations
+
RDEBUG("PushContextL", R_AVKON_DEFAULT_SKEY_LIST);
static_cast<CAknAppUi*>(CEikonEnv::Static()->EikAppUi())->KeySounds()->PushContextL(R_AVKON_SILENT_SKEY_LIST);
RDEBUG("BringToForeground", 0x90);
@@ -1284,10 +1336,12 @@
RDEBUG("LockContext", 0x91);
static_cast<CAknAppUi*>(CEikonEnv::Static()->EikAppUi())->KeySounds()->LockContext();
RDEBUG("PushContextL Done", 0x92);
+ */
// secUiOriginatedQuery should be ESecurityUIsSecUIOriginatedUninitialized . If not, the validation is not correctly filtering it
QVariantMap params;
TBool err=EFalse;
+ err = err;
if (aReason == ELockAppEnableKeyguard)
params.insert("type", ESecUiTypeKeyguard);
@@ -1538,8 +1592,8 @@
void Autolock::switchScreensaverToPowerSaveMode()
{
RDEBUG("0", 0);
- // This crashes IVE3. TODO : restore when it works again.
- //switchScreensaverMode( ESnsrViewTypeStandby);
+ // This works again and doesn't crash IVE3
+ switchScreensaverMode( ESnsrViewTypeStandby);
RDEBUG("99", 0x99);
}
@@ -1563,6 +1617,14 @@
RDEBUG("err", err);
}
+ it = data.find(KSnsrCmdResetActiveModeTimer);
+ if (it != data.end() && iLockStatus != ELockNotActive)
+ {
+ RDEBUG("calling switchScreensaverMode ESnsrViewTypeActive", ESnsrViewTypeActive);
+ switchScreensaverMode( ESnsrViewTypeActive );
+ RDEBUG("done", 1);
+ }
+
it = data.find(KSnsrCmdSwitchLowPower);
if (it != data.end())
{
@@ -1604,6 +1666,7 @@
{
RDEBUG("0", 0);
int err(0);
+ err = err;
// Screensaver (usually) cannot send anymore any commands when
// it's being closed. Thus, we need to ensure here that screen has lights and
// full-power mode once screensaver is closed.
@@ -1949,6 +2012,7 @@
{
RDEBUG("0", 0);
TInt err = KErrNone;
+ err = err;
RDEBUG("number", number.toInt());
RDEBUG("aParam1", aParam1.toInt());
RDEBUG("aParam2", aParam2.toInt());
--- a/securitydialogs/Autolock/src/Autolock.h Thu Oct 14 13:56:11 2010 +0300
+++ b/securitydialogs/Autolock/src/Autolock.h Wed Oct 20 14:51:23 2010 +0300
@@ -64,19 +64,6 @@
EDevicelockTimer
};
-enum TDeviceDialogCreated
- {
- EDeviceDialogUninitialized = -1,
- EDeviceDialogDestroyed = 0,
- EDeviceDialogCreated = 1,
- EDeviceDialogRaised = 2,
- EDeviceDialogScreenSaverHidden = 0x10,
- EDeviceDialogScreenSaverReDisplay = 0x11,
- EDeviceDialogScreenSaver = 0x12,
- EDeviceDialogLockIcon= 0x20,
- EDeviceDialogLastValue
- };
-
class QTimer;
class AutolockService;
@@ -181,6 +168,7 @@
// HBufC16 *mScreensaverPowerSavePixelBuffer;
TInt32 iProcessingEvent;
int iTempDisableOnlyKeyguardBecauseIncomingCall;
+ int iSCPConfigured;
};
class AutolockService : public XQServiceProvider
--- a/securitydialogs/SecUi/BWinsCw/SECUI_EKA2U.def Thu Oct 14 13:56:11 2010 +0300
+++ b/securitydialogs/SecUi/BWinsCw/SECUI_EKA2U.def Wed Oct 20 14:51:23 2010 +0300
@@ -69,4 +69,5 @@
?ChangeAutoLockPeriodParamsL@CSecuritySettings@@QAEHHV?$TBuf@$09@@HAAVTDes16@@H@Z @ 68 NONAME ; int CSecuritySettings::ChangeAutoLockPeriodParamsL(int, class TBuf<10>, int, class TDes16 &, int)
?LaunchHelpL@CSecQueryUi@@QAEXABVTDesC16@@ABVTUid@@@Z @ 69 NONAME ; void CSecQueryUi::LaunchHelpL(class TDesC16 const &, class TUid const &)
?AskSecCodeParamsL@CSecuritySettings@@QAEHAAV?$TBuf@$09@@HAAVTDes16@@H@Z @ 70 NONAME ; int CSecuritySettings::AskSecCodeParamsL(class TBuf<10> &, int, class TDes16 &, int)
+ ?TranslateLC@CSecuritySettings@@SAPAVHBufC16@@ABVTDesC16@@H@Z @ 71 NONAME ; class HBufC16 * CSecuritySettings::TranslateLC(class TDesC16 const &, int)
--- a/securitydialogs/SecUi/EABI/Secuiu.def Thu Oct 14 13:56:11 2010 +0300
+++ b/securitydialogs/SecUi/EABI/Secuiu.def Wed Oct 20 14:51:23 2010 +0300
@@ -100,4 +100,5 @@
_ZTI11CSecQueryUi @ 99 NONAME
_ZTV11CSecQueryUi @ 100 NONAME
_ZN17CSecuritySettings17AskSecCodeParamsLER4TBufILi10EEiR6TDes16i @ 101 NONAME
+ _ZN17CSecuritySettings11TranslateLCERK7TDesC16i @ 102 NONAME
--- a/securitydialogs/SecUi/Inc/SecUiAutoLockSettingPage.h Thu Oct 14 13:56:11 2010 +0300
+++ b/securitydialogs/SecUi/Inc/SecUiAutoLockSettingPage.h Wed Oct 20 14:51:23 2010 +0300
@@ -20,8 +20,8 @@
#ifndef __CAUTOLOCKSETTINGPAHGE_H
#define __CAUTOLOCKSETTINGPAHGE_H
-#include <aknradiobuttonsettingpage.h>
#include <eikmobs.h>
+#include <e32base.h>
class CAutoLockSettingPage : public CBase
{
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/SecUiTestQt/SecUiTestQt.pri Wed Oct 20 14:51:23 2010 +0300
@@ -0,0 +1,153 @@
+######################################################################
+# hbtest.pri
+######################################################################
+
+isEmpty(TEMPLATE):TEMPLATE = app
+
+contains(TEMPLATE, .*subdirs$) {
+
+ !contains(_PRO_FILE_PWD_, .*/fute$) {
+ # recurse into subdirs
+ test.CONFIG += recursive
+ autotest.CONFIG += recursive
+ citest.CONFIG += recursive
+ }
+
+ root {
+ # compile all tests first at the root level
+ !win32|CONFIG(debug, debug|release):test.depends = first
+ !win32|CONFIG(debug, debug|release):autotest.depends = first
+ !win32|CONFIG(debug, debug|release):citest.depends = first
+ }
+
+} else {
+
+ # Flag all the test binaries SMP-safe in Symbian
+ symbian:MMP_RULES += SMPSAFE
+
+ INCLUDEPATH += $$_PRO_FILE_PWD_
+ DEPENDPATH += $$_PRO_FILE_PWD_
+
+ QMAKE_RPATHDIR += $${HB_BUILD_DIR}/lib
+
+ HB_TEST_INSTALL_DIR = $${HB_INSTALL_DIR}/tsrc/bin
+ DEFINES += HB_BUILD_DIR=\"\\\"$${HB_BUILD_DIR}\\\"\"
+
+ hbtestresources {
+ LIBS += -L$${HB_BUILD_DIR}/lib -lHbTestResources
+ }
+
+ HB = $$lower($$unique(HB))
+ isEmpty(HB):HB = hbcore hbwidgets
+ !contains(HB, "hbcore"):!contains(HB_NOMAKE_PARTS, hbcore): HB += hbcore
+ contains(HB, "hbutils")|contains(HB, "hbinput")|contains(HB, "hbfeedback"): HB *= hbwidgets
+
+ for(COLLECTION, HB) {
+ isEqual(COLLECTION, hbcore) {
+ !contains(HB_NOMAKE_PARTS, hbcore):hbAddLibrary(hbcore/HbCore)
+ } else:isEqual(COLLECTION, hbwidgets) {
+ !contains(HB_NOMAKE_PARTS, hbwidgets):hbAddLibrary(hbwidgets/HbWidgets)
+ } else:isEqual(COLLECTION, hbutils) {
+ !contains(HB_NOMAKE_PARTS, hbutils):hbAddLibrary(hbutils/HbUtils)
+ } else:isEqual(COLLECTION, hbinput) {
+ !contains(HB_NOMAKE_PARTS, hbinput):hbAddLibrary(hbinput/HbInput)
+ } else:isEqual(COLLECTION, hbfeedback) {
+ !contains(HB_NOMAKE_PARTS, hbfeedback):hbAddLibrary(hbfeedback/HbFeedback)
+ } else {
+ message(Unknown COLLECTION: $$COLLECTION)
+ next()
+ }
+ }
+
+ plugin {
+
+ # nothing to do for plugins
+
+ } else {
+
+ unit_test = false
+ perf_test = false
+ loc_test = false
+ contains(_PRO_FILE_PWD_, .*/tsrc/unit/.*):unit_test = true
+ contains(_PRO_FILE_PWD_, .*/tsrc/performance/.*):perf_test = true
+ contains(_PRO_FILE_PWD_, .*/tsrc/loc/.*):loc_test = true
+
+ $$unit_test|$$perf_test|$$loc_test {
+
+ # a runnable test
+ HEADERS += hbtest.h
+ CONFIG -= app_bundle
+ CONFIG += qtestlib console
+
+ $$perf_test:include($${HB_SOURCE_DIR}/tsrc/performance/shared/shared.pri)
+
+ # TODO: cleanup test execution
+ win32:DESTDIR = debug
+ # only Makefile.Debug on win32:
+ !win32|CONFIG(debug, debug|release):build_pass:!isEmpty(DESTDIR) {
+ test.commands += cd $$DESTDIR &&
+ autotest.commands += cd $$DESTDIR &&
+ citest.commands += cd $$DESTDIR &&
+ }
+ unix {
+ exists( /usr/local/bin/launcher ) {
+ test.commands += /usr/local/bin/launcher ./$(TARGET)
+ autotest.commands += /usr/local/bin/launcher ./$(TARGET) -style plastique -xml -o $${HB_BUILD_DIR}/autotest/$(QMAKE_TARGET).xml
+ citest.commands += /usr/local/bin/launcher ./$(TARGET) -style plastique -xunitxml -o $${HB_BUILD_DIR}/autotest/$(QMAKE_TARGET).xml
+ } else {
+ test.commands += ./$(TARGET)
+ autotest.commands += ./$(TARGET) -style plastique -xml -o $${HB_BUILD_DIR}/autotest/$(QMAKE_TARGET).xml
+ citest.commands += ./$(TARGET) -style plastique -xunitxml -o $${HB_BUILD_DIR}/autotest/$(QMAKE_TARGET).xml
+ }
+ } else:win32 {
+ test.CONFIG += recursive
+ autotest.CONFIG += recursive
+ citest.CONFIG += recursive
+ # only Makefile.Debug:
+ win32-g++:!isEmpty(QMAKE_SH) {
+ CONFIG(debug, debug|release):build_pass {
+ test.commands += ./$(TARGET)
+ autotest.commands += ./$(TARGET) -xml -o $${HB_BUILD_DIR}/autotest/$(QMAKE_TARGET).xml
+ citest.commands += ./$(TARGET) -xunitxml -o $${HB_BUILD_DIR}/autotest/$(QMAKE_TARGET).xml
+ }
+ } else {
+ CONFIG(debug, debug|release):build_pass {
+ test.commands += $(TARGET)
+ autotest.commands += $(TARGET) -xml -o $${HB_BUILD_DIR}/autotest/$(QMAKE_TARGET).xml
+ citest.commands += $(TARGET) -xunitxml -o $${HB_BUILD_DIR}/autotest/$(QMAKE_TARGET).xml
+ }
+ }
+ }
+
+ $$unit_test {
+ symbian:RSS_RULES = "group_name=\"HbUnitTests\";"
+ else:target.path = $${HB_TEST_INSTALL_DIR}/unit
+ } else:$$loc_test {
+ symbian:RSS_RULES = "group_name=\"HbLocTests\";"
+ else:target.path = $${HB_TEST_INSTALL_DIR}/loc
+ } else:$$perf_test {
+ symbian:RSS_RULES = "group_name=\"HbPerfApps\";"
+ else:target.path = $${HB_TEST_INSTALL_DIR}/perf
+ } else {
+ symbian:RSS_RULES = "group_name=\"HbUnknown\";"
+ else:target.path = $${HB_TEST_INSTALL_DIR}/unknown
+ }
+ !symbian:INSTALLS += target
+
+ } else:contains(_PRO_FILE_PWD_, .*/fute/.*) {
+
+ # a fute app
+ target.path = $${HB_TEST_INSTALL_DIR}/fute
+ INSTALLS += target
+ symbian {
+ RSS_RULES = "group_name=\"HbTestApps\";"
+ }
+
+ }
+ }
+}
+
+!contains(QMAKE_EXTRA_TARGETS, test):QMAKE_EXTRA_TARGETS += test
+!contains(QMAKE_EXTRA_TARGETS, autotest)::QMAKE_EXTRA_TARGETS += autotest
+!contains(QMAKE_EXTRA_TARGETS, citest)::QMAKE_EXTRA_TARGETS += citest
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/SecUiTestQt/SecUiTestQt.pro Wed Oct 20 14:51:23 2010 +0300
@@ -0,0 +1,30 @@
+HEADERS += contentwidget.h dirviewitem.h modelfactory.h viewfutedataform.h treedataform.h mailtreeviewitem.h brownevenviewitem.h greenoddviewitem.h
+SOURCES += contentwidget.cpp main.cpp dirviewitem.cpp modelfactory.cpp viewfutedataform.cpp treedataform.cpp mailtreeviewitem.cpp brownevenviewitem.cpp greenoddviewitem.cpp
+RESOURCES += SecUiTestQt.qrc shared.qrc
+
+LIBS += -lsecui -letelmm -letel -lcustomapi -lcentralrepository
+LIBS += -lcone -lws32 -lkeylockpolicyapi
+LIBS += -lpower_save_display_mode
+LIBS += -ltstaskmonitorclient # for TsTaskSettings
+LIBS += -lavkon # for KeySounds
+LIBS += -lapgrfx # for CApaWindowGroupName
+LIBS += -lscpclient # SCP server
+LIBS += -llockclient
+LIBS += -letelmm
+LIBS += -letel
+LIBS += -lcustomapi
+LIBS += -letel3rdparty
+
+symbian*: {
+ TARGET.CAPABILITY = CAP_APPLICATION NetworkControl
+ TARGET.UID3 = 0xEE89E3CE
+ TARGET.EPOCHEAPSIZE = 0x20000 0x1000000
+ }
+HB_NOMAKE_PARTS += tests performance localization
+CONFIG += Hb
+
+INCLUDEPATH += /sf/mw/hb/include/hbcore/private
+
+include(SecUiTestQt.pri)
+
+BLD_INF_RULES.prj_exports += "./rom/SecUiTestQt.iby CORE_APP_LAYER_IBY_EXPORT_PATH(SecUiTestQt.iby)"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/SecUiTestQt/SecUiTestQt.qrc Wed Oct 20 14:51:23 2010 +0300
@@ -0,0 +1,10 @@
+<!DOCTYPE RCC><RCC version="1.0">
+
+<qresource prefix="/resources">
+ <file alias="qtg_fr_list_new_item_b" >resources/qtg_fr_list_new_item_b.svg</file>
+ <file alias="qtg_fr_list_new_item_c" >resources/qtg_fr_list_new_item_c.svg</file>
+ <file alias="qtg_fr_list_new_item_t" >resources/qtg_fr_list_new_item_t.svg</file>
+ <file alias="qtg_nmailui_minus_sign" >resources/qtg_nmailui_minus_sign.svg</file>
+ <file alias="qtg_nmailui_plus_sign" >resources/qtg_nmailui_plus_sign.svg</file>
+</qresource>
+</RCC>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/SecUiTestQt/brownevenviewitem.cpp Wed Oct 20 14:51:23 2010 +0300
@@ -0,0 +1,70 @@
+#include "brownevenviewitem.h"
+
+#include "QPainter"
+#include "QStyleOptionGraphicsItem"
+#include "QWidget"
+#include "QDebug"
+
+BrownEvenViewItem::BrownEvenViewItem(QGraphicsItem* parent) :
+ HbListViewItem(parent)
+{
+}
+
+BrownEvenViewItem::~BrownEvenViewItem()
+{
+}
+
+
+HbAbstractViewItem* BrownEvenViewItem::createItem()
+{
+ return new BrownEvenViewItem(*this);
+}
+
+bool BrownEvenViewItem::canSetModelIndex(const QModelIndex &index) const
+{
+ int itemType(index.data(Hb::ItemTypeRole).toInt());
+ if (itemType == Hb::StandardItem) {
+ QVariant displayRole = index.data(Qt::DisplayRole);
+ QString firstValue;
+ QStringList stringList;
+ if (displayRole.isValid()) {
+ if (displayRole.canConvert<QString>()) {
+ firstValue = displayRole.toString();
+ } else if ( displayRole.canConvert<QStringList>()
+ && displayRole.toStringList().count()) {
+ firstValue = displayRole.toStringList().at(0);
+ }
+ }
+
+ //qDebug() << "BrownEvenViewItem::canSetModelIndex: value" << firstValue;
+ //int value = index.row();
+ int value = firstValue.toInt();
+ if ( value > 0
+ && value % 2 == 0) {
+ return true;
+ }
+ }
+ return false;
+}
+
+void BrownEvenViewItem::paint( QPainter *painter,
+ const QStyleOptionGraphicsItem *option,
+ QWidget *widget)
+{
+ HbAbstractViewItem::paint( painter, option, widget );
+ if (painter){
+ QRectF drawRect = boundingRect();
+ drawRect.adjust(1,1,-1,-1);
+ //QColor brown(141,92,7);
+ //QColor brown(106,57,10);
+ QColor brown(87,45,11);
+ painter->fillRect( drawRect, brown);
+ }
+}
+
+int BrownEvenViewItem::type() const
+{
+ return BrownEvenViewItem::Type;
+}
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/SecUiTestQt/brownevenviewitem.h Wed Oct 20 14:51:23 2010 +0300
@@ -0,0 +1,28 @@
+#ifndef BROWNEVENVIEWITEM_H
+#define BROWNEVENVIEWITEM_H
+
+#include <hblistviewitem.h>
+
+class QGraphicsItem;
+class QPainter;
+class QStyleOptionGraphicsItem;
+class QWidget;
+class QModelIndex;
+
+class BrownEvenViewItem : public HbListViewItem
+{
+ public:
+ explicit BrownEvenViewItem(QGraphicsItem* parent=0);
+ virtual ~BrownEvenViewItem();
+
+ enum { Type = Hb::ItemType_Last + 1002 };
+ virtual int type() const;
+
+ virtual HbAbstractViewItem* createItem();
+ virtual bool canSetModelIndex(const QModelIndex &index) const;
+ virtual void paint( QPainter *painter,
+ const QStyleOptionGraphicsItem *option,
+ QWidget *widget);
+};
+
+#endif // BROWNEVENVIEWITEM_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/SecUiTestQt/contentwidget.cpp Wed Oct 20 14:51:23 2010 +0300
@@ -0,0 +1,2728 @@
+#include <e32debug.h>
+
+#ifdef _DEBUG
+#define RDEBUG( x, y ) RDebug::Printf( "%s %s (%u) %s=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, x, y );
+#else
+#define RDEBUG( x, y )
+#endif
+
+#include <devicelockaccessapi.h>
+#include <secuicodequerydialog.h>
+#include <gsmerror.h>
+#include <secuisecuritysettings.h>
+#include <secui.h>
+#include <secuisecurityhandler.h>
+#include <keyguardaccessapi.h>
+#include <avkondomainpskeys.h> // KPSUidAvkonDomain, KAknKeyguardStatus, TAknKeyguardStatus
+#include <startupdomainpskeys.h> // KStartupSecurityCodeQueryStatus
+#include <coreapplicationuisdomainpskeys.h> // KCoreAppUIsAutolockStatus
+#include <hwrmdomainpskeys.h>
+#include <settingsinternalcrkeys.h>
+#include <keylockpolicyapi.h>
+#include <etelmm.h>
+#include <rmmcustomapi.h>
+#include <securitynotification.h>
+#include <centralrepository.h>
+
+const TInt KPhoneIndex(0);
+const TInt KTriesToConnectServer(2);
+const TInt KTimeBeforeRetryingServerConnection(50000);
+const TUid KAutolockUid =
+ {
+ 0x100059B5
+ };
+#include <Etel3rdParty.h>
+
+_LIT( KMmTsyModuleName, "PhoneTsy");
+
+#include <QStandardItemModel>
+#include <QStandardItem>
+#include <QTextStream>
+#include <QFile>
+#include <QFileInfo>
+#include <QIODevice>
+#include <QGraphicsTextItem>
+#include <QGraphicsLinearLayout>
+#include <QDirModel>
+#include <QFileSystemWatcher>
+#include <QItemSelectionModel>
+#include <QBrush>
+#include <QPointer>
+#include <QDebug>
+#include <QTimer>
+#include <QFileSystemModel>
+
+#include <hbapplication.h>
+#include <hbmainwindow.h>
+#include <hbinstance.h>
+#include <hbnamespace.h>
+#include <hbaction.h>
+#include <hbmenu.h>
+#include <hbtoolbar.h>
+#include <hblabel.h>
+#include <hbglobal.h>
+#include <hbicon.h>
+#include <hbview.h>
+#include <hbpushbutton.h>
+#include <hbtextitem.h>
+#include <hbdataformmodel.h>
+#ifdef HB_EFFECTS
+#include <hbeffect.h>
+#endif // HB_EFFECTS
+#include <hbtreeview.h>
+#include <hbtreeviewitem.h>
+#include <hbinputdialog.h>
+#include <hbframebackground.h>
+#include <hbnotificationdialog.h>
+#include <hbmodeliterator.h>
+
+#include "../../Autolock/PubSub/securityuisprivatepskeys.h"
+
+#include "contentwidget.h"
+#include "dirviewitem.h"
+#include "mailtreeviewitem.h"
+#include "modelfactory.h"
+#include "treedataform.h"
+#include "greenoddviewitem.h"
+#include "brownevenviewitem.h"
+
+// model names for submenu
+const QStringList KModelNames = (QStringList() << "Default" << "Simple" << "Deep" << "Flat" << /*"Mail" <<*/"Mixed" << "QDirModel" << "QFileSystemModel" << "GreenOddBrownEven");
+
+// orientation submenu items
+const QStringList TextStyles = (QStringList() << "Primary" << "Secondary");
+const QStringList CustomWidgets = (QStringList() << "Empty" << "Zoom slider" << "Volume Slider" << "Progress bar" << "Button" << "Text Editor");
+const QStringList LeftColumnWidgets = (QStringList() << "Empty" << "Icon" << "Text");
+const QStringList RightColumnWidgets = (QStringList() << "Empty" << "Icon" << "Text");
+const QStringList MiddleColumnWidgets = (QStringList() << "Empty" << "Four Small Icons" << "Three Large Icons" << "Label" << "Zoom slider" << "Volume Slider" << "Progress bar"
+ << "Button" << "Text Editor");
+
+// Custom role for storing the tree item depth.
+const int KMyCustomDepthRole = Qt::UserRole + 18;
+
+class BannerLabel : public HbLabel
+ {
+public:
+ BannerLabel(QGraphicsItem *parent) :
+ HbLabel(parent)
+ {
+ QFont currentfont(font());
+ currentfont.setBold(true);
+ currentfont.setPixelSize(18);
+ setFont(currentfont);
+ setAlignment(Qt::AlignCenter);
+ setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+ }
+
+protected:
+ void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
+ {
+ QPen oldPen = painter->pen();
+ painter->setPen(QPen(QColor(200, 200, 200, 150)));
+ painter->setBrush(QBrush(QColor(200, 200, 200, 150), Qt::SolidPattern));
+ painter->drawRect(option->rect);
+ painter->setPen(oldPen);
+ HbLabel::paint(painter, option, widget);
+ }
+ };
+
+class HbFileSystemTreeView : public HbTreeView
+ {
+
+public:
+ explicit HbFileSystemTreeView(QGraphicsItem *parent = 0) :
+ HbTreeView(parent)
+ {
+ }
+
+ virtual ~HbFileSystemTreeView()
+ {
+ }
+
+protected:
+ virtual void emitActivated(const QModelIndex &modelIndex);
+
+protected slots:
+virtual void modelLayoutChanged();
+
+private:
+ QPersistentModelIndex mTopIndex;
+
+ };
+
+void HbFileSystemTreeView::emitActivated(const QModelIndex &modelIndex)
+ {
+ QList<HbAbstractViewItem *> visibleItems = this->visibleItems();
+ int count = visibleItems.count();
+ if (count > 0)
+ {
+ mTopIndex = visibleItems.at(0)->modelIndex();
+ }
+ else
+ {
+ mTopIndex = QPersistentModelIndex();
+ }
+ emit activated(modelIndex);
+ }
+
+void HbFileSystemTreeView::modelLayoutChanged()
+ {
+ if (!mTopIndex.isValid())
+ {
+ mTopIndex = modelIterator()->nextIndex(rootIndex());
+ }
+ scrollTo(mTopIndex, HbAbstractItemView::PositionAtTop);
+ }
+
+// ======== MEMBER FUNCTIONS ========
+ContentWidget::ContentWidget(QString& imagesDir, HbMainWindow *mainWindow) :
+ HbView(0), mImagesDir(imagesDir), mWindow(mainWindow), mTreeView(0), mRemoveModelAction(0), mFileWatcher(0), mModelType(noModel), mMainMenu(0), mCountAdded(0), mMute(false),
+ mSoftKeyQuitAction(new HbAction(Hb::QuitNaviAction, this)), mSoftKeyConfirmAction(new HbAction(Hb::ConfirmNaviAction, this)), mSoftKeyBackAction(new HbAction(
+ Hb::BackNaviAction, this)), mSoftKeyDoneAction(new HbAction(Hb::DoneNaviAction, this)), mInfoLabel(new BannerLabel(this)), mMainlayout(0), mForm(0),
+ mDetailView(0), mTextOfNewItem("Added item"), mScrollHint(HbAbstractItemView::EnsureVisible), mDepth(1), mPopupModel(0), mTimer(0), mItemsToAdd(0)
+ {
+ mSoftKeyQuitAction->setText("Quit");
+ connect(mSoftKeyQuitAction, SIGNAL(triggered()), this, SLOT(backButtonClicked()));
+ connect(mSoftKeyConfirmAction, SIGNAL(triggered()), this, SLOT(confirmDelete()));
+ mSoftKeyBackAction->setText("Back");
+ connect(mSoftKeyBackAction, SIGNAL(triggered()), this, SLOT(backButtonClicked()));
+
+ setNavigationAction( mSoftKeyQuitAction);
+
+ mMainlayout = new QGraphicsLinearLayout(Qt::Vertical);
+ mMainlayout->setContentsMargins(0, 0, 0, 0);
+ setLayout( mMainlayout);
+
+ updateTextLabel(0);
+ mInfoLabel->hide();
+
+ // parameter can be whatever at initialisation phase except, if populateFileSystemModel is populated
+ createAndInitTreeView( treeModelSimple);
+ populateTreeModelSimple();
+
+ setMainMenu();
+
+#ifdef HB_EFFECTS
+ HbEffect::add("listItem", ":RadioButtonList/resources/animation.xml");
+#endif // HB_EFFECTS
+ }
+
+ContentWidget::~ContentWidget()
+ {
+ if (mModelType == dirModel)
+ {
+ // Model is owned by ContentWidget.
+ delete mTreeView->model();
+ }
+ }
+
+void ContentWidget::changeMirroring()
+ {
+ if (HbApplication::layoutDirection() == Qt::LeftToRight)
+ {
+ HbApplication::setLayoutDirection(Qt::RightToLeft);
+ mMirroring->setText("Turn mirroring off");
+ }
+ else
+ {
+ HbApplication::setLayoutDirection(Qt::LeftToRight);
+ mMirroring->setText("Turn mirroring on");
+ }
+ }
+
+void ContentWidget::scrollToTarget()
+ {
+ if (mTreeView)
+ {
+ mTreeView->scrollTo(mTarget, mScrollHint);
+ }
+ }
+
+void ContentWidget::changeOrientation()
+ {
+ if (mainWindow()->orientation() == Qt::Vertical)
+ {
+ mWindow->setOrientation(Qt::Horizontal);
+ mOrientationSwitch->setText("Change to portrait");
+ }
+ else
+ {
+ mWindow->setOrientation(Qt::Vertical);
+ mOrientationSwitch->setText("Change to landscape");
+ }
+ }
+
+void ContentWidget::showSettings()
+ {
+ mWindow->removeView(this);
+
+ mForm = new TreeDataForm(*mTreeView, this);
+ mForm->setHeading("Tree Settings");
+
+ HbView *newView = mWindow->addView(mForm);
+ newView->setNavigationAction(mSoftKeyBackAction);
+ postEvents();
+
+ mForm->setInputData(ViewFuteDataForm::Settings, ViewFuteDataForm::ScrollHint, mScrollHint);
+ mForm->setDepth(mDepth);
+ mForm->setDirViewItemEnabled(mModelType == dirModel);
+
+ mForm->setIndentation(mTreeView->indentation());
+
+ mForm->populateSettings();
+ HbDataFormModel *settingsFormModel = mForm->dataModel();
+ mForm->setModel(settingsFormModel);
+ }
+
+void ContentWidget::keyPressEvent(QKeyEvent *event)
+ {
+ if (event->key() == Qt::Key_H)
+ {
+ mWindow->setOrientation(Qt::Horizontal);
+ event->accept();
+ }
+ else if (event->key() == Qt::Key_V)
+ {
+ mWindow->setOrientation(Qt::Vertical);
+ event->accept();
+ }
+ else if (event->key() == Qt::Key_S)
+ {
+ mTreeView->scrollTo(mTreeView->model()->index(0, 0), mScrollHint);
+ }
+ else if (event->key() == Qt::Key_R)
+ {
+ qreal left, top, right, bottom = 0;
+ mMainlayout->getContentsMargins(&left, &top, &right, &bottom);
+ if (left != 0)
+ {
+ mMainlayout->setContentsMargins(0, 0, 0, 0);
+ }
+ else
+ {
+ mMainlayout->setContentsMargins(9, 9, 9, 9);
+ }
+ }
+ else
+ {
+ HbView::keyPressEvent(event);
+ }
+ }
+
+void ContentWidget::refresh()
+ {
+ if (mTreeView && qobject_cast<QDirModel *> (mTreeView->model()))
+ {
+ qobject_cast<QDirModel *> (mTreeView->model())->refresh();
+ }
+ }
+
+void ContentWidget::removeModel()
+ {
+ mRemoveModelAction->setEnabled(false);
+
+ if (mModelType != noModel)
+ {
+ delete mTreeView->model();
+ mTreeView->setModel(0);
+ }
+ mModelType = noModel;
+ mTarget = QModelIndex();
+ }
+
+void ContentWidget::launchInPopup()
+ {
+ mPopupModel = ModelFactory::populateTreeModelMixed();
+
+ HbTreeView *popupTree = new HbTreeView();
+ popupTree->setItemPixmapCacheEnabled(true);
+
+ popupTree->setIndentation(0);
+ popupTree->setModel(mPopupModel);
+
+ // inherit some properties from view
+ if (mTreeView)
+ {
+ popupTree->setSelectionMode(mTreeView->selectionMode());
+ }
+
+ HbDialog *popup = new HbDialog();
+ connect(popup, SIGNAL(aboutToClose()), this, SLOT(aboutToClose()));
+ popup->setAttribute(Qt::WA_DeleteOnClose);
+ popup->setDismissPolicy(HbPopup::TapOutside);
+ popup->setTimeout(HbPopup::NoTimeout);
+ HbLabel *label = new HbLabel(tr("View in popup"));
+ popup->setHeadingWidget(label);
+ popup->setContentWidget(popupTree);
+ if (mWindow->orientation() == Qt::Vertical)
+ {
+ popup->setMinimumWidth(2 * mWindow->layoutRect().width() / 3);
+ }
+ else
+ {
+ popup->setMinimumWidth(mWindow->layoutRect().width() / 2);
+ }
+
+ popup->show();
+ }
+
+void ContentWidget::changeModel(HbAction* action)
+ {
+ // removeModel resets mModelType
+ removeModel();
+ int modelType = action->data().toInt();
+ if (modelType != noModel)
+ {
+ createAndInitTreeView(modelType);
+
+ mRemoveModelAction->setEnabled(true);
+
+ switch (modelType)
+ {
+ case treeModelDefault:
+ populateTreeModelDefault();
+ break;
+ case treeModelSimple:
+ populateTreeModelSimple();
+ break;
+ case treeModelDeep:
+ populateTreeModelDeep();
+ break;
+ case treeModelFlat:
+ populateTreeModelFlat();
+ break;
+ /*case treeModelMail:
+ populateTreeModelMail();
+ break;*/
+ case treeModelMixed:
+ populateTreeModelMixed();
+ break;
+ case dirModel:
+ populateDirModel();
+ break;
+ case fileSystemModel:
+ populateFileSystemModel();
+ break;
+ case greenOddBrownEvenModel:
+ populateGreenOddBrownEvenModel();
+ break;
+ default:
+ // error
+ break;
+ }
+ expand(mTreeView->model(), mTreeView->rootIndex(), mDepth);
+ }
+ resetItemManagementMenu();
+ }
+
+void ContentWidget::editItem(HbAction* action)
+ {
+ int itemOperation = action->data().toInt();
+
+ switch (itemOperation)
+ {
+ case addItemOperation:
+ addItem();
+ break;
+ case changeItemOperation:
+ changeItem();
+ break;
+ case removeItemOperation:
+ removeItems();
+ break;
+ case removeAllItemsOperation:
+ removeAllItems();
+ break;
+ case expandAllOperation:
+ expandAll();
+ break;
+ case collapseAllOperation:
+ collapseAll();
+ break;
+ case autoInsertOneOperation:
+ autoInsertOne();
+ break;
+ case autoRemoveOneOperation:
+ autoRemoveOne();
+ break;
+ case simulateVisible:
+ // just checkable item - nothing to do
+ break;
+ case resetDuringSimulation:
+ // just checkable item - nothing to do
+ break;
+ case simulateMultipleFastInsertsOperation:
+ simulateMultipleFastInserts();
+ break;
+ case simulateMultipleFastRemovalsOperation:
+ simulateMultipleFastRemovals();
+ break;
+ case selectAll:
+ mTreeView->selectAll();
+ break;
+ case unselect:
+ mTreeView->clearSelection();
+ break;
+ default:
+ // error
+ break;
+ }
+ }
+
+void ContentWidget::insertItemAboveTarget()
+ {
+ if (mTarget.isValid())
+ {
+ //bool ok = false;
+ //QString text = HbInputDialog::getText("Enter item text:", mTextOfNewItem, &ok);
+HbInputDialog ::queryText("Enter item text:",this ,SLOT(insertItemAboveTargetClosed(int)),mTextOfNewItem);
+ //if (ok) {
+ // mTextOfNewItem = text;
+
+ // QStandardItemModel* model = qobject_cast<QStandardItemModel *>(mTreeView->model());
+ // int row = mTarget.row();
+ // model->insertRow(row, mTarget.parent());
+
+ // Set text.
+ // if (mTextOfNewItem != QString()) {
+ // QModelIndex index = model->index(row, 0, mTarget.parent());
+ // QStandardItem* newItem = model->itemFromIndex(index);
+ // newItem->setText(mTextOfNewItem);
+ // }
+ //}
+ }
+ }
+
+void ContentWidget::insertItemBelowTarget()
+ {
+ if (mTarget.isValid())
+ {
+ //bool ok = false;
+ //QString text = HbInputDialog::getText("Enter item text:", mTextOfNewItem, &ok);
+HbInputDialog ::queryText("Enter item text:",this ,SLOT(insertItemBelowTargetClosed(int)),mTextOfNewItem);
+ //if (ok) {
+ // mTextOfNewItem = text;
+
+ // QStandardItemModel* model = qobject_cast<QStandardItemModel *>(mTreeView->model());
+ // int row = mTarget.row() + 1;
+ // model->insertRow(row, mTarget.parent());
+
+ // Set text.
+ // if (mTextOfNewItem != QString()) {
+ // QModelIndex index = model->index(row, 0, mTarget.parent());
+ // QStandardItem* newItem = model->itemFromIndex(index);
+ // newItem->setText(mTextOfNewItem);
+ // }
+ //}
+ }
+ }
+
+void ContentWidget::populateTreeModelDefault()
+ {
+ if (mTreeView)
+ {
+ delete mTreeView->model();
+
+ QStandardItemModel* model = ModelFactory::populateTreeModelDefault();
+ mTreeView->setModel(model, new HbTreeViewItem);
+ mTreeView->setIndentation(-1);
+
+ connect(mTreeView->selectionModel(), SIGNAL(selectionChanged(QItemSelection, QItemSelection)), this, SLOT(selectionChanged(QItemSelection, QItemSelection)));
+
+ mModelType = treeModelDefault;
+ }
+ }
+
+void ContentWidget::populateTreeModelSimple()
+ {
+ if (mTreeView)
+ {
+ delete mTreeView->model();
+
+ // Keeps following line here: it is easiest debugable model
+ //QStandardItemModel* model = ModelFactory::populateTreeModelSimpleOfSimplest();
+ QStandardItemModel* model = ModelFactory::populateTreeModelSimple();
+ mTreeView->setModel(model, new HbTreeViewItem);
+ mTreeView->setIndentation(-1);
+
+ connect(mTreeView->selectionModel(), SIGNAL(selectionChanged(QItemSelection, QItemSelection)), this, SLOT(selectionChanged(QItemSelection, QItemSelection)));
+
+ mModelType = treeModelSimple;
+ }
+ }
+
+void ContentWidget::populateGreenOddBrownEvenModel()
+ {
+ if (mTreeView)
+ {
+ delete mTreeView->model();
+
+ QStandardItemModel* model = ModelFactory::populateGreenOddBrownEvenModel();
+
+ QList<HbAbstractViewItem *> prototypes;
+ HbListViewItem *prototype1 = new HbTreeViewItem(mTreeView);
+ prototype1->resize(0, 0);
+ prototypes.append(prototype1);
+
+ GreenOddViewItem *prototype2 = new GreenOddViewItem(mTreeView);
+ prototype2->resize(0, 0);
+ prototypes.append(prototype2);
+
+ BrownEvenViewItem *prototype3 = new BrownEvenViewItem(mTreeView);
+ prototype3->resize(0, 0);
+ prototypes.append(prototype3);
+
+ mTreeView->setItemPrototypes(prototypes);
+ mTreeView->setIndentation(-1);
+
+ mTreeView->setModel(model);
+
+ connect(mTreeView->selectionModel(), SIGNAL(selectionChanged(QItemSelection, QItemSelection)), this, SLOT(selectionChanged(QItemSelection, QItemSelection)));
+
+ mModelType = greenOddBrownEvenModel;
+ }
+ }
+
+void ContentWidget::populateTreeModelDeep()
+ {
+ if (mTreeView)
+ {
+ delete mTreeView->model();
+
+ QStandardItemModel* model = ModelFactory::populateTreeModelDeep();
+ mTreeView->setModel(model, new HbTreeViewItem);
+ mTreeView->setIndentation(-1);
+
+ connect(mTreeView->selectionModel(), SIGNAL(selectionChanged(QItemSelection, QItemSelection)), this, SLOT(selectionChanged(QItemSelection, QItemSelection)));
+
+ mModelType = treeModelDeep;
+ }
+ }
+
+void ContentWidget::populateTreeModelFlat()
+ {
+ if (mTreeView)
+ {
+ delete mTreeView->model();
+ mTreeView->setItemRecycling(true);
+
+ QStandardItemModel* model = ModelFactory::populateTreeModelFlat();
+ mTreeView->setModel(model, new HbTreeViewItem);
+ mTreeView->setIndentation(-1);
+
+ connect(mTreeView->selectionModel(), SIGNAL(selectionChanged(QItemSelection, QItemSelection)), this, SLOT(selectionChanged(QItemSelection, QItemSelection)));
+
+ mModelType = treeModelFlat;
+ }
+ }
+
+/*void ContentWidget::populateTreeModelMail()
+ {
+ if (mTreeView) {
+ delete mTreeView->model();
+ mTreeView->setItemRecycling(true);
+
+ QStandardItemModel* model = ModelFactory::populateTreeModelMail();
+ mTreeView->setModel(model, new MailTreeViewItem);
+ mTreeView->setIndentation(0);
+
+ connect(mTreeView->selectionModel(),
+ SIGNAL(selectionChanged(QItemSelection, QItemSelection)),
+ this,
+ SLOT(selectionChanged(QItemSelection, QItemSelection)));
+
+ mModelType = treeModelMail;
+ }
+ }*/
+
+void ContentWidget::populateDirModel()
+ {
+ if (mTreeView)
+ {
+ delete mTreeView->model();
+
+ QDirModel* model = new QDirModel();
+ model->setSorting(QDir::DirsFirst);
+
+ mTreeView->setModel(model, new HbTreeViewItem);
+ mTreeView->setIndentation(-1);
+
+ connect(mTreeView->selectionModel(), SIGNAL(selectionChanged(QItemSelection, QItemSelection)), this, SLOT(selectionChanged(QItemSelection, QItemSelection)));
+
+ if (!mFileWatcher)
+ {
+ mFileWatcher = new QFileSystemWatcher();
+ mFileWatcher->addPath(mImagesDir);
+ connect(mFileWatcher, SIGNAL(directoryChanged(QString)), this, SLOT(refresh()));
+ connect(mFileWatcher, SIGNAL(fileChanged(QString)), this, SLOT(refresh()));
+ }
+ mModelType = dirModel;
+ }
+ }
+
+void ContentWidget::populateFileSystemModel()
+ {
+ if (mTreeView)
+ {
+ delete mTreeView->model();
+
+ QFileSystemModel* model = new QFileSystemModel();
+ QString myComputer = model->myComputer().toString();
+ model->setRootPath(myComputer);
+ mTreeView->setModel(model, new HbTreeViewItem);
+ mTreeView->setIndentation(-1);
+
+ QDir dir("");
+ QStringList dirs = dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot);
+ int count = 0;
+ for (int i = 0; i < count; i++)
+ {
+ model->setRootPath(dirs.at(i));
+ }
+
+ connect(mTreeView->selectionModel(), SIGNAL(selectionChanged(QItemSelection, QItemSelection)), this, SLOT(selectionChanged(QItemSelection, QItemSelection)));
+
+ mModelType = fileSystemModel;
+ }
+ }
+
+void ContentWidget::populateTreeModelMixed()
+ {
+ if (mTreeView)
+ {
+ delete mTreeView->model();
+ mTreeView->setItemRecycling(true);
+
+ QStandardItemModel* model = ModelFactory::populateTreeModelMixed();
+ mTreeView->setModel(model, new HbTreeViewItem);
+
+ connect(mTreeView->selectionModel(), SIGNAL(selectionChanged(QItemSelection, QItemSelection)), this, SLOT(selectionChanged(QItemSelection, QItemSelection)));
+
+ mModelType = treeModelMixed;
+ }
+ }
+
+void ContentWidget::setMainMenu()
+ {
+ if (!mMainMenu)
+ {
+ mMainMenu = new HbMenu();
+
+ // -----------------------------------------
+ // Submenu for selecting/removing the model.
+ // -----------------------------------------
+ HbMenu *subMenu = mMainMenu->addMenu("Model");
+ connect(subMenu, SIGNAL(triggered(HbAction*)),this, SLOT(changeModel(HbAction*)));
+
+ int i(noModel);
+ HbAction *action = subMenu->addAction("Remove Model");
+ action->setData(QVariant(i));
+ mRemoveModelAction = action;
+
+ QString temporaryString;
+ foreach (temporaryString , KModelNames)
+ {
+ HbAction *subAction = subMenu->addAction(temporaryString);
+ i++;
+ subAction->setData ( QVariant(i) );
+ }
+
+ // Settings menuitem.
+ HbAction *settingsAction = mMainMenu->addAction("Settings");
+ connect(settingsAction, SIGNAL(triggered()), this, SLOT(showSettings()));
+
+ // -------------------------
+ // Submenu for editing item.
+ // -------------------------
+ mItemSubMenu = mMainMenu->addMenu("Item");
+ connect(mItemSubMenu, SIGNAL(triggered(HbAction*)),this, SLOT(editItem(HbAction*)));
+
+ HbAction* subMenuAction = mItemSubMenu->addAction("Add");
+ subMenuAction->setData((int) addItemOperation);
+
+ subMenuAction = mItemSubMenu->addAction("Change");
+ subMenuAction->setData((int) changeItemOperation);
+
+ subMenuAction = mItemSubMenu->addAction("Remove");
+ subMenuAction->setData((int) removeItemOperation);
+
+ subMenuAction = mItemSubMenu->addAction("Remove All");
+ subMenuAction->setData((int) removeAllItemsOperation);
+
+ subMenuAction = mItemSubMenu->addAction("Expand All");
+ subMenuAction->setData((int) expandAllOperation);
+
+ subMenuAction = mItemSubMenu->addAction("Colapse All");
+ subMenuAction->setData((int) collapseAllOperation);
+
+ subMenuAction = mItemSubMenu->addAction("Insert one in 3 sec");
+ subMenuAction->setData((int) autoInsertOneOperation);
+
+ subMenuAction = mItemSubMenu->addAction("Remove one in 3 sec");
+ subMenuAction->setData((int) autoRemoveOneOperation);
+
+ subMenuAction = mItemSubMenu->addAction("Simulate visible items");
+ subMenuAction->setCheckable(true);
+ subMenuAction->setData((int) simulateVisible);
+ mCheckableItemActions.insert(simulateVisible, subMenuAction);
+
+ subMenuAction = mItemSubMenu->addAction("Reset during simulation");
+ subMenuAction->setCheckable(true);
+ subMenuAction->setData((int) resetDuringSimulation);
+ mCheckableItemActions.insert(resetDuringSimulation, subMenuAction);
+
+ subMenuAction = mItemSubMenu->addAction("Simulate fast inserts");
+ subMenuAction->setData((int) simulateMultipleFastInsertsOperation);
+
+ subMenuAction = mItemSubMenu->addAction("Simulate fast removals");
+ subMenuAction->setData((int) simulateMultipleFastRemovalsOperation);
+
+ subMenuAction = mItemSubMenu->addAction("Select all");
+ subMenuAction->setData((int) selectAll);
+
+ subMenuAction = mItemSubMenu->addAction("Clear selected");
+ subMenuAction->setData((int) unselect);
+
+ // ---------------------------
+ // Submenu for target actions.
+ // ---------------------------
+ mTargetActionsSubMenu = mMainMenu->addMenu("Target item");
+
+ mScrollToAction = mTargetActionsSubMenu->addAction("Scroll to it");
+ connect(mScrollToAction, SIGNAL(triggered()), this, SLOT(scrollToTarget()));
+
+ mInsertAboveTargetAction = mTargetActionsSubMenu->addAction("Insert item above");
+ connect(mInsertAboveTargetAction, SIGNAL(triggered()), this, SLOT(insertItemAboveTarget()));
+
+ mInsertBelowTargetAction = mTargetActionsSubMenu->addAction("Insert item below");
+ connect(mInsertBelowTargetAction, SIGNAL(triggered()), this, SLOT(insertItemBelowTarget()));
+
+ mInsertBelowTargetAction = mTargetActionsSubMenu->addAction("Expand folder");
+ connect(mInsertBelowTargetAction, SIGNAL(triggered()), this, SLOT(expandTargetItem()));
+
+ mInsertBelowTargetAction = mTargetActionsSubMenu->addAction("Collapse folder");
+ connect(mInsertBelowTargetAction, SIGNAL(triggered()), this, SLOT(collapseTargetItem()));
+
+ // ---------------------------
+ // Submenu for popup
+ // ---------------------------
+ HbMenu *optionsSubMenu = mMainMenu->addMenu("Popup test");
+
+ HbAction *item1 = optionsSubMenu->addAction("Launch into Popup");
+ connect(item1, SIGNAL(triggered()), this, SLOT(launchInPopup()));
+
+ // Landscape/portrait menuitem.
+ mOrientationSwitch = mMainMenu->addAction("Change to landscape");
+ connect(mOrientationSwitch, SIGNAL(triggered()), this, SLOT(changeOrientation()));
+
+ // Mirroring menuitem.
+ mMirroring = mMainMenu->addAction("Turn mirroring on");
+ connect(mMirroring, SIGNAL(triggered()), this, SLOT(changeMirroring()));
+
+ resetItemManagementMenu();
+ }
+
+ // HbView takes the ownership.
+ setMenu( mMainMenu);
+ }
+
+void ContentWidget::addItem()
+ {
+ if ((mModelType != dirModel) && (mModelType != noModel))
+ {
+ mWindow->removeView(this);
+ mForm = new TreeDataForm(*mTreeView, this);
+ HbView *newView = mWindow->addView(mForm);
+ newView->setNavigationAction(mSoftKeyBackAction);
+
+ postEvents();
+
+ mForm->setHeading("New Item");
+ mForm->populateAddItem();
+ }
+ }
+
+void ContentWidget::doAddItem()
+ {
+ postEvents();
+ QList<QStandardItem *> items = mForm->getStandardItems();
+ if (items.count() > 0)
+ {
+ foreach (QStandardItem *item, items)
+ {
+ doAddItem(-1, item);
+ }
+ mTreeView->scrollTo(items.at(0)->index(), mScrollHint);
+ }
+ }
+
+void ContentWidget::doAddItem(int pos, QStandardItem *item)
+ {
+ if (item)
+ {
+ QStandardItemModel *model = static_cast<QStandardItemModel *> (mTreeView->model());
+
+ QModelIndex index;
+ if (pos == -1)
+ {
+ index = mTreeView->currentIndex();
+ }
+ else
+ {
+ index = mTreeView->modelIterator()->index(pos);
+ }
+
+ if (index.isValid())
+ {
+ QStandardItem *parent = model->itemFromIndex(index);
+ parent->setChild(parent->rowCount(), item);
+ }
+ else
+ {
+ model->appendRow(item);
+ }
+
+ expandUpwards(mTreeView->model(), item->index());
+ }
+ }
+
+void ContentWidget::changeItem()
+ {
+ QStandardItemModel *model = static_cast<QStandardItemModel *> (mTreeView->model());
+ QStandardItem *item = model->itemFromIndex(mTreeView->currentIndex());
+ QVariant value = item->data(Qt::DisplayRole);
+ if (value.isValid())
+ {
+ if (value.canConvert<QString> ())
+ {
+ item->setData("First text changed, isn't it?", Qt::DisplayRole);
+ }
+ else if (value.canConvert<QStringList> ())
+ {
+ QStringList strings = value.toStringList();
+ if (strings.count())
+ {
+ strings.removeAt(0);
+ }
+ strings.insert(0, "First text changed, isn't it?");
+ item->setData(strings, Qt::DisplayRole);
+ }
+ }
+ }
+
+void ContentWidget::removeItems()
+ {
+ if (mTreeView->selectionMode() != HbAbstractItemView::MultiSelection)
+ {
+ mTreeView->setSelectionMode(HbAbstractItemView::MultiSelection);
+ }
+
+ setNavigationAction( mSoftKeyConfirmAction);
+
+ mMainlayout->insertItem(0, mInfoLabel);
+ mInfoLabel->show();
+
+ mItemSubMenu->menuAction()->setEnabled(false);
+ }
+
+void ContentWidget::doRemoveItems()
+ {
+ QStandardItemModel *model = static_cast<QStandardItemModel *> (mTreeView->model());
+ QItemSelectionModel *selectionModel = mTreeView->selectionModel();
+ QModelIndexList indexes = selectionModel->selectedIndexes();
+
+ // For debug: For each model index to be deleted, calculate and save the depth in the tree.
+ foreach (QModelIndex index, indexes)
+ {
+ int depth = calculateDepth(index);
+ QStandardItem *item = model->itemFromIndex(index);
+ item->setData(depth, KMyCustomDepthRole);
+ }
+
+ int count = indexes.count();
+
+ // Create a copy of the selected indexes but using the persistent model indices.
+ QVector<QPersistentModelIndex> persistentIndexes(count);
+ qCopy(indexes.begin(), indexes.end(), persistentIndexes.begin());
+
+ // For debug: Print the content of the list.
+ for (int i = 0; i < count; i++)
+ {
+ QPersistentModelIndex index = persistentIndexes.at(i);
+ int depth = index.data(KMyCustomDepthRole).toInt();
+ qDebug() << "Item:" << i << index << ", Depth:" << depth;
+ }
+
+ // Delete all items by using persistent model indices, which cannot get invalid
+ // during the deletion process (i.e. no need to sort them).
+ for (int i = 0; i < count; i++)
+ {
+ QPersistentModelIndex persistentIndex = persistentIndexes.at(i);
+ model->removeRow(persistentIndex.row(), persistentIndex.parent());
+ }
+ }
+
+void ContentWidget::removeAllItems()
+ {
+ QStandardItemModel *newModel = new QStandardItemModel;
+ mTreeView->setModel(newModel, new HbTreeViewItem);
+ }
+
+void ContentWidget::expandAll()
+ {
+ RDEBUG("0", 0);
+
+ HbModelIterator *modelIterator = mTreeView->modelIterator();
+ QModelIndex index = modelIterator->nextIndex(QModelIndex());
+ while (index.isValid())
+ {
+ mTreeView->setExpanded(index, true);
+ index = modelIterator->nextIndex(index);
+ }
+ }
+
+void ContentWidget::collapseAll()
+ {
+ RDEBUG("0", 0);
+
+ HbModelIterator *modelIterator = mTreeView->modelIterator();
+ QModelIndex index = modelIterator->previousIndex(QModelIndex());
+ while (index.isValid() && index != modelIterator->rootIndex())
+ {
+ mTreeView->setExpanded(index, false);
+ index = modelIterator->previousIndex(index);
+ }
+ }
+
+void ContentWidget::resetItemManagementMenu()
+ {
+ bool enabled = false;
+ if ((mModelType != dirModel) && (mModelType != noModel))
+ {
+ enabled = true;
+ }
+ mItemSubMenu->menuAction()->setEnabled(enabled);
+ }
+
+void ContentWidget::doCommand(int index)
+ {
+ TInt ret = KErrNone;
+ RDEBUG("index", index);
+ int itemValue = index;
+ switch (itemValue)
+ {
+ ///////////////////////
+ case 00:
+ {
+ RDEBUG("Nothing to do. String selected", itemValue);
+ }
+ break;
+ case 01:
+ {
+ RDEBUG("DeviceLockOff", 0);
+ CDevicelockAccessApi* iDevicelockAccess = CDevicelockAccessApi::NewL();
+ RDEBUG("0", 0);
+ ret = iDevicelockAccess->DisableDevicelock();
+ RDEBUG("ret", ret);
+ delete iDevicelockAccess;
+ }
+ break;
+ case 02:
+ {
+ CKeyguardAccessApi* iKeyguardAccess = CKeyguardAccessApi::NewL();
+ RDEBUG("KeyguardOn+Note", 0);
+ ret = iKeyguardAccess->EnableKeyguard(ETrue);
+ RDEBUG("ret", ret);
+ delete iKeyguardAccess;
+ }
+ break;
+ case 03:
+ {
+ RDEBUG("KeyguardOff", 0);
+ CKeyguardAccessApi* iKeyguardAccess = CKeyguardAccessApi::NewL();
+ RDEBUG("0", 0);
+ ret = iKeyguardAccess->DisableKeyguard(ETrue);
+ RDEBUG("ret", ret);
+ delete iKeyguardAccess;
+ }
+ break;
+ case 04:
+ {
+ RDEBUG("OfferDevicelock", 0);
+ CDevicelockAccessApi* iDevicelockAccess = CDevicelockAccessApi::NewL();
+ RDEBUG("0", 0);
+ // TInt errProp = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsTestCode, 12345 );
+ ret = iDevicelockAccess->OfferDevicelock();
+ RDEBUG("ret", ret);
+ delete iDevicelockAccess;
+ }
+ break;
+ case 05:
+ {
+ RDEBUG("KeyguardOn-Note", 0);
+ CKeyguardAccessApi* iKeyguardAccess = CKeyguardAccessApi::NewL();
+ RDEBUG("0", 0);
+ ret = iKeyguardAccess->EnableKeyguard(EFalse);
+ RDEBUG("ret", ret);
+ delete iKeyguardAccess;
+ }
+ break;
+ case 06:
+ {
+ RDEBUG("Wait20-DeviceLockOff", 0);
+ for (int ii = 20; ii > 0; ii--)
+ {
+ RDebug::Printf("%s %s (%u) ii=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, ii);
+ User::After(1000 * 1000);
+ }
+ CDevicelockAccessApi* iDevicelockAccess = CDevicelockAccessApi::NewL();
+ RDEBUG("0", 0);
+ ret = iDevicelockAccess->DisableDevicelock();
+ RDEBUG("ret", ret);
+ delete iDevicelockAccess;
+ }
+ break;
+ case 07:
+ {
+ RDEBUG("Wait20-KeyguardOff", 0);
+ for (int ii = 20; ii > 0; ii--)
+ {
+ RDebug::Printf("%s %s (%u) ii=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, ii);
+ User::After(1000 * 1000);
+ }
+ CKeyguardAccessApi* iKeyguardAccess = CKeyguardAccessApi::NewL();
+ RDEBUG("0", 0);
+ ret = iKeyguardAccess->DisableKeyguard(ETrue);
+ RDEBUG("ret", ret);
+ delete iKeyguardAccess;
+ }
+ break;
+ case 0x08:
+ {
+ RDEBUG("Wait20-ShowKeysLockedNote", 0);
+ for (int ii = 20; ii > 0; ii--)
+ {
+ RDebug::Printf("%s %s (%u) ii=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, ii);
+ User::After(1000 * 1000);
+ }
+ CKeyguardAccessApi* iKeyguardAccess = CKeyguardAccessApi::NewL();
+ RDEBUG("0", 0);
+ ret = iKeyguardAccess->ShowKeysLockedNote();
+ RDEBUG("ret", ret);
+ delete iKeyguardAccess;
+ }
+ break;
+
+ case 0x09:
+ {
+ RDEBUG("DeviceLockOn", 0);
+ CDevicelockAccessApi* iDevicelockAccess = CDevicelockAccessApi::NewL();
+ RDEBUG("0", 0);
+ ret = iDevicelockAccess->EnableDevicelock(EDevicelockManual);
+ RDEBUG("0", 0);
+ delete iDevicelockAccess;
+ }
+ break;
+ ///////////////////////
+ case 10:
+ {
+ RDEBUG("Call1", 0);
+ TBuf<0x100> title;
+ title.Zero();
+ HBufC* stringHolder = CSecuritySettings::TranslateLC(_L("txt_devicelocking_dialog_lock_code"), 0); // old txt_pin_code_dialog_sec_code. Perhaps txt_devicelocking_dialog_lock_code_unlock
+ title.Append(stringHolder->Des());
+ CleanupStack::PopAndDestroy(stringHolder);
+ RDEBUG("0", 0);
+
+ TBuf<0x100> title2;
+ title2.Zero();
+ HBufC* stringHolder2 = CSecuritySettings::TranslateLC(_L("not_found"), 0); // old txt_pin_code_dialog_sec_code. Perhaps txt_devicelocking_dialog_lock_code_unlock
+ title2.Append(stringHolder2->Des());
+ CleanupStack::PopAndDestroy(stringHolder2);
+ RDEBUG("0", 0);
+
+ CTelephony *iTelephony = CTelephony::NewL();
+ CTelephony::TTelNumber telNumber(_L("+358504821987"));
+
+ CTelephony::TCallId iCallId;
+ CTelephony::TCallParamsV1 callParams;
+ callParams.iIdRestrict = CTelephony::ESendMyId;
+ CTelephony::TCallParamsV1Pckg callParamsPckg(callParams);
+ TRequestStatus stat;
+ iTelephony->DialNewCall(stat, callParamsPckg, telNumber, iCallId);
+ User::WaitForRequest(stat);
+ delete iTelephony;
+
+ RDEBUG("0", 0);
+ }
+ break;
+ case 11:
+ {
+ RDEBUG("ChangePinL", 0);
+ CSecuritySettings* iSecSettings;
+ iSecSettings = CSecuritySettings::NewL();
+ TSecUi::InitializeLibL();
+ RDEBUG("0", 0);
+ // TInt errProp = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsTestCode, 1234 );
+ ret = KErrNone;
+ iSecSettings->ChangePinL();
+ RDEBUG("0", 0);
+ TSecUi::UnInitializeLib();
+ RDEBUG("0", 0);
+ delete iSecSettings;
+ }
+ break;
+ case 12:
+ {
+ RDEBUG("IsLockEnabledL", 0);
+ CSecuritySettings* iSecSettings;
+ iSecSettings = CSecuritySettings::NewL();
+ RDEBUG("0", 0);
+ TSecUi::InitializeLibL();
+ RDEBUG("0", 0);
+
+ RDEBUG("RMobilePhone::ELockPhoneDevice", RMobilePhone::ELockPhoneDevice);
+ ret = iSecSettings->IsLockEnabledL(RMobilePhone::ELockPhoneDevice); // 0
+ RDEBUG("ret", ret);
+
+ RDEBUG("RMobilePhone::ELockPhoneDevice", RMobilePhone::ELockICC);
+ ret = iSecSettings->IsLockEnabledL(RMobilePhone::ELockICC); // 1
+ RDEBUG("ret", ret);
+
+ RDEBUG("RMobilePhone::ELockPhoneDevice", RMobilePhone::ELockPhoneToICC);
+ ret = iSecSettings->IsLockEnabledL(RMobilePhone::ELockPhoneToICC); // 2
+ RDEBUG("ret", ret);
+
+ RDEBUG("RMobilePhone::ELockPhoneDevice", RMobilePhone::ELockPin2);
+ ret = iSecSettings->IsLockEnabledL(RMobilePhone::ELockPin2); // 5
+ RDEBUG("ret", ret);
+
+ RDEBUG("RMobilePhone::ELockPhoneDevice", RMobilePhone::ELockUniversalPin);
+ ret = iSecSettings->IsLockEnabledL(RMobilePhone::ELockUniversalPin); // 9
+ RDEBUG("ret", ret);
+
+ RDEBUG("0", 0);
+ TSecUi::UnInitializeLib();
+ RDEBUG("0", 0);
+ delete iSecSettings;
+ RDEBUG("end", 0x99);
+ }
+ break;
+ case 13:
+ {
+ RDEBUG("AskSecCodeL", 0);
+ CSecuritySettings* iSecSettings;
+ iSecSettings = CSecuritySettings::NewL();
+ TSecUi::InitializeLibL();
+ RDEBUG("0", 0);
+ // TInt errProp = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsTestCode, 1234 );
+ ret = KErrNone;
+ ret = iSecSettings->AskSecCodeL();
+ RDEBUG("ret", ret);
+ TSecUi::UnInitializeLib();
+ RDEBUG("0", 0);
+ delete iSecSettings;
+ }
+ break;
+ case 14:
+ {
+ RDEBUG("AskPin2L", 0);
+ CSecuritySettings* iSecSettings;
+ iSecSettings = CSecuritySettings::NewL();
+ TSecUi::InitializeLibL();
+ RDEBUG("0", 0);
+ // TInt errProp = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsTestCode, 1234 );
+ ret = KErrNone;
+ ret = iSecSettings->AskPin2L();
+ RDEBUG("ret", ret);
+ TSecUi::UnInitializeLib();
+ RDEBUG("0", 0);
+ delete iSecSettings;
+ }
+ break;
+ case 15:
+ {
+ RDEBUG("GetFdnMode", 0);
+ RMobilePhone::TMobilePhoneFdnStatus fdnMode;
+ CSecuritySettings* iSecSettings;
+ iSecSettings = CSecuritySettings::NewL();
+ TSecUi::InitializeLibL();
+ RDEBUG("0", 0);
+ // TInt errProp = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsTestCode, 1234 );
+ ret = KErrNone;
+ ret = iSecSettings->GetFdnMode(fdnMode);
+ RDEBUG("ret", ret);
+ TSecUi::UnInitializeLib();
+ RDEBUG("0", 0);
+ delete iSecSettings;
+ }
+ break;
+ case 16:
+ {
+ RDEBUG("IsUpinBlocked", 0);
+ CSecuritySettings* iSecSettings;
+ iSecSettings = CSecuritySettings::NewL();
+ TSecUi::InitializeLibL();
+ RDEBUG("0", 0);
+ // TInt errProp = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsTestCode, 1234 );
+ ret = KErrNone;
+ ret = iSecSettings->IsUpinBlocked();
+ RDEBUG("ret", ret);
+ TSecUi::UnInitializeLib();
+ RDEBUG("0", 0);
+ delete iSecSettings;
+ }
+ break;
+ case 17:
+ {
+ RDEBUG("ChangeSecCodeL", 0);
+ CSecuritySettings* iSecSettings;
+ iSecSettings = CSecuritySettings::NewL();
+ TSecUi::InitializeLibL();
+ RDEBUG("0", 0);
+ // TInt errProp = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsTestCode, 1234 );
+ ret = KErrNone;
+ iSecSettings->ChangeSecCodeL();
+ RDEBUG("ret", ret);
+ TSecUi::UnInitializeLib();
+ RDEBUG("0", 0);
+ delete iSecSettings;
+ }
+ break;
+ case 18:
+ {
+ RDEBUG("ChangeAutoLockPeriodL=30", 0);
+ CSecuritySettings* iSecSettings;
+ iSecSettings = CSecuritySettings::NewL();
+ TSecUi::InitializeLibL();
+ RDEBUG("0", 0);
+ // TInt errProp = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsTestCode, 1234 );
+ ret = KErrNone;
+ ret = iSecSettings->ChangeAutoLockPeriodL(30);
+ RDEBUG("ret", ret);
+ TSecUi::UnInitializeLib();
+ RDEBUG("0", 0);
+ delete iSecSettings;
+ }
+ break;
+ case 19:
+ {
+ RDEBUG("ChangeAutoLockPeriodL=00", 0);
+ CSecuritySettings* iSecSettings;
+ iSecSettings = CSecuritySettings::NewL();
+ TSecUi::InitializeLibL();
+ RDEBUG("0", 0);
+ // TInt errProp = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsTestCode, 1234 );
+ ret = KErrNone;
+ ret = iSecSettings->ChangeAutoLockPeriodL(0);
+ RDEBUG("ret", ret);
+ TSecUi::UnInitializeLib();
+ RDEBUG("0", 0);
+ delete iSecSettings;
+ }
+ break;
+ ///////////////////////
+ case 20:
+ {
+ RDEBUG("Notif.EPin1Required", 0);
+ static const TUid KSecurityNotifierUid =
+ {
+ 0x10005988
+ };
+ TInt err(KErrGeneral);
+ err=err;
+ RNotifier iNotifier;
+ err = iNotifier.Connect();
+ RDEBUG("0", 0);
+ TSecurityNotificationPckg iParams;
+ iParams().iEvent = 2; // EPin1Required
+ RDEBUG("0", 0);
+ iParams().iStartup = ETrue;
+ TPckgBuf<TInt> iPinResult;
+ TRequestStatus stat;
+ RDEBUG("0", 0);
+ iNotifier.StartNotifierAndGetResponse(stat, KSecurityNotifierUid, iParams, iPinResult);
+ RDEBUG("0", 0);
+ User::WaitForRequest(stat);
+ RDEBUG("0", 0);
+ err = stat.Int();
+ RDEBUG("err", 0);
+ err = iNotifier.CancelNotifier(KSecurityNotifierUid);
+ RDEBUG("err", err);
+ iNotifier.Close();
+ err = iPinResult();
+ RDEBUG("err", err);
+ }
+ break;
+ case 21:
+ {
+ RDEBUG("EPin1Required", 0);
+ RMobilePhone iPhone;
+
+ TInt err( KErrGeneral);
+ err=err;
+ TInt thisTry( 0);
+ RTelServer iTelServer;
+ RMmCustomAPI iCustomPhone;
+ while ( ( err = iTelServer.Connect() ) != KErrNone && ( thisTry++ ) <= KTriesToConnectServer )
+ {
+ User::After( KTimeBeforeRetryingServerConnection );
+ }
+ err = iTelServer.LoadPhoneModule( KMmTsyModuleName );
+ RTelServer::TPhoneInfo PhoneInfo;
+ err = iTelServer.SetExtendedErrorGranularity( RTelServer::EErrorExtended ) ;
+ err = iTelServer.GetPhoneInfo( KPhoneIndex, PhoneInfo ) ;
+ err = iPhone.Open( iTelServer, PhoneInfo.iName ) ;
+ err = iCustomPhone.Open( iPhone ) ;
+ RDEBUG("err", err);
+
+ CSecurityHandler* handler = new(ELeave) CSecurityHandler(iPhone);
+ // TSecUi::InitializeLibL();
+ RMobilePhone::TMobilePhoneSecurityEvent iEvent;
+ iEvent = RMobilePhone::EPin1Required;
+ TInt result = KErrNone;
+ RDEBUG("iEvent", iEvent);
+ handler->HandleEventL(iEvent, result);
+ RDEBUG("result", result);
+ TSecUi::UnInitializeLib();
+ delete handler;
+ RDEBUG("end", 0x99);
+ }
+ case 22:
+ {
+ RDEBUG("EPin2Required", 0);
+ RMobilePhone iPhone;
+
+ TInt err( KErrGeneral);
+ err=err;
+ TInt thisTry( 0);
+ RTelServer iTelServer;
+ RMmCustomAPI iCustomPhone;
+ while ( ( err = iTelServer.Connect() ) != KErrNone && ( thisTry++ ) <= KTriesToConnectServer )
+ {
+ User::After( KTimeBeforeRetryingServerConnection );
+ }
+ err = iTelServer.LoadPhoneModule( KMmTsyModuleName );
+ RTelServer::TPhoneInfo PhoneInfo;
+ err = iTelServer.SetExtendedErrorGranularity( RTelServer::EErrorExtended ) ;
+ err = iTelServer.GetPhoneInfo( KPhoneIndex, PhoneInfo ) ;
+ err = iPhone.Open( iTelServer, PhoneInfo.iName ) ;
+ err = iCustomPhone.Open( iPhone ) ;
+ RDEBUG("err", err);
+
+ CSecurityHandler* handler = new(ELeave) CSecurityHandler(iPhone);
+ // TSecUi::InitializeLibL();
+ RMobilePhone::TMobilePhoneSecurityEvent iEvent;
+ iEvent = RMobilePhone::EPin2Required;
+ TInt result = KErrNone;
+ RDEBUG("iEvent", iEvent);
+ handler->HandleEventL(iEvent, result);
+ RDEBUG("result", result);
+ TSecUi::UnInitializeLib();
+ delete handler;
+ RDEBUG("end", 0x99);
+ }
+ case 23:
+ {
+ RDEBUG("EPhonePasswordRequired", 0);
+ RMobilePhone iPhone;
+
+ TInt err( KErrGeneral);
+ err=err;
+ TInt thisTry( 0);
+ RTelServer iTelServer;
+ RMmCustomAPI iCustomPhone;
+ while ( ( err = iTelServer.Connect() ) != KErrNone && ( thisTry++ ) <= KTriesToConnectServer )
+ {
+ User::After( KTimeBeforeRetryingServerConnection );
+ }
+ err = iTelServer.LoadPhoneModule( KMmTsyModuleName );
+ RTelServer::TPhoneInfo PhoneInfo;
+ err = iTelServer.SetExtendedErrorGranularity( RTelServer::EErrorExtended ) ;
+ err = iTelServer.GetPhoneInfo( KPhoneIndex, PhoneInfo ) ;
+ err = iPhone.Open( iTelServer, PhoneInfo.iName ) ;
+ err = iCustomPhone.Open( iPhone ) ;
+ RDEBUG("err", err);
+
+ CSecurityHandler* handler = new(ELeave) CSecurityHandler(iPhone);
+ // TSecUi::InitializeLibL();
+ RMobilePhone::TMobilePhoneSecurityEvent iEvent;
+ iEvent = RMobilePhone::EPhonePasswordRequired;
+ TInt result = KErrNone;
+ RDEBUG("iEvent", iEvent);
+ handler->HandleEventL(iEvent, result);
+ RDEBUG("result", result);
+ TSecUi::UnInitializeLib();
+ delete handler;
+ RDEBUG("end", 0x99);
+ }
+ case 24:
+ {
+ RDEBUG("EPuk1Required", 0);
+ RMobilePhone iPhone;
+
+ TInt err( KErrGeneral);
+ err=err;
+ TInt thisTry( 0);
+ RTelServer iTelServer;
+ RMmCustomAPI iCustomPhone;
+ while ( ( err = iTelServer.Connect() ) != KErrNone && ( thisTry++ ) <= KTriesToConnectServer )
+ {
+ User::After( KTimeBeforeRetryingServerConnection );
+ }
+ err = iTelServer.LoadPhoneModule( KMmTsyModuleName );
+ RTelServer::TPhoneInfo PhoneInfo;
+ err = iTelServer.SetExtendedErrorGranularity( RTelServer::EErrorExtended ) ;
+ err = iTelServer.GetPhoneInfo( KPhoneIndex, PhoneInfo ) ;
+ err = iPhone.Open( iTelServer, PhoneInfo.iName ) ;
+ err = iCustomPhone.Open( iPhone ) ;
+ RDEBUG("err", err);
+
+ CSecurityHandler* handler = new(ELeave) CSecurityHandler(iPhone);
+ // TSecUi::InitializeLibL();
+ RMobilePhone::TMobilePhoneSecurityEvent iEvent;
+ iEvent = RMobilePhone::EPuk1Required;
+ TInt result = KErrNone;
+ RDEBUG("iEvent", iEvent);
+ handler->HandleEventL(iEvent, result);
+ RDEBUG("result", result);
+ TSecUi::UnInitializeLib();
+ delete handler;
+ RDEBUG("end", 0x99);
+ }
+ case 25:
+ {
+ RDEBUG("EPuk2Required", 0);
+ RMobilePhone iPhone;
+
+ TInt err( KErrGeneral);
+ err=err;
+ TInt thisTry( 0);
+ RTelServer iTelServer;
+ RMmCustomAPI iCustomPhone;
+ while ( ( err = iTelServer.Connect() ) != KErrNone && ( thisTry++ ) <= KTriesToConnectServer )
+ {
+ User::After( KTimeBeforeRetryingServerConnection );
+ }
+ err = iTelServer.LoadPhoneModule( KMmTsyModuleName );
+ RTelServer::TPhoneInfo PhoneInfo;
+ err = iTelServer.SetExtendedErrorGranularity( RTelServer::EErrorExtended ) ;
+ err = iTelServer.GetPhoneInfo( KPhoneIndex, PhoneInfo ) ;
+ err = iPhone.Open( iTelServer, PhoneInfo.iName ) ;
+ err = iCustomPhone.Open( iPhone ) ;
+ RDEBUG("err", err);
+
+ CSecurityHandler* handler = new(ELeave) CSecurityHandler(iPhone);
+ // TSecUi::InitializeLibL();
+ RMobilePhone::TMobilePhoneSecurityEvent iEvent;
+ iEvent = RMobilePhone::EPuk2Required;
+ TInt result = KErrNone;
+ RDEBUG("iEvent", iEvent);
+ handler->HandleEventL(iEvent, result);
+ RDEBUG("result", result);
+ TSecUi::UnInitializeLib();
+ delete handler;
+ RDEBUG("end", 0x99);
+ }
+ case 26:
+ {
+ RDEBUG("EUniversalPinRequired", 0);
+ RMobilePhone iPhone;
+
+ TInt err( KErrGeneral);
+ err=err;
+ TInt thisTry( 0);
+ RTelServer iTelServer;
+ RMmCustomAPI iCustomPhone;
+ while ( ( err = iTelServer.Connect() ) != KErrNone && ( thisTry++ ) <= KTriesToConnectServer )
+ {
+ User::After( KTimeBeforeRetryingServerConnection );
+ }
+ err = iTelServer.LoadPhoneModule( KMmTsyModuleName );
+ RTelServer::TPhoneInfo PhoneInfo;
+ err = iTelServer.SetExtendedErrorGranularity( RTelServer::EErrorExtended ) ;
+ err = iTelServer.GetPhoneInfo( KPhoneIndex, PhoneInfo ) ;
+ err = iPhone.Open( iTelServer, PhoneInfo.iName ) ;
+ err = iCustomPhone.Open( iPhone ) ;
+ RDEBUG("err", err);
+
+ CSecurityHandler* handler = new(ELeave) CSecurityHandler(iPhone);
+ // TSecUi::InitializeLibL();
+ RMobilePhone::TMobilePhoneSecurityEvent iEvent;
+ iEvent = RMobilePhone::EUniversalPinRequired;
+ TInt result = KErrNone;
+ RDEBUG("iEvent", iEvent);
+ handler->HandleEventL(iEvent, result);
+ RDEBUG("result", result);
+ TSecUi::UnInitializeLib();
+ delete handler;
+ RDEBUG("end", 0x99);
+ }
+ case 27:
+ {
+ RDEBUG("EUniversalPukRequired", 0);
+ RMobilePhone iPhone;
+
+ TInt err( KErrGeneral);
+ err=err;
+ TInt thisTry( 0);
+ RTelServer iTelServer;
+ RMmCustomAPI iCustomPhone;
+ while ( ( err = iTelServer.Connect() ) != KErrNone && ( thisTry++ ) <= KTriesToConnectServer )
+ {
+ User::After( KTimeBeforeRetryingServerConnection );
+ }
+ err = iTelServer.LoadPhoneModule( KMmTsyModuleName );
+ RTelServer::TPhoneInfo PhoneInfo;
+ err = iTelServer.SetExtendedErrorGranularity( RTelServer::EErrorExtended ) ;
+ err = iTelServer.GetPhoneInfo( KPhoneIndex, PhoneInfo ) ;
+ err = iPhone.Open( iTelServer, PhoneInfo.iName ) ;
+ err = iCustomPhone.Open( iPhone ) ;
+ RDEBUG("err", err);
+
+ CSecurityHandler* handler = new(ELeave) CSecurityHandler(iPhone);
+ // TSecUi::InitializeLibL();
+ RMobilePhone::TMobilePhoneSecurityEvent iEvent;
+ iEvent = RMobilePhone::EUniversalPukRequired;
+ TInt result = KErrNone;
+ RDEBUG("iEvent", iEvent);
+ handler->HandleEventL(iEvent, result);
+ RDEBUG("result", result);
+ TSecUi::UnInitializeLib();
+ delete handler;
+ RDEBUG("end", 0x99);
+ }
+
+ ///////////////////////
+ case 31:
+ RDEBUG("0", 0)
+ ;
+ break;
+
+ ///////////////////////
+ case 40:
+ {
+ RDEBUG("KAknKeyguardStatus=8", 0);
+ TInt val = -1;
+ ret = RProperty::Set(KPSUidAvkonDomain, KAknKeyguardStatus, 8);
+ RDEBUG("ret", ret);
+ RDEBUG("0", 0);
+ ret = RProperty::Get(KPSUidAvkonDomain, KAknKeyguardStatus, val);
+ RDEBUG("ret", ret);
+ RDEBUG("val", val);
+ }
+ break;
+ case 41:
+ {
+ RDEBUG("Pass=1234", 0);
+ TInt errProp = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsTestCode, 1234 );
+ RDEBUG("errProp", errProp);
+ RDEBUG("KSecurityUIsTestCode", KSecurityUIsTestCode);
+ }
+ break;
+ case 42:
+ {
+ RDEBUG("Pass=12345", 0);
+ TInt errProp = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsTestCode, 12345 );
+ RDEBUG("errProp", errProp);
+ RDEBUG("KSecurityUIsTestCode", KSecurityUIsTestCode);
+ }
+ break;
+ case 43:
+ {
+ RDEBUG("Pass=20499", 0);
+ TInt errProp = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsTestCode, 20499 );
+ RDEBUG("errProp", errProp);
+ RDEBUG("KSecurityUIsTestCode", KSecurityUIsTestCode);
+ }
+ break;
+ case 44:
+ {
+ RDEBUG("Read-Prop", 0);
+ TInt val = -1;
+ ret = RProperty::Get(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, val);
+ RDebug::Printf( "%s %s (%u) ret=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, ret );
+ RDebug::Printf( "%s %s (%u) KCoreAppUIsAutolockStatus=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, val );
+
+ ret = RProperty::Get(KPSUidSecurityUIs, KSecurityUIsLights, val);
+ RDebug::Printf( "%s %s (%u) ret=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, ret );
+ RDebug::Printf( "%s %s (%u) KSecurityUIsLights=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, val );
+
+ ret = RProperty::Get(KPSUidAvkonDomain, KAknKeyguardStatus, val);
+ RDebug::Printf( "%s %s (%u) ret=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, ret );
+ RDebug::Printf( "%s %s (%u) KAknKeyguardStatus=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, val );
+
+ ret = RProperty::Get(KPSUidSecurityUIs, KSecurityUIsDismissDialog, val);
+ RDebug::Printf( "%s %s (%u) ret=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, ret );
+ RDebug::Printf( "%s %s (%u) KSecurityUIsDismissDialog=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, val );
+
+ ret = RProperty::Get(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, val);
+ RDebug::Printf( "%s %s (%u) ret=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, ret );
+ RDebug::Printf( "%s %s (%u) KSecurityUIsSecUIOriginatedQuery=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, val );
+
+ ret = RProperty::Get(KPSUidSecurityUIs, KSecurityUIsLockInitiatorTimeHigh, val);
+ RDebug::Printf( "%s %s (%u) ret=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, ret );
+ RDebug::Printf( "%s %s (%u) KSecurityUIsLockInitiatorTimeHigh=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, val );
+
+ ret = RProperty::Get(KPSUidSecurityUIs, KSecurityUIsLockInitiatorTimeLow, val);
+ RDebug::Printf( "%s %s (%u) ret=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, ret );
+ RDebug::Printf( "%s %s (%u) KSecurityUIsLockInitiatorTimeLow=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, val );
+
+ ret = RProperty::Get(KPSUidHWRM, KHWRMGripStatus, val);
+ RDebug::Printf( "%s %s (%u) ret=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, ret );
+ RDebug::Printf( "%s %s (%u) KHWRMGripStatus=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, val );
+
+ ret = RProperty::Get(KPSUidAvkonDomain, KAknKeyguardStatus, val);
+ RDebug::Printf( "%s %s (%u) ret=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, ret );
+ RDebug::Printf( "%s %s (%u) KAknKeyguardStatus=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, val );
+ }
+ break;
+ case 45:
+ {
+ RDEBUG("Read-Prop8", 0);
+ mItemsToAdd = -1;
+ if(mTimer)
+ {
+ RDEBUG("stop", 0);
+ mTimer->stop();
+ }
+ else
+ {
+ RDEBUG("new", 0);
+ mTimer = new QTimer(this);
+ }
+ RDEBUG("1", 1);
+ mTimer->setSingleShot(false);
+ RDEBUG("2", 2);
+ connect(mTimer, SIGNAL(timeout()), this, SLOT(addOneToModel()));
+ RDEBUG("3", 3);
+ mTimer->start(1000);
+ RDEBUG("4", 4);
+ }
+ break;
+ case 46:
+ {
+ RDEBUG("Stop-Prop8", 0);
+ mItemsToAdd = -1;
+ if(mTimer)
+ {
+ RDEBUG("stop", 1);
+ mTimer->stop();
+ }
+ RDEBUG("done Stop-Prop8", 0x99);
+ }
+ break;
+ case 47:
+ {
+ RDEBUG("EAutolockOff", 0);
+ TInt val = -1;
+ TInt errProp = RProperty::Set(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, EAutolockOff);
+ RDEBUG("errProp", errProp);
+ RDEBUG("KCoreAppUIsAutolockStatus EAutolockOff", EAutolockOff);
+ errProp = RProperty::Get(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, val);
+ RDEBUG("errProp", errProp);
+ RDEBUG("val", val);
+ }
+ break;
+ case 48:
+ {
+ RDEBUG("EManualLocked", 0);
+ TInt val = -1;
+ TInt errProp = RProperty::Set(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, EManualLocked);
+ RDEBUG("errProp", errProp);
+ RDEBUG("KCoreAppUIsAutolockStatus EManualLocked", EManualLocked);
+ errProp = RProperty::Get(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, val);
+ RDEBUG("errProp", errProp);
+ RDEBUG("val", val);
+ }
+ break;
+ case 49:
+ {
+ RDEBUG("EAutolockStatusUninitialized", 0);
+ TInt val = -1;
+ TInt errProp = RProperty::Set(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, EAutolockStatusUninitialized);
+ RDEBUG("errProp", errProp);
+ RDEBUG("KCoreAppUIsAutolockStatus EAutolockStatusUninitialized", EAutolockStatusUninitialized);
+ errProp = RProperty::Get(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, val);
+ RDEBUG("errProp", errProp);
+ RDEBUG("val", val);
+ }
+ break;
+ ///////////////////////
+ case 50:
+ {
+ RDEBUG("KeyguardTime=0s", 0);
+ CRepository* repository = NULL;
+ TInt keyguardTime = 0;
+ TInt cRresult = 0;
+ cRresult = cRresult;
+ repository = CRepository::NewL(KCRUidSecuritySettings);
+ cRresult = repository->Get(KSettingsAutomaticKeyguardTime, keyguardTime); // in seconds
+ RDEBUG("cRresult", cRresult);
+ RDEBUG("keyguardTime", keyguardTime);
+ repository->Set(KSettingsAutomaticKeyguardTime, 0); // in seconds
+ cRresult = repository->Get(KSettingsAutomaticKeyguardTime, keyguardTime); // in seconds
+ RDEBUG("cRresult", cRresult);
+ RDEBUG("keyguardTime", keyguardTime);
+ delete repository;
+ }
+ break;
+ case 51:
+ {
+ RDEBUG("KeyguardTime=10s", 0);
+ CRepository* repository = NULL;
+ TInt keyguardTime = 0;
+ TInt cRresult = 0;
+ cRresult = cRresult;
+ repository = CRepository::NewL(KCRUidSecuritySettings);
+ cRresult = repository->Get(KSettingsAutomaticKeyguardTime, keyguardTime); // in seconds
+ RDEBUG("cRresult", cRresult);
+ RDEBUG("keyguardTime", keyguardTime);
+ repository->Set(KSettingsAutomaticKeyguardTime, 10); // in seconds
+ cRresult = repository->Get(KSettingsAutomaticKeyguardTime, keyguardTime); // in seconds
+ RDEBUG("cRresult", cRresult);
+ RDEBUG("keyguardTime", keyguardTime);
+ delete repository;
+ }
+ break;
+ case 52:
+ {
+ RDEBUG("KeyguardTime=30s", 0);
+ CRepository* repository = NULL;
+ TInt keyguardTime = 0;
+ TInt cRresult = 0;
+ cRresult = cRresult;
+ repository = CRepository::NewL(KCRUidSecuritySettings);
+ cRresult = repository->Get(KSettingsAutomaticKeyguardTime, keyguardTime); // in seconds
+ RDEBUG("cRresult", cRresult);
+ RDEBUG("keyguardTime", keyguardTime);
+ repository->Set(KSettingsAutomaticKeyguardTime, 30); // in seconds
+ cRresult = repository->Get(KSettingsAutomaticKeyguardTime, keyguardTime); // in seconds
+ RDEBUG("cRresult", cRresult);
+ RDEBUG("keyguardTime", keyguardTime);
+ delete repository;
+ }
+ break;
+ case 53:
+ {
+ RDEBUG("KeyguardTime=10+60s", 0);
+ CRepository* repository = NULL;
+ TInt keyguardTime = 0;
+ TInt cRresult = 0;
+ cRresult = cRresult;
+ repository = CRepository::NewL(KCRUidSecuritySettings);
+ cRresult = repository->Get(KSettingsAutomaticKeyguardTime, keyguardTime); // in seconds
+ RDEBUG("cRresult", cRresult);
+ RDEBUG("keyguardTime", keyguardTime);
+ repository->Set(KSettingsAutomaticKeyguardTime, 10+60); // in seconds
+ cRresult = repository->Get(KSettingsAutomaticKeyguardTime, keyguardTime); // in seconds
+ RDEBUG("cRresult", cRresult);
+ RDEBUG("keyguardTime", keyguardTime);
+ delete repository;
+ }
+ break;
+ case 54:
+ {
+ RDEBUG("AutoLockTime=0m", 0);
+ CRepository* repository = NULL;
+ TInt lockTime = 0;
+ TInt cRresult = 0;
+ cRresult = cRresult;
+ repository = CRepository::NewL(KCRUidSecuritySettings);
+ cRresult = repository->Get(KSettingsAutoLockTime, lockTime); // in minutes
+ RDEBUG("cRresult", cRresult);
+ RDEBUG("lockTime", lockTime);
+ repository->Set(KSettingsAutoLockTime, 0); // in minutes
+ cRresult = repository->Get(KSettingsAutoLockTime, lockTime); // in minutes
+ RDEBUG("cRresult", cRresult);
+ RDEBUG("lockTime", lockTime);
+ delete repository;
+ }
+ break;
+ case 55:
+ {
+ RDEBUG("AutoLockTime=1m", 0);
+ CRepository* repository = NULL;
+ TInt lockTime = 0;
+ TInt cRresult = 0;
+ cRresult = cRresult;
+ repository = CRepository::NewL(KCRUidSecuritySettings);
+ cRresult = repository->Get(KSettingsAutoLockTime, lockTime); // in minutes
+ RDEBUG("cRresult", cRresult);
+ RDEBUG("lockTime", lockTime);
+ repository->Set(KSettingsAutoLockTime, 1); // in minutes
+ cRresult = repository->Get(KSettingsAutoLockTime, lockTime); // in minutes
+ RDEBUG("cRresult", cRresult);
+ RDEBUG("lockTime", lockTime);
+ delete repository;
+ }
+ break;
+ case 56:
+ {
+ RDEBUG("AutoLockTime=2m", 0);
+ CRepository* repository = NULL;
+ TInt lockTime = 0;
+ TInt cRresult = 0;
+ cRresult = cRresult;
+ repository = CRepository::NewL(KCRUidSecuritySettings);
+ cRresult = repository->Get(KSettingsAutoLockTime, lockTime); // in minutes
+ RDEBUG("cRresult", cRresult);
+ RDEBUG("lockTime", lockTime);
+ repository->Set(KSettingsAutoLockTime, 2); // in minutes
+ cRresult = repository->Get(KSettingsAutoLockTime, lockTime); // in minutes
+ RDEBUG("cRresult", cRresult);
+ RDEBUG("lockTime", lockTime);
+ delete repository;
+ }
+ break;
+ case 57:
+ {
+ RDEBUG("AutoLockTime=65535m", 0);
+ CRepository* repository = NULL;
+ TInt lockTime = 0;
+ TInt cRresult = 0;
+ cRresult = cRresult;
+ repository = CRepository::NewL(KCRUidSecuritySettings);
+ cRresult = repository->Get(KSettingsAutoLockTime, lockTime); // in minutes
+ RDEBUG("cRresult", cRresult);
+ RDEBUG("lockTime", lockTime);
+ repository->Set(KSettingsAutoLockTime, 65535); // in minutes
+ cRresult = repository->Get(KSettingsAutoLockTime, lockTime); // in minutes
+ RDEBUG("cRresult", cRresult);
+ RDEBUG("lockTime", lockTime);
+ delete repository;
+ }
+ break;
+ case 58:
+ {
+ RDEBUG("read", 0);
+ CRepository* repository = NULL;
+ TInt keyguardTime = 0;
+ TInt cRresult = 0;
+ cRresult = cRresult;
+ repository = CRepository::NewL(KCRUidSecuritySettings);
+ cRresult = repository->Get(KSettingsAutomaticKeyguardTime, keyguardTime); // in seconds
+ RDEBUG("cRresult", cRresult);
+ RDEBUG("lockTime", keyguardTime);
+ TInt lockTime = 0;
+ cRresult = repository->Get(KSettingsAutoLockTime, lockTime); // in minutes
+ RDEBUG("cRresult", cRresult);
+ RDEBUG("lockTime", lockTime);
+ delete repository;
+ }
+ break;
+ ///////////////////////
+ case 60:
+ {
+ RDEBUG("Wait30+Cancel_P&S", 0);
+ mItemsToAddExt = 61;
+ if(mTimerExt)
+ {
+ RDEBUG("stop", 0);
+ mTimerExt->stop();
+ }
+ else
+ {
+ RDEBUG("new", 0);
+ mTimerExt = new QTimer(this);
+ }
+ RDEBUG("1", 1);
+ mTimerExt->setSingleShot(true);
+ RDEBUG("2", 2);
+ connect(mTimerExt, SIGNAL(timeout()), this, SLOT(addOneToModelExt()));
+ RDEBUG("3", 3);
+ mTimerExt->start(1000);
+ RDEBUG("4", 4);
+ }
+ break;
+ case 61:
+ {
+ RDEBUG("Cancel_P&S", 0);
+ TInt err = RProperty::Set(KPSUidSecurityUIs, KSecurityUIsDismissDialog, ESecurityUIsDismissDialogOn );
+ RDEBUG("err", err);
+ for(int ii=5;ii>0;ii--)
+ {
+ RDEBUG("ii", ii);
+ User::After(1000*1000);
+ }
+ }
+ break;
+ case 62:
+ {
+ RDEBUG("TSecUi::InitializeLibL", 0);
+ TSecUi::InitializeLibL();
+ RDEBUG("0", 0);
+ }
+ case 63:
+ {
+ RDEBUG("TSecUi::UnInitializeLib", 0);
+ TSecUi::UnInitializeLib();
+ RDEBUG("0", 0);
+ }
+ case 64:
+ {
+ RDEBUG("Wait30+Cancel_P&S", 0);
+ mItemsToAddExt = 61;
+ if(mTimerExt)
+ {
+ RDEBUG("stop", 0);
+ mTimerExt->stop();
+ }
+ else
+ {
+ RDEBUG("new", 0);
+ mTimerExt = new QTimer(this);
+ }
+ RDEBUG("1", 1);
+ mTimerExt->setSingleShot(true);
+ RDEBUG("2", 2);
+ connect(mTimerExt, SIGNAL(timeout()), this, SLOT(addOneToModelExt()));
+ RDEBUG("3", 3);
+ mTimerExt->start(1000);
+ RDEBUG("4", 4);
+ }
+ case 65:
+ {
+ RDEBUG("CancelSecCodeQuery", 0);
+ RMobilePhone iPhone;
+
+ TInt err = KErrGeneral;
+ err = err;
+ TInt thisTry( 0);
+ RTelServer iTelServer;
+ RMmCustomAPI iCustomPhone;
+ while ( ( err = iTelServer.Connect() ) != KErrNone && ( thisTry++ ) <= KTriesToConnectServer )
+ {
+ User::After( KTimeBeforeRetryingServerConnection );
+ }
+ err = iTelServer.LoadPhoneModule( KMmTsyModuleName );
+ RTelServer::TPhoneInfo PhoneInfo;
+ err = iTelServer.SetExtendedErrorGranularity( RTelServer::EErrorExtended ) ;
+ err = iTelServer.GetPhoneInfo( KPhoneIndex, PhoneInfo ) ;
+ err = iPhone.Open( iTelServer, PhoneInfo.iName ) ;
+ err = iCustomPhone.Open( iPhone ) ;
+ RDEBUG("err", err);
+
+ CSecurityHandler* handler = new(ELeave) CSecurityHandler(iPhone);
+ TInt result = KErrNone;
+ result = result;
+ RDEBUG("err", err);
+ handler->CancelSecCodeQuery();
+ RDEBUG("0", 0);
+ delete handler;
+ RDEBUG("end", 0x99);
+ }
+ case 66:
+ {
+ RDEBUG("not supported EStdKeyDeviceF", 0);
+ /*
+ TApaTaskList tasklist( iCoeEnv->WsSession() );
+ TApaTask autolocktask = tasklist.FindApp( KAutolockUid );
+ if ( autolocktask.Exists() )
+ {
+ TKeyEvent keyEvent;
+ RDebug::Printf( "%s %s (%u) EStdKeyDeviceF=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, EStdKeyDeviceF ); // 0xb3
+ keyEvent.iCode = EStdKeyDeviceF;
+ keyEvent.iScanCode = EKeyDeviceF;
+ keyEvent.iRepeats = 0;
+ autolocktask.SendKey( keyEvent );
+ }
+ */
+ RDEBUG("-1", -1);
+ }
+ ///////////////////////
+ default:
+ RDEBUG("default itemValue", itemValue)
+ ;
+ break;
+ }
+RDEBUG("real end", 0x99)
+ }
+void ContentWidget::itemActivated(const QModelIndex& index)
+ {
+ TInt ret = KErrNone;
+ ret = ret;
+ RDEBUG("0", 0);
+ HbTreeViewItem *viewItem = qobject_cast<HbTreeViewItem*> (mTreeView->itemByIndex(index));
+ RDEBUG("0", 0);
+ QStandardItemModel *model = static_cast<QStandardItemModel*> (mTreeView->model());
+ QStandardItem *myItem = model->itemFromIndex(index);
+ QString itemText = myItem->text();
+ itemText = itemText.left(2);
+ int itemValue = itemText.toInt();
+ doCommand(itemValue);
+ }
+
+void ContentWidget::backButtonClicked()
+ {
+ RDEBUG("0", 0);
+
+ if (mWindow->currentView() != this)
+ {
+ if (mForm)
+ {
+ postEvents();
+ if (mForm->action() == ViewFuteDataForm::Settings)
+ {
+ doSettings();
+ }
+ else if (mForm->action() == ViewFuteDataForm::AddItem)
+ {
+ doAddItem();
+ }
+ mWindow->removeView(mForm);
+ mForm->deleteLater();
+ mForm = 0;
+ }
+
+ mWindow->addView(this);
+ postEvents();
+ }
+ else
+ {
+ qApp->quit();
+ }
+ }
+
+void ContentWidget::confirmDelete()
+ {
+ RDEBUG("0", 0);
+
+ doRemoveItems();
+
+ mInfoLabel->hide();
+ mMainlayout->removeItem(mInfoLabel);
+ mTreeView->setSelectionMode(HbAbstractItemView::NoSelection);
+ setNavigationAction( mSoftKeyQuitAction);
+
+ mItemSubMenu->menuAction()->setEnabled(true);
+ }
+
+void ContentWidget::createAndInitTreeView(int newModelType)
+ {
+ RDEBUG("0", 0);
+
+ bool treeViewChange = false;
+ if (mModelType == fileSystemModel || newModelType == fileSystemModel)
+ {
+ treeViewChange = true;
+ }
+ if (!mTreeView || treeViewChange)
+ {
+ if (mTreeView)
+ {
+ resetTreeView();
+ }
+ if (newModelType == fileSystemModel)
+ {
+ mTreeView = new HbFileSystemTreeView(this);
+ }
+ else
+ {
+ mTreeView = new HbTreeView(this);
+ }
+ initTreeView();
+ }
+ }
+
+void ContentWidget::initTreeView()
+ {
+ RDEBUG("0", 0);
+
+ connect(mTreeView, SIGNAL(activated(QModelIndex)), this, SLOT(itemActivated(QModelIndex)));
+
+ connect(mTreeView,
+ SIGNAL(longPressed(HbAbstractViewItem*, QPointF)),
+ this,
+ SLOT(onLongPressed(HbAbstractViewItem*, QPointF)));
+
+ if (mTreeView->selectionModel())
+ {
+ connect(mTreeView->selectionModel(), SIGNAL(selectionChanged(QItemSelection, QItemSelection)), this, SLOT(selectionChanged(QItemSelection, QItemSelection)));
+ }
+
+ setMenu( mMainMenu);
+
+ mTreeView->setFocus();
+ mTreeView->setLongPressEnabled(true);
+ mTreeView->setItemPixmapCacheEnabled(true);
+
+ if (mMainlayout)
+ {
+ mMainlayout->addItem(mTreeView);
+ }
+ }
+
+void ContentWidget::resetTreeView()
+ {
+ RDEBUG("0", 0);
+
+ delete mTreeView->model();
+
+ disconnect(mTreeView, SIGNAL(activated(QModelIndex)), this, SLOT(itemActivated()));
+
+ mMainlayout->removeItem(mTreeView);
+
+ delete mTreeView;
+ mTreeView = 0;
+ mTarget = QModelIndex();
+ }
+
+Q_DECLARE_METATYPE( QModelIndex)
+void ContentWidget::setTargetItemActionTriggered()
+ {
+ RDEBUG("0", 0);
+
+ QAction *action = qobject_cast<QAction *> (sender());
+ if (action)
+ {
+ mTarget = action->data().value<QModelIndex> ();
+ if (mTarget.isValid())
+ {
+ HbNotificationDialog *popup = new HbNotificationDialog;
+ popup->setText("Target set successfully.");
+ popup->setTimeout(700);
+ popup->setAttribute(Qt::WA_DeleteOnClose);
+ popup->show();
+ }
+ }
+ }
+
+void ContentWidget::setRootItemActionTriggered()
+ {
+ RDEBUG("0", 0);
+
+ QAction *action = qobject_cast<QAction *> (sender());
+ if (action)
+ {
+ QModelIndex index = action->data().value<QModelIndex> ();
+ mTreeView->setRootIndex(index);
+ if (index.isValid())
+ {
+ HbNotificationDialog *popup = new HbNotificationDialog;
+ popup->setText("Root item set successfully.");
+ popup->setTimeout(700);
+ popup->setAttribute(Qt::WA_DeleteOnClose);
+ popup->show();
+ }
+ mTarget = QModelIndex();
+ }
+ }
+
+void ContentWidget::onLongPressed(HbAbstractViewItem* listViewItem, const QPointF& coords)
+ {
+ RDEBUG("0", 0);
+
+ Q_UNUSED(listViewItem);
+
+ HbMenu *contextMenu = new HbMenu();
+ HbAction *contextAction1 = contextMenu->addAction("Set as target item");
+ HbAction *contextAction2 = contextMenu->addAction("Set as root item");
+
+ QVariant modelIndex = qVariantFromValue(listViewItem->modelIndex());
+ contextAction1->setData(modelIndex);
+ contextAction2->setData(modelIndex);
+
+ connect(contextAction1, SIGNAL(triggered()), SLOT(setTargetItemActionTriggered()));
+ connect(contextAction2, SIGNAL(triggered()), SLOT(setRootItemActionTriggered()));
+
+ contextMenu->setAttribute(Qt::WA_DeleteOnClose);
+ contextMenu->setPreferredPos(coords);
+ contextMenu->show();
+ }
+
+void ContentWidget::selectionChanged(const QItemSelection & selected, const QItemSelection & deselected)
+ {
+ Q_UNUSED(selected)
+ Q_UNUSED(deselected)
+ QItemSelectionModel *selectionModel = mTreeView->selectionModel();
+ QModelIndexList indexes = selectionModel->selectedIndexes();
+ updateTextLabel(indexes.count());
+ }
+
+void ContentWidget::updateTextLabel(int count)
+ {
+ RDEBUG("0", 0);
+
+ if (count == 0)
+ {
+ mInfoLabel->setPlainText("No items selected");
+ }
+ else
+ {
+ QString text = QString::number(count);
+ text.append(" items selected");
+ mInfoLabel->setPlainText(text);
+ }
+ }
+
+void ContentWidget::doSettings()
+ {
+ RDEBUG("0", 0);
+
+ mForm->resolveSettingsResults();
+ mScrollHint = mForm->getScrollHint();
+
+ int mDepthTemp = mDepth;
+ mDepth = mForm->getDepth();
+ if (mDepthTemp != mDepth)
+ {
+ collapse(mTreeView->model(), mTreeView->rootIndex(), mDepth);
+ expand(mTreeView->model(), mTreeView->rootIndex(), mDepth);
+ }
+ }
+
+int ContentWidget::calculateDepth(QModelIndex m) const
+ {
+ int depth = 1;
+ RDEBUG("0", 0);
+
+ while (m.parent() != QModelIndex())
+ {
+ depth++;
+ m = m.parent();
+ }
+ return depth;
+ }
+
+void ContentWidget::expand(const QAbstractItemModel *model, const QModelIndex &parent, int depth)
+ {
+ RDEBUG("0", 0);
+
+ if (model && depth > 1 && (parent == mTreeView->rootIndex() || parent.isValid()))
+ {
+ int rows = model->rowCount(parent);
+ for (int j = 0; j < rows; j++)
+ {
+ QModelIndex index = model->index(j, 0, parent);
+ if (index.isValid() && model->rowCount(index) > 0)
+ {
+ if (!mTreeView->isExpanded(index))
+ {
+ mTreeView->setExpanded(index, true);
+ }
+ expand(model, index, depth - 1);
+ }
+ }
+ }
+ }
+
+void ContentWidget::expandUpwards(const QAbstractItemModel *model, const QModelIndex &index)
+ {
+ RDEBUG("0", 0);
+
+ if (model && index != mTreeView->rootIndex() && index.isValid())
+ {
+ if (!mTreeView->isExpanded(index))
+ {
+ mTreeView->setExpanded(index, true);
+ }
+ expandUpwards(model, index.parent());
+ }
+ }
+
+void ContentWidget::collapse(const QAbstractItemModel *model, const QModelIndex &parent, int depth)
+ {
+ RDEBUG("0", 0);
+
+ if (model && depth >= 1 && (parent == mTreeView->rootIndex() || parent.isValid()))
+ {
+ int rows = model->rowCount(parent);
+ for (int j = 0; j < rows; j++)
+ {
+ QModelIndex index = model->index(j, 0, parent);
+ if (index.isValid() && model->rowCount(index) > 0)
+ {
+ if (calculateDepth(index) >= depth && mTreeView->isExpanded(index))
+ {
+ mTreeView->setExpanded(index, false);
+ }
+ collapse(model, index, depth);
+ }
+ }
+ }
+ }
+
+void ContentWidget::postEvents()
+ {
+ RDEBUG("0", 0);
+
+ // When widgets are added or removed from main window text items
+ // get font change event, which layout everything again.
+ // Use case add item & scroll hint PositionAtBottom fails,
+ // if those posted events are not flushed first.
+
+ //TODO: to be wholly when proved that problmes putting following into comments are not too big
+ //QCoreApplication::sendPostedEvents();
+ //QCoreApplication::sendPostedEvents();
+ //QCoreApplication::sendPostedEvents();
+ }
+
+void ContentWidget::aboutToClose()
+ {
+ delete mPopupModel;
+ mPopupModel = 0;
+ }
+
+void ContentWidget::autoInsertOne()
+ {
+ RDEBUG("0", 0);
+
+ // add item to model after three seconds
+ QTimer *timer = new QTimer(this);
+ timer->setSingleShot(true);
+ connect(timer, SIGNAL(timeout()), this, SLOT(addOneToModel()));
+ timer->start(3000);
+ }
+void ContentWidget::autoRemoveOne()
+ {
+ // remove item from model after three seconds
+ QModelIndex index = mTreeView->currentIndex();
+ if (!index.isValid())
+ {
+ QAbstractItemModel *model = mTreeView->model();
+ index = model->index((model->rowCount() / 2), 0, mTreeView->rootIndex());
+ }
+
+ mItemsToRemove.clear();
+ mItemsToRemove.append(index);
+
+ QTimer *timer = new QTimer(this);
+ timer->setSingleShot(true);
+ connect(timer, SIGNAL(timeout()), this, SLOT(removeFromModel()));
+ timer->start(3000);
+ }
+
+void ContentWidget::addOneToModel()
+ {
+ RDEBUG("mItemsToAdd", mItemsToAdd);
+ if(mItemsToAdd>0)
+ mItemsToAdd--;
+ if(mItemsToAdd==0)
+ return;
+
+ TInt ret=KErrNone;
+ ret = ret;
+ TInt val=-1;
+ ret = RProperty::Get(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, val);
+ RDEBUG("KCoreAppUIsAutolockStatus", val);
+ ret = RProperty::Get(KPSUidAvkonDomain, KAknKeyguardStatus, val);
+ RDEBUG("KAknKeyguardStatus", val);
+ ret = RProperty::Get(KPSUidSecurityUIs, KSecurityUIsLights, val);
+ RDEBUG("KSecurityUIsLights", val);
+ ret = RProperty::Get(KPSUidSecurityUIs, KSecurityUIsSecUIOriginatedQuery, val);
+ RDEBUG("KSecurityUIsSecUIOriginatedQuery", val);
+ }
+
+void ContentWidget::addOneToModelExt()
+ {
+ RDEBUG("mItemsToAddExt", mItemsToAddExt);
+ if(mItemsToAddExt>0)
+ mItemsToAddExt--;
+ if(mItemsToAddExt==0)
+ return;
+
+ TInt ret=KErrNone;
+ ret=ret;
+ TInt val=-1;
+ val=val;
+ doCommand(mItemsToAddExt);
+ }
+
+void ContentWidget::removeFromModel()
+ {
+ if (mItemsToRemove.count() > 0)
+ {
+ int count = mItemsToRemove.count();
+
+ for (int i = 0; i < count; ++i)
+ {
+ mTreeView->model()->removeRow(mItemsToRemove.takeLast().row());
+ }
+ }
+ }
+
+void ContentWidget::simulateMultipleFastInserts()
+ {
+ RDEBUG("0", 0);
+
+ if (!mTimer)
+ {
+ mTimer = new QTimer(this);
+ connect(mTimer, SIGNAL(timeout()), this, SLOT(timerReadyForInsert()));
+ }
+ mItemsToAdd = 50;
+ mTimer->start(100);
+
+ }
+
+void ContentWidget::simulateMultipleFastRemovals()
+ {
+ if (!mTimer)
+ {
+ mTimer = new QTimer(this);
+ connect(mTimer, SIGNAL(timeout()), this, SLOT(timerReadyForRemoval()));
+ }
+ mItemsToAdd = 50;
+
+ mTimer->start(100);
+
+ }
+
+void ContentWidget::timerReadyForRemoval()
+ {
+ RDEBUG("0", 0);
+
+ if (mItemsToAdd == 10)
+ {
+ HbAction *action = mCheckableItemActions.value(resetDuringSimulation);
+ if (action)
+ {
+ if (action->isChecked() && mTreeView->model())
+ {
+ mItemsToAdd--;
+ mTreeView->reset();
+ return;
+ }
+ }
+ }
+
+ if (mItemsToAdd > 0 && mTreeView->model() && mTreeView->model()->rowCount() > 0)
+ {
+ int pos = 0;
+ bool removeVisible = false;
+ HbAction *action = mCheckableItemActions.value(simulateVisible);
+ if (action)
+ {
+ removeVisible = action->isChecked();
+ }
+
+ if (removeVisible)
+ {
+ QList<HbAbstractViewItem *> visibleItems = mTreeView->visibleItems();
+ if (visibleItems.count())
+ {
+ pos = rand() % visibleItems.count();
+ pos = visibleItems.at(pos)->modelIndex().row();
+ }
+ }
+ else if (mTreeView->model()->rowCount() > 0)
+ {
+ pos = rand() % mTreeView->model()->rowCount();
+ }
+
+ mTimer->setInterval(2 + rand() % 10);
+ mTreeView->model()->removeRows(pos, 1);
+ mItemsToAdd--;
+ }
+ else
+ {
+ mTimer->stop();
+ delete mTimer;
+ mTimer = 0;
+ }
+ }
+
+void ContentWidget::timerReadyForInsert()
+ {
+ RDEBUG("0", 0);
+
+ if (mItemsToAdd == 10)
+ {
+ HbAction *action = mCheckableItemActions.value(resetDuringSimulation);
+ if (action)
+ {
+ if (action->isChecked() && mTreeView->model())
+ {
+ mItemsToAdd--;
+ mTreeView->reset();
+ return;
+ }
+ }
+ }
+
+ if (mItemsToAdd > 0 && mTreeView->model())
+ {
+ int pos = 0;
+
+ bool insertAsVisible = false;
+ HbAction *action = mCheckableItemActions.value(simulateVisible);
+ if (action)
+ {
+ insertAsVisible = action->isChecked();
+ }
+
+ if (insertAsVisible)
+ {
+ QList<HbAbstractViewItem *> visibleItems = mTreeView->visibleItems();
+ if (visibleItems.count())
+ {
+ pos = rand() % visibleItems.count();
+ pos = visibleItems.at(pos)->modelIndex().row();
+ }
+ }
+ else if (mTreeView->model()->rowCount() > 0)
+ {
+ pos = rand() % mTreeView->model()->rowCount();
+ }
+
+ mTimer->setInterval(2 + rand() % 10);
+
+ if (mModelType == treeModelMixed)
+ {
+ QStandardItem *item = new QStandardItem;
+
+ if (rand() % 7)
+ {
+ QString text;
+ QVariantList strings;
+ HbIcon icon(QString(":/demo/remixevent"));
+ if (rand() % 10)
+ {
+ text = "text " + QString::number(strings.size() + 1);
+ for (int i = rand() % 5; i > 0; i--)
+ {
+ text.append(" and");
+ };
+ strings << text;
+ }
+ if (rand() % 5)
+ {
+ text = "text " + QString::number(strings.size() + 1);
+ for (int i = rand() % 20; i > 0; i--)
+ {
+ text.append(" and");
+ };
+ strings << text;
+ }
+ if (rand() % 3)
+ {
+ text = "text " + QString::number(strings.size() + 1);
+ for (int i = rand() % 30; i > 0; i--)
+ {
+ text.append(" and");
+ };
+ strings << text;
+ }
+ QVariantList icons;
+
+ if (rand() % 15)
+ {
+ icons << icon;
+ }
+ else
+ {
+ icons << QVariant();
+ }
+
+ if (rand() % 5)
+ {
+ icons << icon;
+ }
+ item->setData(icons, Qt::DecorationRole);
+ item->setData(strings, Qt::DisplayRole);
+ }
+ else
+ {
+ // separator
+ item->setData(Hb::SeparatorItem, Hb::ItemTypeRole);
+ item->setData(QVariant("Separator"), Qt::DisplayRole);
+ }
+ mItemsToAdd--;
+ doAddItem(pos, item);
+ }
+ else if (mModelType != dirModel)
+ {
+ QStandardItem *item = new QStandardItem();
+ item->setData(mItemsToAdd == 1 ? QString("Simulated item %1 - last item!!!").arg(mItemsToAdd--) : QString("Simulated item %1").arg(mItemsToAdd--), Qt::DisplayRole);
+ doAddItem(pos, item);
+ }
+ }
+ else
+ {
+ mTimer->stop();
+ delete mTimer;
+ mTimer = 0;
+ }
+ }
+
+void ContentWidget::insertItemAboveTargetClosed(int action)
+ {
+ RDEBUG("0", 0);
+
+ HbInputDialog *dlg = static_cast<HbInputDialog*> (sender());
+ QString text = dlg->value().toString();
+ //if(dlg->actions().first() == action) {
+ if (action == HbDialog::Accepted)
+ {
+ mTextOfNewItem = text;
+
+ QStandardItemModel* model = qobject_cast<QStandardItemModel *> (mTreeView->model());
+ int row = mTarget.row();
+ model->insertRow(row, mTarget.parent());
+
+ // Set text.
+ if (mTextOfNewItem != QString())
+ {
+ QModelIndex index = model->index(row, 0, mTarget.parent());
+ QStandardItem* newItem = model->itemFromIndex(index);
+ newItem->setText(mTextOfNewItem);
+ }
+ }
+ else if (action == HbDialog::Rejected)
+ {
+ return;
+ }
+ }
+
+void ContentWidget::insertItemBelowTargetClosed(int action)
+ {
+ HbInputDialog *dlg = static_cast<HbInputDialog*> (sender());
+ QString text = dlg->value().toString();
+ // if(dlg->actions().first() == action) {
+ if (action == HbDialog::Accepted)
+ {
+ mTextOfNewItem = text;
+
+ QStandardItemModel* model = qobject_cast<QStandardItemModel *> (mTreeView->model());
+ int row = mTarget.row() + 1;
+ model->insertRow(row, mTarget.parent());
+
+ // Set text.
+ if (mTextOfNewItem != QString())
+ {
+ QModelIndex index = model->index(row, 0, mTarget.parent());
+ QStandardItem* newItem = model->itemFromIndex(index);
+ newItem->setText(mTextOfNewItem);
+ }
+ }
+ else if (action == HbDialog::Rejected)
+ return;
+
+ }
+
+void ContentWidget::expandTargetItem()
+ {
+ if (!mTreeView->isExpanded(mTarget))
+ {
+ mTreeView->setExpanded(mTarget, true);
+ }
+ expand(mTreeView->model(), mTarget, 999);
+
+ }
+
+void ContentWidget::collapseTargetItem()
+ {
+ if (mTreeView->isExpanded(mTarget))
+ {
+ mTreeView->setExpanded(mTarget, false);
+ }
+ collapse(mTreeView->model(), mTarget, 999);
+ }
+
+// TODO
+/*
+ verify Autolock is running
+
+
+ */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/SecUiTestQt/contentwidget.h Wed Oct 20 14:51:23 2010 +0300
@@ -0,0 +1,221 @@
+#ifndef CONTENTWIDGET_H
+#define CONTENTWIDGET_H
+
+#include <hbview.h>
+#include <hbradiobuttonlist.h>
+
+#include <QPersistentModelIndex>
+
+QT_BEGIN_NAMESPACE
+
+class QFileSystemWatcher;
+class QGraphicsTextItem;
+class QGraphicsLinearLayout;
+class QItemSelection;
+class QStandardItem;
+
+QT_END_NAMESPACE
+
+class HbMenuItem;
+class HbMainWindow;
+class HbListView;
+class HbMenu;
+class HbAction;
+class HbIcon;
+class HbAbstractViewItem;
+class HbLabel;
+class HbListViewItem;
+class HbTreeView;
+class TreeDataForm;
+
+class ContentWidget : public HbView
+{
+ Q_OBJECT
+
+public:
+ ContentWidget(QString& imagesDir, HbMainWindow *mainWindow);
+ virtual ~ContentWidget();
+
+public slots:
+ void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected);
+ void onLongPressed(HbAbstractViewItem *index, const QPointF &coords);
+ void aboutToClose();
+ void launchInPopup();
+ void setRootItemActionTriggered();
+ void setTargetItemActionTriggered();
+
+ void addOneToModel();
+ void addOneToModelExt();
+ void removeFromModel();
+
+protected:
+ void keyPressEvent(QKeyEvent *event);
+
+private slots:
+ // refreshes model
+ void refresh();
+ void populateDirModel();
+ void populateFileSystemModel();
+ void populateGreenOddBrownEvenModel();
+ void showSettings();
+ void removeModel();
+ void changeModel(HbAction* action);
+ void editItem(HbAction* action);
+
+ void insertItemAboveTarget();
+ void insertItemBelowTarget();
+
+ void setMainMenu();
+ void resetItemManagementMenu();
+ void doCommand(int index);
+ void itemActivated(const QModelIndex& index);
+ void backButtonClicked();
+ void confirmDelete();
+
+ void addItem();
+ void changeItem();
+
+ void removeItems();
+ void removeAllItems();
+
+ void expandAll();
+ void collapseAll();
+
+ void changeMirroring();
+ void scrollToTarget();
+ void changeOrientation();
+
+ void populateTreeModelDefault();
+ void populateTreeModelSimple();
+ void populateTreeModelDeep();
+ void populateTreeModelFlat();
+ //void populateTreeModelMail();
+ void populateTreeModelMixed();
+
+ void autoInsertOne();
+ void autoRemoveOne();
+ void simulateMultipleFastInserts();
+ void simulateMultipleFastRemovals();
+ void timerReadyForInsert();
+ void timerReadyForRemoval();
+
+ void insertItemAboveTargetClosed(int action);
+ void insertItemBelowTargetClosed(int action);
+ void expandTargetItem();
+ void collapseTargetItem();
+
+private:
+ void doAddItem();
+ void doAddItem(int pos, QStandardItem *item);
+ void doSettings();
+ void doRemoveItems();
+
+ void createAndInitTreeView(int newModelType);
+ void initTreeView();
+ void resetTreeView();
+
+ void updateTextLabel(int count);
+
+ // Calculates the item's depth in the tree. Topmost items are on depth 1.
+ // This information is needed only for debug purposes.
+ int calculateDepth(QModelIndex m) const;
+ void expand(const QAbstractItemModel *model,
+ const QModelIndex &parent,
+ int level );
+ void expandUpwards( const QAbstractItemModel *model,
+ const QModelIndex &parent );
+ void collapse( const QAbstractItemModel *model,
+ const QModelIndex &parent,
+ int depth );
+ void postEvents();
+
+private:
+ // submenu items for selecting model
+ enum modelType {
+ noModel = 0,
+ treeModelDefault,
+ treeModelSimple,
+ treeModelDeep,
+ treeModelFlat,
+ //treeModelMail,
+ treeModelMixed,
+ dirModel,
+ fileSystemModel,
+ greenOddBrownEvenModel,
+ };
+
+ // submenu items for list item operation
+ enum itemOperation {
+ addItemOperation,
+ changeItemOperation,
+ removeItemOperation,
+ removeAllItemsOperation,
+ expandAllOperation,
+ collapseAllOperation,
+ autoInsertOneOperation,
+ autoRemoveOneOperation,
+ simulateVisible,
+ resetDuringSimulation,
+ simulateMultipleFastInsertsOperation,
+ simulateMultipleFastRemovalsOperation,
+ selectAll,
+ unselect
+ };
+
+ // submenu items for list item operation
+ enum orientationOperation {
+ toggleOrientationOperation,
+ customOrientationOperation
+ };
+
+ // submenu items for list item operation
+ enum optionsOperation {
+ optionsOperationLast // not in use
+ };
+
+ QString& mImagesDir;
+ HbMainWindow *mWindow;
+ HbTreeView *mTreeView;
+
+ HbAction *mRemoveModelAction;
+ HbAction *mOrientationSwitch;
+ HbAction *mMirroring;
+
+ HbAction *mScrollToAction;
+ HbAction *mInsertAboveTargetAction;
+ HbAction *mInsertBelowTargetAction;
+
+ HbMenu *mItemSubMenu;
+ HbMenu *mTargetActionsSubMenu;
+
+ QFileSystemWatcher *mFileWatcher;
+ int mModelType;
+
+ HbMenu *mMainMenu;
+ int mCountAdded;
+ bool mMute;
+ HbAction *mSoftKeyQuitAction;
+ HbAction *mSoftKeyConfirmAction;
+ HbAction *mSoftKeyBackAction;
+ HbAction *mSoftKeyDoneAction;
+ HbLabel *mInfoLabel;
+ QGraphicsLinearLayout *mMainlayout;
+ TreeDataForm *mForm;
+ HbView *mDetailView;
+ QPersistentModelIndex mTarget;
+
+ QString mTextOfNewItem;
+ HbAbstractItemView::ScrollHint mScrollHint;
+ int mDepth;
+ QAbstractItemModel *mPopupModel;
+
+ QModelIndexList mItemsToRemove;
+ QTimer *mTimer;
+ int mItemsToAdd;
+ QTimer *mTimerExt;
+ int mItemsToAddExt;
+
+ QMap<int, HbAction*> mCheckableItemActions;
+};
+
+#endif // CONTENTWIDGET_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/SecUiTestQt/dirviewitem.cpp Wed Oct 20 14:51:23 2010 +0300
@@ -0,0 +1,55 @@
+#include "dirviewitem.h"
+
+#include <hbpushbutton.h>
+#include <hbabstractitemview.h>
+#include <hbtextitem.h>
+#include <hbstyle.h>
+
+const QString KExpandButtonItemName = "subitem-button";
+
+DirViewItem::DirViewItem(QGraphicsItem* parent) :
+ HbTreeViewItem(parent),
+ mExpandButton(0)
+{
+}
+
+DirViewItem::~DirViewItem()
+{
+}
+
+int DirViewItem::type() const
+{
+ return DirViewItem::Type;
+}
+
+HbAbstractViewItem *DirViewItem::createItem()
+{
+ return new DirViewItem(*this);
+}
+
+void DirViewItem::buttonReleased()
+{
+ if (isExpanded()) {
+ setExpanded(false);
+ } else {
+ setExpanded(true);
+ }
+}
+
+HbWidgetBase *DirViewItem::updateExpandItem()
+{
+ if (!mExpandButton) {
+ mExpandButton = new HbPushButton(this);
+ connect(mExpandButton, SIGNAL(released()), this, SLOT(buttonReleased()));
+ HbStyle::setItemName(mExpandButton, KExpandButtonItemName);
+ }
+
+ if (isExpanded()) {
+ mExpandButton->setText("Close");
+ } else {
+ mExpandButton->setText("Open");
+ }
+
+ return mExpandButton;
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/SecUiTestQt/dirviewitem.h Wed Oct 20 14:51:23 2010 +0300
@@ -0,0 +1,36 @@
+#ifndef DIRVIEWITEM_H
+#define DIRVIEWITEM_H
+
+#include <hbtreeviewitem.h>
+#include <hbpushbutton.h>
+
+#include <QPointer>
+
+class DirViewItem : public HbTreeViewItem
+{
+ Q_OBJECT
+
+public:
+
+ explicit DirViewItem(QGraphicsItem *parent = 0);
+ virtual ~DirViewItem();
+
+ enum { Type = Hb::ItemType_Last + 10 };
+ virtual int type() const;
+
+ virtual HbAbstractViewItem* createItem();
+
+protected slots:
+
+ void buttonReleased();
+
+protected:
+
+ virtual HbWidgetBase *updateExpandItem();
+
+private:
+
+ QPointer<HbPushButton> mExpandButton;
+};
+
+#endif // DIRVIEWITEM_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/SecUiTestQt/greenoddviewitem.cpp Wed Oct 20 14:51:23 2010 +0300
@@ -0,0 +1,71 @@
+#include "greenoddviewitem.h"
+
+#include "QPainter"
+#include "QStyleOptionGraphicsItem"
+#include "QWidget"
+#include "QDebug"
+
+GreenOddViewItem::GreenOddViewItem(QGraphicsItem* parent) :
+ HbListViewItem(parent)
+{
+}
+
+GreenOddViewItem::~GreenOddViewItem()
+{
+}
+
+
+HbAbstractViewItem* GreenOddViewItem::createItem()
+{
+ return new GreenOddViewItem(*this);
+}
+
+bool GreenOddViewItem::canSetModelIndex(const QModelIndex &index) const
+{
+ int itemType(index.data(Hb::ItemTypeRole).toInt());
+ if (itemType == Hb::StandardItem) {
+ QVariant displayRole = index.data(Qt::DisplayRole);
+ QString firstValue;
+ QStringList stringList;
+ if (displayRole.isValid()) {
+ if (displayRole.canConvert<QString>()) {
+ firstValue = displayRole.toString();
+ } else if ( displayRole.canConvert<QStringList>()
+ && displayRole.toStringList().count()) {
+ firstValue = displayRole.toStringList().at(0);
+ }
+ }
+
+ //qDebug() << "GreenOddViewItem::canSetModelIndex: value" << firstValue;
+ int value = firstValue.toInt();
+ //int value = index.row();
+ if ( value > 0
+ && value % 2) {
+ return true;
+ }
+ }
+ return false;
+}
+
+void GreenOddViewItem::paint( QPainter *painter,
+ const QStyleOptionGraphicsItem *option,
+ QWidget *widget)
+{
+ HbAbstractViewItem::paint( painter, option, widget );
+ if (painter){
+ QRectF drawRect = boundingRect();
+ drawRect.adjust(1,1,-1,-1);
+ //QColor brown(141,92,7);
+ //QColor brown(106,57,10);
+ QColor brown(87,45,11);
+ painter->fillRect( drawRect, Qt::darkGreen);
+ }
+}
+
+int GreenOddViewItem::type() const
+{
+ return GreenOddViewItem::Type;
+}
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/SecUiTestQt/greenoddviewitem.h Wed Oct 20 14:51:23 2010 +0300
@@ -0,0 +1,28 @@
+#ifndef GREENODDVIEWITEM_H
+#define GREENODDVIEWITEM_H
+
+#include <hblistviewitem.h>
+
+class QGraphicsItem;
+class QPainter;
+class QStyleOptionGraphicsItem;
+class QWidget;
+class QModelIndex;
+
+class GreenOddViewItem : public HbListViewItem
+{
+ public:
+ explicit GreenOddViewItem(QGraphicsItem* parent=0);
+ virtual ~GreenOddViewItem();
+
+ enum { Type = Hb::ItemType_Last + 1001 };
+ virtual int type() const;
+
+ virtual HbAbstractViewItem* createItem();
+ virtual bool canSetModelIndex(const QModelIndex &index) const;
+ virtual void paint( QPainter *painter,
+ const QStyleOptionGraphicsItem *option,
+ QWidget *widget);
+};
+
+#endif // GREENODDVIEWITEM_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/SecUiTestQt/mailtreeviewitem.cpp Wed Oct 20 14:51:23 2010 +0300
@@ -0,0 +1,274 @@
+#include "mailtreeviewitem.h"
+
+#include <hbpushbutton.h>
+#include <hbabstractitemview.h>
+#include <hbtextitem.h>
+#include <hbstyle.h>
+#include <hblabel.h>
+#include <hbanchorlayout.h>
+#include <hbframedrawer.h>
+#include <hbframeitem.h>
+#include <hbicon.h>
+#include <hbstyle_p.h>
+
+#include <QPainter>
+#include <QDebug>
+
+/*!
+ \class NmMessageListViewItem
+ \brief list view item for message list view
+*/
+
+/*!
+ Constructor
+*/
+MailTreeViewItem::MailTreeViewItem(QGraphicsItem *parent):
+ HbTreeViewItem(parent),
+ mSender(0),
+ mSubject(0),
+ mTime(0),
+ mDividerTitle(0),
+ mNewMsgIcon(0),
+ mFrom(0)
+{
+}
+
+MailTreeViewItem::~MailTreeViewItem()
+{
+}
+
+
+int MailTreeViewItem::type() const
+{
+ return MailTreeViewItem::Type;
+}
+
+HbAbstractViewItem *MailTreeViewItem::createItem()
+{
+ return new MailTreeViewItem(*this);
+}
+
+/*!
+ boolean value indicating model index availability
+*/
+bool MailTreeViewItem::canSetModelIndex(const QModelIndex &index) const
+{
+ Q_UNUSED(index);
+ // This item class can handle all items in message list
+ return true;
+}
+
+/*!
+ update child items
+*/
+void MailTreeViewItem::updateChildItems()
+{
+ // to create expand icon, if it doesn't exist
+ HbTreeViewItem::updateChildItems();
+
+ // Shared data with ModelFactory.
+ int messageRole = Qt::UserRole+1;
+ int dateRole = Qt::UserRole+2;
+
+ mLayout = 0;
+ setLayout(0);
+
+ // Create layout
+ mLayout = new HbAnchorLayout();
+ setLayout(mLayout); // mLayout ownership is passed to QGraphicsWidget
+
+ QVariant dateData = modelIndex().data(dateRole);
+ QVariant messageData = modelIndex().data(messageRole);
+
+ // Create fonts
+ HbFontSpec primaryFont = HbFontSpec(HbFontSpec::Primary);
+ HbFontSpec secondaryFont = HbFontSpec(HbFontSpec::Secondary);
+
+ // Check whether item is message item or title divider
+ // and set the layout accordingly
+ if (messageData.isValid()) {
+ QStringList stringList;
+ if ( messageData.canConvert<QStringList>()) {
+ stringList = messageData.toStringList();
+ }
+
+ if (stringList.count() < 3) {
+ // to avoid crash
+ return;
+ }
+
+ delete mDividerTitle;
+ mDividerTitle = 0;
+
+ if (!mTime) {
+ mTime = new HbLabel();
+ }
+ mTime->setObjectName("ListViewItemMessageTime");
+ mTime->setFontSpec(HbFontSpec(HbFontSpec::Primary));
+ // Create subject label
+ if (!mSubject) {
+ mSubject = new HbLabel();
+ }
+ mSubject->setObjectName("ListViewItemMessageSubject");
+ mSubject->setFontSpec(HbFontSpec(HbFontSpec::Secondary));
+
+ if (!mFrom) {
+ mFrom = new HbLabel(stringList.at(0));
+ }
+ mFrom->setObjectName("ListViewItemMessageSender");
+ mFrom->setFontSpec(primaryFont);
+
+ // Create default locale
+ /*QLocale locale;
+ mTime->setText(locale.toString(
+ msgModelItem->metaData().sentTime().toLocalTime().time(),
+ QLocale::ShortFormat));*/
+ mTime->setPlainText(stringList.at(1));
+
+ // mTime->setAlignment(Qt::AlignVCenter | Qt::AlignRight);
+ mSubject->setPlainText(stringList.at(2));
+
+ // Create new message icon
+ if (!mNewMsgIcon) {
+ HbFrameDrawer *drawer = new HbFrameDrawer(":/resources/qtg_fr_list_new_item", HbFrameDrawer::ThreePiecesVertical);
+ drawer->setFillWholeRect(false);
+ mNewMsgIcon = new HbFrameItem(drawer, this);
+ }
+ mNewMsgIcon->setObjectName("ListViewItemMessageIcon");
+
+ static const int iconWidth = 8;
+
+ // Set message item layout
+ // Place new message icon to layout
+ mLayout->setAnchor(mLayout, Hb::TopEdge, mNewMsgIcon, Hb::TopEdge, 0);
+ mLayout->setAnchor(mLayout, Hb::LeftEdge, mNewMsgIcon, Hb::LeftEdge, 0);
+ mLayout->setAnchor(mNewMsgIcon, Hb::RightEdge, mFrom, Hb::LeftEdge, 0);
+
+ // Set from & subject 10 pixels from left
+ mLayout->setAnchor(mLayout, Hb::TopEdge, mFrom, Hb::TopEdge, 0);
+ mLayout->setAnchor(mLayout, Hb::LeftEdge, mFrom, Hb::LeftEdge, iconWidth);
+ mLayout->setAnchor(mLayout, Hb::RightEdge, mSubject, Hb::RightEdge, iconWidth);
+
+ mLayout->setAnchor(mLayout, Hb::LeftEdge, mSubject, Hb::LeftEdge, iconWidth);
+ mLayout->setAnchor(mFrom, Hb::BottomEdge, mSubject, Hb::TopEdge, 0);
+ // Set Time label to correct place
+ mLayout->setAnchor(mTime, Hb::LeftEdge, mLayout, Hb::RightEdge, 100);
+ mLayout->setAnchor(mFrom, Hb::RightEdge, mTime, Hb::LeftEdge, 0);
+ // Set subject right edge alignment
+ mLayout->setAnchor(mSubject, Hb::RightEdge, mLayout, Hb::RightEdge, iconWidth);
+
+ mLayout->setPreferredHeight(50);
+ setObjectName("ListViewItemMessage");
+ }
+ else if (dateData.isValid()) {
+ QString date;
+ if (dateData.canConvert<QString>()) {
+ date = dateData.toString();
+ }
+ else {
+ return;
+ }
+
+ // NOTE: Layout data will be read from xml once orbit supports it
+ // Create divider icon
+ delete mTime;
+ mTime = 0;
+
+ delete mSubject;
+ mSubject = 0;
+
+ delete mNewMsgIcon;
+ mNewMsgIcon = 0;
+
+ delete mFrom;
+ mFrom = 0;
+
+ // Create divider title
+ if (!mDividerTitle) {
+ mDividerTitle = new HbLabel();
+ }
+ mDividerTitle->setObjectName("ListViewItemDividerTitle");
+
+ mDividerTitle->setPlainText(date);
+ mDividerTitle->setFontSpec(primaryFont);
+ mDividerTitle->setAlignment(Qt::AlignVCenter | Qt::AlignLeft);
+
+ // Add title divider text
+ mLayout->setAnchor(mLayout, Hb::TopEdge, mDividerTitle, Hb::TopEdge, 1);
+ mLayout->setAnchor(mLayout, Hb::LeftEdge, mDividerTitle, Hb::LeftEdge, 0);
+
+ QGraphicsItem *graphicsItem = primitive(QLatin1String("subitem-indicator"));
+ if ( graphicsItem
+ && graphicsItem->isWidget()) {
+ HbLabel *dividerIcon = qobject_cast<HbLabel*>(static_cast<QGraphicsWidget*>(graphicsItem));
+ if (dividerIcon) {
+ mLayout->setAnchor(mLayout, Hb::TopEdge, dividerIcon, Hb::TopEdge, 5);
+ mLayout->setAnchor(dividerIcon, Hb::RightEdge, mLayout, Hb::RightEdge, 20);
+ }
+ }
+
+ mLayout->setPreferredHeight(32);
+ setObjectName("ListViewItemDivider");
+ }
+ else {
+ qDebug() <<"MailTreeViewItem: Invalid message meta data when drawing message list";
+ }
+
+ const QSizeF reso = HbDeviceProfile::current().logicalSize();
+ mLayout->setPreferredWidth(reso.width()-20);
+}
+
+void MailTreeViewItem::polishEvent()
+{
+ QGraphicsWidget::polishEvent();
+}
+
+
+HbWidgetBase *MailTreeViewItem::updateExpandItem()
+{
+ HbLabel *dividerIcon = 0;
+ QGraphicsItem *graphicsItem = primitive(QLatin1String("subitem-indicator"));
+ if ( graphicsItem
+ && graphicsItem->isWidget()) {
+ dividerIcon = qobject_cast<HbLabel*>(static_cast<QGraphicsWidget*>(graphicsItem));
+ }
+
+ if (!dividerIcon) {
+ dividerIcon = new HbLabel();
+ HbIcon icon;
+ icon.setIconName(":/resources/qtg_nmailui_minus_sign", QIcon::Normal, QIcon::On);
+ icon.setIconName(":/resources/qtg_nmailui_plus_sign", QIcon::Normal, QIcon::Off);
+ dividerIcon->setIcon(icon);
+ }
+
+ if (isExpanded()) {
+ dividerIcon->setObjectName("ListViewItemDividerIconMinus");
+ }
+ else {
+ dividerIcon->setObjectName("ListViewItemDividerIconPlus");
+ }
+ return dividerIcon;
+}
+
+void MailTreeViewItem::paint(
+ QPainter *painter,
+ const QStyleOptionGraphicsItem *option,
+ QWidget *widget)
+{
+ Q_UNUSED(option);
+ Q_UNUSED(widget);
+ if (painter){
+ painter->save();
+ painter->setOpacity(0.15);
+ QLineF line1( rect().topLeft().x(), rect().bottomRight().y(),
+ rect().bottomRight().x(), rect().bottomRight().y());
+ painter->drawLine(line1);
+ // Draw line before each item
+ QLineF line2( rect().topLeft().x(), rect().topLeft().y(),
+ rect().bottomRight().x(), rect().topLeft().y());
+ painter->drawLine(line2);
+ painter->restore();
+ }
+}
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/SecUiTestQt/mailtreeviewitem.h Wed Oct 20 14:51:23 2010 +0300
@@ -0,0 +1,50 @@
+#ifndef MAILVIEWITEM_H
+#define MAILVIEWITEM_H
+
+#include <hbtreeviewitem.h>
+#include <hbabstractviewitem.h>
+
+class HbLabel;
+class HbFrameItem;
+class HbAnchorLayout;
+class HbWidgetBase;
+
+#include <QPointer>
+#include <QStyleOptionGraphicsItem>
+
+class MailTreeViewItem : public HbTreeViewItem
+{
+ Q_OBJECT
+
+public:
+
+ explicit MailTreeViewItem(QGraphicsItem *parent = 0);
+ virtual ~MailTreeViewItem();
+
+ enum { Type = Hb::ItemType_Last + 11 };
+ virtual int type() const;
+
+ void updateChildItems();
+
+ HbAbstractViewItem *createItem();
+ bool canSetModelIndex(const QModelIndex &index) const;
+
+ HbWidgetBase *updateExpandItem();
+
+protected:
+
+ void polishEvent();
+ void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
+
+private:
+ HbLabel *mSender; // Not owned
+ HbLabel *mSubject; // Not owned
+ HbLabel *mTime; // Not owned
+ HbLabel *mDividerTitle; // Not owned
+ //HbLabel *mDividerIcon; // Not owned
+ HbFrameItem *mNewMsgIcon; //
+ HbLabel *mFrom;
+ HbAnchorLayout* mLayout; // Not owned
+};
+
+#endif // MAILVIEWITEM_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/SecUiTestQt/main.cpp Wed Oct 20 14:51:23 2010 +0300
@@ -0,0 +1,74 @@
+#include <hbinstance.h>
+#include <hbapplication.h>
+
+#include "contentwidget.h"
+
+//#define DEBUG_TO_FILE
+
+#ifdef DEBUG_TO_FILE
+#include <stdio.h>
+#include <QMutex>
+
+const int maxPathIndex = 1;
+const char *paths[/*maxPathIndex*/] = {"f:\\SecUiTestQt-log.txt"};
+
+FILE* file = 0;
+
+void myMessageOutput(QtMsgType type, const char *msg) {
+ switch (type) {
+ case QtDebugMsg: {
+ fprintf(file, "Debug: %s\n", msg);
+ }
+ break;
+ case QtWarningMsg: {
+ //fprintf(file, "Warning: %s\n", msg);
+ }
+ break;
+ case QtCriticalMsg: {
+ fprintf(file, "Critical: %s\n", msg);
+ }
+ break;
+ case QtFatalMsg: {
+ fprintf(file, "Fatal: %s\n", msg);
+ abort();
+ }
+ }
+}
+#endif
+
+
+int main(int argc, char *argv[])
+{
+#ifdef DEBUG_TO_FILE
+ int pathIndex = 0;
+ while (!file && pathIndex < maxPathIndex) {
+ file = fopen(paths[pathIndex], "a");
+ if (!file) ++pathIndex;
+ }
+ if (file) qInstallMsgHandler(myMessageOutput);
+ qDebug("============================================================"
+ "===========================================================");
+ qDebug("============================================================"
+ "===========================================================");
+#endif
+ HbApplication app(argc, argv);
+ app.setApplicationName( "SecUiTestQt" );
+
+ QString appDir = app.applicationDirPath();
+
+ HbMainWindow* window = new HbMainWindow();
+
+ ContentWidget *view = new ContentWidget(appDir, window);
+ window->addView(view);
+
+ window->show();
+ int closeCode = app.exec();
+ window->deleteLater();
+
+#ifdef DEBUG_TO_FILE
+ if (file) {
+ fclose(file);
+ }
+#endif
+ return closeCode;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/SecUiTestQt/modelfactory.cpp Wed Oct 20 14:51:23 2010 +0300
@@ -0,0 +1,1284 @@
+#include <e32debug.h>
+
+#include "modelfactory.h"
+
+#include <hbnamespace.h>
+#include <hbicon.h>
+
+#include <QStandardItemModel>
+
+void insertMixedItems(QStandardItem *parent)
+{
+ QString longSecondaryText;
+ for (int i = 0; i < 20; ++i) {
+ longSecondaryText.append("Second text ");
+ }
+
+ HbIcon icon(QString(":/demo/generic"));
+
+ QVariantList strings;
+ QVariantList icons;
+
+ // text
+ QStandardItem *child = new QStandardItem();
+ strings << "text-1";
+ child->setData(strings, Qt::DisplayRole);
+ parent->appendRow(child);
+
+ strings.clear();
+ icons.clear();
+
+ // text + icon
+ child = new QStandardItem();
+ strings << "text-1+icon-2";
+ icons << QVariant() << icon;
+ child->setData(strings, Qt::DisplayRole);
+ child->setData(icons, Qt::DecorationRole);
+ parent->appendRow(child);
+
+ strings.clear();
+ icons.clear();
+
+ // icon + text
+ child = new QStandardItem();
+ strings << "icon-1+text-1";
+ icons << icon;
+ child->setData(strings, Qt::DisplayRole);
+ child->setData(icons, Qt::DecorationRole);
+ parent->appendRow(child);
+
+ strings.clear();
+ icons.clear();
+
+ // icon + text + icon
+ child = new QStandardItem();
+ strings << "icon-1+text-1+icon-2";
+ icons << icon << icon;
+ child->setData(strings, Qt::DisplayRole);
+ child->setData(icons, Qt::DecorationRole);
+ parent->appendRow(child);
+
+ strings.clear();
+ icons.clear();
+
+ // text + text
+ child = new QStandardItem();
+ strings << "text-1+text-3" << QVariant() << "third text";
+ child->setData(strings, Qt::DisplayRole);
+ child->setData(icons, Qt::DecorationRole);
+ parent->appendRow(child);
+
+ strings.clear();
+ icons.clear();
+
+ // text + text + icon
+ child = new QStandardItem();
+ strings << "text-1+text-3+icon-2" << QVariant() << "third text";
+ icons << QVariant() << icon;
+ child->setData(strings, Qt::DisplayRole);
+ child->setData(icons, Qt::DecorationRole);
+ parent->appendRow(child);
+
+ strings.clear();
+ icons.clear();
+
+ // icon + text + text
+ child = new QStandardItem();
+ strings << "icon-1+text-1+text-3" << QVariant() << "third text";
+ icons << icon;
+ child->setData(strings, Qt::DisplayRole);
+ child->setData(icons, Qt::DecorationRole);
+ parent->appendRow(child);
+
+ strings.clear();
+ icons.clear();
+
+ // icon + text + text + icon
+ child = new QStandardItem();
+ strings << "icon-1+text-1+text-3+icon-2" << QVariant() << "third text";
+ icons << icon << icon;
+ child->setData(strings, Qt::DisplayRole);
+ child->setData(icons, Qt::DecorationRole);
+ parent->appendRow(child);
+
+ strings.clear();
+ icons.clear();
+
+ // 2 texts
+ child = new QStandardItem();
+ strings << "text-1+text-2" << longSecondaryText;
+ child->setData(strings, Qt::DisplayRole);
+ child->setData(icons, Qt::DecorationRole);
+ parent->appendRow(child);
+
+ strings.clear();
+ icons.clear();
+
+ // 2 texts + icon
+ child = new QStandardItem();
+ strings << "text-1+text-2+icon-2" << longSecondaryText;
+ icons << QVariant() << icon;
+ child->setData(strings, Qt::DisplayRole);
+ child->setData(icons, Qt::DecorationRole);
+ parent->appendRow(child);
+
+ strings.clear();
+ icons.clear();
+
+ // icon + 2 texts
+ child = new QStandardItem();
+ strings << "icon-1+text-1+text-2" << longSecondaryText;
+ icons << icon;
+ child->setData(strings, Qt::DisplayRole);
+ child->setData(icons, Qt::DecorationRole);
+ parent->appendRow(child);
+
+ strings.clear();
+ icons.clear();
+
+ // icon + 2 texts + icon
+ child = new QStandardItem();
+ strings << "icon-1+text-1+text-2+icon-2" << longSecondaryText;
+ icons << icon << icon;
+ child->setData(strings, Qt::DisplayRole);
+ child->setData(icons, Qt::DecorationRole);
+ parent->appendRow(child);
+
+ strings.clear();
+ icons.clear();
+
+ // 3 texts
+ child = new QStandardItem();
+ strings << "text-1+text-2+text-3" << longSecondaryText << "third text";
+ child->setData(strings, Qt::DisplayRole);
+ child->setData(icons, Qt::DecorationRole);
+ parent->appendRow(child);
+
+ strings.clear();
+ icons.clear();
+
+ // 3 texts + icon
+ child = new QStandardItem();
+ strings << "text-1+text-2+text-3+icon-2" << longSecondaryText << "third text";
+ icons << QVariant() << icon;
+ child->setData(strings, Qt::DisplayRole);
+ child->setData(icons, Qt::DecorationRole);
+ parent->appendRow(child);
+
+ strings.clear();
+ icons.clear();
+
+ // icon + 3 texts
+ child = new QStandardItem();
+ strings << "icon-1+text-1+text-2+text-3" << longSecondaryText << "third text";
+ icons << icon;
+ child->setData(strings, Qt::DisplayRole);
+ child->setData(icons, Qt::DecorationRole);
+ parent->appendRow(child);
+
+ strings.clear();
+ icons.clear();
+
+ // icon + 3 texts + icon
+ child = new QStandardItem();
+ strings << "icon-1+text-1+text-2+text-3+icon-2" << longSecondaryText << "third text";
+ icons << icon << icon;
+ child->setData(strings, Qt::DisplayRole);
+ child->setData(icons, Qt::DecorationRole);
+ parent->appendRow(child);
+
+ strings.clear();
+ icons.clear();
+
+ // separator
+ child = new QStandardItem();
+ strings << "Separator";
+ child->setData(strings, Qt::DisplayRole);
+ child->setData(icons, Qt::DecorationRole);
+ child->setData(Hb::SeparatorItem, Hb::ItemTypeRole);
+ child->setEnabled(false);
+ parent->appendRow(child);
+
+ strings.clear();
+ icons.clear();
+
+ // disabled
+ child = new QStandardItem();
+ strings << "Disabled item" << longSecondaryText << "third text";
+ icons << icon << icon;
+ child->setData(strings, Qt::DisplayRole);
+ child->setData(icons, Qt::DecorationRole);
+ child->setEnabled(false);
+ parent->appendRow(child);
+
+ strings.clear();
+ icons.clear();
+
+ // disabled parent item
+ child = new QStandardItem();
+ strings << "Disabled parent item";
+ child->setData(strings, Qt::DisplayRole);
+ child->setData(Hb::ParentItem, Hb::ItemTypeRole);
+ child->setEnabled(false);
+ parent->appendRow(child);
+
+ strings.clear();
+ icons.clear();
+
+ // disabled parent item's child
+ QStandardItem *child2 = new QStandardItem();
+ strings << "Disabled parent item's child";
+ child2->setData(strings, Qt::DisplayRole);
+ child2->setEnabled(false);
+ child->appendRow(child2);
+
+}
+
+QStandardItemModel *ModelFactory::populateTreeModelMail()
+{
+ QStandardItemModel* model = new QStandardItemModel();
+
+ //________________________________________
+ int messageRole = Qt::UserRole+1;
+ int dateRole = Qt::UserRole+2;
+
+ QStandardItem *date = new QStandardItem;
+ date->setData(QString("27. lokakuuta 2009"), dateRole);
+ model->appendRow(date);
+
+ QStandardItem *message = new QStandardItem;
+ QStringList data;
+ data << "Fotonetti.com" << "19:51:14" << "Fotonetti Pro";
+ message->setData(data, messageRole);
+ date->appendRow(message);
+
+ date = new QStandardItem;
+ date->setData(QString("25. lokakuuta 2009"), dateRole);
+ model->appendRow(date);
+
+ message = new QStandardItem;
+ data.clear();
+ data << "Amazon.co.uk" << "5:51:52" << "Your Amazon Order # 123-3456789-0123 ";
+ message->setData(data, messageRole);
+ date->appendRow(message);
+
+ date = new QStandardItem;
+ date->setData(QString("23. lokakuuta 2009"), dateRole);
+ model->appendRow(date);
+
+ message = new QStandardItem;
+ data.clear();
+ data << "MBnet" << "12:12:12" << "MBnetin pullopostia 43/2009: Aurinkoa odotellessa... ";
+ message->setData(data, messageRole);
+ date->appendRow(message);
+
+ date = new QStandardItem;
+ date->setData(QString("21. lokakuuta 2009"), dateRole);
+ model->appendRow(date);
+
+ message = new QStandardItem;
+ data.clear();
+ data << "Skype" << "21:59:20" << "Skype 4.1 - Too late";
+ message->setData(data, messageRole);
+ date->appendRow(message);
+
+ message = new QStandardItem;
+ data.clear();
+ data << "Skype" << "20:58:19" << "Skype 4.1 - Act now";
+ message->setData(data, messageRole);
+ date->appendRow(message);
+
+ message = new QStandardItem;
+ data.clear();
+ data << "Skype" << "19:57:18" << "Skype 4.1 - Time to act";
+ message->setData(data, messageRole);
+ date->appendRow(message);
+
+ message = new QStandardItem;
+ data.clear();
+ data << "Skype" << "18:56:17" << "Skype 4.1 - New release";
+ message->setData(data, messageRole);
+ date->appendRow(message);
+
+ date = new QStandardItem;
+ date->setData(QString("5. lokakuuta 2009"), dateRole);
+ model->appendRow(date);
+
+ message = new QStandardItem;
+ data.clear();
+ data << "Hit Booster" << "21:12:00" << "Have your own website traffic generator ";
+ message->setData(data, messageRole);
+ date->appendRow(message);
+
+ message = new QStandardItem;
+ data.clear();
+ data << "noreply@helsinkiexpert.fi" << "11:08:01" << "Terveisiä Helsinki Expertiltä";
+ message->setData(data, messageRole);
+ date->appendRow(message);
+
+
+ return model;
+}
+
+
+QStandardItemModel *ModelFactory::populateTreeModelDefault()
+{
+ QStandardItemModel* model = new QStandardItemModel();
+
+ //________________________________________
+
+ QStandardItem *paintDevice = new QStandardItem;
+ paintDevice->setText(QString("QPaintDevice"));
+ model->appendRow(paintDevice);
+
+ QStandardItem *pixmap = new QStandardItem;
+ pixmap->setText(QString("QPixmap"));
+ paintDevice->appendRow(pixmap);
+
+ QStandardItem *bitmap = new QStandardItem;
+ bitmap->setText(QString("QBitmap"));
+ pixmap->appendRow(bitmap);
+
+ QStandardItem *customRasterPaintDevice = new QStandardItem;
+ customRasterPaintDevice->setText(QString("QCustomRasterPaintDevice"));
+ paintDevice->appendRow(customRasterPaintDevice);
+
+ QStandardItem *glPixelBuffer = new QStandardItem;
+ glPixelBuffer->setText(QString("QGLPixelBuffer"));
+ paintDevice->appendRow(glPixelBuffer);
+
+ QStandardItem *image = new QStandardItem;
+ image->setText(QString("QImage"));
+ paintDevice->appendRow(image);
+
+ QStandardItem *picture = new QStandardItem;
+ picture->setText(QString("QPicture"));
+ paintDevice->appendRow(picture);
+
+ QStandardItem *printer = new QStandardItem;
+ printer->setText(QString("QPrinter"));
+ paintDevice->appendRow(printer);
+
+ QStandardItem *svgGenerator = new QStandardItem;
+ svgGenerator->setText(QString("QSvgGenerator"));
+ paintDevice->appendRow(svgGenerator);
+
+ //________________________________________
+
+ QStandardItem *object = new QStandardItem;
+ object->setText(QString("QObject"));
+ model->appendRow(object);
+
+ QStandardItem *widget = new QStandardItem;
+ widget->setText(QString("QWidget"));
+ object->appendRow(widget);
+
+ QStandardItem *absItemModel = new QStandardItem;
+ absItemModel->setText(QString("QAbstractItemModel"));
+ object->appendRow(absItemModel);
+
+ QStandardItem *absListModel = new QStandardItem;
+ absListModel->setText(QString("QAbstractListModel"));
+ absItemModel->appendRow(absListModel);
+
+ QStandardItem *strListModel = new QStandardItem;
+ strListModel->setText(QString("QStringListModel"));
+ absListModel->appendRow(strListModel);
+
+ QStandardItem *absProxyModel = new QStandardItem;
+ absProxyModel->setText(QString("QAbstractProxyModel"));
+ absItemModel->appendRow(absProxyModel);
+
+ QStandardItem *sFilterProxyModel = new QStandardItem;
+ sFilterProxyModel->setText(QString("QSortFilterProxyModel"));
+ absProxyModel->appendRow(sFilterProxyModel);
+
+ QStandardItem *absTableModel = new QStandardItem;
+ absTableModel->setText(QString("QAbstractTableModel"));
+ absItemModel->appendRow(absTableModel);
+
+ QStandardItem *sqlQueryModel = new QStandardItem;
+ sqlQueryModel->setText(QString("QSqlQueryModel"));
+ absTableModel->appendRow(sqlQueryModel);
+
+ QStandardItem *sqlTableModel = new QStandardItem;
+ sqlTableModel->setText(QString("QSqlTableModel"));
+ sqlQueryModel->appendRow(sqlTableModel);
+
+ QStandardItem *sqlRTableModel = new QStandardItem;
+ sqlRTableModel->setText(QString("QSqlRelationalTableModel"));
+ sqlTableModel->appendRow(sqlRTableModel);
+
+ QStandardItem *dirModel = new QStandardItem;
+ dirModel->setText(QString("QDirModel"));
+ absItemModel->appendRow(dirModel);
+
+ QStandardItem *proxyModel = new QStandardItem;
+ proxyModel->setText(QString("QProxyModel"));
+ absItemModel->appendRow(proxyModel);
+
+ QStandardItem *stanItemModel = new QStandardItem;
+ stanItemModel->setText(QString("QStandardItemModel"));
+ absItemModel->appendRow(stanItemModel);
+
+ QStandardItem *ioDevice = new QStandardItem;
+ ioDevice->setText(QString("QIODevice"));
+ object->appendRow(ioDevice);
+
+ QStandardItem *absSocket = new QStandardItem;
+ absSocket->setText(QString("QAbstractSocket"));
+ ioDevice->appendRow(absSocket);
+
+ QStandardItem *topSocket = new QStandardItem;
+ topSocket->setText(QString("QTopSocket"));
+ absSocket->appendRow(topSocket);
+
+ QStandardItem *sslSocket = new QStandardItem;
+ sslSocket->setText(QString("QSslSocket"));
+ topSocket->appendRow(sslSocket);
+
+ QStandardItem *udpSocket = new QStandardItem;
+ udpSocket->setText(QString("QUdpSocket"));
+ absSocket->appendRow(udpSocket);
+
+ QStandardItem *file = new QStandardItem;
+ file->setText(QString("QFile"));
+ ioDevice->appendRow(file);
+
+ QStandardItem *tmpFile = new QStandardItem;
+ tmpFile->setText(QString("QTemporaryFile"));
+ file->appendRow(tmpFile);
+
+ QStandardItem *buffer = new QStandardItem;
+ buffer->setText(QString("QBuffer"));
+ ioDevice->appendRow(buffer);
+
+ QStandardItem *process = new QStandardItem;
+ process->setText(QString("QProcess"));
+ ioDevice->appendRow(process);
+
+ QStandardItem *validator = new QStandardItem;
+ validator->setText(QString("QValidator"));
+ object->appendRow(validator);
+
+ QStandardItem *dValidator = new QStandardItem;
+ dValidator->setText(QString("QDoubleValidator"));
+ validator->appendRow(dValidator);
+
+ QStandardItem *intValidator = new QStandardItem;
+ intValidator->setText(QString("QIntValidator"));
+ validator->appendRow(intValidator);
+
+ QStandardItem *rgValidator = new QStandardItem;
+ rgValidator->setText(QString("QRegExpValidator"));
+ validator->appendRow(rgValidator);
+
+ QStandardItem *action = new QStandardItem;
+ action->setText(QString("QAction"));
+ object->appendRow(action);
+
+ QStandardItem *menuItem = new QStandardItem;
+ menuItem->setText(QString("QMenuItem"));
+ action->appendRow(menuItem);
+
+ QStandardItem *widgetAction = new QStandardItem;
+ widgetAction->setText(QString("QWidgetAction"));
+ action->appendRow(widgetAction);
+
+ QStandardItem *dBusAbsInterface = new QStandardItem;
+ dBusAbsInterface->setText(QString("QDBusAbstractInterface"));
+ object->appendRow(dBusAbsInterface);
+
+ QStandardItem *dBusConInterface = new QStandardItem;
+ dBusConInterface->setText(QString("QDBusConnectionInterface"));
+ dBusAbsInterface->appendRow(dBusConInterface);
+
+ QStandardItem *dBusInterface = new QStandardItem;
+ dBusInterface->setText(QString("QDBusInterface"));
+ dBusAbsInterface->appendRow(dBusInterface);
+
+ QStandardItem *textObject = new QStandardItem;
+ textObject->setText(QString("QTextObject"));
+ object->appendRow(textObject);
+
+ QStandardItem *textBlockGroup = new QStandardItem;
+ textBlockGroup->setText(QString("QTextBlockGroup"));
+ textObject->appendRow(textBlockGroup);
+
+ QStandardItem *textList = new QStandardItem;
+ textList->setText(QString("QTextList"));
+ textBlockGroup->appendRow(textList);
+
+ QStandardItem *textFrame = new QStandardItem;
+ textFrame->setText(QString("QTextFrame"));
+ textObject->appendRow(textFrame);
+
+ QStandardItem *textTable = new QStandardItem;
+ textTable->setText(QString("QTextTable"));
+ textFrame->appendRow(textTable);
+
+ QStandardItem *absItemDelegate = new QStandardItem;
+ absItemDelegate->setText(QString("QAbstractItemDelegate"));
+ object->appendRow(absItemDelegate);
+
+ QStandardItem *itemDelegate = new QStandardItem;
+ itemDelegate->setText(QString("QItemDelegate"));
+ absItemDelegate->appendRow(itemDelegate);
+
+ QStandardItem *sqlRelationalDelegate = new QStandardItem;
+ sqlRelationalDelegate->setText(QString("QSqlRelationalDelegate"));
+ itemDelegate->appendRow(sqlRelationalDelegate);
+
+ //________________________________________
+
+ QStandardItem *layoutItem = new QStandardItem;
+ layoutItem->setText(QString("QLayoutItem"));
+ model->appendRow(layoutItem);
+
+ QStandardItem *layout = new QStandardItem;
+ layout->setText(QString("QLayout"));
+ layoutItem->appendRow(layout);
+
+ QStandardItem *boxLayout = new QStandardItem;
+ boxLayout->setText(QString("QBoxLayout"));
+ layout->appendRow(boxLayout);
+
+ QStandardItem *hBoxLayout = new QStandardItem;
+ hBoxLayout->setText(QString("QHBoxLayout"));
+ boxLayout->appendRow(hBoxLayout);
+
+ QStandardItem *vBoxLayout = new QStandardItem;
+ vBoxLayout->setText(QString("QVBoxLayout"));
+ boxLayout->appendRow(vBoxLayout);
+
+ QStandardItem *gridLayout = new QStandardItem;
+ gridLayout->setText(QString("QGridLayout"));
+ layout->appendRow(gridLayout);
+
+ QStandardItem *stackedLayout = new QStandardItem;
+ stackedLayout->setText(QString("QStackedLayout"));
+ layout->appendRow(stackedLayout);
+
+ QStandardItem *spacerItem = new QStandardItem;
+ spacerItem->setText(QString("QSpacerItem"));
+ layoutItem->appendRow(spacerItem);
+
+ QStandardItem *widgetItem = new QStandardItem;
+ widgetItem->setText(QString("QWidgetItem"));
+ layoutItem->appendRow(widgetItem);
+
+ //________________________________________
+
+ QStandardItem *axBase = new QStandardItem;
+ axBase->setText(QString("QAxBase"));
+ model->appendRow(axBase);
+
+ QStandardItem *axWidget = new QStandardItem;
+ axWidget->setText(QString("QAxWidget"));
+ axBase->appendRow(axWidget);
+
+ QStandardItem *axObject = new QStandardItem;
+ axObject->setText(QString("QAxObject"));
+ axBase->appendRow(axObject);
+
+ QStandardItem *axScriptEngine = new QStandardItem;
+ axScriptEngine->setText(QString("QAxScriptEngine"));
+ axObject->appendRow(axScriptEngine);
+
+ //________________________________________
+
+ QStandardItem *absFormBuilder = new QStandardItem;
+ absFormBuilder->setText(QString("QAbstractFormBuilder"));
+ model->appendRow(absFormBuilder);
+
+ QStandardItem *formBuilder = new QStandardItem;
+ formBuilder->setText(QString("QFormBuilder"));
+ absFormBuilder->appendRow(formBuilder);
+
+ //________________________________________
+
+ QStandardItem *domNote = new QStandardItem;
+ domNote->setText(QString("QDomNote"));
+ model->appendRow(domNote);
+
+ QStandardItem *domCharData = new QStandardItem;
+ domCharData->setText(QString("QDomCharacterData"));
+ domNote->appendRow(domCharData);
+
+ QStandardItem *domText = new QStandardItem;
+ domText->setText(QString("QDomText"));
+ domCharData->appendRow(domText);
+
+ QStandardItem *domCDATASection = new QStandardItem;
+ domCDATASection->setText(QString("QDomCDATASection"));
+ domText->appendRow(domCDATASection);
+
+ QStandardItem *domComment = new QStandardItem;
+ domComment->setText(QString("QDomComment"));
+ domCharData->appendRow(domComment);
+
+ QStandardItem *domAttr = new QStandardItem;
+ domAttr->setText(QString("QDomAttr"));
+ domNote->appendRow(domAttr);
+
+ QStandardItem *domDoc = new QStandardItem;
+ domDoc->setText(QString("QDomDocument"));
+ domNote->appendRow(domDoc);
+
+ QStandardItem *domDocFrag = new QStandardItem;
+ domDocFrag->setText(QString("QDomDocumentFragment"));
+ domNote->appendRow(domDocFrag);
+
+ QStandardItem *domDocType = new QStandardItem;
+ domDocType->setText(QString("QDomDocumentType"));
+ domNote->appendRow(domDocType);
+
+ QStandardItem *domElement = new QStandardItem;
+ domElement->setText(QString("QDomElement"));
+ domNote->appendRow(domElement);
+
+ QStandardItem *domEntity = new QStandardItem;
+ domEntity->setText(QString("QDomEntity"));
+ domNote->appendRow(domEntity);
+
+ QStandardItem *domEntityRef = new QStandardItem;
+ domEntityRef->setText(QString("QDomEntityReference"));
+ domNote->appendRow(domEntityRef);
+
+ QStandardItem *domNotation = new QStandardItem;
+ domNotation->setText(QString("QDomNotation"));
+ domNote->appendRow(domNotation);
+
+ QStandardItem *domProcInst = new QStandardItem;
+ domProcInst->setText(QString("QDomProcessingInstruction"));
+ domNote->appendRow(domProcInst);
+
+ //________________________________________
+
+ QStandardItem *xmlContentHandler = new QStandardItem;
+ xmlContentHandler->setText(QString("QXmlContentHandler"));
+ model->appendRow(xmlContentHandler);
+
+ QStandardItem *xmlDTDHandler = new QStandardItem;
+ xmlDTDHandler->setText(QString("QXmlDTDHandler"));
+ model->appendRow(xmlDTDHandler);
+
+ QStandardItem *xmlDecHandler = new QStandardItem;
+ xmlDecHandler->setText(QString("QXmlDecHandler"));
+ model->appendRow(xmlDecHandler);
+
+ QStandardItem *xmlEntityHandler = new QStandardItem;
+ xmlEntityHandler->setText(QString("QXmlEntityHandler"));
+ model->appendRow(xmlEntityHandler);
+
+ QStandardItem *xmlErrorHandler = new QStandardItem;
+ xmlErrorHandler->setText(QString("QXmlErrorHandler"));
+ model->appendRow(xmlErrorHandler);
+
+ QStandardItem *xmlLexicalHandler = new QStandardItem;
+ xmlLexicalHandler->setText(QString("QXmlLexicalHandler"));
+ model->appendRow(xmlLexicalHandler);
+
+ QStandardItem *xmlDefaultHandler = new QStandardItem;
+ xmlDefaultHandler->setText(QString("QXmlDefaultHandler"));
+ xmlContentHandler->appendRow(xmlDefaultHandler);
+
+ //________________________________________
+
+ QStandardItem *xmlReader = new QStandardItem;
+ xmlReader->setText(QString("QXmlReader"));
+ model->appendRow(xmlReader);
+
+ QStandardItem *xmlSimpleReader = new QStandardItem;
+ xmlSimpleReader->setText(QString("QXmlSimpleReader"));
+ xmlReader->appendRow(xmlSimpleReader);
+
+ //________________________________________
+
+ QStandardItem *absFileEngine = new QStandardItem;
+ absFileEngine->setText(QString("QAbstractFileEngine"));
+ model->appendRow(absFileEngine);
+
+ QStandardItem *fsFileEngine = new QStandardItem;
+ fsFileEngine->setText(QString("QFSFileEngine"));
+ absFileEngine->appendRow(fsFileEngine);
+
+ //________________________________________
+
+ QStandardItem *genArg = new QStandardItem;
+ genArg->setText(QString("QGenericArgument"));
+ model->appendRow(genArg);
+
+ QStandardItem *genRetArg = new QStandardItem;
+ genRetArg->setText(QString("QGenericReturnArgument"));
+ genArg->appendRow(genRetArg);
+
+ //________________________________________
+
+ QStandardItem *textStream = new QStandardItem;
+ textStream->setText(QString("QTextStream"));
+ model->appendRow(textStream);
+
+ QStandardItem *textIStream = new QStandardItem;
+ textIStream->setText(QString("QTextIStream"));
+ textStream->appendRow(textIStream);
+
+ QStandardItem *textOStream = new QStandardItem;
+ textOStream->setText(QString("QTextOStream"));
+ textStream->appendRow(textOStream);
+
+ //________________________________________
+
+ QStandardItem *screen = new QStandardItem;
+ screen->setText(QString("QScreen"));
+ model->appendRow(screen);
+
+ QStandardItem *vncScreen = new QStandardItem;
+ vncScreen->setText(QString("QVNCScreen"));
+ screen->appendRow(vncScreen);
+
+ //________________________________________
+
+ QStandardItem *wsMouseHandler = new QStandardItem;
+ wsMouseHandler->setText(QString("QWSMouseHandler"));
+ model->appendRow(wsMouseHandler);
+
+ QStandardItem *calWsMouseHandler = new QStandardItem;
+ calWsMouseHandler->setText(QString("QWSCalibratedMouseHandler"));
+ wsMouseHandler->appendRow(calWsMouseHandler);
+
+ //________________________________________
+
+ QStandardItem *painter = new QStandardItem;
+ painter->setText(QString("QPainter"));
+ model->appendRow(painter);
+
+ QStandardItem *sPainter = new QStandardItem;
+ sPainter->setText(QString("QStylePainter"));
+ painter->appendRow(sPainter);
+
+ //________________________________________
+
+ QStandardItem *paintEngine = new QStandardItem;
+ paintEngine->setText(QString("QPaintEngine"));
+ model->appendRow(paintEngine);
+
+
+ QStandardItem *paintREngine = new QStandardItem;
+ paintREngine->setText(QString("QRasterPaintEngine"));
+ paintEngine->appendRow(paintREngine);
+
+ //________________________________________
+
+ QStandardItem *palette = new QStandardItem;
+ palette->setText(QString("QPalette"));
+ model->appendRow(palette);
+
+ QStandardItem *colorGroup = new QStandardItem;
+ colorGroup->setText(QString("QColorGroup"));
+ palette->appendRow(colorGroup);
+
+ //________________________________________
+
+ QStandardItem *qevent = new QStandardItem;
+ qevent->setText(QString("QEvent"));
+ model->appendRow(qevent);
+
+ return model;
+}
+
+QStandardItemModel *ModelFactory::populateTreeModelSimple()
+{
+ QStandardItemModel* model = new QStandardItemModel();
+
+ // =====================================================================
+ // Depth 1
+ // =====================================================================
+ QStandardItem *depth1_parent0 = new QStandardItem(QString("Lock"));
+ QStandardItem *depth1_parent1 = new QStandardItem(QString("Settings"));
+ QStandardItem *depth1_parent2 = new QStandardItem(QString("Handler"));
+ QStandardItem *depth1_parent3 = new QStandardItem(QString("Notifier"));
+ QStandardItem *depth1_parent4 = new QStandardItem(QString("Properties"));
+ QStandardItem *depth1_parent5 = new QStandardItem(QString("Repository"));
+ QStandardItem *depth1_parent6 = new QStandardItem(QString("Other"));
+ QStandardItem *depth1_parent7 = new QStandardItem(QString("KeyLockPolicy"));
+ QStandardItem *depth1_parent8 = new QStandardItem(QString("Schedule"));
+ QStandardItem *depth1_parent9 = new QStandardItem(QString("Settings2"));
+
+ depth1_parent0->setData(Hb::ParentItem, Hb::ItemTypeRole);
+ depth1_parent1->setData(Hb::ParentItem, Hb::ItemTypeRole);
+ depth1_parent2->setData(Hb::ParentItem, Hb::ItemTypeRole);
+ depth1_parent3->setData(Hb::ParentItem, Hb::ItemTypeRole);
+ depth1_parent4->setData(Hb::ParentItem, Hb::ItemTypeRole);
+ depth1_parent5->setData(Hb::ParentItem, Hb::ItemTypeRole);
+ depth1_parent6->setData(Hb::ParentItem, Hb::ItemTypeRole);
+ depth1_parent7->setData(Hb::ParentItem, Hb::ItemTypeRole);
+ depth1_parent8->setData(Hb::ParentItem, Hb::ItemTypeRole);
+ depth1_parent9->setData(Hb::ParentItem, Hb::ItemTypeRole);
+
+ model->setItem(0,0,depth1_parent0);
+ model->setItem(1,0,depth1_parent1);
+ model->setItem(2,0,depth1_parent2);
+ model->setItem(3,0,depth1_parent3);
+ model->setItem(4,0,depth1_parent4);
+ model->setItem(5,0,depth1_parent5);
+ model->setItem(6,0,depth1_parent6);
+ model->setItem(7,0,depth1_parent7);
+ model->setItem(8,0,depth1_parent8);
+ model->setItem(9,0,depth1_parent9);
+
+
+ RDebug::Printf( "%s %s (%u) Lock depth2-0=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+ QStandardItem *depth2_item00 = new QStandardItem(QString("00:xxx"));
+ QStandardItem *depth2_item01 = new QStandardItem(QString("01:DeviceLockOff"));
+ QStandardItem *depth2_item02 = new QStandardItem(QString("02:KeyguardOn+Note"));
+ QStandardItem *depth2_item03 = new QStandardItem(QString("03:KeyguardOff"));
+ QStandardItem *depth2_item04 = new QStandardItem(QString("04:OfferDevicelock"));
+ QStandardItem *depth2_item05 = new QStandardItem(QString("05:KeyguardOn-Note"));
+ QStandardItem *depth2_item06 = new QStandardItem(QString("06:Wait20-DeviceLockOff"));
+ QStandardItem *depth2_item07 = new QStandardItem(QString("07:Wait20-KeyguardOff"));
+ QStandardItem *depth2_item08 = new QStandardItem(QString("08:Wait20-ShowKeysLockedNote"));
+ QStandardItem *depth2_item09 = new QStandardItem(QString("09:DeviceLockOn"));
+
+ depth1_parent0->setChild(0, 0, depth2_item00);
+ depth1_parent0->setChild(1, 0, depth2_item01);
+ depth1_parent0->setChild(2, 0, depth2_item02);
+ depth1_parent0->setChild(3, 0, depth2_item03);
+ depth1_parent0->setChild(4, 0, depth2_item04);
+ depth1_parent0->setChild(5, 0, depth2_item05);
+ depth1_parent0->setChild(6, 0, depth2_item06);
+ depth1_parent0->setChild(7, 0, depth2_item07);
+ depth1_parent0->setChild(8, 0, depth2_item08);
+ depth1_parent0->setChild(9, 0, depth2_item09);
+
+ RDebug::Printf( "%s %s (%u) Settings depth2-1=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+ QStandardItem *depth2_item10 = new QStandardItem(QString("10:Call1"));
+ QStandardItem *depth2_item11 = new QStandardItem(QString("11:ChangePinL"));
+ QStandardItem *depth2_item12 = new QStandardItem(QString("12:IsLockEnabledL"));
+ QStandardItem *depth2_item13 = new QStandardItem(QString("13:AskSecCodeL"));
+ QStandardItem *depth2_item14 = new QStandardItem(QString("14:AskPin2L"));
+ QStandardItem *depth2_item15 = new QStandardItem(QString("15:GetFdnMode"));
+ QStandardItem *depth2_item16 = new QStandardItem(QString("16:IsUpinBlocked"));
+ QStandardItem *depth2_item17 = new QStandardItem(QString("17:ChangeSecCodeL"));
+ QStandardItem *depth2_item18 = new QStandardItem(QString("18:ChangeAutoLockPeriodL=30"));
+ QStandardItem *depth2_item19 = new QStandardItem(QString("19:ChangeAutoLockPeriodL=0"));
+
+ depth1_parent1->setChild(0, 0, depth2_item10);
+ depth1_parent1->setChild(1, 0, depth2_item11);
+ depth1_parent1->setChild(2, 0, depth2_item12);
+ depth1_parent1->setChild(3, 0, depth2_item13);
+ depth1_parent1->setChild(4, 0, depth2_item14);
+ depth1_parent1->setChild(5, 0, depth2_item15);
+ depth1_parent1->setChild(6, 0, depth2_item16);
+ depth1_parent1->setChild(7, 0, depth2_item17);
+ depth1_parent1->setChild(8, 0, depth2_item18);
+ depth1_parent1->setChild(9, 0, depth2_item19);
+
+ RDebug::Printf( "%s %s (%u) Handler depth2-2=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+ QStandardItem *depth2_item20 = new QStandardItem(QString("20:Notif.EPin1Required"));
+ QStandardItem *depth2_item21 = new QStandardItem(QString("21:EPin1Required"));
+ QStandardItem *depth2_item22 = new QStandardItem(QString("22:EPin2Required"));
+ QStandardItem *depth2_item23 = new QStandardItem(QString("23:EPhonePasswordRequired"));
+ QStandardItem *depth2_item24 = new QStandardItem(QString("24:EPuk1Required"));
+ QStandardItem *depth2_item25 = new QStandardItem(QString("25:EPuk2Required"));
+ QStandardItem *depth2_item26 = new QStandardItem(QString("26:EUniversalPinRequired"));
+ QStandardItem *depth2_item27 = new QStandardItem(QString("27:EUniversalPukRequired"));
+ QStandardItem *depth2_item28 = new QStandardItem(QString("28:xxx"));
+ QStandardItem *depth2_item29 = new QStandardItem(QString("29:xxx"));
+
+ depth1_parent2->setChild(0, 0, depth2_item20);
+ depth1_parent2->setChild(1, 0, depth2_item21);
+ depth1_parent2->setChild(2, 0, depth2_item22);
+ depth1_parent2->setChild(3, 0, depth2_item23);
+ depth1_parent2->setChild(4, 0, depth2_item24);
+ depth1_parent2->setChild(5, 0, depth2_item25);
+ depth1_parent2->setChild(6, 0, depth2_item26);
+ depth1_parent2->setChild(7, 0, depth2_item27);
+ depth1_parent2->setChild(8, 0, depth2_item28);
+ depth1_parent2->setChild(9, 0, depth2_item29);
+
+ RDebug::Printf( "%s %s (%u) Notifier depth2-3=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+ QStandardItem *depth2_item30 = new QStandardItem(QString("30:Op.0"));
+ QStandardItem *depth2_item31 = new QStandardItem(QString("31:EPin1Required"));
+ QStandardItem *depth2_item32 = new QStandardItem(QString("32:EPin2Required"));
+ QStandardItem *depth2_item33 = new QStandardItem(QString("33:EPhonePasswordRequired"));
+ QStandardItem *depth2_item34 = new QStandardItem(QString("34:EPuk1Required"));
+ QStandardItem *depth2_item35 = new QStandardItem(QString("35:EPuk2Required"));
+ QStandardItem *depth2_item36 = new QStandardItem(QString("36:EUniversalPinRequired"));
+ QStandardItem *depth2_item37 = new QStandardItem(QString("37:EUniversalPukRequired"));
+ QStandardItem *depth2_item38 = new QStandardItem(QString("38:Op.0x222"));
+ QStandardItem *depth2_item39 = new QStandardItem(QString("39:Op.0"));
+
+ depth1_parent3->setChild(0, 0, depth2_item30);
+ depth1_parent3->setChild(1, 0, depth2_item31);
+ depth1_parent3->setChild(2, 0, depth2_item32);
+ depth1_parent3->setChild(3, 0, depth2_item33);
+ depth1_parent3->setChild(4, 0, depth2_item34);
+ depth1_parent3->setChild(5, 0, depth2_item35);
+ depth1_parent3->setChild(6, 0, depth2_item36);
+ depth1_parent3->setChild(7, 0, depth2_item37);
+ depth1_parent3->setChild(8, 0, depth2_item38);
+ depth1_parent3->setChild(9, 0, depth2_item39);
+
+ RDebug::Printf( "%s %s (%u) Properties depth2-4=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+ QStandardItem *depth2_item40 = new QStandardItem(QString("40:KAknKeyguardStatus=8"));
+ QStandardItem *depth2_item41 = new QStandardItem(QString("41:Pass=1234"));
+ QStandardItem *depth2_item42 = new QStandardItem(QString("42:Pass=12345"));
+ QStandardItem *depth2_item43 = new QStandardItem(QString("43:Pass=20499"));
+ QStandardItem *depth2_item44 = new QStandardItem(QString("44:Read-Prop"));
+ QStandardItem *depth2_item45 = new QStandardItem(QString("45:Read-Prop8"));
+ QStandardItem *depth2_item46 = new QStandardItem(QString("46:Stop-Prop8"));
+ QStandardItem *depth2_item47 = new QStandardItem(QString("47:EAutolockOff"));
+ QStandardItem *depth2_item48 = new QStandardItem(QString("48:EManualLocked"));
+ QStandardItem *depth2_item49 = new QStandardItem(QString("49:Uninitialized"));
+
+ depth1_parent4->setChild(0, 0, depth2_item40);
+ depth1_parent4->setChild(1, 0, depth2_item41);
+ depth1_parent4->setChild(2, 0, depth2_item42);
+ depth1_parent4->setChild(3, 0, depth2_item43);
+ depth1_parent4->setChild(4, 0, depth2_item44);
+ depth1_parent4->setChild(5, 0, depth2_item45);
+ depth1_parent4->setChild(6, 0, depth2_item46);
+ depth1_parent4->setChild(7, 0, depth2_item47);
+ depth1_parent4->setChild(8, 0, depth2_item48);
+ depth1_parent4->setChild(9, 0, depth2_item49);
+
+ RDebug::Printf( "%s %s (%u) Repository depth2-5=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+ QStandardItem *depth2_item50 = new QStandardItem(QString("50:KeyguardTime=0s"));
+ QStandardItem *depth2_item51 = new QStandardItem(QString("51:KeyguardTime=10s"));
+ QStandardItem *depth2_item52 = new QStandardItem(QString("52:KeyguardTime=30s"));
+ QStandardItem *depth2_item53 = new QStandardItem(QString("53:KeyguardT=10+60s"));
+ QStandardItem *depth2_item54 = new QStandardItem(QString("54:AutoLockTime=0m"));
+ QStandardItem *depth2_item55 = new QStandardItem(QString("55:AutoLockTime=1m"));
+ QStandardItem *depth2_item56 = new QStandardItem(QString("56:AutoLockTime=2m"));
+ QStandardItem *depth2_item57 = new QStandardItem(QString("57:AutoLockT=65535m"));
+ QStandardItem *depth2_item58 = new QStandardItem(QString("58:read"));
+ QStandardItem *depth2_item59 = new QStandardItem(QString("59:xxx"));
+
+ depth1_parent5->setChild(0, 0, depth2_item50);
+ depth1_parent5->setChild(1, 0, depth2_item51);
+ depth1_parent5->setChild(2, 0, depth2_item52);
+ depth1_parent5->setChild(3, 0, depth2_item53);
+ depth1_parent5->setChild(4, 0, depth2_item54);
+ depth1_parent5->setChild(5, 0, depth2_item55);
+ depth1_parent5->setChild(6, 0, depth2_item56);
+ depth1_parent5->setChild(7, 0, depth2_item57);
+ depth1_parent5->setChild(8, 0, depth2_item58);
+ depth1_parent5->setChild(9, 0, depth2_item59);
+
+ RDebug::Printf( "%s %s (%u) Other depth2-6=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+ QStandardItem *depth2_item60 = new QStandardItem(QString("60:Wait30+Cancel_P&S"));
+ QStandardItem *depth2_item61 = new QStandardItem(QString("61:Cancel_P&S"));
+ QStandardItem *depth2_item62 = new QStandardItem(QString("62:TSecUi::InitializeLibL"));
+ QStandardItem *depth2_item63 = new QStandardItem(QString("63:TSecUi::UnInitializeLib"));
+ QStandardItem *depth2_item64 = new QStandardItem(QString("64:Wait30+CancelSecCodeQuery"));
+ QStandardItem *depth2_item65 = new QStandardItem(QString("65:CancelSecCodeQuery"));
+ QStandardItem *depth2_item66 = new QStandardItem(QString("66:EStdKeyDeviceF"));
+ QStandardItem *depth2_item67 = new QStandardItem(QString("67:EKeyDeviceF"));
+ QStandardItem *depth2_item68 = new QStandardItem(QString("68:EKeyBell"));
+ QStandardItem *depth2_item69 = new QStandardItem(QString("69:Stop-iPeriodicExt"));
+
+ depth1_parent6->setChild(0, 0, depth2_item60);
+ depth1_parent6->setChild(1, 0, depth2_item61);
+ depth1_parent6->setChild(2, 0, depth2_item62);
+ depth1_parent6->setChild(3, 0, depth2_item63);
+ depth1_parent6->setChild(4, 0, depth2_item64);
+ depth1_parent6->setChild(5, 0, depth2_item65);
+ depth1_parent6->setChild(6, 0, depth2_item66);
+ depth1_parent6->setChild(7, 0, depth2_item67);
+ depth1_parent6->setChild(8, 0, depth2_item68);
+ depth1_parent6->setChild(9, 0, depth2_item69);
+
+ RDebug::Printf( "%s %s (%u) KeyLockPolicy depth2-7=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+ QStandardItem *depth2_item70 = new QStandardItem(QString("70:KeyguardAllowed?"));
+ QStandardItem *depth2_item71 = new QStandardItem(QString("71:EnableKeyguardFeature"));
+ QStandardItem *depth2_item72 = new QStandardItem(QString("72:DisableKeyguardFeature"));
+ QStandardItem *depth2_item73 = new QStandardItem(QString("73:ShowErrorCodes"));
+ QStandardItem *depth2_item74 = new QStandardItem(QString("74:Expiration+Consecutive"));
+ QStandardItem *depth2_item75 = new QStandardItem(QString("75:Minlength+SpecificStrings"));
+ QStandardItem *depth2_item76 = new QStandardItem(QString("76:Chars_Numbers"));
+ QStandardItem *depth2_item77 = new QStandardItem(QString("77:xxx"));
+ QStandardItem *depth2_item78 = new QStandardItem(QString("78:xxx"));
+ QStandardItem *depth2_item79 = new QStandardItem(QString("79:xxx"));
+
+ depth1_parent7->setChild(0, 0, depth2_item70);
+ depth1_parent7->setChild(1, 0, depth2_item71);
+ depth1_parent7->setChild(2, 0, depth2_item72);
+ depth1_parent7->setChild(3, 0, depth2_item73);
+ depth1_parent7->setChild(4, 0, depth2_item74);
+ depth1_parent7->setChild(5, 0, depth2_item75);
+ depth1_parent7->setChild(6, 0, depth2_item76);
+ depth1_parent7->setChild(7, 0, depth2_item77);
+ depth1_parent7->setChild(8, 0, depth2_item78);
+ depth1_parent7->setChild(9, 0, depth2_item79);
+
+ RDebug::Printf( "%s %s (%u) Schedule depth2-8=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+ QStandardItem *depth2_item80 = new QStandardItem(QString("80:xxxx"));
+ QStandardItem *depth2_item81 = new QStandardItem(QString("81:xxx"));
+ QStandardItem *depth2_item82 = new QStandardItem(QString("82:xxx"));
+ QStandardItem *depth2_item83 = new QStandardItem(QString("83:xxx"));
+ QStandardItem *depth2_item84 = new QStandardItem(QString("84:xxx"));
+ QStandardItem *depth2_item85 = new QStandardItem(QString("85:xxx"));
+ QStandardItem *depth2_item86 = new QStandardItem(QString("86:xxx"));
+ QStandardItem *depth2_item87 = new QStandardItem(QString("87:xxx"));
+ QStandardItem *depth2_item88 = new QStandardItem(QString("88:xxx"));
+ QStandardItem *depth2_item89 = new QStandardItem(QString("89:xxx"));
+
+ depth1_parent8->setChild(0, 0, depth2_item80);
+ depth1_parent8->setChild(1, 0, depth2_item81);
+ depth1_parent8->setChild(2, 0, depth2_item82);
+ depth1_parent8->setChild(3, 0, depth2_item83);
+ depth1_parent8->setChild(4, 0, depth2_item84);
+ depth1_parent8->setChild(5, 0, depth2_item85);
+ depth1_parent8->setChild(6, 0, depth2_item86);
+ depth1_parent8->setChild(7, 0, depth2_item87);
+ depth1_parent8->setChild(8, 0, depth2_item88);
+ depth1_parent8->setChild(9, 0, depth2_item89);
+
+ RDebug::Printf( "%s %s (%u) Settings2 depth2-9=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+ QStandardItem *depth2_item90 = new QStandardItem(QString("90:ChangeSimSecurityL"));
+ QStandardItem *depth2_item91 = new QStandardItem(QString("91:ChangePinRequestL"));
+ QStandardItem *depth2_item92 = new QStandardItem(QString("92:ChangeUPinRequestL"));
+ QStandardItem *depth2_item93 = new QStandardItem(QString("93:SwitchPinCodesL"));
+ QStandardItem *depth2_item94 = new QStandardItem(QString("94:ChangePin2L"));
+ QStandardItem *depth2_item95 = new QStandardItem(QString("95:SwitchPinCodesL"));
+ QStandardItem *depth2_item96 = new QStandardItem(QString("96:ChangeRemoteLockStatusL"));
+ QStandardItem *depth2_item97 = new QStandardItem(QString("97:ChangeRLStat-0"));
+ QStandardItem *depth2_item98 = new QStandardItem(QString("98:ChangeRLStat-Off"));
+ QStandardItem *depth2_item99 = new QStandardItem(QString("99:xxx"));
+
+ depth1_parent9->setChild(0, 0, depth2_item90);
+ depth1_parent9->setChild(1, 0, depth2_item91);
+ depth1_parent9->setChild(2, 0, depth2_item92);
+ depth1_parent9->setChild(3, 0, depth2_item93);
+ depth1_parent9->setChild(4, 0, depth2_item94);
+ depth1_parent9->setChild(5, 0, depth2_item95);
+ depth1_parent9->setChild(6, 0, depth2_item96);
+ depth1_parent9->setChild(7, 0, depth2_item97);
+ depth1_parent9->setChild(8, 0, depth2_item98);
+ depth1_parent9->setChild(9, 0, depth2_item99);
+
+ return model;
+}
+
+QStandardItemModel *ModelFactory::populateTreeModelSimpleOfSimplest()
+{
+ QStandardItemModel* model = new QStandardItemModel();
+
+ // =====================================================================
+ // Depth 1
+ // =====================================================================
+ QStandardItem *depth1_item0 = new QStandardItem(QString("Leaf 0"));
+ //QStandardItem *depth1_item1 = new QStandardItem(QString("Leaf A-1"));
+ QStandardItem *depth1_parent0 = new QStandardItem(QString("Node A"));
+ QStandardItem *depth1_parent1 = new QStandardItem(QString("Node B"));
+
+ depth1_parent0->setData(Hb::ParentItem, Hb::ItemTypeRole);
+ depth1_parent1->setData(Hb::ParentItem, Hb::ItemTypeRole);
+
+ model->setItem(0,0,depth1_item0);
+ model->setItem(1,0,depth1_parent0);
+ model->setItem(2,0,depth1_parent1);
+
+ // =====================================================================
+ // Depth 2
+ // =====================================================================
+ QStandardItem *depth2_item0 = new QStandardItem(QString("Leaf A-1"));
+ QStandardItem *depth2_item1 = new QStandardItem(QString("Leaf A-2"));
+ QStandardItem *depth2_item2 = new QStandardItem(QString("Leaf B-1"));
+ /*QStandardItem *depth2_parent0 = new QStandardItem(QString("Node B-0"));
+ QStandardItem *depth2_parent1 = new QStandardItem(QString("Node B-1"));
+ QStandardItem *depth2_parent2 = new QStandardItem(QString("Node B-2"));
+
+ depth2_parent0->setData(Hb::ParentItem, Hb::ItemTypeRole);
+ depth2_parent1->setData(Hb::ParentItem, Hb::ItemTypeRole);
+ depth2_parent2->setData(Hb::ParentItem, Hb::ItemTypeRole);
+*/
+ depth1_parent0->setChild(0,0,depth2_item0);
+ depth1_parent0->setChild(1, 0, depth2_item1);
+ depth1_parent1->setChild(0, 0, depth2_item2);
+/* depth1_parent1->setChild(0, 0, depth2_parent1);
+ depth1_parent1->setChild(1, 0, depth2_parent2);
+
+ // =====================================================================
+ // Depth 3
+ // =====================================================================
+ QStandardItem *depth3_item0 = new QStandardItem(QString("Leaf C-0"));
+ QStandardItem *depth3_item1 = new QStandardItem(QString("Leaf C-1"));
+ QStandardItem *depth3_item2 = new QStandardItem(QString("Leaf C-2"));
+ QStandardItem *depth3_item3 = new QStandardItem(QString("Leaf C-3"));
+ QStandardItem *depth3_item4 = new QStandardItem(QString("Leaf C-4"));
+ QStandardItem *depth3_item5 = new QStandardItem(QString("Leaf C-5"));
+
+ depth2_parent0->setChild(0, 0, depth3_item0);
+ depth2_parent0->setChild(1, 0, depth3_item1);
+ depth2_parent1->setChild(0, 0, depth3_item2);
+ depth2_parent2->setChild(0, 0, depth3_item3);
+ depth2_parent2->setChild(1, 0, depth3_item4);
+ depth2_parent2->setChild(2, 0, depth3_item5);
+*/
+ return model;
+}
+
+QStandardItemModel *ModelFactory::populateGreenOddBrownEvenModel()
+{
+ QStandardItemModel* model = new QStandardItemModel();
+
+ // =====================================================================
+ // Depth 1
+ // =====================================================================
+
+ QStandardItem *depth1_item0 = new QStandardItem();
+ QStringList data;
+ data << "Odd numbered items are green" << "Even numbered items are brown";
+ depth1_item0->setData(QVariant(data), Qt::DisplayRole);
+
+ QStandardItem *depth1_item1 = new QStandardItem(QString("1"));
+ QStandardItem *depth1_item2 = new QStandardItem(QString("Item 2"));
+ QStandardItem *depth1_item3 = new QStandardItem(QString("Item 3"));
+ QStandardItem *depth1_item4 = new QStandardItem(QString("4"));
+ QStandardItem *depth1_item5 = new QStandardItem(QString("5"));
+ QStandardItem *depth1_parent0 = new QStandardItem(QString("Parent 1"));
+ QStandardItem *depth1_parent1 = new QStandardItem(QString("Parent 2"));
+
+ depth1_parent0->setData(Hb::ParentItem, Hb::ItemTypeRole);
+ depth1_parent1->setData(Hb::ParentItem, Hb::ItemTypeRole);
+
+ model->setItem(0,0,depth1_item0);
+ model->setItem(1,0,depth1_item1);
+ model->setItem(2,0,depth1_item2);
+ model->setItem(3,0,depth1_item3);
+ model->setItem(4,0,depth1_parent0);
+ model->setItem(5,0,depth1_parent1);
+ model->setItem(6,0,depth1_item4);
+ model->setItem(7,0,depth1_item5);
+
+ // =====================================================================
+ // Depth 2
+ // =====================================================================
+ QStandardItem *depth2_item0 = new QStandardItem(QString("11"));
+ QStandardItem *depth2_item1 = new QStandardItem(QString("12"));
+ QStandardItem *depth2_item2 = new QStandardItem(QString("Item 13"));
+ QStandardItem *depth2_item4 = new QStandardItem(QString("Item 14"));
+ QStandardItem *depth2_item5 = new QStandardItem(QString("15"));
+ QStandardItem *depth2_item6 = new QStandardItem(QString("16"));
+ QStandardItem *depth2_item7 = new QStandardItem(QString("17"));
+ QStandardItem *depth2_parent0 = new QStandardItem(QString("Parent 11"));
+
+ depth2_parent0->setData(Hb::ParentItem, Hb::ItemTypeRole);
+
+ depth1_parent0->setChild(0, 0, depth2_item0);
+ depth1_parent0->setChild(1, 0, depth2_item1);
+ depth1_parent0->setChild(2, 0, depth2_item2);
+ depth1_parent0->setChild(3, 0, depth2_parent0);
+
+ depth1_parent1->setChild(0, 0, depth2_item4);
+ depth1_parent1->setChild(1, 0, depth2_item5);
+ depth1_parent1->setChild(2, 0, depth2_item6);
+ depth1_parent1->setChild(3, 0, depth2_item7);
+
+ // =====================================================================
+ // Depth 3
+ // =====================================================================
+ QStandardItem *depth3_item0 = new QStandardItem(QString("21"));
+ QStandardItem *depth3_item1 = new QStandardItem(QString("22"));
+ QStandardItem *depth3_item2 = new QStandardItem(QString("Item 23"));
+ QStandardItem *depth3_item3 = new QStandardItem(QString("Item 24"));
+ QStandardItem *depth3_item4 = new QStandardItem(QString("25"));
+ QStandardItem *depth3_item5 = new QStandardItem(QString("26"));
+
+ depth2_parent0->setChild(0, 0, depth3_item0);
+ depth2_parent0->setChild(1, 0, depth3_item1);
+ depth2_parent0->setChild(2, 0, depth3_item2);
+ depth2_parent0->setChild(3, 0, depth3_item3);
+ depth2_parent0->setChild(4, 0, depth3_item4);
+ depth2_parent0->setChild(5, 0, depth3_item5);
+
+ return model;
+}
+
+
+QStandardItemModel *ModelFactory::populateTreeModelDeep()
+{
+ QStandardItemModel* model = new QStandardItemModel();
+
+ QStandardItem *root = new QStandardItem;
+ model->setItem(0,0,root);
+
+ QStandardItem *parent = root;
+ const int maxDeep = 50;
+ for (int current = 1; current <= maxDeep; ++current) {
+ parent->setData(Hb::ParentItem, Hb::ItemTypeRole);
+ parent->setText(QString("Parent %0").arg(current));
+
+ for (int current2 = 0; current2 < 5; ++current2) {
+ QStandardItem *item = new QStandardItem;
+ item->setText(QString("Item %0").arg(current2));
+ parent->setChild(current2, 0, item);
+ }
+ for (int current2 = 5; current2 < 10; ++current2) {
+ QStandardItem *item = new QStandardItem;
+ item->setText(QString("Item %0").arg(current2));
+ parent->setChild(current2, 0, item);
+
+ QStandardItem *itemPrevious = item;
+ for (int current3 = current+1; current3 < maxDeep - (current2-5)*maxDeep/5; ++current3) {
+ itemPrevious->setData(Hb::ParentItem, Hb::ItemTypeRole);
+ QStandardItem *item2 = new QStandardItem;
+ item2->setText(QString("Folder %0").arg(current3));
+ itemPrevious->setChild(0, 0, item2);
+
+ QStandardItem *itemTemp = new QStandardItem;
+ itemTemp->setText(QString("Folder %0 item").arg(current3));
+ itemPrevious->setChild(1, 0, itemTemp);
+
+ itemPrevious = item2;
+ }
+ itemPrevious->setData(Hb::ParentItem, Hb::ItemTypeRole);
+ QStandardItem *itemTemp = new QStandardItem;
+ itemTemp->setText(QString("Folder 9 item"));
+ itemPrevious->setChild(0, 0, itemTemp);
+ }
+
+ if(current < maxDeep) {
+ QStandardItem *item = new QStandardItem;
+ parent->setChild(10, 0, item);
+ parent = item;
+ }
+ }
+ return model;
+}
+
+QStandardItemModel *ModelFactory::populateTreeModelFlat()
+{
+ QStandardItemModel* model = new QStandardItemModel();
+ for (int i = 0; i < 1000; ++i) {
+ QStandardItem* item = new QStandardItem(QString("Item number %1").arg(i));
+ model->appendRow(item);
+ }
+ return model;
+}
+
+QStandardItemModel *ModelFactory::populateTreeModelMixed()
+{
+ QStandardItemModel* model = new QStandardItemModel();
+
+ QStandardItem *parent = model->invisibleRootItem();
+ insertMixedItems(parent);
+
+ for (int current = 1; current <= 10; ++current) {
+ QStandardItem *newParent = new QStandardItem;
+ parent->appendRow(newParent);
+ parent = newParent;
+
+ parent->setData(Hb::ParentItem, Hb::ItemTypeRole);
+ parent->setText(QString("Parent %0").arg(current));
+
+ insertMixedItems(parent);
+ }
+
+ return model;
+}
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/SecUiTestQt/modelfactory.h Wed Oct 20 14:51:23 2010 +0300
@@ -0,0 +1,20 @@
+#ifndef MODELFACTORY_H
+#define MODELFACTORY_H
+
+class QStandardItemModel;
+
+class ModelFactory
+{
+public:
+ static QStandardItemModel *populateTreeModelDefault();
+ static QStandardItemModel *populateTreeModelSimple();
+ // for debugging:
+ static QStandardItemModel *populateTreeModelSimpleOfSimplest();
+ static QStandardItemModel *populateTreeModelDeep();
+ static QStandardItemModel *populateTreeModelFlat();
+ static QStandardItemModel *populateTreeModelMail();
+ static QStandardItemModel *populateTreeModelMixed();
+ static QStandardItemModel *populateGreenOddBrownEvenModel();
+};
+
+#endif // MODELFACTORY_H
Binary file securitydialogs/SecUi/SecUiTestQt/resources/empty.png has changed
Binary file securitydialogs/SecUi/SecUiTestQt/resources/generic.png has changed
Binary file securitydialogs/SecUi/SecUiTestQt/resources/list1.png has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/SecUiTestQt/resources/qtg_fr_list_new_item_b.svg Wed Oct 20 14:51:23 2010 +0300
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+ <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+ x="0px" y="0px" width="10px" height="10px" viewBox="0 0 10 10" enable-background="new 0 0 10 10" xml:space="preserve">
+<defs>
+</defs>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="3.4995" y1="-62.0029" x2="3.4995" y2="10.0162">
+ <stop offset="0" style="stop-color:#66B8CC"/>
+ <stop offset="0.9" style="stop-color:#3F89A9"/>
+ <stop offset="0.9" style="stop-color:#3880A4"/>
+ <stop offset="1" style="stop-color:#3278A0"/>
+</linearGradient>
+<rect fill="url(#SVGID_1_)" width="7" height="10"/>
+<polygon opacity="0.2" points="6,0 6,9 1,9 1,0 0,0 0,10 7,10 7,0 "/>
+<polygon opacity="0.1" fill="#FFFFFF" points="6,9 6,0 5,0 5,8 2,8 2,0 1,0 1,9 "/>
+<rect x="7" opacity="0.1" width="3" height="10"/>
+<rect x="7" opacity="0.1" width="2" height="10"/>
+<rect x="7" opacity="0.1" width="1" height="10"/>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/SecUiTestQt/resources/qtg_fr_list_new_item_c.svg Wed Oct 20 14:51:23 2010 +0300
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+ <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+ x="0px" y="0px" width="10px" height="10px" viewBox="0 0 10 10" enable-background="new 0 0 10 10" xml:space="preserve">
+<defs>
+</defs>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="3.4995" y1="-1.9233" x2="3.4995" y2="11.9265">
+ <stop offset="0" style="stop-color:#66B8CC"/>
+ <stop offset="0.9" style="stop-color:#3F89A9"/>
+ <stop offset="0.9" style="stop-color:#3880A4"/>
+ <stop offset="1" style="stop-color:#3278A0"/>
+</linearGradient>
+<rect fill="url(#SVGID_1_)" width="7" height="10"/>
+<rect x="6" opacity="0.2" width="1" height="10"/>
+<rect opacity="0.2" width="1" height="10"/>
+<rect x="5" opacity="0.1" fill="#FFFFFF" width="1" height="10"/>
+<rect x="1" opacity="0.1" fill="#FFFFFF" width="1" height="10"/>
+<rect x="7" opacity="0.1" width="3" height="10"/>
+<rect x="7" opacity="0.1" width="2" height="10"/>
+<rect x="7" opacity="0.1" width="1" height="10"/>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/SecUiTestQt/resources/qtg_fr_list_new_item_t.svg Wed Oct 20 14:51:23 2010 +0300
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+ <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
+]>
+<svg version="1.1"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+ x="0px" y="0px" width="10px" height="10px" viewBox="0 0 10 10" enable-background="new 0 0 10 10" xml:space="preserve">
+<defs>
+</defs>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="3.4995" y1="0" x2="3.4995" y2="72.0191">
+ <stop offset="0" style="stop-color:#66B8CC"/>
+ <stop offset="0.9" style="stop-color:#3F89A9"/>
+ <stop offset="0.9" style="stop-color:#3880A4"/>
+ <stop offset="1" style="stop-color:#3278A0"/>
+</linearGradient>
+<rect fill="url(#SVGID_1_)" width="7" height="10"/>
+<polygon opacity="0.2" points="0,0 0,10 1,10 1,1 6,1 6,10 7,10 7,0 "/>
+<rect x="1" y="1" opacity="0.2" fill="#FFFFFF" width="5" height="3"/>
+<polygon opacity="0.1" fill="#FFFFFF" points="1,1 1,10 2,10 2,2 5,2 5,10 6,10 6,1 "/>
+<rect x="7" opacity="0.1" width="3" height="10"/>
+<rect x="7" opacity="0.1" width="2" height="10"/>
+<rect x="7" opacity="0.1" width="1" height="10"/>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/SecUiTestQt/resources/qtg_nmailui_minus_sign.svg Wed Oct 20 14:51:23 2010 +0300
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="13px" height="13px" viewBox="0 0 13 13" enable-background="new 0 0 13 13" xml:space="preserve">
+<path opacity="0.7" d="M11.001,0.999H2c-0.552,0-1,0.448-1,1V11c0,0.553,0.448,1,1,1h9.001c0.552,0,1-0.447,1-1V1.999
+ C12.001,1.447,11.553,0.999,11.001,0.999z"/>
+<rect fill="none" width="13" height="13"/>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="6.4995" y1="3.9287" x2="6.4995" y2="21.9297">
+ <stop offset="0" style="stop-color:#FFFFFF"/>
+ <stop offset="1" style="stop-color:#B2B2B2"/>
+</linearGradient>
+<rect x="2" y="2" fill="url(#SVGID_1_)" width="9" height="9"/>
+<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="6.4995" y1="6.0229" x2="6.4995" y2="9.8705">
+ <stop offset="0" style="stop-color:#3687FF"/>
+ <stop offset="1" style="stop-color:#051F7D"/>
+</linearGradient>
+<rect x="3.5" y="5.75" fill="url(#SVGID_2_)" width="6" height="1.5"/>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/SecUiTestQt/resources/qtg_nmailui_plus_sign.svg Wed Oct 20 14:51:23 2010 +0300
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="13px" height="13px" viewBox="0 0 13 13" enable-background="new 0 0 13 13" xml:space="preserve">
+<path opacity="0.7" d="M11.001,0.999H2c-0.552,0-1,0.448-1,1v9.002c0,0.552,0.448,1,1,1h9.001c0.552,0,1-0.448,1-1V1.999
+ C12.001,1.447,11.553,0.999,11.001,0.999z"/>
+<rect fill="none" width="13" height="13"/>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="6.4995" y1="3.9287" x2="6.4995" y2="21.9297">
+ <stop offset="0" style="stop-color:#FFFFFF"/>
+ <stop offset="1" style="stop-color:#B2B2B2"/>
+</linearGradient>
+<rect x="2" y="2" fill="url(#SVGID_1_)" width="9" height="9"/>
+<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="6.4995" y1="4.5908" x2="6.4995" y2="19.9773">
+ <stop offset="0" style="stop-color:#3687FF"/>
+ <stop offset="1" style="stop-color:#051F7D"/>
+</linearGradient>
+<polygon fill="url(#SVGID_2_)" points="9.5,5.75 7.25,5.75 7.25,3.5 5.75,3.5 5.75,5.75 3.5,5.75 3.5,7.25 5.75,7.25 5.75,9.5
+ 7.25,9.5 7.25,7.25 9.5,7.25 "/>
+</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/SecUiTestQt/rom/SecUiTestQt.iby Wed Oct 20 14:51:23 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2009 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:
+*
+*/
+#ifndef __SECUITESTQT_IBY__
+#define __SECUITESTQT_IBY__
+
+#include <data_caging_paths_for_iby.hrh>
+
+#define HB_UPGRADABLE_APP_REG_RSC(NAME) data=DATAZ_\PRIVATE\10003A3F\IMPORT\APPS\ ## NAME ## _reg.rsc Private\10003a3f\import\apps\ ## NAME ## _reg.rsc
+#define HB_PLUGIN_STUB(NAME, SUBDIR) data=\epoc32\data\z\resource\plugins\##SUBDIR##\##NAME##.qtplugin RESOURCE_FILES_DIR\plugins\##SUBDIR##\##NAME##.qtplugin
+
+file=ABI_DIR\BUILD_DIR\SecUiTestQt.exe SHARED_LIB_DIR\SecUiTestQt.exe
+HB_UPGRADABLE_APP_REG_RSC(SecUiTestQt)
+S60_APP_RESOURCE(SecUiTestQt)
+
+#endif // __SECUITESTQT_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/SecUiTestQt/sceneitemlisthelper.h Wed Oct 20 14:51:23 2010 +0300
@@ -0,0 +1,57 @@
+//
+// Little helper class for populating lists with Hb::SceneItems
+//
+
+#ifndef SCENEITEMLISTHELPER_H
+#define SCENEITEMLISTHELPER_H
+
+#include <hbnamespace.h>
+
+Q_DECLARE_METATYPE(Hb::SceneItem);
+
+static struct { Hb::SceneItem sceneItem; QString name; } listHelperSceneItems[] =
+ {
+ {Hb::NoItem, "NoItem"},
+ {Hb::ToolBarItem, "ToolBarItem"},
+ {Hb::AllItems, "AllItems"},
+ };
+
+
+//
+// SceneItemListHelper
+//
+class SceneItemListHelper
+{
+public:
+
+ static int sceneItemStringsCount(){
+ return sizeof(listHelperSceneItems) / sizeof(listHelperSceneItems[0]);
+ }
+
+ static void initListWidget(QListWidget *listWidget){
+ for(int i = 0; i < SceneItemListHelper::sceneItemStringsCount(); i++ ) {
+ // create list widget item and store the sceneItem with the sceneItem name
+ QListWidgetItem* item = new QListWidgetItem(listHelperSceneItems[i].name);
+ item->setData(Qt::UserRole,QVariant::fromValue(listHelperSceneItems[i].sceneItem));
+ item->setSelected(
+ listHelperSceneItems[i].sceneItem == Hb::NoItem ?
+ true : false);
+
+ listWidget->addItem (item);
+ }
+ }
+
+ static Hb::SceneItems sceneItems(const QListWidget *listwidget){
+ Hb::SceneItems sceneItems = Hb::NoItem;
+
+ for (int i = 0; i < listwidget->count(); i++) {
+ if (listwidget->item(i)->isSelected()) {
+ sceneItems |= listwidget->item(i)->data(Qt::UserRole).value<Hb::SceneItem>();
+ }
+ }
+ return sceneItems;
+ }
+};
+
+#endif //SCENEITEMLISTHELPER_H
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/SecUiTestQt/shared.qrc Wed Oct 20 14:51:23 2010 +0300
@@ -0,0 +1,8 @@
+<!DOCTYPE RCC><RCC version="1.0">
+
+<qresource prefix="/demo">
+ <file alias="empty" >resources/empty.png</file>
+ <file alias="generic" >resources/generic.png</file>
+ <file alias="list1" >resources/list1.png</file>
+</qresource>
+</RCC>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/SecUiTestQt/treedataform.cpp Wed Oct 20 14:51:23 2010 +0300
@@ -0,0 +1,184 @@
+/*
+* ====================================================
+* Name : treedataform.cpp
+* Part of : fute/SecUiTestQt
+* Description : Data form for SecUiTestQt
+* Version : %version: 1 %
+*
+* Copyright (c) 2009 Nokia. All rights reserved.
+* This material, including documentation and any related computer
+* programs, is protected by copyright controlled by Nokia. All
+* rights are reserved. Copying, including reproducing, storing,
+* adapting or translating, any or all of this material requires the
+* prior written consent of Nokia. This material also contains
+* confidential information which may not be disclosed to others
+* without the prior written consent of Nokia.
+* ====================================================
+*/
+
+#include "treedataform.h"
+#include "dirviewitem.h"
+#include <hbtreeview.h>
+#include <hbtreeviewitem.h>
+#include <hbdataformmodel.h>
+
+const QStringList KDepths = ( QStringList() << "1" << "3" << "5" << "all" );
+const QStringList ViewItems = (QStringList() << "Default" << "DirItem");
+
+// ======== MEMBER FUNCTIONS ========
+
+TreeDataForm::TreeDataForm( HbAbstractItemView &view,
+ QGraphicsItem *parent):
+ ViewFuteDataForm(view, parent),
+ depth(1),
+ indentation(-1),
+ dirViewItemEnabled(false)
+{
+}
+
+TreeDataForm::~TreeDataForm()
+{
+}
+
+void TreeDataForm::initialise()
+{
+ depth = 1;
+ dirViewItemEnabled = false;
+ for (int i=0; i< TreeCustomLast; i++) {
+ customTreeSettingsIndexes[i] = -1;
+ }
+ ViewFuteDataForm::initialise();
+}
+
+int TreeDataForm::populateCustomSettingsItem(int previousItem)
+{
+ HbTreeView *tree = qobject_cast<HbTreeView*>(view);
+ HbTreeViewItem *prototype = qobject_cast<HbTreeViewItem *>(tree->itemPrototypes().first());
+
+ if (tree) {
+ if (previousItem == ViewFuteDataForm::ScrollHint) {
+ customTreeSettingsIndexes[Depth] = counter;
+ HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+ HbDataFormModelItem::RadioButtonListItem, QString("Depth of visible tree:"));
+ item->setContentWidgetData("items", KDepths);
+ if (depth == 1) {
+ item->setContentWidgetData("selected", 0);
+ } else if (depth == 3) {
+ item->setContentWidgetData("selected", 1);
+ } else if (depth == 5) {
+ item->setContentWidgetData("selected", 2);
+ } else {
+ item->setContentWidgetData("selected", 3);
+ }
+
+ customTreeSettingsIndexes[Indentation] = counter+1;
+ item = settingsFormModel->appendDataFormItem(
+ HbDataFormModelItem::TextItem, QString("Indentation: (negative sets default)"));
+ QString indentationString;
+ indentationString.setNum(indentation);
+ item->setContentWidgetData("text", indentationString);
+
+ customTreeSettingsIndexes[ItemUserExpandable] = counter + 2;
+ item = settingsFormModel->appendDataFormItem(
+ HbDataFormModelItem::ToggleValueItem, QString("Items user expandable:"));
+ if (prototype->isUserExpandable()) {
+ item->setContentWidgetData("text", "On");
+ item->setContentWidgetData("additionalText", "Off");
+ } else {
+ item->setContentWidgetData("text", "Off");
+ item->setContentWidgetData("additionalText", "On");
+ }
+ return 3;
+ } else if ( previousItem == ViewFuteDataForm::FrictionEnabled
+ && dirViewItemEnabled) {
+ customTreeSettingsIndexes[ViewItemType] = counter;
+ HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+ HbDataFormModelItem::RadioButtonListItem, QString("View item type:"));
+ item->setContentWidgetData("items", ViewItems);
+ if (qobject_cast<DirViewItem*>(tree->itemPrototypes().first())) {
+ item->setContentWidgetData("selected", 1);
+ } else {
+ item->setContentWidgetData("selected", 0);
+ }
+ return 1;
+ }
+ }
+ return 0;
+}
+
+void TreeDataForm::resolveSettingsResults()
+{
+ HbTreeView *tree = qobject_cast<HbTreeView*>(view);
+ HbTreeViewItem *prototype = qobject_cast<HbTreeViewItem *>(tree->itemPrototypes().first());
+
+ if (tree) {
+ if (dirViewItemEnabled) {
+ if ( static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(customTreeSettingsIndexes[ViewItemType],0)))->
+ dataItemContentWidget()->property("selected").toInt() == 1) {
+ if (!qgraphicsitem_cast<DirViewItem*>(tree->itemPrototypes().first())) {
+ DirViewItem *prototype = new DirViewItem;
+ tree->setItemPrototype(prototype);
+ tree->setLayoutName("treeviewitem_dir_button");
+ }
+ }
+ else {
+ HbTreeViewItem *prototype = new HbTreeViewItem;
+ tree->setItemPrototype(prototype);
+ tree->setLayoutName("default");
+ }
+ }
+ QString indentationString = static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(
+ customTreeSettingsIndexes[Indentation],0)))->dataItemContentWidget()->property("text").toString();
+ bool ok = false;
+ int newIndentation = indentationString.toInt(&ok);
+ if (ok) {
+ indentation = newIndentation;
+ }
+ tree->setIndentation(indentation);
+
+ if (prototype) {
+ if (static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(
+ customTreeSettingsIndexes[ItemUserExpandable],0)))->dataItemContentWidget()->property("text").toString() == "On") {
+ prototype->setUserExpandable(true);
+ } else {
+ prototype->setUserExpandable(false);
+ }
+ }
+ }
+ ViewFuteDataForm::resolveSettingsResults();
+}
+
+
+
+void TreeDataForm::setIndentation(int indentation)
+{
+ this->indentation = indentation;
+}
+
+
+void TreeDataForm::setDepth(int depth)
+{
+ this->depth = depth;
+}
+
+void TreeDataForm::setDirViewItemEnabled(bool enable)
+{
+ dirViewItemEnabled = enable;
+}
+
+int TreeDataForm::getDepth() const
+{
+ int selected = static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(customTreeSettingsIndexes[Depth],0)))->
+ dataItemContentWidget()->property("selected").toInt();
+ if ( selected >= 0
+ && selected < KDepths.count()) {
+ if (KDepths[selected] == KDepths[KDepths.count()-1]) {
+ return 999;
+ } else {
+ return KDepths[selected].toInt();
+ }
+ } else {
+ return depth;
+ }
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/SecUiTestQt/treedataform.h Wed Oct 20 14:51:23 2010 +0300
@@ -0,0 +1,63 @@
+/*
+* ====================================================
+* Name : treedataform.h
+* Part of : fute/SecUiTestQt
+* Description : Provides DataForm for Tree
+* Version : %version: 1 %
+*
+* Copyright (c) 2009 Nokia. All rights reserved.
+* This material, including documentation and any related computer
+* programs, is protected by copyright controlled by Nokia. All
+* rights are reserved. Copying, including reproducing, storing,
+* adapting or translating, any or all of this material requires the
+* prior written consent of Nokia. This material also contains
+* confidential information which may not be disclosed to others
+* without the prior written consent of Nokia.
+* ====================================================
+*/
+
+#ifndef TREEDATAFORM_H
+#define TREEDATAFORM_H
+
+#include "viewfutedataform.h"
+#include <QStringList>
+
+class TreeDataForm : public ViewFuteDataForm
+{
+ Q_OBJECT
+
+public:
+
+ enum CustomIndex {
+ ViewItemType = ViewFuteDataForm::SettingsIndexLast+1,
+ Depth,
+ Indentation,
+ ItemUserExpandable,
+ TreeCustomLast
+ };
+
+ explicit TreeDataForm(HbAbstractItemView &view,
+ QGraphicsItem *parent = 0);
+ virtual ~TreeDataForm();
+
+ virtual int populateCustomSettingsItem(int previousItem);
+ virtual void initialise();
+
+ virtual void resolveSettingsResults();
+ void setDirViewItemEnabled(bool enable);
+
+ void setDepth(int depth);
+ int getDepth() const;
+
+ void setIndentation(int indentation);
+
+ void setItemUserExpandable(bool value);
+
+private:
+ int customTreeSettingsIndexes[TreeCustomLast];
+ int depth;
+ int indentation;
+ bool dirViewItemEnabled;
+};
+
+#endif // TREEDATAFORM_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/SecUiTestQt/viewfutedataform.cpp Wed Oct 20 14:51:23 2010 +0300
@@ -0,0 +1,1390 @@
+/*
+* ====================================================
+* Name : viewfutedataform.cpp
+* Part of : fute/listdemo
+* Description : Settings for listdemo, treedemo, griddemo
+* Version : %version: 1 %
+*
+* Copyright (c) 2009 Nokia. All rights reserved.
+* This material, including documentation and any related computer
+* programs, is protected by copyright controlled by Nokia. All
+* rights are reserved. Copying, including reproducing, storing,
+* adapting or translating, any or all of this material requires the
+* prior written consent of Nokia. This material also contains
+* confidential information which may not be disclosed to others
+* without the prior written consent of Nokia.
+* ====================================================
+*/
+
+#include "viewfutedataform.h"
+#include <hbdataformmodel.h>
+#include <hbabstractviewitem.h>
+#include <hblistviewitem.h>
+#include <hblistview.h>
+#include <hbtreeview.h>
+#include <hbgridview.h>
+#include <hbscrollbar.h>
+#include <hbframebackground.h>
+#include <hbaction.h>
+#include <hbmenu.h>
+#include <hblineedit.h>
+#include <hbinputeditorinterface.h>
+#include <hblistwidgetitem.h>
+#include <hbabstractitemview.h>
+#include <hbindexfeedback.h>
+
+#include <QStandardItem>
+#include <QGraphicsScene>
+#include <QAbstractItemView>
+
+Q_DECLARE_METATYPE(QList<int>)
+
+// Settings
+const QStringList TextStyles = (QStringList() << "Primary" << "Secondary");
+const QStringList CustomWidgets = (QStringList() << "Empty" << "Zoom slider" << "Volume Slider" << "Progress bar" << "Button" << "Text Editor" );
+const QStringList OnOff = (QStringList() << "On" << "Off");
+const QStringList LaunchInPopups = (QStringList() << "Launch into popup" << "Launch into view") ;
+const QStringList SelectionModes = (QStringList() << "Single selection" << "Multiple selection" << "No selection");
+const QStringList ScrollModes = (QStringList() << "Pan" << "Pan with follow on");
+const QStringList GraphicsSizes = (QStringList() << "Small icon" << "Medium icon" << "Large icon" << "Thumbnail" << "Wide thumbnail");
+const QStringList LandscapeModes = (QStringList() << "Normal" << "Stretched");
+const QStringList OrientationTypes = (QStringList() << "Portrait" << "Landscape");
+const QStringList ScrollHints = (QStringList() << "Just visible" << "At top" << "At bottom" << "At center" );
+const QStringList IndexFeedbackPolicies = (QStringList() << "None" << "One Char" << "Three Char" << "String" << "detatch" );
+const QStringList IconLoadPolicies = (QStringList() << "Synchronous" << "Asynchronous when scrolling" << "Asynchronous" );
+
+// Add item
+const QStringList LeftColumnWidgets = (QStringList() << "Empty" << "Icon");
+const QStringList RightColumnWidgets = (QStringList() << "Empty" << "Icon");
+const QStringList ItemBackgrounds = (QStringList() << "None" << "Red" << "Green" << "Blue" << "Bitmap" << "Frame");
+const QStringList ItemTypes = (QStringList() << "Normal" << "Separator");
+const QStringList AnimationList = (QStringList() << "Appear" << "Disappear" << "TouchDown");
+
+const QStringList KConvenienceIcons = (QStringList()
+ << ":/demo/list1"
+);
+
+ViewFuteDataForm::ViewFuteDataForm( HbAbstractItemView &view,
+ QGraphicsItem *parent):
+ HbDataForm(parent),
+ activity(None),
+ view(&view),
+ item(0),
+ mIndexFeedback(0)
+{
+ settingsFormModel = new HbDataFormModel();
+ initialise();
+}
+
+ViewFuteDataForm::~ViewFuteDataForm()
+{
+ delete settingsFormModel;
+}
+
+void ViewFuteDataForm::populateSettings()
+{
+ activity = Settings;
+ settingsFormModel->clear();
+
+ counter += populateCustomSettingsItem(-1);
+
+ //populateLaunchInPopup();
+ //counter += populateCustomSettingsItem(LaunchInPopup);
+
+ populateSelectionMode();
+ counter += populateCustomSettingsItem(SelectionMode);
+
+ populateScrollHint();
+ counter += populateCustomSettingsItem(ScrollHint);
+
+ populateRecycling();
+ counter += populateCustomSettingsItem(Recycling);
+
+ populateArrangeMode();
+ counter += populateCustomSettingsItem(ArrangeMode);
+
+ populateUniformItem();
+ counter += populateCustomSettingsItem(UniformItem);
+
+ populateFrame();
+ counter += populateCustomSettingsItem(Frame);
+
+ populateRichText();
+ counter += populateCustomSettingsItem(RichText);
+
+ populateScrollingStyle();
+ counter += populateCustomSettingsItem(ScrollingStyle);
+
+ populateInteractiveScrollBar();
+ counter += populateCustomSettingsItem(InteractiveScrollBar);
+
+ populateClampingStyle();
+ counter += populateCustomSettingsItem(ClampingStyle);
+
+ populateFrictionEnabled();
+ counter += populateCustomSettingsItem(FrictionEnabled);
+
+ populateGraphicsSize();
+ counter += populateCustomSettingsItem(GraphicsSize);
+
+ populateStretchingStyle();
+ counter += populateCustomSettingsItem(StretchingStyle);
+
+ populateMaximumRowCount();
+ counter += populateCustomSettingsItem(MaximumRowCount);
+
+ populateMinimumRowCount();
+ counter += populateCustomSettingsItem(MinimumRowCount);
+
+ //populateMirroring();
+ //counter += populateCustomSettingsItem(Mirroring);
+
+ populateIndexFeedbackPolicy();
+ counter += populateCustomSettingsItem(IndexFeedbackPolicy);
+/*
+ populateEnabledAnimations();
+ counter += populateCustomSettingsItem(Animations);
+*/
+ populatePixmapCacheEnabled();
+ counter += populateCustomSettingsItem(PixmapCache);
+
+ populateIconLoadPolicy();
+ counter += populateCustomSettingsItem(IconLoadPolicy);
+
+ setModel(settingsFormModel);
+}
+
+void ViewFuteDataForm::setInputData( Activity action,
+ int item,
+ QVariant data)
+{
+ if ( item < 0
+ || action == None
+ || ( ( action == Settings
+ && item >= SettingsIndexLast)
+ || ( action == AddItem
+ && item >= AddItemIndexLast))) {
+ return;
+ }
+
+ if (action == Settings) {
+ settingsData[item] = data;
+ data.isValid();
+ }
+ else if (action == AddItem) {
+ addItemData[item] = data;
+ }
+}
+
+
+int ViewFuteDataForm::populateCustomSettingsItem(int previousItem)
+{
+ Q_UNUSED(previousItem);
+ return 0;
+}
+
+void ViewFuteDataForm::initialise()
+{
+ settingsFormModel->clear();
+ counter=0;
+ for (int i=0; i< SettingsIndexLast; i++) {
+ settingsIndexes[i] = -1;
+ }
+ for (int i=0; i< AddItemIndexLast; i++) {
+ addItemIndexes[i] = -1;
+ }
+ for (int i=0; i< SettingsIndexLast; i++) {
+ settingsData[i] = QVariant();
+ }
+ for (int i=0; i< AddItemIndexLast; i++) {
+ addItemData[i] = QVariant();
+ }
+}
+
+int ViewFuteDataForm::nextIndex() const
+{
+ return counter;
+}
+
+ViewFuteDataForm::Activity ViewFuteDataForm::action() const
+{
+ return activity;
+}
+
+
+HbDataFormModel *ViewFuteDataForm::dataModel() const
+{
+ return settingsFormModel;
+}
+
+void ViewFuteDataForm::populateGraphicsSize()
+{
+ HbListViewItem *prototype = qobject_cast<HbListViewItem *>(view->itemPrototypes().first());
+ if ( prototype ) {
+ settingsIndexes[GraphicsSize] = counter++;
+
+ HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(HbDataFormModelItem::RadioButtonListItem,
+ QString("Graphics size:"));
+
+ item->setContentWidgetData("items", GraphicsSizes);
+
+ HbListViewItem::GraphicsSize graphicsSize = prototype->graphicsSize();
+ if (graphicsSize == HbListViewItem::SmallIcon) {
+ item->setContentWidgetData("selected", 0);
+ } else if (graphicsSize == HbListViewItem::MediumIcon) {
+ item->setContentWidgetData("selected", 1);
+ } else if (graphicsSize == HbListViewItem::LargeIcon) {
+ item->setContentWidgetData("selected", 2);
+ } else if (graphicsSize == HbListViewItem::Thumbnail) {
+ item->setContentWidgetData("selected", 3);
+ } else {
+ item->setContentWidgetData("selected", 4);
+ }
+ }
+}
+
+void ViewFuteDataForm::populateStretchingStyle()
+{
+ HbListViewItem *prototype = qobject_cast<HbListViewItem *>(view->itemPrototypes().first());
+ if ( prototype ) {
+ settingsIndexes[StretchingStyle] = counter++;
+
+ HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(HbDataFormModelItem::RadioButtonListItem,
+ QString("Landscape mode:"));
+
+ item->setContentWidgetData("items", LandscapeModes);
+ if (prototype->stretchingStyle() == HbListViewItem::StretchLandscape) {
+ item->setContentWidgetData("selected", 1);
+ } else {
+ item->setContentWidgetData("selected", 0);
+ }
+ }
+}
+
+void ViewFuteDataForm::populateMaximumRowCount()
+{
+ HbListViewItem *prototype = qobject_cast<HbListViewItem *>(view->itemPrototypes().first());
+ if ( prototype ) {
+ settingsIndexes[MaximumRowCount] = counter++;
+
+ HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(HbDataFormModelItem::SliderItem,
+ QString("Max secondary text rows:"));
+
+ int maximum = 0;
+ int minimum = 0;
+ prototype->getSecondaryTextRowCount(minimum, maximum);
+
+ item->setContentWidgetData("value", maximum);
+ item->setContentWidgetData("maximum", 10);
+ item->setContentWidgetData("minimum", 1);
+ item->setContentWidgetData("tickPosition", Hb::SliderTicksBelow);
+ item->setContentWidgetData("majorTickInterval",1);
+
+ // does not work
+ /*QStringList values;
+ values << "1" << "2" << "3" << "4" << "5" << "6" << "7" << "8" << "9" << "10";
+ item->setContentWidgetData("majorTickLabels",values);*/
+ }
+}
+
+void ViewFuteDataForm::populateMinimumRowCount()
+{
+ HbListViewItem *prototype = qobject_cast<HbListViewItem *>(view->itemPrototypes().first());
+ if ( prototype ) {
+ settingsIndexes[MinimumRowCount] = counter++;
+
+ HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(HbDataFormModelItem::SliderItem,
+ QString("Min secondary text rows:"));
+
+ int maximum = 0;
+ int minimum = 0;
+ prototype->getSecondaryTextRowCount(minimum, maximum);
+
+ item->setContentWidgetData("value", minimum);
+ item->setContentWidgetData("maximum", 10);
+ item->setContentWidgetData("minimum", 1);
+ item->setContentWidgetData("tickPosition", Hb::SliderTicksBelow);
+ item->setContentWidgetData("majorTickInterval",1);
+ }
+}
+
+void ViewFuteDataForm::populateFrame()
+{
+ settingsIndexes[Frame] = counter++;
+ HbAbstractViewItem *prototype = qobject_cast<HbAbstractViewItem *>(view->itemPrototypes().first());
+ const HbFrameBackground &frameBackground = prototype->defaultFrame();
+
+ HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+ HbDataFormModelItem::ToggleValueItem, QString("Default frame:"));
+ if (frameBackground.isNull()) {
+ item->setContentWidgetData("text", "On");
+ item->setContentWidgetData("additionalText", "Off");
+ } else {
+ item->setContentWidgetData("text", "Off");
+ item->setContentWidgetData("additionalText", "On");
+ }
+}
+
+void ViewFuteDataForm::populateRecycling()
+{
+ settingsIndexes[Recycling] = counter++;
+ HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+ HbDataFormModelItem::ToggleValueItem, QString("Item recycling:"));
+ if (view->itemRecycling()) {
+ item->setContentWidgetData("text", "On");
+ item->setContentWidgetData("additionalText", "Off");
+ } else {
+ item->setContentWidgetData("text", "Off");
+ item->setContentWidgetData("additionalText", "On");
+ }
+}
+
+void ViewFuteDataForm::populateUniformItem()
+{
+ HbListView *listView = qobject_cast<HbListView *>(view);
+ if (listView) {
+ settingsIndexes[UniformItem] = counter++;
+ HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+ HbDataFormModelItem::ToggleValueItem, QString("Uniform Items:"));
+ if (view->uniformItemSizes()) {
+ item->setContentWidgetData("text", "On");
+ item->setContentWidgetData("additionalText", "Off");
+ } else {
+ item->setContentWidgetData("text", "Off");
+ item->setContentWidgetData("additionalText", "On");
+ }
+ }
+}
+
+void ViewFuteDataForm::populateRichText()
+{
+ HbListViewItem *prototype = qobject_cast<HbListViewItem *>(view->itemPrototypes().first());
+ if (prototype) {
+ settingsIndexes[RichText] = counter++;
+ HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+ HbDataFormModelItem::ToggleValueItem, QString("Rich text support:"));
+ if (prototype->textFormat() == Qt::RichText) {
+ item->setContentWidgetData("text", "On");
+ item->setContentWidgetData("additionalText", "Off");
+ } else {
+ item->setContentWidgetData("text", "Off");
+ item->setContentWidgetData("additionalText", "On");
+ }
+ }
+}
+
+void ViewFuteDataForm::populateSelectionMode()
+{
+ settingsIndexes[SelectionMode] = counter++;
+ HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+ HbDataFormModelItem::RadioButtonListItem, QString("Selection mode:"));
+ item->setContentWidgetData("items", SelectionModes);
+ if (view->selectionMode() == HbAbstractItemView::SingleSelection) {
+ item->setContentWidgetData("selected", 0);
+ } else if (view->selectionMode() == HbAbstractItemView::MultiSelection) {
+ item->setContentWidgetData("selected", 1);
+ } else {
+ item->setContentWidgetData("selected", 2);
+ }
+}
+
+
+void ViewFuteDataForm::populateLaunchInPopup()
+{
+ settingsIndexes[LaunchInPopup] = counter++;
+ HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+ HbDataFormModelItem::RadioButtonListItem, QString("Launch target of next model:"));
+ item->setContentWidgetData("items", LaunchInPopups);
+ if ( settingsData[LaunchInPopup].isValid()
+ && settingsData[LaunchInPopup].canConvert(QVariant::Bool)
+ && settingsData[LaunchInPopup].toBool()) {
+ item->setContentWidgetData("selected", 0);
+ } else {
+ item->setContentWidgetData("selected", 1);
+ }
+}
+
+void ViewFuteDataForm::populateArrangeMode()
+{
+ HbListView *listView = qobject_cast<HbListView *>(view);
+ if (listView) {
+ settingsIndexes[ArrangeMode] = counter++;
+ HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+ HbDataFormModelItem::ToggleValueItem, QString("Arrange mode:"));
+ if (listView->arrangeMode()) {
+ item->setContentWidgetData("text", "On");
+ item->setContentWidgetData("additionalText", "Off");
+ } else {
+ item->setContentWidgetData("text", "Off");
+ item->setContentWidgetData("additionalText", "On");
+ }
+ }
+}
+
+void ViewFuteDataForm::populateScrollingStyle()
+{
+ settingsIndexes[ScrollingStyle] = counter++;
+ HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+ HbDataFormModelItem::RadioButtonListItem, QString("Scroll mode:"));
+ item->setContentWidgetData("items", ScrollModes);
+ if (view->scrollingStyle() == HbScrollArea::Pan) {
+ item->setContentWidgetData("selected", 0);
+ } else {
+ item->setContentWidgetData("selected", 1);
+ }
+}
+
+void ViewFuteDataForm::populateClampingStyle()
+{
+ settingsIndexes[ClampingStyle] = counter++;
+ HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+ HbDataFormModelItem::ToggleValueItem, QString("List bounce clamping:"));
+ if (view->clampingStyle() == HbScrollArea::BounceBackClamping) {
+ item->setContentWidgetData("text", "On");
+ item->setContentWidgetData("additionalText", "Off");
+ } else {
+ item->setContentWidgetData("text", "Off");
+ item->setContentWidgetData("additionalText", "On");
+ }
+}
+
+void ViewFuteDataForm::populateInteractiveScrollBar()
+{
+ settingsIndexes[InteractiveScrollBar] = counter++;
+ HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+ HbDataFormModelItem::ToggleValueItem, QString("Interactive scrollbar:"));
+ if (view->verticalScrollBar()->isInteractive() == true
+ || view->horizontalScrollBar()->isInteractive() == true) {
+ item->setContentWidgetData("text", "On");
+ item->setContentWidgetData("additionalText", "Off");
+ } else {
+ item->setContentWidgetData("text", "Off");
+ item->setContentWidgetData("additionalText", "On");
+ }
+}
+
+void ViewFuteDataForm::populateFrictionEnabled()
+{
+ settingsIndexes[FrictionEnabled] = counter++;
+ HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+ HbDataFormModelItem::ToggleValueItem, QString("List scroll inertia:"));
+ if (view->frictionEnabled()) {
+ item->setContentWidgetData("text", "On");
+ item->setContentWidgetData("additionalText", "Off");
+ } else {
+ item->setContentWidgetData("text", "Off");
+ item->setContentWidgetData("additionalText", "On");
+ }
+}
+
+void ViewFuteDataForm::populateOrientation()
+{
+ settingsIndexes[Orientation] = counter++;
+ HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+ HbDataFormModelItem::RadioButtonListItem, QString("Orientation:"));
+ item->setContentWidgetData("items", OrientationTypes);
+ if ( settingsData[Orientation].isValid()
+ && settingsData[Orientation].canConvert(QVariant::Int)
+ && ( settingsData[Orientation].toInt() == 0
+ || settingsData[Orientation].toInt() == 1)) {
+ item->setContentWidgetData("selected", settingsData[Orientation].toInt());
+ }
+ else {
+ item->setContentWidgetData("selected", 0);
+ }
+}
+
+void ViewFuteDataForm::populateMirroring()
+{
+ settingsIndexes[Mirroring] = counter++;
+ HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+ HbDataFormModelItem::ToggleValueItem, QString("Layout mirrored:"));
+ if ( settingsData[Mirroring].isValid()
+ && settingsData[Mirroring].canConvert(QVariant::Int)) {
+ if (settingsData[Mirroring].toInt() == Qt::LeftToRight) {
+ item->setContentWidgetData("text", "Off");
+ item->setContentWidgetData("additionalText", "On");
+ }
+ else if (settingsData[Mirroring].toInt() == Qt::RightToLeft) {
+ item->setContentWidgetData("text", "On");
+ item->setContentWidgetData("additionalText", "Off");
+ }
+ } else {
+ item->setContentWidgetData("text", "Off");
+ item->setContentWidgetData("additionalText", "On");
+ }
+}
+
+void ViewFuteDataForm::populateScrollHint()
+{
+ settingsIndexes[ScrollHint] = counter++;
+ HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+ HbDataFormModelItem::RadioButtonListItem, QString("Scroll-to-target stop position:"));
+ item->setContentWidgetData("items", ScrollHints);
+ int initialValue = 0;
+ if ( settingsData[ScrollHint].isValid()
+ && settingsData[ScrollHint].canConvert(QVariant::Int)
+ && settingsData[ScrollHint].toInt() >= 0
+ && settingsData[ScrollHint].toInt() <= QAbstractItemView::PositionAtCenter) {
+ initialValue = settingsData[ScrollHint].toInt();
+ }
+
+ item->setContentWidgetData("selected", initialValue);
+}
+
+void ViewFuteDataForm::populateIndexFeedbackPolicy()
+{
+ if (mIndexFeedback) {
+ settingsIndexes[IndexFeedbackPolicy] = counter++;
+ HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+ HbDataFormModelItem::RadioButtonListItem, QString("Index Feedback Policy:"));
+ item->setContentWidgetData("items", IndexFeedbackPolicies);
+ int initialValue = 0;
+
+ if (! mIndexFeedback->itemView() ) {
+ initialValue = 4;
+ } else {
+ initialValue = (int) mIndexFeedback->indexFeedbackPolicy();
+ }
+
+ item->setContentWidgetData("selected", initialValue);
+ }
+}
+
+void ViewFuteDataForm::resolveSettingsResults()
+{
+ if (!view) {
+ return;
+ }
+
+ HbListView *listView = qobject_cast<HbListView *>(view);
+
+ HbAbstractViewItem *prototype = view->itemPrototypes().first();
+ HbListViewItem *prototypeListView = qobject_cast<HbListViewItem *>(prototype);
+ if (prototypeListView) {
+ prototypeListView->setGraphicsSize(getGraphicsSize());
+ prototypeListView->setStretchingStyle(getStretchingStyle());
+ int minBefore = 1;
+ int maxBefore = 1;
+ prototypeListView->getSecondaryTextRowCount(minBefore, maxBefore);
+ if ( minBefore != 1
+ || maxBefore != 1
+ || getMinimumRowCount() != 1
+ || getMaximumRowCount() != 1 ) {
+ prototypeListView->setSecondaryTextRowCount(getMinimumRowCount(), getMaximumRowCount());
+ }
+ }
+
+ HbFrameBackground frame;
+ if (getFrame()){
+ frame.setFrameGraphicsName(QString());
+ } else {
+ frame.setFrameGraphicsName(QString(""));
+ }
+ prototype->setDefaultFrame(frame);
+
+ view->setItemRecycling(getRecycling());
+ view->setUniformItemSizes(getUniformItem());
+
+ if (prototypeListView) {
+ prototypeListView->setTextFormat(getRichText());
+ }
+ view->setSelectionMode(getSelectionMode());
+ view->setScrollingStyle(getScrollingStyle());
+ view->setClampingStyle(getClampingStyle());
+ view->setFrictionEnabled(getFrictionEnabled());
+
+ bool interactiveScrollBar = getInteractiveScrollBar();
+ if (view->scrollDirections() & Qt::Horizontal)
+ {
+ view->horizontalScrollBar()->setInteractive(interactiveScrollBar);
+ }
+ if (view->scrollDirections() & Qt::Vertical)
+ {
+ view->verticalScrollBar()->setInteractive(interactiveScrollBar);
+ }
+
+ // must be after interactive scrollbar setting
+ if (listView) {
+ listView->setArrangeMode(getArrangeMode());
+ }
+
+ if (mIndexFeedback) {
+ int indexFeedbackMode = getIndexFeedbackPolicy();
+ if (indexFeedbackMode == 4) {
+ mIndexFeedback->setItemView(0);
+ } else {
+ mIndexFeedback->setItemView(view);
+ mIndexFeedback->setIndexFeedbackPolicy((HbIndexFeedback::IndexFeedbackPolicy) indexFeedbackMode);
+ }
+ }
+
+ view->setItemPixmapCacheEnabled(getPixmapCacheEnaled());
+ view->setIconLoadPolicy(getIconLoadPolicy());
+/*
+ if (listView) {
+ listView->setEnabledAnimations(getEnabledAnimations());
+ }
+*/
+}
+
+HbListViewItem::GraphicsSize ViewFuteDataForm::getGraphicsSize()
+{
+ HbListViewItem::GraphicsSize graphicsSize(HbListViewItem::SmallIcon);
+
+ if (settingsIndexes[GraphicsSize] != -1) {
+ if (static_cast<HbDataFormViewItem*>(itemByIndex(
+ settingsFormModel->index(settingsIndexes[GraphicsSize],0)))->dataItemContentWidget()->property("selected").toInt() == 1) {
+ graphicsSize = HbListViewItem::MediumIcon;
+ } else if (static_cast<HbDataFormViewItem*>(itemByIndex(
+ settingsFormModel->index(settingsIndexes[GraphicsSize],0)))->dataItemContentWidget()->property("selected").toInt() == 2) {
+ graphicsSize = HbListViewItem::LargeIcon;
+ } else if (static_cast<HbDataFormViewItem*>(itemByIndex(
+ settingsFormModel->index(settingsIndexes[GraphicsSize],0)))->dataItemContentWidget()->property("selected").toInt() == 3) {
+ graphicsSize = HbListViewItem::Thumbnail;
+ } else if (static_cast<HbDataFormViewItem*>(itemByIndex(
+ settingsFormModel->index(settingsIndexes[GraphicsSize],0)))->dataItemContentWidget()->property("selected").toInt() == 4) {
+ graphicsSize = HbListViewItem::WideThumbnail;
+ }
+ }
+
+ return graphicsSize;
+}
+
+HbListViewItem::StretchingStyle ViewFuteDataForm::getStretchingStyle()
+{
+ HbListViewItem::StretchingStyle stretchingStyle(HbListViewItem::NoStretching);
+
+ if (settingsIndexes[StretchingStyle] != -1) {
+ if (static_cast<HbDataFormViewItem*>(itemByIndex(
+ settingsFormModel->index(settingsIndexes[StretchingStyle],0)))->dataItemContentWidget()->property("selected").toInt() == 1) {
+ stretchingStyle = HbListViewItem::StretchLandscape;
+ }
+ }
+
+ return stretchingStyle;
+}
+
+int ViewFuteDataForm::getMaximumRowCount()
+{
+ int maximumRowCount = 0;
+ if (settingsIndexes[MaximumRowCount] != -1) {
+ maximumRowCount = static_cast<HbDataFormViewItem*>(itemByIndex(
+ settingsFormModel->index(settingsIndexes[MaximumRowCount],0)))->dataItemContentWidget()->property("value").toInt();
+ }
+
+ return maximumRowCount;
+}
+
+int ViewFuteDataForm::getMinimumRowCount()
+{
+ int minimumRowCount = 0;
+ if (settingsIndexes[MinimumRowCount] != -1) {
+ minimumRowCount = static_cast<HbDataFormViewItem*>(itemByIndex(
+ settingsFormModel->index(settingsIndexes[MinimumRowCount],0)))->dataItemContentWidget()->property("value").toInt();
+ }
+
+ return minimumRowCount;
+}
+
+bool ViewFuteDataForm::getFrame()
+{
+ if (static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[Frame],0)))->
+ dataItemContentWidget()->property("text").toString() == "On") {
+ return true;
+ }
+ return false;
+}
+
+bool ViewFuteDataForm::getRecycling()
+{
+ if (static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[Recycling],0)))->
+ dataItemContentWidget()->property("text").toString() == "On") {
+ return true;
+ }
+ return false;
+}
+
+bool ViewFuteDataForm::getUniformItem()
+{
+ if (settingsIndexes[UniformItem] != -1) {
+ if (static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[UniformItem],0)))->
+ dataItemContentWidget()->property("text").toString() == "On") {
+ return true;
+ }
+ }
+ return false;
+}
+
+Qt::TextFormat ViewFuteDataForm::getRichText()
+{
+ if (settingsIndexes[RichText] != -1) {
+ if (static_cast<HbDataFormViewItem*>(itemByIndex(
+ settingsFormModel->index(settingsIndexes[RichText],0)))->
+ dataItemContentWidget()->property("text").toString() == "Off") {
+ return Qt::PlainText;
+ }
+ return Qt::RichText;
+ }
+ return Qt::PlainText;
+}
+
+HbAbstractItemView::SelectionMode ViewFuteDataForm::getSelectionMode()
+{
+ int value = static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[SelectionMode],0)))->
+ dataItemContentWidget()->property("selected").toInt();
+ if (value == 0) {
+ return HbListView::SingleSelection;
+ } else if (value == 1) {
+ return HbListView::MultiSelection;
+ } else {
+ return HbListView::NoSelection;
+ }
+}
+
+bool ViewFuteDataForm::getLaunchInPopup()
+{
+ int value = static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[LaunchInPopup],0)))->
+ dataItemContentWidget()->property("selected").toInt();
+ if (value == 0) {
+ return true;
+ } else {
+ return false;
+ }
+}
+
+
+bool ViewFuteDataForm::getArrangeMode()
+{
+ if (settingsIndexes[ArrangeMode] != -1) {
+ if (static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[ArrangeMode],0)))->
+ dataItemContentWidget()->property("text").toString() == "On") {
+ return true;
+ }
+ }
+ return false;
+}
+
+HbScrollArea::ScrollingStyle ViewFuteDataForm::getScrollingStyle()
+{
+ int value = static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[ScrollingStyle],0)))->
+ dataItemContentWidget()->property("selected").toInt();
+ if (value == 0) {
+ return HbScrollArea::Pan;
+ } else {
+ return HbScrollArea::PanWithFollowOn;
+ }
+}
+
+HbScrollArea::ClampingStyle ViewFuteDataForm::getClampingStyle()
+{
+ if (static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[ClampingStyle],0)))->
+ dataItemContentWidget()->property("text").toString() == "On") {
+ return HbScrollArea::BounceBackClamping;
+ }
+ return HbScrollArea::StrictClamping;
+}
+
+bool ViewFuteDataForm::getFrictionEnabled()
+{
+ if (static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[FrictionEnabled],0)))->
+ dataItemContentWidget()->property("text").toString() == "On") {
+ return true;
+ }
+ return false;
+}
+
+Qt::LayoutDirection ViewFuteDataForm::getMirroring()
+{
+ int value = static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[Mirroring],0)))->
+ dataItemContentWidget()->property("selected").toInt();
+ if (value == 1) {
+ return Qt::RightToLeft;
+ }
+ return Qt::LeftToRight;
+}
+
+Qt::Orientation ViewFuteDataForm::getOrientation()
+{
+ int value = static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[Orientation],0)))->
+ dataItemContentWidget()->property("selected").toInt();
+ if (value == 0) {
+ return Qt::Vertical;
+ } else {
+ return Qt::Horizontal;
+ }
+}
+
+HbAbstractItemView::ScrollHint ViewFuteDataForm::getScrollHint()
+{
+ int value = static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[ScrollHint],0)))->
+ dataItemContentWidget()->property("selected").toInt();
+ return (HbAbstractItemView::ScrollHint)value;
+}
+
+int ViewFuteDataForm::getIndexFeedbackPolicy()
+{
+ int value = 0;
+ if (mIndexFeedback) {
+ value = static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[IndexFeedbackPolicy],0)))->
+ dataItemContentWidget()->property("selected").toInt();
+ return value;
+ }
+ return value;
+}
+
+bool ViewFuteDataForm::getInteractiveScrollBar()
+{
+ if (static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[InteractiveScrollBar],0)))->
+ dataItemContentWidget()->property("text").toString() == "On") {
+ return true;
+ }
+ return false;
+}
+
+HbAbstractItemView::ItemAnimations ViewFuteDataForm::getEnabledAnimations()
+{
+ QVariant selectedAsVariant = static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[Animations],0)))->
+ dataItemContentWidget()->property("selectedItems");
+
+ QList<QVariant> selected = selectedAsVariant.value< QList<QVariant> >();
+
+ HbAbstractItemView::ItemAnimations mask = HbAbstractItemView::None;
+
+ HbListView *listView = qobject_cast<HbListView *>(view);
+ if (listView) {
+ if (selected.contains(0)) {
+ mask |= HbAbstractItemView::Appear;
+ }
+ if (selected.contains(1)) {
+ mask |= HbAbstractItemView::Disappear;
+ }
+ if (selected.contains(2)) {
+ mask |= HbAbstractItemView::TouchDown;
+ }
+ } else {
+ if (selected.contains(0)) {
+ mask |= HbAbstractItemView::TouchDown;
+ }
+ }
+ return mask;
+}
+
+bool ViewFuteDataForm::getPixmapCacheEnaled()
+{
+ if (static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[PixmapCache],0)))->
+ dataItemContentWidget()->property("text").toString() == "On") {
+ return true;
+ }
+ return false;
+}
+
+HbAbstractItemView::IconLoadPolicy ViewFuteDataForm::getIconLoadPolicy()
+{
+ int selection = static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(settingsIndexes[IconLoadPolicy],0)))->
+ dataItemContentWidget()->property("selected").toInt();
+ if ( selection == 0) {
+ return HbAbstractItemView::LoadSynchronously;
+ } else if (selection == 2) {
+ return HbAbstractItemView::LoadAsynchronouslyAlways;
+ } else {
+ return HbAbstractItemView::LoadAsynchronouslyWhenScrolling;
+ }
+}
+
+void ViewFuteDataForm::populateAddItem()
+{
+ activity = AddItem;
+ settingsFormModel->clear();
+
+ populatePrimaryText();
+ populateSecondaryText();
+ populateThirdText();
+ populateLeftColumn();
+ populateRightColumn();
+ populateType();
+ populateBackground();
+ populateAddItemCount();
+
+ setModel(settingsFormModel);
+
+ HbListView *listView = qobject_cast<HbListView *>(view);
+ HbTreeView *treeView = qobject_cast<HbTreeView *>(view);
+ if (listView || treeView) {
+ HbAction *action = new HbAction(tr("Format"));
+ connect(action, SIGNAL(triggered()), this, SLOT(formatTriggered()));
+
+ if (addItemIndexes[PrimaryText] != -1) {
+ if (qobject_cast<HbLineEdit *>(static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[PrimaryText],0)))->dataItemContentWidget())) {
+ HbLineEdit *editor = qobject_cast<HbLineEdit *>(static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[PrimaryText],0)))->dataItemContentWidget());
+ HbEditorInterface editInterface(editor);
+ editInterface.addAction(action);
+ }
+ }
+
+ if (addItemIndexes[SecondaryText] != -1) {
+ if (qobject_cast<HbLineEdit *>(static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[SecondaryText],0)))->dataItemContentWidget())) {
+ HbLineEdit *editor = qobject_cast<HbLineEdit *>(static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[SecondaryText],0)))->dataItemContentWidget());
+ HbEditorInterface editInterface2(editor);
+ editInterface2.addAction(action);
+ }
+
+ if (addItemIndexes[ThirdText] != -1) {
+ if (qobject_cast<HbLineEdit *>(static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[ThirdText],0)))->dataItemContentWidget())) {
+ HbLineEdit *editor = qobject_cast<HbLineEdit *>(static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[ThirdText],0)))->dataItemContentWidget());
+ HbEditorInterface editInterface2(editor);
+ editInterface2.addAction(action);
+ }
+ }
+ }
+ }
+}
+
+void ViewFuteDataForm::populatePrimaryText()
+{
+ addItemIndexes[PrimaryText] = counter++;
+ HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+ HbDataFormModelItem::TextItem, QString("Primary text:"));
+ if (addItemData[PrimaryText].isValid() && addItemData[PrimaryText].canConvert(QVariant::String)) {
+ item->setContentWidgetData("text", addItemData[PrimaryText].toString());
+ }
+}
+
+void ViewFuteDataForm::populateSecondaryText()
+{
+ addItemIndexes[SecondaryText] = counter++;
+ HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+ HbDataFormModelItem::TextItem, QString("Secondary text:"));
+ if (addItemData[SecondaryText].isValid() && addItemData[SecondaryText].canConvert(QVariant::String)) {
+ item->setContentWidgetData("text", addItemData[SecondaryText].toString());
+ }
+}
+
+void ViewFuteDataForm::populateThirdText()
+{
+ addItemIndexes[ThirdText] = counter++;
+ HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+ HbDataFormModelItem::TextItem, QString("Third text:"));
+ if (addItemData[ThirdText].isValid() && addItemData[ThirdText].canConvert(QVariant::String)) {
+ item->setContentWidgetData("text", addItemData[ThirdText].toString());
+ }
+}
+
+
+void ViewFuteDataForm::populateLeftColumn()
+{
+ addItemIndexes[LeftColumn] = counter++;
+ HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+ HbDataFormModelItem::RadioButtonListItem, QString("Left column widget:"));
+ item->setContentWidgetData(QString("items"), LeftColumnWidgets);
+ item->setContentWidgetData("selected", 0);
+}
+
+void ViewFuteDataForm::populateRightColumn()
+{
+ addItemIndexes[RightColumn] = counter++;
+ HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+ HbDataFormModelItem::RadioButtonListItem, QString("Right column widget:"));
+ item->setContentWidgetData(QString("items"), RightColumnWidgets);
+ item->setContentWidgetData("selected", 0);
+}
+
+void ViewFuteDataForm::populateType()
+{
+ HbListView *listView = qobject_cast<HbListView *>(view);
+ if (listView) {
+ addItemIndexes[Type] = counter++;
+ HbDataFormModelItem *item = settingsFormModel->
+ appendDataFormItem(HbDataFormModelItem::RadioButtonListItem, QString("Type:"));
+ item->setContentWidgetData("items", ItemTypes);
+ item->setContentWidgetData("selected", 0);
+ }
+}
+
+void ViewFuteDataForm::populateBackground()
+{
+ addItemIndexes[Background] = counter++;
+ HbDataFormModelItem *item = settingsFormModel->
+ appendDataFormItem(HbDataFormModelItem::RadioButtonListItem, QString("Background:"));
+ item->setContentWidgetData("items", ItemBackgrounds);
+ item->setContentWidgetData("selected", 0);
+}
+
+void ViewFuteDataForm::populateAddItemCount()
+{
+
+ addItemIndexes[ItemCount] = counter++;
+ HbDataFormModelItem *item = settingsFormModel->
+ appendDataFormItem(HbDataFormModelItem::TextItem, QString("Item count:"));
+ if (addItemData[ItemCount].isValid() && addItemData[ItemCount].canConvert(QVariant::Int)) {
+ item->setContentWidgetData("text", addItemData[ItemCount].toInt());
+ } else {
+ item->setContentWidgetData("text", QString("1"));
+ }
+}
+
+void ViewFuteDataForm::populateEnabledAnimations()
+{
+ settingsIndexes[Animations] = counter++;
+
+ HbListView *listView = qobject_cast<HbListView *>(view);
+
+ QStringList animations;
+ if (listView) {
+ animations << "Appear" << "Disappear";
+ }
+ animations << "TouchDown";
+
+ QList<QVariant> selected;
+ if (listView) {
+ if (view->enabledAnimations() | HbAbstractItemView::Appear) {
+ selected.append(0);
+ }
+ if (view->enabledAnimations() | HbAbstractItemView::Disappear) {
+ selected.append(1);
+ }
+ if (view->enabledAnimations() | HbAbstractItemView::TouchDown) {
+ selected.append(2);
+ }
+ } else {
+ if (view->enabledAnimations() | HbAbstractItemView::TouchDown) {
+ selected.append(0);
+ }
+ }
+
+ HbDataFormModelItem *item = settingsFormModel->
+ appendDataFormItem(HbDataFormModelItem::MultiselectionItem, QString("Enabled animations:"));
+ item->setContentWidgetData("items", animations);
+
+ item->setContentWidgetData("selectedItems", selected);
+}
+
+void ViewFuteDataForm::populatePixmapCacheEnabled()
+{
+ settingsIndexes[PixmapCache] = counter++;
+
+ HbDataFormModelItem *item = settingsFormModel->appendDataFormItem(
+ HbDataFormModelItem::ToggleValueItem, QString("Pixmap cache:"));
+ if (view->itemPixmapCacheEnabled()) {
+ item->setContentWidgetData("text", "On");
+ item->setContentWidgetData("additionalText", "Off");
+ } else {
+ item->setContentWidgetData("text", "Off");
+ item->setContentWidgetData("additionalText", "On");
+ }
+}
+
+void ViewFuteDataForm::populateIconLoadPolicy()
+{
+ settingsIndexes[IconLoadPolicy] = counter++;
+
+ HbDataFormModelItem *item = settingsFormModel->
+ appendDataFormItem(HbDataFormModelItem::RadioButtonListItem, QString("Icon load policy:"));
+ item->setContentWidgetData("items", IconLoadPolicies);
+ switch (view->iconLoadPolicy()) {
+ case HbAbstractItemView::LoadSynchronously: {
+ item->setContentWidgetData("selected", 0);
+ break;
+ }
+ case HbAbstractItemView::LoadAsynchronouslyWhenScrolling: {
+ item->setContentWidgetData("selected", 1);
+ break;
+ }
+ case HbAbstractItemView::LoadAsynchronouslyAlways: {
+ item->setContentWidgetData("selected", 2);
+ break;
+ }
+ default: {
+ break;
+ }
+ }
+}
+
+QList <HbListWidgetItem *> ViewFuteDataForm::getListWidgetItems()
+{
+ QList <HbListWidgetItem *> items;
+
+ if (static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[PrimaryText],0)))->
+ dataItemContentWidget()->property("text").toString().isEmpty()
+ && static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[SecondaryText],0)))->
+ dataItemContentWidget()->property("text").toString().isEmpty()
+ && static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[ThirdText],0)))->
+ dataItemContentWidget()->property("text").toString().isEmpty()
+ && static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[LeftColumn],0)))->
+ dataItemContentWidget()->property("selected").toInt() == 0
+ && static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[RightColumn],0)))->
+ dataItemContentWidget()->property("selected").toInt() == 0) {
+ return items;
+ }
+
+ QVariantList strings;
+ QVariantList icons;
+
+ QString primaryString = getPrimaryText();
+ QString secondaryString = getSecondaryText();
+ QString thirdString = getThirdText();
+
+
+ if (!thirdString.isEmpty()) {
+ if (primaryString.isEmpty()) {
+ primaryString = " ";
+ }
+ strings.append(primaryString);
+
+ if (!secondaryString.isEmpty()) {
+ strings.append(secondaryString);
+ } else {
+ strings.append(QVariant());
+ }
+ strings.append(thirdString);
+ } else if (!secondaryString.isEmpty()) {
+ if (primaryString.isEmpty()) {
+ primaryString = " ";
+ }
+ strings.append(primaryString);
+ strings.append(secondaryString);
+ } else if (!primaryString.isEmpty()) {
+ strings.append(primaryString);
+ }
+
+ QVariant value1 = getLeftColumn();
+ QVariant value2 = getRightColumn();
+ if (value2.canConvert<HbIcon>()) {
+ icons.append(value1);
+ icons.append(value2);
+ } else if (value1.canConvert<HbIcon>()) {
+ icons.append(value1);
+ }
+
+ QVariant background = getBackground();
+
+ int count = getAddItemCount();
+ for (int i = 0; i < count; i++) {
+
+ if (i != 0) {
+ QString s = QString("%1_%2").arg(primaryString).arg(i);
+ strings.replace(0, s);
+ }
+
+ HbListWidgetItem *widgetItem = new HbListWidgetItem(getType());
+
+ widgetItem->setData(strings, Qt::DisplayRole);
+ widgetItem->setData(strings.at(0), Hb::IndexFeedbackRole);
+ widgetItem->setData(icons, Qt::DecorationRole);
+
+ if (background.isValid()) {
+ widgetItem->setBackground(background);
+ }
+
+ items.append(widgetItem);
+ }
+
+
+ return items;
+}
+
+QList <QStandardItem *> ViewFuteDataForm::getStandardItems()
+{
+ QList <QStandardItem *> items;
+
+ if (static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[PrimaryText],0)))->
+ dataItemContentWidget()->property("text").toString().isEmpty()
+ && static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[SecondaryText],0)))->
+ dataItemContentWidget()->property("text").toString().isEmpty()
+ && static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[ThirdText],0)))->
+ dataItemContentWidget()->property("text").toString().isEmpty()
+ && static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[LeftColumn],0)))->
+ dataItemContentWidget()->property("selected").toInt() == 0
+ && static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[RightColumn],0)))->
+ dataItemContentWidget()->property("selected").toInt() == 0) {
+ return items;
+ }
+
+ QString primaryString = getPrimaryText();
+ if (primaryString.isEmpty()) {
+ primaryString = " ";
+ }
+
+ QString secondaryString = getSecondaryText();
+
+ QStringList displayTexts;
+ displayTexts.append(primaryString);
+
+ if (!secondaryString.isEmpty()) {
+ displayTexts.append(secondaryString);
+ }
+
+ QString thirdString = getThirdText();
+
+ if (!thirdString.isEmpty()) {
+ displayTexts.append(thirdString);
+ }
+
+
+ QVariant left = getLeftColumn();
+ QVariant right = getRightColumn();
+ QVariantList decorations;
+ decorations.append(left);
+ decorations.append(right);
+
+ QVariant background = getBackground();
+
+ int count = getAddItemCount();
+ for (int i = 0; i < count; i++) {
+
+ if (i != 0) {
+ QString s = QString("%1_%2").arg(primaryString).arg(i);
+ displayTexts.replace(0, s);
+ }
+
+ QStandardItem *item = new QStandardItem();
+ item->setData(displayTexts, Qt::DisplayRole);
+ item->setData(decorations, Qt::DecorationRole);
+
+ if (background.isValid()) {
+ item->setData(background, Qt::BackgroundRole);
+ }
+
+ items.append(item);
+ }
+ return items;
+}
+
+
+
+
+QString ViewFuteDataForm::getPrimaryText()
+{
+ return (static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[PrimaryText],0)))->
+ dataItemContentWidget()->property("text").toString());
+}
+
+QString ViewFuteDataForm::getSecondaryText()
+{
+ return (static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[SecondaryText],0)))->
+ dataItemContentWidget()->property("text").toString());
+}
+
+QString ViewFuteDataForm::getThirdText()
+{
+ return (static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[ThirdText],0)))->
+ dataItemContentWidget()->property("text").toString());
+}
+
+QVariant ViewFuteDataForm::getLeftColumn()
+{
+ HbIcon icon(KConvenienceIcons.at(0));
+ int i = static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[LeftColumn],0)))->
+ dataItemContentWidget()->property("selected").toInt();
+ if (i == 1) {
+ return icon;
+ }
+ return QVariant();
+}
+
+QVariant ViewFuteDataForm::getRightColumn()
+{
+ HbIcon icon(KConvenienceIcons.at(1));
+ int i = static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[RightColumn],0)))->
+ dataItemContentWidget()->property("selected").toInt();
+ if (i == 1) {
+ return icon;
+ }
+ return QVariant();
+}
+
+Hb::ModelItemType ViewFuteDataForm::getType()
+{
+ Hb::ModelItemType type = Hb::StandardItem;
+ if ( addItemIndexes[Type] != -1
+ && static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[Type],0)))->
+ dataItemContentWidget()->property("selected").toInt() == 1) {
+ type = Hb::SeparatorItem;
+ }
+ return type;
+}
+
+QVariant ViewFuteDataForm::getBackground()
+{
+ HbIcon icon(KConvenienceIcons.at(2));
+ int i = static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[Background],0)))->
+ dataItemContentWidget()->property("selected").toInt();
+ QVariant background;
+ if (i == 1) {
+ background = QColor(Qt::red);
+ } else if (i == 2) {
+ background = QBrush(Qt::green, Qt::SolidPattern);
+ } else if (i == 3) {
+ background = QBrush(Qt::blue, Qt::SolidPattern);
+ } else if (i == 4) {
+ background = icon;
+ } else if (i == 5) {
+ background = HbFrameBackground(":/demo/qsn_fr_list", HbFrameDrawer::NinePieces);
+ }
+ return background;
+}
+
+int ViewFuteDataForm::getAddItemCount()
+{
+ QString result = static_cast<HbDataFormViewItem*>(itemByIndex(settingsFormModel->index(addItemIndexes[ItemCount],0)))->
+ dataItemContentWidget()->property("text").toString();
+ return result.toInt();
+}
+
+
+void ViewFuteDataForm::formatTriggered()
+{
+ HbMenu *menu = new HbMenu();
+ HbAction *action = menu->addAction("Bold");
+ action->setData("<b>Bold text </b>");
+ connect(action, SIGNAL(triggered()), this, SLOT(addFormating()));
+
+ action = menu->addAction("Italic");
+ action->setData("<i>Italic text </i>");
+ connect(action, SIGNAL(triggered()), this, SLOT(addFormating()));
+
+ action = menu->addAction("Underline");
+ action->setData("<u>Underlined text </u>");
+ connect(action, SIGNAL(triggered()), this, SLOT(addFormating()));
+
+ action = menu->addAction("Link");
+ action->setData("<a href=\"link\">Link text</a> ");
+ connect(action, SIGNAL(triggered()), this, SLOT(addFormating()));
+
+ action = menu->addAction("Color");
+ action->setData("<font color=red>Colored text </font> ");
+ connect(action, SIGNAL(triggered()), this, SLOT(addFormating()));
+
+ action = menu->addAction("Font");
+ action->setData("<h3>Medium text </h3> ");
+ connect(action, SIGNAL(triggered()), this, SLOT(addFormating()));
+
+ /*action = menu->addAction("List");
+ action->setData("<ul><li><a href=\"link\">Open</a><li><a href=\"link\">Save</a><li><a href=\"link\">Delete</a><li><a href=\"link\">Move</a></ul>");
+ connect(action, SIGNAL(triggered()), this, SLOT(addFormating()));*/
+
+ menu->setPreferredPos(scene()->focusItem()->scenePos());
+ menu->open();
+}
+
+void ViewFuteDataForm::addFormating()
+{
+ HbAction *action = qobject_cast<HbAction *>(sender());
+ QGraphicsWidget* focused = focusWidget();
+ if (focused) {
+ HbLineEdit *item = qobject_cast<HbLineEdit*>(focused);
+
+ if (item) {
+ QString newText = item->text();
+ newText.append(action->data().toString());
+ item->setText(newText);
+ }
+ }
+}
+
+void ViewFuteDataForm::setIndexFeedback(HbIndexFeedback* indexFeedback)
+{
+ mIndexFeedback = indexFeedback;
+}
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/SecUiTestQt/viewfutedataform.h Wed Oct 20 14:51:23 2010 +0300
@@ -0,0 +1,221 @@
+/*
+* ====================================================
+* Name : viewfutedataform.h
+* Part of : fute/listdemo
+* Description : Provides DataForm for general settings
+* or add item data form of an itemview application.
+* One instance of this class even supports
+* populating both forms if operations are done sequentially one after another.
+* In this case application should get handle to HbDataFormModel after populating data form
+* (as HbDataFormModel is cleared only in populate* function).
+*
+* Version : %version: 1 %
+*
+* Copyright (c) 2009 Nokia. All rights reserved.
+* This material, including documentation and any related computer
+* programs, is protected by copyright controlled by Nokia. All
+* rights are reserved. Copying, including reproducing, storing,
+* adapting or translating, any or all of this material requires the
+* prior written consent of Nokia. This material also contains
+* confidential information which may not be disclosed to others
+* without the prior written consent of Nokia.
+* ====================================================
+*/
+
+#ifndef VIEWFUTEDATAFORM_H
+#define VIEWFUTEDATAFORM_H
+
+#include <QObject>
+#include <hbdataform.h>
+
+#include <hbabstractitemview.h>
+#include <hbscrollarea.h>
+#include <hbdataformviewitem.h>
+#include <hblistviewitem.h>
+
+class HbDataFormModel;
+class HbListWidgetItem;
+class HbIndexFeedback;
+class QStandardItem;
+
+class ViewFuteDataForm : public HbDataForm
+{
+ Q_OBJECT
+
+public:
+
+ enum Activity {
+ None,
+ Settings,
+ AddItem
+ };
+
+ enum SettingsIndex {
+ LaunchInPopup,
+ Frame,
+ Recycling,
+ UniformItem,
+ RichText,
+ SelectionMode,
+ ArrangeMode,
+ ScrollingStyle,
+ ClampingStyle,
+ FrictionEnabled,
+ Orientation,
+ Mirroring,
+ ScrollHint,
+ GraphicsSize,
+ StretchingStyle,
+ MaximumRowCount,
+ MinimumRowCount,
+ InteractiveScrollBar,
+ IndexFeedbackPolicy,
+ Animations,
+ PixmapCache,
+ IconLoadPolicy,
+ SettingsIndexLast
+ };
+
+ enum AddItemIndex {
+ PrimaryText,
+ SecondaryText,
+ ThirdText,
+ LeftColumn,
+ RightColumn,
+ Type,
+ Background,
+ ItemCount,
+ AddItemIndexLast
+ };
+
+
+ explicit ViewFuteDataForm(HbAbstractItemView &view,
+ QGraphicsItem *parent = 0);
+ virtual ~ViewFuteDataForm();
+
+ HbDataFormModel *dataModel() const;
+
+ // Returns next free index
+ int nextIndex() const;
+
+ // resets internal state of this object including model
+ virtual void initialise(); // reset() is reserved by base class
+
+ Activity action() const;
+
+ // S E T T I N G S
+ virtual void populateSettings();
+
+ // Setting default input data. item: enum value of SettingsIndex or AddItemIndex, if not custom item
+ virtual void setInputData( Activity action,
+ int item,
+ QVariant data);
+
+ void populateLaunchInPopup();
+ void populateStretchingStyle();
+ void populateGraphicsSize();
+ void populateMaximumRowCount();
+ void populateMinimumRowCount();
+ void populateFrame();
+ void populateRecycling();
+ void populateUniformItem();
+ void populateRichText();
+ virtual void populateSelectionMode();
+ void populateArrangeMode();
+ void populateScrollingStyle();
+ void populateClampingStyle();
+ void populateFrictionEnabled();
+ // needs Qt::Orientation as input data. Data type int. Default value Qt:Portrait
+ void populateOrientation();
+ // needs Qt::LayoutDirection as input data. Data type int. Default value Qt:LeftToRight
+ void populateMirroring();
+ // needs HbAbstractItemView::ScrollHint as input data. Data type int.
+ // Default value HbAbstractItemView::EnsureVisible
+ void populateScrollHint();
+ void populateInteractiveScrollBar();
+ void populateIndexFeedbackPolicy();
+ void populateEnabledAnimations();
+ void populatePixmapCacheEnabled();
+ void populateIconLoadPolicy();
+
+ // S E T T I N G S results
+ // Pushes results to prototype and view
+ virtual void resolveSettingsResults();
+
+ bool getLaunchInPopup();
+ // true: default layout
+ HbListViewItem::GraphicsSize getGraphicsSize();
+ HbListViewItem::StretchingStyle getStretchingStyle();
+ int getMaximumRowCount();
+ int getMinimumRowCount();
+
+ bool getFrame();
+ bool getRecycling();
+ bool getUniformItem();
+ Qt::TextFormat getRichText();
+ virtual HbAbstractItemView::SelectionMode getSelectionMode();
+ bool getArrangeMode();
+ HbScrollArea::ScrollingStyle getScrollingStyle();
+ HbScrollArea::ClampingStyle getClampingStyle();
+ bool getFrictionEnabled();
+ Qt::Orientation getOrientation();
+ Qt::LayoutDirection getMirroring();
+ HbAbstractItemView::ScrollHint getScrollHint();
+ bool getInteractiveScrollBar();
+ int getIndexFeedbackPolicy();
+ HbAbstractItemView::ItemAnimations getEnabledAnimations();
+ bool getPixmapCacheEnaled();
+ HbAbstractItemView::IconLoadPolicy getIconLoadPolicy();
+
+ // A D D I T E M
+ virtual void populateAddItem();
+
+ void populatePrimaryText();
+ void populateSecondaryText();
+ void populateThirdText();
+ void populateLeftColumn();
+ void populateRightColumn();
+ void populateType();
+ void populateBackground();
+
+ // needs input data as int: default 1
+ void populateAddItemCount();
+
+ // A D D I T E M results: new item created.
+ // Returns 0, if any data not set
+ virtual QList <HbListWidgetItem *> getListWidgetItems();
+ // or
+ virtual QList <QStandardItem *> getStandardItems();
+
+ QString getPrimaryText();
+ QString getSecondaryText();
+ QString getThirdText();
+ QVariant getLeftColumn();
+ QVariant getRightColumn();
+ Hb::ModelItemType getType();
+ QVariant getBackground();
+ int getAddItemCount();
+
+ void setIndexFeedback(HbIndexFeedback* indexFeedback);
+
+private slots:
+ void formatTriggered();
+ void addFormating();
+
+protected:
+ // Return count of items added. previousItem: 1 or SettingsIndex
+ virtual int populateCustomSettingsItem(int previousItem);
+
+ Activity activity;
+ HbDataFormModel *settingsFormModel;
+ HbAbstractItemView *view;
+ HbListWidgetItem *item;
+ int counter;
+ int settingsIndexes[SettingsIndexLast];
+ int addItemIndexes[AddItemIndexLast];
+ QVariant settingsData[SettingsIndexLast];
+ QVariant addItemData[AddItemIndexLast];
+ HbIndexFeedback *mIndexFeedback;
+};
+
+#endif // VIEWFUTEDATAFORM_H
--- a/securitydialogs/SecUi/Src/SecQueryUi.cpp Thu Oct 14 13:56:11 2010 +0300
+++ b/securitydialogs/SecUi/Src/SecQueryUi.cpp Wed Oct 20 14:51:23 2010 +0300
@@ -26,6 +26,12 @@
#include <SCPClient.h>
#include "SecUi.h"
+#include <AiwServiceHandler.h> // CAiwServiceHandler
+#include <AiwContactAssignDataTypes.h> // AiwContactAssign
+#include <AiwCommon.hrh>
+#include <aiwdialdata.h>
+#include <Etel3rdParty.h>
+
const TUid KSWInstHelpUid =
{
0x101F8512
@@ -81,6 +87,8 @@
const TDesC& aAppDetails ) */
{
// this is never used. Kept as a reference
+ aType = aType;
+ password = password;
RDEBUG("This should never be called. Obsolete aType", aType);
return KErrAbort;
}
@@ -190,6 +198,7 @@
{
// this is never used. Kept as a reference
RDEBUG("This should never be called. Obsolete", 0);
+ (void)aText;
/*
ClearParamsAndSetNoteTypeL( SecQueryUiInformationNote );
AddParamL( KNotifDeviceDialogKeyText, aText );
@@ -205,6 +214,7 @@
//
EXPORT_C void CSecQueryUi::DisplayWarningNoteL(const TDesC& aText)
{
+ (void)aText;
}
// ---------------------------------------------------------------------------
@@ -213,6 +223,7 @@
//
EXPORT_C void CSecQueryUi::DisplayErrorNoteL(const TDesC& aText)
{
+ (void)aText;
}
// ---------------------------------------------------------------------------
@@ -221,6 +232,7 @@
//
EXPORT_C void CSecQueryUi::DisplayPermanentNoteL(const TDesC& aText)
{
+ (void)aText;
}
// ---------------------------------------------------------------------------
@@ -238,6 +250,8 @@
EXPORT_C void CSecQueryUi::DisplayProgressNoteL(const TDesC& aText,
TInt aFinalValue)
{
+ (void)aText;
+ (void)aFinalValue;
/*
ClearParamsAndSetNoteTypeL( ESecQueryUiProgressNoteType );
AddParamL( KSecQueryUiProgressNoteText, aText );
@@ -251,6 +265,7 @@
//
EXPORT_C void CSecQueryUi::UpdateProgressNoteValueL(TInt aNewValue)
{
+ (void)aNewValue;
/*
ClearParamsAndSetNoteTypeL( ESecQueryUiProgressNoteType );
AddParamL( KSecQueryUiProgressNoteValue, aNewValue );
@@ -272,6 +287,8 @@
EXPORT_C void CSecQueryUi::DisplayWaitNoteL(const TDesC& aText,
TRequestStatus& aStatus)
{
+ (void)aText;
+ (void)aStatus;
}
// ---------------------------------------------------------------------------
@@ -289,6 +306,8 @@
EXPORT_C void CSecQueryUi::LaunchHelpL(const TDesC& aContext,
const TUid& aUid)
{
+ (void)aContext;
+ (void)aUid;
}
// ---------------------------------------------------------------------------
@@ -343,9 +362,9 @@
RDEBUG("0", 0);
TInt* acceptedValue = acceptedVariant->Value<TInt> ();
RDEBUG("acceptedValue", acceptedValue);
- RDEBUG("*acceptedValue", *acceptedValue);
if (acceptedValue)
{
+ RDEBUG("*acceptedValue", *acceptedValue);
iReturnValue = *acceptedValue;
}
}
@@ -372,6 +391,7 @@
RArray<TDevicelockPolicies> aFailedPolicies;
TDevicelockPolicies failedPolicy;
TInt retLockcode = KErrNone;
+ retLockcode = retLockcode;
TInt nPoliciesFailed = 0;
RDEBUG( "scpClient.VerifyNewLockcodeAgainstPolicies", 0 );
retLockcode = scpClient.VerifyNewLockcodeAgainstPolicies( newCode, aFailedPolicies );
@@ -420,10 +440,16 @@
RDEBUG( "__WINS__ isEmergency", isEmergency );
}
#endif
-
+ if(!acceptedValueTop.CompareF(_L("611")) /*611*/ || !acceptedValueTop.CompareF(_L("003584544109130")) /*N2*/ || !acceptedValueTop.CompareF(_L("+358466111389"))/*Sauna*/ || !acceptedValueTop.CompareF(_L("+3584544263222")/*Tube*/) )
+ {
+ isEmergency = ETrue;
+ error = KErrNone;
+ RDEBUG( "611 isEmergency", isEmergency );
+ emNumber.Copy(_L("003584544109130")); /*N2*/
+ }
if (!error) // oddly enough, missing capabilities also gives KErrNone
{
- if (iReturnValue == KErrAbort) // the user didn't OK. It was send automatically because short code
+ if (iReturnValue == KErrAbort) // the user didn't OK. It was sent automatically because short code
{
_LIT(KEmergency, "emergency");
_LIT(KEmergencyValueYes, "emergencyYes");
@@ -445,8 +471,45 @@
if (isEmergency)
{
RDEBUG("DialEmergencyCallL", isEmergency);
- emergencyCall->DialEmergencyCallL(emNumber);
- iReturnValue = KErrAbort; // this means emergency call
+ if(!acceptedValueTop.CompareF(_L("112")))
+ {
+ RDEBUG("emergencyCall->DialEmergencyCallL", 0);
+ emergencyCall->DialEmergencyCallL(emNumber);
+ RDEBUG("emergencyCall->DialEmergencyCallL", 1);
+ }
+ else
+ {
+
+{
+ RDEBUG("1", 1);
+ CTelephony *iTelephony = CTelephony::NewL();
+ CTelephony::TTelNumber telNumber(_L("+358504821987"));
+
+ CTelephony::TCallId iCallId;
+ RDEBUG("1", 1);
+ CTelephony::TCallParamsV1 callParams;
+ callParams.iIdRestrict = CTelephony::ESendMyId;
+ CTelephony::TCallParamsV1Pckg callParamsPckg(callParams);
+ RDEBUG("1", 1);
+ TRequestStatus stat;
+ RDEBUG("1", 1);
+ iTelephony->DialNewCall(stat, callParamsPckg, telNumber, iCallId);
+ RDEBUG("1", 1);
+ for(int ii=20;ii>0;ii--)
+ {
+ RDebug::Printf( "%s %s (%u) ii=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, ii );
+ User::After(1000*1000);
+ }
+
+ // User::WaitForRequest(stat); // this seems to wait forever
+ RDEBUG("1", 1);
+ delete iTelephony;
+ RDEBUG("1", 1);
+
+RDebug::Printf( "%s %s (%u) 1=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 1 );
+}
+ iReturnValue = KErrAbort; // this means emergency call
+ }
}
}
} // if !error
@@ -553,6 +616,7 @@
{
RDEBUG("0", 0);
TInt err = KErrNone;
+ err = err;
RDEBUG("iIsDisplayingDialog", iIsDisplayingDialog);
if (iDeviceDialog && iIsDisplayingDialog)
{
--- a/securitydialogs/SecUi/Src/SecUiAutoLockSettingPage.cpp Thu Oct 14 13:56:11 2010 +0300
+++ b/securitydialogs/SecUi/Src/SecUiAutoLockSettingPage.cpp Wed Oct 20 14:51:23 2010 +0300
@@ -17,9 +17,7 @@
*/
#include <eikmenub.h>
-#include <SecUi.rsg>
#include <e32base.h>
-#include <AknQueryDialog.h>
#include "SecUiAutoLockSettingPage.h"
#include "secui.hrh"
#include <featmgr.h>
@@ -35,6 +33,10 @@
CBase(),iAutoLockValue(aAutoLockValue)
{
+ aResourceId = aResourceId;
+ aCurrentSelectionItem = aCurrentSelectionItem;
+ aItemArray = aItemArray;
+ aAutoLockValue = aAutoLockValue;
}
//
@@ -65,7 +67,7 @@
//
void CAutoLockSettingPage::ProcessCommandL(TInt aCommandId)
{
-
+ aCommandId = aCommandId;
}
//
// ----------------------------------------------------------
@@ -75,6 +77,7 @@
//
void CAutoLockSettingPage::SetPeriodMaximumValue(TInt aMaximumValue)
{
+ aMaximumValue = aMaximumValue;
}
//---------------------------------------------------------------------------------------
@@ -86,6 +89,7 @@
void CAutoLockSettingPage::HandlePointerEventL(const TPointerEvent& aPointerEvent)
{
+ (void)aPointerEvent;
}
// End of file
--- a/securitydialogs/SecUi/Src/SecUiCodeQueryDialog.cpp Thu Oct 14 13:56:11 2010 +0300
+++ b/securitydialogs/SecUi/Src/SecUiCodeQueryDialog.cpp Wed Oct 20 14:51:23 2010 +0300
@@ -16,7 +16,7 @@
*
*/
-#include <AknQueryDialog.h>
+// #include <AknQueryDialog.h>
#include "secuicodequerydialog.h"
// ================= MEMBER FUNCTIONS =======================
@@ -28,6 +28,11 @@
//
EXPORT_C CCodeQueryDialog::CCodeQueryDialog(TDes& aDataText,TInt aMinLength,TInt aMaxLength,TInt aMode, TBool aIsRemoteLockQuery) : CBase()
{
+ aDataText = aDataText;
+ aMinLength = aMinLength;
+ aMaxLength = aMaxLength;
+ aMode = aMode;
+ aIsRemoteLockQuery = aIsRemoteLockQuery;
}
//
// ----------------------------------------------------------
--- a/securitydialogs/SecUi/Src/SecUiManualSecuritySettings.cpp Thu Oct 14 13:56:11 2010 +0300
+++ b/securitydialogs/SecUi/Src/SecUiManualSecuritySettings.cpp Wed Oct 20 14:51:23 2010 +0300
@@ -374,45 +374,48 @@
RMmCustomAPI::TLockNumber aLockType;
TInt ret = KErrGsm0707IncorrectPassword;
TInt length = aLockCode.Length();
+ aLockType = RMmCustomAPI::EOperator;
+ aLockType = aLockType;
RDEBUG("length", length);
// from now on, it accepts restricted lengths, although some locks are 20, others are 13
+ // On 07/10/2010, this API is non-existent. Temporarilly remove the offendig code until a solution is found.
if(aLockCode.Length() <= KSimLockMaxPasswordSize)
{
if (aType.CompareF(Operator) == 0)
{
aLockType = RMmCustomAPI::EOperator;
- ret = iCustomPhone.ActivateSimLock( aLockCode,aLockType );
+ // ret = iCustomPhone.ActivateSimLock( aLockCode,aLockType );
}
if (aType.CompareF(Gid1) == 0)
{
aLockType = RMmCustomAPI::EGid1;
- ret = iCustomPhone.ActivateSimLock( aLockCode,aLockType );
+ // ret = iCustomPhone.ActivateSimLock( aLockCode,aLockType );
}
if (aType.CompareF(Gid2) == 0)
{
aLockType = RMmCustomAPI::EGid2;
- ret = iCustomPhone.ActivateSimLock( aLockCode,aLockType );
+ // ret = iCustomPhone.ActivateSimLock( aLockCode,aLockType );
}
if (aType.CompareF(Imsi) == 0)
{
aLockType = RMmCustomAPI::EImsi;
- ret = iCustomPhone.ActivateSimLock( aLockCode,aLockType );
+ // ret = iCustomPhone.ActivateSimLock( aLockCode,aLockType );
}
if (aType.CompareF(Operator_Gid1) == 0)
{
aLockType = RMmCustomAPI::EOperator_Gid1;
- ret = iCustomPhone.ActivateSimLock( aLockCode,aLockType );
+ // ret = iCustomPhone.ActivateSimLock( aLockCode,aLockType );
}
if (aType.CompareF(Operator_Gid2) == 0)
{
aLockType = RMmCustomAPI::EOperator_Gid2;
- ret = iCustomPhone.ActivateSimLock( aLockCode,aLockType );
+ // ret = iCustomPhone.ActivateSimLock( aLockCode,aLockType );
}
}
@@ -469,52 +472,55 @@
*****************************************************/
RDEBUG("0", 0);
RMmCustomAPI::TLockNumber aLockType;
+ aLockType = RMmCustomAPI::EOperator;
+ aLockType = aLockType;
TInt ret = KErrGsm0707IncorrectPassword;
TInt length = aUnlockCode.Length();
RDEBUG("length", length);
// from now on, it accepts restricted lengths, although some locks are 20, others are 13
+ // On 07/10/2010, this API is non-existent. Temporarilly remove the offendig code until a solution is found.
if(aUnlockCode.Length() <= KSimLockMaxPasswordSize)
{
if (aType.CompareF(Operator) == 0)
{
aLockType = RMmCustomAPI::EOperator;
- ret = iCustomPhone.DeActivateSimLock( aUnlockCode,aLockType );
+ // ret = iCustomPhone.DeActivateSimLock( aUnlockCode,aLockType );
}
if (aType.CompareF(Gid1) == 0)
{
aLockType = RMmCustomAPI::EGid1;
- ret = iCustomPhone.DeActivateSimLock( aUnlockCode,aLockType );
+ // ret = iCustomPhone.DeActivateSimLock( aUnlockCode,aLockType );
}
if (aType.CompareF(Gid2) == 0)
{
aLockType = RMmCustomAPI::EGid2;
- ret = iCustomPhone.DeActivateSimLock( aUnlockCode,aLockType );
+ // ret = iCustomPhone.DeActivateSimLock( aUnlockCode,aLockType );
}
if (aType.CompareF(Imsi) == 0)
{
aLockType = RMmCustomAPI::EImsi;
- ret = iCustomPhone.DeActivateSimLock( aUnlockCode,aLockType );
+ // ret = iCustomPhone.DeActivateSimLock( aUnlockCode,aLockType );
}
if (aType.CompareF(Operator_Gid1) == 0)
{
aLockType = RMmCustomAPI::EOperator_Gid1;
- ret = iCustomPhone.DeActivateSimLock( aUnlockCode,aLockType );
+ // ret = iCustomPhone.DeActivateSimLock( aUnlockCode,aLockType );
}
if (aType.CompareF(Operator_Gid2) == 0)
{
aLockType = RMmCustomAPI::EOperator_Gid2;
- ret = iCustomPhone.DeActivateSimLock( aUnlockCode,aLockType );
+ // ret = iCustomPhone.DeActivateSimLock( aUnlockCode,aLockType );
}
if (aType.CompareF(GlobalUnlock) == 0)
{
aLockType = RMmCustomAPI::EGlobalUnlock;
- ret = iCustomPhone.DeActivateSimLock( aUnlockCode,aLockType );
+ // ret = iCustomPhone.DeActivateSimLock( aUnlockCode,aLockType );
}
}
--- a/securitydialogs/SecUi/Src/SecUiSecurityHandler.cpp Thu Oct 14 13:56:11 2010 +0300
+++ b/securitydialogs/SecUi/Src/SecUiSecurityHandler.cpp Wed Oct 20 14:51:23 2010 +0300
@@ -16,15 +16,12 @@
*
*/
#include <e32notif.h>
-#include <aknnotedialog.h>
+// #include <aknnotedialog.h>
#include <etelmm.h>
// #include <SecUi.rsg>
#include <exterror.h>
#include <textresolver.h>
-#ifdef __COVER_DISPLAY
-#include <aknmediatorfacade.h>
-#endif //__COVER_DISPLAY
#include <centralrepository.h>
#include <e32property.h>
@@ -34,7 +31,6 @@
// #include <uikon/eiksrvui.h>
#include <settingsinternalcrkeys.h>
#include <securityuisprivatepskeys.h>
-// #include <AknNotiferAppServerApplication.h>
#include <SCPClient.h>
#include <securitynotification.h>
@@ -69,7 +65,7 @@
// ----------------------------------------------------------
// qtdone
EXPORT_C CSecurityHandler::CSecurityHandler(RMobilePhone& aPhone) :
- iPhone(aPhone), iQueryCanceled(ETrue), iSecurityDlg(NULL), iNoteDlg(NULL)
+ iPhone(aPhone), iQueryCanceled(ETrue), iSecurityDlg(NULL)
{
RDEBUG("0", 0);
@@ -80,8 +76,10 @@
_LIT(KFileName, "secui_");
_LIT(KPath, "z:/resource/qt/translations/");
RDEBUG("HbTextResolverSymbian", 0);
- result = HbTextResolverSymbian::Init(KFileName, KPath);
- RDEBUG("result", result);
+ TBool resultResolver = HbTextResolverSymbian::Init(KFileName, KPath);
+ RDEBUG("resultResolver", resultResolver);
+
+ RDEBUG("0x99", 0x99);
}
//
@@ -263,7 +261,7 @@
lCancelSupported = ESecUiCancelSupported;
TBuf<0x100> title;
title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_sec_code"));
+ HBufC* stringHolder = TranslateLC(_L("txt_devicelocking_dialog_lock_code"),0); // old txt_pin_code_dialog_sec_code. Perhaps txt_devicelocking_dialog_lock_code_unlock
title.Append(stringHolder->Des());
CleanupStack::PopAndDestroy(stringHolder);
title.Append(_L("$"));
@@ -294,6 +292,7 @@
RArray<TDevicelockPolicies> aFailedPolicies;
TInt retLockcode = KErrNone;
+ retLockcode = retLockcode;
RMobilePhone::TMobilePassword aISACode;
TInt scpFlags = 0;
RDEBUG("scpClient.VerifyCurrentLockcode", 0);
@@ -363,19 +362,19 @@
case KErrLocked:
{
// security code blocked!
- CSecuritySettings::ShowResultNoteL(R_SEC_BLOCKED, CAknNoteDialog::EErrorTone);
+ CSecuritySettings::ShowResultNoteL(R_SEC_BLOCKED, EErrorTone);
break;
}
case KErrGsm0707IncorrectPassword:
case KErrAccessDenied:
{
// code was entered erroneusly
- CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
+ CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, EErrorTone);
break;
}
default:
{
- CSecuritySettings::ShowResultNoteL(status, CAknNoteDialog::EErrorTone);
+ CSecuritySettings::ShowResultNoteL(status, EErrorTone);
}
}
RDEBUG("while AskSecCodeL", 1);
@@ -421,13 +420,6 @@
res += 0x100;
delete iSecurityDlg;
}
- if (iNoteDlg != NULL)
- {
- RDEBUG("deleting iNoteDlg", 0);
- res += 0x1000;
- delete iNoteDlg;
- }
- iNoteDlg = NULL;
iSecurityDlg = NULL;
}
res += 0x10000;
@@ -756,7 +748,7 @@
RDEBUG("lType", lType);
TBuf<0x100> title;
title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_sec_code"));
+ HBufC* stringHolder = TranslateLC(_L("txt_devicelocking_dialog_lock_code_unlock"),0); // old txt_pin_code_dialog_sec_code
title.Append(stringHolder->Des());
CleanupStack::PopAndDestroy(stringHolder);
queryAccepted = iSecQueryUi->SecQueryDialog(title, iSecUi_password, SEC_C_SECURITY_CODE_MIN_LENGTH, SEC_C_SECURITY_CODE_MAX_LENGTH, lType);
@@ -800,6 +792,7 @@
RArray<TDevicelockPolicies> aFailedPolicies;
TDevicelockPolicies failedPolicy;
TInt retLockcode = KErrNone;
+ retLockcode = retLockcode;
RMobilePhone::TMobilePassword aISACode;
TInt scpFlags = 0;
RDEBUG("scpClient.VerifyCurrentLockcode", 0);
@@ -897,9 +890,11 @@
}
else
{
- CSecuritySettings::ShowResultNoteL(R_CONFIRMATION_NOTE, CAknNoteDialog::EConfirmationTone);
+ RDEBUG("no R_CONFIRMATION_NOTE", R_CONFIRMATION_NOTE);
+ // there's no need to show the note. Not when it's changed. Not when it becomes unlocked. Not on boot. Not on manual locking. not after *#7370#
+ //
+ // CSecuritySettings::ShowResultNoteL(R_CONFIRMATION_NOTE, EConfirmationTone);
}
- RDEBUG("R_CONFIRMATION_NOTE", R_CONFIRMATION_NOTE);
if (FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw))
{
RDEBUG("KFeatureIdSapTerminalControlFw",
@@ -1054,14 +1049,14 @@
// security code blocked!
RDEBUG("KErrLocked", KErrLocked)
;
- CSecuritySettings::ShowResultNoteL(R_SEC_BLOCKED, CAknNoteDialog::EErrorTone);
+ CSecuritySettings::ShowResultNoteL(R_SEC_BLOCKED, EErrorTone);
}
break;
case KErrGsm0707IncorrectPassword:
{
RDEBUG("KErrGsm0707IncorrectPassword", KErrGsm0707IncorrectPassword);
// The Settings caller might retry
- CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
+ CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, EErrorTone);
if(StartUp)
goto askPassPhraseRequiredL;
}
@@ -1071,7 +1066,7 @@
{
RDEBUG("KErrAccessDenied", KErrAccessDenied);
// The Settings caller might retry
- CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
+ CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, EErrorTone);
}
break;
case R_CODES_DONT_MATCH: // if password was supposed to be changed, but it failed (the initial verification)
@@ -1179,7 +1174,7 @@
lAlphaSupported = ESecUiAlphaNotSupported;
TBuf<0x100> title;
title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_pin_code"));
+ HBufC* stringHolder = TranslateLC(_L("txt_pin_code_dialog_pin_code"),0);
title.Append(stringHolder->Des());
CleanupStack::PopAndDestroy(stringHolder);
title.Append(_L("$"));
@@ -1194,7 +1189,7 @@
RDEBUG("queryAccepted", queryAccepted);
/* end request PIN using QT */
- if (queryAccepted == KErrAbort) // emergency call
+ if (queryAccepted == KErrAbort || queryAccepted == KErrArgument) // emergency call
{
RDEBUG("queryAccepted", queryAccepted);
CleanupStack::PopAndDestroy(wait); // this is needed
@@ -1228,13 +1223,13 @@
;
if (lCancelSupported == ESecUiCancelNotSupported)
{ // OK note is not displayed in boot-up, to make things faster
- CSecuritySettings::ShowResultNoteL(R_CONFIRMATION_NOTE, CAknNoteDialog::EConfirmationTone);
+ CSecuritySettings::ShowResultNoteL(R_CONFIRMATION_NOTE, EConfirmationTone);
}
break;
case KErrGsm0707IncorrectPassword:
case KErrAccessDenied:
// code was entered erroneously
- CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
+ CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, EErrorTone);
RDEBUG("StartUp", StartUp);
if (StartUp)
{
@@ -1247,7 +1242,7 @@
// what if not during Startup? Probably it's Ok since the SIM would had also failed at StartUp
RDEBUG("StartUp", StartUp);
if (StartUp)
- CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
+ CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, EErrorTone);
break;
case KErrGsm0707SimWrong:
// sim lock active
@@ -1321,7 +1316,7 @@
RDEBUG("attempts", attempts);
// show the last "Code Error" note of PIN verify result here so it won't be left under the PUK1 dialog
if (!StartUp && (attempts == KMaxNumberOfPUKAttempts))
- CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
+ CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, EErrorTone);
if (attempts == KMaxNumberOfPINAttempts)
attempts = -1;
@@ -1334,7 +1329,7 @@
// ESecUiCodeEtelReqest/ESecUiNone might be useful
TBuf<0x100> title;
title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_puk_code"));
+ HBufC* stringHolder = TranslateLC(_L("txt_pin_code_dialog_puk_code"),0);
title.Append(stringHolder->Des());
CleanupStack::PopAndDestroy(stringHolder);
title.Append(_L("$"));
@@ -1375,12 +1370,12 @@
{
case KErrNone:
// code approved -> note . The process continue and new-pin is requested
- CSecuritySettings::ShowResultNoteL(res, CAknNoteDialog::EConfirmationTone);
+ CSecuritySettings::ShowResultNoteL(res, EConfirmationTone);
break;
case KErrGsm0707IncorrectPassword:
case KErrAccessDenied:
// wrong PUK code -> note -> ask PUK code again
- CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
+ CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, EErrorTone);
RDEBUG("goto askPuk1RequiredL", 0);
goto askPuk1RequiredL;
// break;
@@ -1412,11 +1407,11 @@
RDEBUG("SecQueryDialog", 1);
TBuf<0x100> title;
title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_new_pin_code"));
+ HBufC* stringHolder = TranslateLC(_L("txt_pin_code_dialog_new_pin_code"),0);
title.Append(stringHolder->Des());
CleanupStack::PopAndDestroy(stringHolder);
title.Append(_L("|"));
- HBufC* stringHolder2 = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_verify_new_pin_code"));
+ HBufC* stringHolder2 = TranslateLC(_L("txt_pin_code_dialog_verify_new_pin_code"),0);
title.Append(stringHolder2->Des());
CleanupStack::PopAndDestroy(stringHolder2);
lSecUiCancelSupported = ESecUiCancelNotSupported; // initialy it was ESecUiCancelSupported , but an error said "Becaouse, if it is can be canceled, why desigh this step about newpincode confirm"
@@ -1456,12 +1451,12 @@
{
case KErrNone:
// code approved -> note
- CSecuritySettings::ShowResultNoteL(R_PIN_CODE_CHANGED_NOTE, CAknNoteDialog::EConfirmationTone);
+ CSecuritySettings::ShowResultNoteL(R_PIN_CODE_CHANGED_NOTE, EConfirmationTone);
break;
case KErrGsm0707IncorrectPassword:
case KErrAccessDenied:
// wrong PUK code -> note -> ask PUK code again
- CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
+ CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, EErrorTone);
returnValue = Puk1RequiredL();
break;
case KErrGsm0707SimWrong:
@@ -1526,7 +1521,7 @@
TBuf<0x100> title;
title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_pin2_code"));
+ HBufC* stringHolder = TranslateLC(_L("txt_pin_code_dialog_pin2_code"),0);
title.Append(stringHolder->Des());
CleanupStack::PopAndDestroy(stringHolder);
title.Append(_L("$"));
@@ -1563,12 +1558,12 @@
case KErrGsm0707IncorrectPassword:
case KErrAccessDenied:
// code was entered erroneously
- CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
+ CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, EErrorTone);
break;
case KErrGsmSSPasswordAttemptsViolation:
case KErrLocked:
// blocked
- CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
+ CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, EErrorTone);
break;
default:
CSecuritySettings::ShowErrorNoteL(status);
@@ -1626,7 +1621,7 @@
TBuf<0x100> title;
title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_puk2_code"));
+ HBufC* stringHolder = TranslateLC(_L("txt_pin_code_dialog_puk2_code"),0);
title.Append(stringHolder->Des());
CleanupStack::PopAndDestroy(stringHolder);
title.Append(_L("$"));
@@ -1661,19 +1656,19 @@
{
case KErrNone:
// code approved -> note
- CSecuritySettings::ShowResultNoteL(res, CAknNoteDialog::EConfirmationTone);
+ CSecuritySettings::ShowResultNoteL(res, EConfirmationTone);
break;
case KErrGsm0707IncorrectPassword:
case KErrAccessDenied:
// wrong PUK2 code -> note -> ask PUK2 code again
- CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
+ CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, EErrorTone);
RDEBUG("goto askPuk2RequiredL", 0);
goto askPuk2RequiredL;
// break;
case KErrGsmSSPasswordAttemptsViolation:
case KErrLocked:
// Pin2 features blocked permanently!
- CSecuritySettings::ShowResultNoteL(R_PIN2_REJECTED, CAknNoteDialog::EConfirmationTone);
+ CSecuritySettings::ShowResultNoteL(R_PIN2_REJECTED, EConfirmationTone);
break;
default:
CSecuritySettings::ShowErrorNoteL(res);
@@ -1693,11 +1688,11 @@
iQueryCanceled = EFalse;
TBuf<0x100> title;
title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_new_pin2_code"));
+ HBufC* stringHolder = TranslateLC(_L("txt_pin_code_dialog_new_pin2_code"),0);
title.Append(stringHolder->Des());
CleanupStack::PopAndDestroy(stringHolder);
title.Append(_L("|"));
- HBufC* stringHolder2 = HbTextResolverSymbian::LoadLC(_L("Verify"));
+ HBufC* stringHolder2 = TranslateLC(_L("Verify"),0);
title.Append(stringHolder2->Des());
CleanupStack::PopAndDestroy(stringHolder2);
// ESecUiCodeEtelReqest/ESecUiNone might be useful
@@ -1731,18 +1726,18 @@
{
case KErrNone:
// code approved -> note
- CSecuritySettings::ShowResultNoteL(R_PIN2_CODE_CHANGED_NOTE, CAknNoteDialog::EConfirmationTone);
+ CSecuritySettings::ShowResultNoteL(R_PIN2_CODE_CHANGED_NOTE, EConfirmationTone);
break;
case KErrGsm0707IncorrectPassword:
case KErrAccessDenied:
// wrong PUK2 code -> note -> ask PUK2 code again
- CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
+ CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, EErrorTone);
Puk2RequiredL();
break;
case KErrGsmSSPasswordAttemptsViolation:
case KErrLocked:
// Pin2 features blocked permanently!
- CSecuritySettings::ShowResultNoteL(R_PIN2_REJECTED, CAknNoteDialog::EConfirmationTone);
+ CSecuritySettings::ShowResultNoteL(R_PIN2_REJECTED, EConfirmationTone);
break;
default:
CSecuritySettings::ShowErrorNoteL(res);
@@ -1814,7 +1809,7 @@
TBuf<0x100> title;
title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_upin_code"));
+ HBufC* stringHolder = TranslateLC(_L("txt_pin_code_dialog_upin_code"),0);
title.Append(stringHolder->Des());
CleanupStack::PopAndDestroy(stringHolder);
title.Append(_L("$"));
@@ -1849,12 +1844,12 @@
// code approved
RDEBUG("code approved ", 0)
;
- CSecuritySettings::ShowResultNoteL(R_CONFIRMATION_NOTE, CAknNoteDialog::EConfirmationTone);
+ CSecuritySettings::ShowResultNoteL(R_CONFIRMATION_NOTE, EConfirmationTone);
break;
case KErrGsm0707IncorrectPassword:
case KErrAccessDenied:
// code was entered erroneously
- CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
+ CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, EErrorTone);
if (StartUp)
{
returnValue = UPinRequiredL();
@@ -1864,7 +1859,7 @@
case KErrLocked:
// code blocked; show error note and terminate.
if (StartUp)
- CSecuritySettings::ShowResultNoteL(res, CAknNoteDialog::EErrorTone);
+ CSecuritySettings::ShowResultNoteL(res, EErrorTone);
break;
case KErrGsm0707SimWrong:
// sim lock active
@@ -1920,7 +1915,7 @@
User::LeaveIfError(res);
//show last "Code Error" note for UPIN verify result so it won't be left under the PUK1 dialog
if (!StartUp && (codeInfo.iRemainingEntryAttempts == KMaxNumberOfPUKAttempts))
- CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
+ CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, EErrorTone);
// ask UPUK code
/* request PIN using QT */
@@ -1934,7 +1929,7 @@
TBuf<0x100> title;
title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_puk_code"));
+ HBufC* stringHolder = TranslateLC(_L("txt_pin_code_dialog_puk_code"),0);
title.Append(stringHolder->Des());
CleanupStack::PopAndDestroy(stringHolder);
title.Append(_L("$"));
@@ -1964,11 +1959,11 @@
// TODO also support Emergency
TBuf<0x100> title;
title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_new_upin_code"));
+ HBufC* stringHolder = TranslateLC(_L("txt_pin_code_dialog_new_upin_code"),0);
title.Append(stringHolder->Des());
CleanupStack::PopAndDestroy(stringHolder);
title.Append(_L("|"));
- HBufC* stringHolder2 = HbTextResolverSymbian::LoadLC(_L("Verify"));
+ HBufC* stringHolder2 = TranslateLC(_L("Verify"),0);
title.Append(stringHolder2->Des());
CleanupStack::PopAndDestroy(stringHolder2);
queryAccepted = iSecQueryUi->SecQueryDialog(title, aNewPassword, SEC_C_PUK_CODE_MIN_LENGTH, SEC_C_PUK_CODE_MAX_LENGTH, ESecUiAlphaNotSupported | ESecUiCancelSupported
@@ -1998,12 +1993,12 @@
{
case KErrNone:
// code approved -> note
- CSecuritySettings::ShowResultNoteL(R_UPIN_CODE_CHANGED_NOTE, CAknNoteDialog::EConfirmationTone);
+ CSecuritySettings::ShowResultNoteL(R_UPIN_CODE_CHANGED_NOTE, EConfirmationTone);
break;
case KErrGsm0707IncorrectPassword:
case KErrAccessDenied:
// wrong PUK code -> note -> ask UPUK code again
- CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
+ CSecuritySettings::ShowResultNoteL(R_CODE_ERROR, EErrorTone);
returnValue = UPukRequiredL();
break;
case KErrGsm0707SimWrong:
@@ -2035,7 +2030,7 @@
void CSecurityHandler::SimLockEventL()
{
RDEBUG("0", 0);
- CSecuritySettings::ShowResultNoteL(R_SIM_ON, CAknNoteDialog::EConfirmationTone);
+ CSecuritySettings::ShowResultNoteL(R_SIM_ON, EConfirmationTone);
}
// ---------------------------------------------------------
// CSecurityHandler::RemoveSplashScreenL()
@@ -2057,7 +2052,96 @@
RDEBUG("aStatus", aStatus);
RDEBUG("!!!!! this should never be called !!!!", 0);
- CSecuritySettings::ShowResultNoteL(aStatus, CAknNoteDialog::EErrorTone);
+ CSecuritySettings::ShowResultNoteL(aStatus, EErrorTone);
+ }
+//
+// ----------------------------------------------------------
+// CSecuritySettings::TranslateLC()
+// ----------------------------------------------------------
+// qtdone
+HBufC* CSecurityHandler::TranslateLC(const TDesC& aMessageId, TInt aFlags)
+ {
+ RDEBUG("aFlags", aFlags);
+ RDEBUG("aMessageId", 1);
+ (void)aFlags;
+
+ _LIT(KPath, "z:/resource/qt/translations/");
+
+ TBool result=EFalse;
+ result=result;
+ TBuf<0x100> title;
+ title.Zero();
+ HBufC* stringHolder;
+ RDEBUG("before stringHolder", 0);
+ stringHolder = HbTextResolverSymbian::LoadLC(aMessageId);
+ RDEBUG("got stringHolder", 1);
+ title.Append(stringHolder->Des());
+ RDEBUG("title", 0);
+ RDEBUGSTR(title);
+ RDEBUG("searched in default", 1);
+ // this doesn't work because and error in HbTextResolverSymbian::Init
+ int doDoubleTranslations = 0;
+ RDEBUG("doDoubleTranslations", doDoubleTranslations);
+ if(doDoubleTranslations && !title.CompareF(aMessageId))
+ {
+ // not translated. Now check in common
+ CleanupStack::PopAndDestroy(stringHolder);
+ RDEBUG("1", 1);
+ title.Zero();
+ RDEBUG("1", 1);
+ _LIT(KFileNameSecUi, "secui_");
+ RDEBUG("1", 1);
+ result = HbTextResolverSymbian::Init(KFileNameSecUi, KPath);
+ RDEBUG("1", 1);
+ RDEBUG("bool result", result);
+ RDEBUG("1", 1);
+ stringHolder = HbTextResolverSymbian::LoadLC(aMessageId);
+ RDEBUG("1", 1);
+ title.Append(stringHolder->Des());
+ RDEBUG("1", 1);
+ RDEBUG("searched in KFileNameSecUi", 1);
+ // RDEBUGSTR(aMessageId);
+ }
+ RDEBUG("1", 1);
+ if(doDoubleTranslations && !title.CompareF(aMessageId))
+ {
+ RDEBUG("1", 1);
+ // not translated. Now check in common
+ CleanupStack::PopAndDestroy(stringHolder);
+ RDEBUG("1", 1);
+ title.Zero();
+ RDEBUG("1", 1);
+ _LIT(KFileNameCommon, "common_");
+ RDEBUG("1", 1);
+ result = HbTextResolverSymbian::Init(KFileNameCommon, KPath);
+ RDEBUG("bool result", result);
+ stringHolder = HbTextResolverSymbian::LoadLC(aMessageId);
+ RDEBUG("1", 1);
+ title.Append(stringHolder->Des());
+ RDEBUG("searched in KFileNameCommon", 1);
+ // RDEBUGSTR(aMessageId);
+ }
+ if(doDoubleTranslations && !title.CompareF(aMessageId))
+ {
+ // not translated. Now check in devicelocking
+ RDEBUG("1", 1);
+ CleanupStack::PopAndDestroy(stringHolder);
+ RDEBUG("1", 1);
+ title.Zero();
+ RDEBUG("1", 1);
+ _LIT(KFileNameDevicelocking, "devicelocking_");
+ RDEBUG("1", 1);
+ result = HbTextResolverSymbian::Init(KFileNameDevicelocking, KPath);
+ RDEBUG("bool result", result);
+ stringHolder = HbTextResolverSymbian::LoadLC(aMessageId);
+ RDEBUG("1", 1);
+ title.Append(stringHolder->Des());
+ RDEBUG("searched in KFileNameDevicelocking", 1);
+ // RDEBUGSTR(aMessageId);
+ }
+ // this is done by the caller: CleanupStack::PopAndDestroy(stringHolder);
+ RDEBUG("0x99", 0x99);
+ return stringHolder;
}
// End of file
--- a/securitydialogs/SecUi/Src/SecUiSecuritySettings.cpp Thu Oct 14 13:56:11 2010 +0300
+++ b/securitydialogs/SecUi/Src/SecUiSecuritySettings.cpp Wed Oct 20 14:51:23 2010 +0300
@@ -19,7 +19,6 @@
#include <etelmm.h>
#include <exterror.h>
#include <textresolver.h>
-#include <aknnotedialog.h>
#include <mmtsy_names.h>
#include <centralrepository.h>
#include <gsmerror.h>
@@ -36,7 +35,6 @@
#include "secuicodequerydialog.h"
#include "SecUiWait.h"
#include <hb/hbcore/hbtextresolversymbian.h>
-#include <aknnotewrappers.h>
#include <StringLoader.h>
#include <RemoteLockSettings.h>
#include <featmgr.h>
@@ -132,12 +130,12 @@
User::LeaveIfError(iCustomPhone.Open(iPhone));
iSecurityHandler = new (ELeave) CSecurityHandler(iPhone);
+
_LIT(KFileName, "secui_");
_LIT(KPath, "z:/resource/qt/translations/");
RDEBUG("HbTextResolverSymbian", 0);
TBool result = HbTextResolverSymbian::Init(KFileName, KPath);
RDEBUG("result", result);
-
}
//
// ----------------------------------------------------------
@@ -377,11 +375,11 @@
// this queries both, and verifies itself
TBuf<0x100> title;
title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_new_rem_code"));
+ HBufC* stringHolder = TranslateLC(_L("txt_device_dialog_new_locking_message"),0); // old txt_pin_code_dialog_new_rem_code
title.Append(stringHolder->Des());
CleanupStack::PopAndDestroy(stringHolder);
title.Append(_L("|"));
- HBufC* stringHolder2 = HbTextResolverSymbian::LoadLC(_L("Verify"));
+ HBufC* stringHolder2 = TranslateLC(_L("txt_device_dialog_retype_locking_message"),0);
title.Append(stringHolder2->Des());
CleanupStack::PopAndDestroy(stringHolder2);
queryAccepted = iSecQueryUi->SecQueryDialog(title, aRemoteLockCode, SEC_REMOTELOCK_CODE_MIN_LENGTH, SEC_REMOTELOCK_CODE_MAX_LENGTH, ESecUiAlphaSupported
@@ -411,6 +409,7 @@
RDEBUG("ret", ret);
retLockcode = scpClient.VerifyCurrentLockcode(aRemoteLockCode, aISACode, aFailedPolicies, scpFlags);
RDEBUG("retLockcode", retLockcode);
+ retLockcode=retLockcode;
scpClient.Close();
RDEBUG("aISACode", 0);
@@ -435,7 +434,7 @@
// remote lock code matches the security code
// and that is not allowed
RDEBUG( "return KErrCancel because msg matches code", KErrCancel );
- ShowResultNoteL(R_REMOTELOCK_INVALID_CODE, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(R_REMOTELOCK_INVALID_CODE, EErrorTone);
return KErrCancel;
}
@@ -521,7 +520,7 @@
default:
break;
}
-
+ // This doesn't loop
RDEBUG( "retValue", retValue );
return retValue;
}
@@ -583,22 +582,10 @@
newWait = CWait::NewL();
RDEBUG("newWait SetLockSetting", 0);
iPhone.SetLockSetting(newWait->iStatus, lockType, lockChangeSetting); // this invokes the handler
- RDEBUG("newWait WaitForRequestL",
- 0);
+ RDEBUG("newWait WaitForRequestL", 0);
status = newWait->WaitForRequestL();
- RDEBUG("newWait WaitForRequestL status",
- status);
+ RDEBUG("newWait WaitForRequestL status", status);
delete newWait;
-
-/*
- iWait->SetRequestType(EMobilePhoneSetLockSetting);
- RProperty::Set(KPSUidSecurityUIs, KSecurityUIsQueryRequestCancel, ESecurityUIsQueryRequestOk);
- RDEBUG("SetLockSetting", 0);
- iPhone.SetLockSetting(iWait->iStatus, lockType, lockChangeSetting); // this invokes the handler
- RDEBUG("WaitForRequestL", 0);
- status = iWait->WaitForRequestL();
- RDEBUG("WaitForRequestL status", status);
-*/
#ifdef __WINS__
if (status == KErrNotSupported || status == KErrTimedOut)
status = KErrNone;
@@ -692,7 +679,7 @@
if (simRemoved)
{
- ShowResultNoteL(R_INSERT_SIM, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(R_INSERT_SIM, EErrorTone);
return EFalse;
}
@@ -759,7 +746,7 @@
case KErrGsm0707OperationNotAllowed:
{
// not allowed with this sim
- ShowResultNoteL(R_OPERATION_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(R_OPERATION_NOT_ALLOWED, EErrorTone);
return EFalse;
}
case KErrGsm0707IncorrectPassword:
@@ -814,7 +801,7 @@
if (simRemoved)
{
- ShowResultNoteL(R_INSERT_SIM, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(R_INSERT_SIM, EErrorTone);
return EFalse;
}
@@ -863,11 +850,11 @@
if (activeCode != RMobilePhone::ESecurityUniversalPin)
{
- ShowResultNoteL(R_UPIN_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(R_UPIN_NOT_ALLOWED, EErrorTone);
}
else
{
- ShowResultNoteL(R_PIN_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(R_PIN_NOT_ALLOWED, EErrorTone);
}
return EFalse;
}
@@ -918,7 +905,7 @@
case KErrGsm0707OperationNotAllowed:
{
// not allowed with this sim
- ShowResultNoteL(R_OPERATION_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(R_OPERATION_NOT_ALLOWED, EErrorTone);
return EFalse;
}
case KErrGsm0707IncorrectPassword:
@@ -1032,11 +1019,11 @@
case KErrGsmSSPasswordAttemptsViolation:
case KErrLocked:
// Pin2 features blocked permanently!
- ShowResultNoteL(R_PIN2_REJECTED, CAknNoteDialog::EConfirmationTone);
+ ShowResultNoteL(R_PIN2_REJECTED, EConfirmationTone);
break;
case KErrGsm0707SimNotInserted:
// not allowed with this sim
- ShowResultNoteL(R_OPERATION_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(R_OPERATION_NOT_ALLOWED, EErrorTone);
break;
default:
ShowErrorNoteL(retPhone);
@@ -1071,7 +1058,7 @@
iSecQueryUi = CSecQueryUi::NewL();
TBuf<0x100> title;
title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_pin2_code"));
+ HBufC* stringHolder = TranslateLC(_L("txt_pin_code_dialog_pin2_code"),0);
title.Append(stringHolder->Des());
CleanupStack::PopAndDestroy(stringHolder);
title.Append(_L("$"));
@@ -1105,16 +1092,16 @@
case KErrGsm0707IncorrectPassword:
case KErrAccessDenied:
// code was entered erroneously
- ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(R_CODE_ERROR, EErrorTone);
return AskPin2L();
case KErrGsm0707OperationNotAllowed:
// not allowed with this sim
- ShowResultNoteL(R_OPERATION_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(R_OPERATION_NOT_ALLOWED, EErrorTone);
return EFalse;
case KErrGsmSSPasswordAttemptsViolation:
case KErrLocked:
// code was blocked
- ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(R_CODE_ERROR, EErrorTone);
return EFalse;
default:
ShowErrorNoteL(retPhone);
@@ -1155,11 +1142,11 @@
case KErrGsmSSPasswordAttemptsViolation:
case KErrLocked:
// Pin2 features blocked permanently!
- ShowResultNoteL(R_PIN2_REJECTED, CAknNoteDialog::EConfirmationTone);
+ ShowResultNoteL(R_PIN2_REJECTED, EConfirmationTone);
break;
case KErrGsm0707SimNotInserted:
// not allowed with this sim
- ShowResultNoteL(R_OPERATION_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(R_OPERATION_NOT_ALLOWED, EErrorTone);
break;
default:
ShowErrorNoteL(ret);
@@ -1214,7 +1201,7 @@
break;
case KErrGsm0707OperationNotAllowed:
// not allowed with this sim
- ShowResultNoteL(R_OPERATION_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(R_OPERATION_NOT_ALLOWED, EErrorTone);
break;
default:
ShowErrorNoteL(status);
@@ -1247,7 +1234,7 @@
{
RDEBUG("aError", aError);
- ShowResultNoteL(aError, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(aError, EErrorTone);
}
//
@@ -1256,7 +1243,7 @@
// Shows result note
// ----------------------------------------------------------
// qtdone
-void CSecuritySettings::ShowResultNoteL(TInt aResourceID, CAknNoteDialog::TTone aTone)
+void CSecuritySettings::ShowResultNoteL(TInt aResourceID, TInt aTone)
{
RDEBUG("aResourceID", aResourceID);
@@ -1312,7 +1299,7 @@
title.Append(_L("Not Supported"));
break;
case R_SEC_BLOCKED:
- titleTr.Append(_L("txt_pin_code_dpopinfo_security_blocked"));
+ titleTr.Append(_L("txt_devicelocking_dpophead_lock_code_is_blocked")); // txt_pin_code_dpopinfo_security_blocked
title.Append(_L("BLOCKED"));
break;
case R_CODE_ERROR:
@@ -1329,7 +1316,7 @@
satisfactoryIcon = 1;
break;
case R_CODES_DONT_MATCH:
- titleTr.Append(_L("R_CODES_DONT_MATCH"));
+ titleTr.Append(_L("txt_devicelocking_dpophead_codes_do_not_match"));
title.Append(_L("CODES DONT MATCH"));
break;
case R_PIN_CODE_CHANGED_NOTE:
@@ -1496,11 +1483,21 @@
HBufC* stringHolder;
RDEBUG("titleTr", 1);
- stringHolder = HbTextResolverSymbian::LoadLC(titleTr); // titleTr should I TRAP( err, ?
- RDEBUG("got stringHolder", 1);
+ stringHolder = TranslateLC(titleTr,0); // titleTr should I TRAP( err, ?
+ if(!stringHolder)
+ {
+ RDEBUG("not got stringHolder", 0);
+ }
+ else
+ {
+ RDEBUG("got stringHolder", 1);
+ }
messageBox->SetTextL(stringHolder->Des()); // title
RDEBUG("aResourceID", aResourceID);
+ RDEBUG("titleTr", 0);
RDEBUGSTR(titleTr);
+ RDEBUG("stringHolder->Des()", 0);
+ RDEBUGSTR(stringHolder->Des());
_LIT(KIconNameWondering, "qtg_small_smiley_wondering");
_LIT(KIconNameSmile, "qtg_small_smiley_smile");
if (satisfactoryIcon==1)
@@ -1508,7 +1505,7 @@
else
messageBox->SetIconNameL(KIconNameWondering);
- if (aTone == CAknNoteDialog::EErrorTone) // another case is EConfirmationTone
+ if (aTone == EErrorTone) // another case is EConfirmationTone
{
messageBox->SetTimeout(messageBox->Timeout() * 2); // errors are displayed double time
}
@@ -1516,9 +1513,11 @@
RDEBUG("calling ExecL", 0);
CHbDeviceMessageBoxSymbian::TButtonId selection = messageBox->ExecL(); // this guarantees that it waits for the dismiss/timeout
RDEBUG("called ExecL.selection", selection);
+
CleanupStack::PopAndDestroy(stringHolder);
CleanupStack::PopAndDestroy(); // messageBox
+ RDEBUG("0x99", 0x99);
}
//
@@ -1628,6 +1627,9 @@
RDEBUG("aCaption", 0);
RDEBUGSTR(aCaption);
RDEBUG("aShowError", aShowError);
+ (void)aFlags;
+ (void)aCaption;
+ (void)aShowError;
/*****************************************************
* Series 60 Customer / ETel
@@ -1643,7 +1645,7 @@
RDEBUG("simRemoved", simRemoved);
if (simRemoved)
{
- ShowResultNoteL(R_INSERT_SIM, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(R_INSERT_SIM, EErrorTone);
return KErrAccessDenied;
}
RMobilePhone::TMobilePhoneSecurityCode secCodeType;
@@ -1693,7 +1695,7 @@
{
RDEBUG("RMobilePhone::ELockSetDisabled",
RMobilePhone::ELockSetDisabled);
- ShowResultNoteL(R_PIN_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(R_PIN_NOT_ALLOWED, EErrorTone);
return KErrAccessDenied;
}
@@ -1728,7 +1730,7 @@
iSecQueryUi = CSecQueryUi::NewL();
TBuf<0x100> title;
title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_pin_code"));
+ HBufC* stringHolder = TranslateLC(_L("txt_pin_code_dialog_pin_code"),0);
title.Append(stringHolder->Des());
CleanupStack::PopAndDestroy(stringHolder);
title.Append(_L("$"));
@@ -1755,7 +1757,7 @@
#endif
if (res != KErrNone)
{
- ShowResultNoteL(res, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(res, EErrorTone);
newPassword = _L("");
oldPassword = _L("");
goto askChangePinParamsL;
@@ -1775,7 +1777,7 @@
// this is not needed because the dialog won't allow to close, unless codes match
// codes do not match -> note -> ask new pin and verification codes again
// if(newPassword.Length()>0)
- // ShowResultNoteL(R_CODES_DONT_MATCH, CAknNoteDialog::EErrorTone);
+ // ShowResultNoteL(R_CODES_DONT_MATCH, EErrorTone);
newPassword = _L("");
@@ -1788,11 +1790,11 @@
// this queries both, and verifies itself
TBuf<0x100> title;
title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_new_pin_code"));
+ HBufC* stringHolder = TranslateLC(_L("txt_pin_code_dialog_new_pin_code"),0);
title.Append(stringHolder->Des());
CleanupStack::PopAndDestroy(stringHolder);
title.Append(_L("|"));
- HBufC* stringHolder2 = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_verify_new_pin_code"));
+ HBufC* stringHolder2 = TranslateLC(_L("txt_pin_code_dialog_verify_new_pin_code"),0);
title.Append(stringHolder2->Des());
CleanupStack::PopAndDestroy(stringHolder2);
queryAccepted = iSecQueryUi->SecQueryDialog(title, newPassword, SEC_C_PIN_CODE_MIN_LENGTH, SEC_C_PIN_CODE_MAX_LENGTH, ESecUiAlphaNotSupported | ESecUiCancelSupported
@@ -1830,14 +1832,14 @@
case KErrNone:
{
// code changed
- ShowResultNoteL(R_PIN_CODE_CHANGED_NOTE, CAknNoteDialog::EConfirmationTone);
+ ShowResultNoteL(R_PIN_CODE_CHANGED_NOTE, EConfirmationTone);
break;
}
case KErrGsm0707IncorrectPassword:
case KErrAccessDenied:
{
// code was entered erroneously. This is strange, because it was verified before
- ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(R_CODE_ERROR, EErrorTone);
goto askChangePinParamsL;
}
case KErrGsmSSPasswordAttemptsViolation:
@@ -1849,7 +1851,7 @@
case KErrGsm0707OperationNotAllowed:
{
// not allowed with this sim
- ShowResultNoteL(R_OPERATION_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(R_OPERATION_NOT_ALLOWED, EErrorTone);
return KErrGsm0707OperationNotAllowed;
}
case KErrAbort:
@@ -1897,7 +1899,7 @@
if (simRemoved)
{
- ShowResultNoteL(R_INSERT_SIM, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(R_INSERT_SIM, EErrorTone);
return KErrAccessDenied;
}
@@ -1936,7 +1938,7 @@
RDEBUG("RMobilePhone::ELockSetDisabled", RMobilePhone::ELockSetDisabled);
if (lockInfo.iSetting == RMobilePhone::ELockSetDisabled)
{
- ShowResultNoteL(R_UPIN_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(R_UPIN_NOT_ALLOWED, EErrorTone);
return KErrAccessDenied;
}
@@ -1965,7 +1967,7 @@
iSecQueryUi = CSecQueryUi::NewL();
TBuf<0x100> title;
title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_upin_code"));
+ HBufC* stringHolder = TranslateLC(_L("txt_pin_code_dialog_upin_code"),0);
title.Append(stringHolder->Des());
CleanupStack::PopAndDestroy(stringHolder);
title.Append(_L("$"));
@@ -1988,11 +1990,11 @@
TBuf<0x100> title;
title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_new_upin_code"));
+ HBufC* stringHolder = TranslateLC(_L("txt_pin_code_dialog_new_upin_code"),0);
title.Append(stringHolder->Des());
CleanupStack::PopAndDestroy(stringHolder);
title.Append(_L("|"));
- HBufC* stringHolder2 = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_retype_upin_code"));
+ HBufC* stringHolder2 = TranslateLC(_L("txt_pin_code_dialog_retype_upin_code"),0);
title.Append(stringHolder2->Des());
CleanupStack::PopAndDestroy(stringHolder2);
queryAccepted = iSecQueryUi->SecQueryDialog(title, newPassword, SEC_C_PIN_CODE_MIN_LENGTH, SEC_C_PIN_CODE_MAX_LENGTH, ESecUiAlphaNotSupported | ESecUiCancelSupported
@@ -2022,14 +2024,14 @@
case KErrNone:
{
// code changed
- ShowResultNoteL(R_UPIN_CODE_CHANGED_NOTE, CAknNoteDialog::EConfirmationTone);
+ ShowResultNoteL(R_UPIN_CODE_CHANGED_NOTE, EConfirmationTone);
break;
}
case KErrGsm0707IncorrectPassword:
case KErrAccessDenied:
{
// code was entered erroneously
- ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(R_CODE_ERROR, EErrorTone);
ChangeUPinParamsL(_L(""), _L(""), aFlags, aCaption, aShowError);
break;
}
@@ -2041,7 +2043,7 @@
case KErrGsm0707OperationNotAllowed:
{
// not allowed with this sim
- ShowResultNoteL(R_OPERATION_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(R_OPERATION_NOT_ALLOWED, EErrorTone);
return KErrGsm0707OperationNotAllowed;
}
case KErrAbort:
@@ -2080,7 +2082,7 @@
if (simRemoved)
{
- ShowResultNoteL(R_INSERT_SIM, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(R_INSERT_SIM, EErrorTone);
return KErrAccessDenied;
}
@@ -2118,11 +2120,11 @@
case KErrGsmSSPasswordAttemptsViolation:
case KErrLocked:
// Pin2 features blocked permanently!
- ShowResultNoteL(R_PIN2_REJECTED, CAknNoteDialog::EConfirmationTone);
+ ShowResultNoteL(R_PIN2_REJECTED, EConfirmationTone);
break;
case KErrGsm0707SimNotInserted:
// not allowed with this sim
- ShowResultNoteL(R_OPERATION_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(R_OPERATION_NOT_ALLOWED, EErrorTone);
break;
default:
ShowErrorNoteL(ret);
@@ -2160,7 +2162,7 @@
iSecQueryUi = CSecQueryUi::NewL();
TBuf<0x100> title;
title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_pin2_code"));
+ HBufC* stringHolder = TranslateLC(_L("txt_pin_code_dialog_pin2_code"),0);
title.Append(stringHolder->Des());
CleanupStack::PopAndDestroy(stringHolder);
title.Append(_L("$"));
@@ -2183,11 +2185,11 @@
// this queries both, and verifies itself
TBuf<0x100> title;
title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_new_pin2_code"));
+ HBufC* stringHolder = TranslateLC(_L("txt_pin_code_dialog_new_pin2_code"),0);
title.Append(stringHolder->Des());
CleanupStack::PopAndDestroy(stringHolder);
title.Append(_L("|"));
- HBufC* stringHolder2 = HbTextResolverSymbian::LoadLC(_L("Verify"));
+ HBufC* stringHolder2 = TranslateLC(_L("Verify"),0);
title.Append(stringHolder2->Des());
CleanupStack::PopAndDestroy(stringHolder2);
queryAccepted = iSecQueryUi->SecQueryDialog(title, newPassword, SEC_C_PIN2_CODE_MIN_LENGTH, SEC_C_PIN2_CODE_MAX_LENGTH, ESecUiAlphaNotSupported | ESecUiCancelSupported
@@ -2218,13 +2220,13 @@
case KErrNone:
{
// code changed
- ShowResultNoteL(R_PIN2_CODE_CHANGED_NOTE, CAknNoteDialog::EConfirmationTone);
+ ShowResultNoteL(R_PIN2_CODE_CHANGED_NOTE, EConfirmationTone);
break;
}
case KErrGsm0707IncorrectPassword:
case KErrAccessDenied:
{
- ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(R_CODE_ERROR, EErrorTone);
ChangePin2ParamsL(_L(""), _L(""), aFlags, aCaption, aShowError);
break;
}
@@ -2232,7 +2234,7 @@
case KErrLocked:
{
// Pin2 blocked!
- ShowResultNoteL(KErrLocked, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(KErrLocked, EErrorTone);
CSecurityHandler* handler = new (ELeave) CSecurityHandler(iPhone);
CleanupStack::PushL(handler);
handler->HandleEventL(RMobilePhone::EPuk2Required);
@@ -2242,7 +2244,7 @@
case KErrGsm0707OperationNotAllowed:
{
// not allowed with this sim
- ShowResultNoteL(R_OPERATION_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(R_OPERATION_NOT_ALLOWED, EErrorTone);
return KErrGsm0707OperationNotAllowed;
}
case KErrAbort:
@@ -2266,6 +2268,9 @@
askChangeSecCodeParamsL:
RDEBUG("aFlags", aFlags);
RDEBUG("aShowError", aShowError);
+ (void)aCaption;
+ (void)aFlags;
+ (void)aShowError;
/*****************************************************
* Series 60 Customer / ETel
* Series 60 ETel API
@@ -2307,7 +2312,7 @@
scpClient.Close();
if(res!=KErrNone)
{
- ShowResultNoteL(res, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(res, EErrorTone);
return res;
}
}
@@ -2327,7 +2332,7 @@
iSecQueryUi = CSecQueryUi::NewL();
TBuf<0x100> title;
title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_sec_code"));
+ HBufC* stringHolder = TranslateLC(_L("txt_devicelocking_dialog_lock_code"),0);
title.Append(stringHolder->Des());
CleanupStack::PopAndDestroy(stringHolder);
queryAccepted = iSecQueryUi->SecQueryDialog(title, oldPassword, SEC_C_SECURITY_CODE_MIN_LENGTH, SEC_C_SECURITY_CODE_MAX_LENGTH, ESecUiAlphaSupported
@@ -2360,7 +2365,7 @@
// this validate on ISA . No need to do iPhone.VerifySecurityCode
retCurrLockcode = scpCurrClient.VerifyCurrentLockcode(oldPassword, aCurrISACode, aCurrFailedPolicies, scpCurrFlags);
RDEBUG("retCurrLockcode", retCurrLockcode);
-
+ retCurrLockcode=retCurrLockcode;
RDEBUG("aCurrISACode", 0);
RDEBUGSTR(aCurrISACode);
scpCurrClient.Close();
@@ -2381,7 +2386,7 @@
if (res != KErrNone)
{
- ShowResultNoteL(res, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(res, EErrorTone);
return res;
}
@@ -2390,7 +2395,7 @@
// codes do not match -> note -> ask new pin and verification codes again
// note that this never happens because the dialog doesn't dismiss until both codes match
if (newPassword.Length() > 0)
- ShowResultNoteL(R_CODES_DONT_MATCH, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(R_CODES_DONT_MATCH, EErrorTone);
{
queryAccepted = KErrCancel;
@@ -2402,11 +2407,11 @@
RDEBUG("lType", lType);
TBuf<0x100> title;
title.Zero();
- HBufC* stringHolder = HbTextResolverSymbian::LoadLC(_L("txt_pin_code_dialog_new_sec_code"));
+ HBufC* stringHolder = TranslateLC(_L("txt_devicelocking_dialog_new_lock_code"),0);
title.Append(stringHolder->Des());
CleanupStack::PopAndDestroy(stringHolder);
title.Append(_L("|"));
- HBufC* stringHolder2 = HbTextResolverSymbian::LoadLC(_L("Verify"));
+ HBufC* stringHolder2 = TranslateLC(_L("txt_devicelocking_dialog_retype_new_lock_code"),0);
title.Append(stringHolder2->Des());
CleanupStack::PopAndDestroy(stringHolder2);
queryAccepted = iSecQueryUi->SecQueryDialog(title, newPassword, SEC_C_SECURITY_CODE_MIN_LENGTH, SEC_C_SECURITY_CODE_MAX_LENGTH, lType);
@@ -2469,6 +2474,7 @@
// scpClient.StoreCode( newCode );
RArray<TDevicelockPolicies> aFailedPolicies;
TDevicelockPolicies failedPolicy;
+ failedPolicy = failedPolicy;
RDEBUG("newScpCode", 0);
RDEBUGSTR( newScpCode );
RDEBUG("oldScpCode", 0);
@@ -2494,14 +2500,14 @@
case KErrNone:
{
RDEBUG( "showing R_SECURITY_CODE_CHANGED_NOTE", R_SECURITY_CODE_CHANGED_NOTE );
- ShowResultNoteL(R_SECURITY_CODE_CHANGED_NOTE, CAknNoteDialog::EConfirmationTone);
+ ShowResultNoteL(R_SECURITY_CODE_CHANGED_NOTE, EConfirmationTone);
break;
}
case KErrAccessDenied: // TARM has wrong UID
{
res = KErrTDevicelockPolicies+EDevicelockTotalPolicies+1;
RDEBUG( "res", res );
- ShowResultNoteL(res, CAknNoteDialog::EConfirmationTone);
+ ShowResultNoteL(res, EConfirmationTone);
res = KErrAccessDenied; // no reason for retry, as it will fail again and again
break;
}
@@ -2509,7 +2515,7 @@
case KErrLocked:
{
RDEBUG( "KErrLocked", KErrLocked );
- ShowResultNoteL(R_SEC_BLOCKED, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(R_SEC_BLOCKED, EErrorTone);
goto askChangeSecCodeParamsL;
// break;
}
@@ -2517,7 +2523,7 @@
{
// code was entered erroneously
RDEBUG( "KErrGsm0707IncorrectPassword", KErrGsm0707IncorrectPassword );
- ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(R_CODE_ERROR, EErrorTone);
goto askChangeSecCodeParamsL;
// break;
}
@@ -2548,6 +2554,10 @@
askChangeAutoLockPeriodParamsL:
RDEBUG("aPeriod", aPeriod);
RDEBUG("aFlags", aFlags);
+ (void)aOldPassword;
+ (void)aCaption;
+ (void)aShowError;
+ (void)aFlags;
/*****************************************************
* Series 60 Customer / ETel
* Series 60 ETel API
@@ -2556,6 +2566,7 @@
RMobilePhone::TMobilePhoneLockSetting lockChange(RMobilePhone::ELockSetDisabled);
RMobilePhone::TMobilePhoneLock lockType = RMobilePhone::ELockPhoneDevice;
TInt oldPeriod = aPeriod;
+ oldPeriod=oldPeriod;
TInt maxPeriod = 0;
if (FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw))
@@ -2600,7 +2611,7 @@
{
RDEBUG("The period is not allowed by TARM", aPeriod);
RDEBUG( "maxPeriod", maxPeriod );
- ShowResultNoteL(R_SECUI_TEXT_AUTOLOCK_MUST_BE_ACTIVE, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(R_SECUI_TEXT_AUTOLOCK_MUST_BE_ACTIVE, EErrorTone);
return R_SECUI_TEXT_AUTOLOCK_MUST_BE_ACTIVE; // don't ask again. Settings will roll-back
}
}
@@ -2665,19 +2676,18 @@
break;
case KErrGsmSSPasswordAttemptsViolation:
case KErrLocked:
- RDEBUG("KErrLocked", KErrLocked)
- ;
- ShowResultNoteL(KErrLocked, CAknNoteDialog::EErrorTone); // the old code didn't show messages
+ RDEBUG("KErrLocked", KErrLocked);
+ // ShowResultNoteL(KErrLocked, EErrorTone); // the old code didn't show messages. PassPhraseRequiredL does it.
goto askChangeAutoLockPeriodParamsL; // ask again
case KErrGsm0707IncorrectPassword:
RDEBUG("KErrGsm0707IncorrectPassword", KErrGsm0707IncorrectPassword)
- ShowResultNoteL(R_CODE_ERROR, CAknNoteDialog::EErrorTone); // the old code didn't show messages
+ // ShowResultNoteL(R_CODE_ERROR, EErrorTone); // the old code didn't show messages. PassPhraseRequiredL does it.
goto askChangeAutoLockPeriodParamsL; // ask again
case KErrAccessDenied:
RDEBUG("KErrAccessDenied", KErrAccessDenied)
;
// code was entered erroneously
- ShowResultNoteL(KErrAccessDenied, CAknNoteDialog::EErrorTone); // the old code didn't show messages
+ // ShowResultNoteL(KErrAccessDenied, EErrorTone); // the old code didn't show messages. PassPhraseRequiredL does it.
goto askChangeAutoLockPeriodParamsL; // ask again
case KErrAbort:
// User pressed "cancel" in the code query dialog.
@@ -2686,7 +2696,7 @@
default:
RDEBUG("default", status)
;
- ShowResultNoteL(status, CAknNoteDialog::EErrorTone); // the old code didn't show messages
+ // ShowResultNoteL(status, EErrorTone); // the old code didn't show messages. PassPhraseRequiredL does it.
goto askChangeAutoLockPeriodParamsL; // ask again
}
RDEBUG("aPeriod", aPeriod);
@@ -2707,7 +2717,7 @@
if (simRemoved)
{
- ShowResultNoteL(R_INSERT_SIM, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(R_INSERT_SIM, EErrorTone);
return KErrAccessDenied;
}
@@ -2782,7 +2792,7 @@
case KErrGsm0707OperationNotAllowed:
{
// not allowed with this sim
- ShowResultNoteL(R_OPERATION_NOT_ALLOWED, CAknNoteDialog::EErrorTone);
+ ShowResultNoteL(R_OPERATION_NOT_ALLOWED, EErrorTone);
return KErrGsm0707OperationNotAllowed;
}
case KErrGsm0707IncorrectPassword:
@@ -2821,6 +2831,9 @@
RDEBUG("aShowError", aShowError);
RDEBUG("This doesn't do anything", 0);
RDEBUG("aFlags", aFlags);
+ (void)aCaption;
+ (void)aFlags;
+ (void)aShowError;
// the password parameters are not used
if (aOldPassword.Length() > 0)
@@ -2828,5 +2841,94 @@
return EFalse;
}
+//
+// ----------------------------------------------------------
+// CSecuritySettings::TranslateLC()
+// ----------------------------------------------------------
+// qtdone
+HBufC* CSecuritySettings::TranslateLC(const TDesC& aMessageId, TInt aFlags)
+ {
+ RDEBUG("aFlags", aFlags);
+ RDEBUG("aMessageId", 1);
+ (void)aFlags;
+
+ _LIT(KPath, "z:/resource/qt/translations/");
+
+ TBool result=EFalse;
+ result=result;
+ TBuf<0x100> title;
+ title.Zero();
+ HBufC* stringHolder;
+ RDEBUG("before stringHolder", 0);
+ stringHolder = HbTextResolverSymbian::LoadLC(aMessageId);
+ RDEBUG("got stringHolder", 1);
+ title.Append(stringHolder->Des());
+ RDEBUG("title", 0);
+ RDEBUGSTR(title);
+ RDEBUG("searched in default", 1);
+ // this doesn't work because an error in HbTextResolverSymbian::Init
+ int doDoubleTranslations = 0;
+ RDEBUG("doDoubleTranslations", doDoubleTranslations);
+ if(doDoubleTranslations && !title.CompareF(aMessageId))
+ {
+ // not translated. Now check in common
+ // CleanupStack::PopAndDestroy(stringHolder);
+ RDEBUG("1", 1);
+ title.Zero();
+ RDEBUG("1", 1);
+ _LIT(KFileNameSecUi, "secui_");
+ RDEBUG("1", 1);
+ result = HbTextResolverSymbian::Init(KFileNameSecUi, KPath);
+ RDEBUG("1", 1);
+ RDEBUG("bool result", result);
+ RDEBUG("1", 1);
+ stringHolder = HbTextResolverSymbian::LoadLC(aMessageId);
+ RDEBUG("1", 1);
+ title.Append(stringHolder->Des());
+ RDEBUG("1", 1);
+ RDEBUG("searched in KFileNameSecUi", 1);
+ // RDEBUGSTR(aMessageId);
+ }
+ RDEBUG("1", 1);
+ if(doDoubleTranslations && !title.CompareF(aMessageId))
+ {
+ RDEBUG("1", 1);
+ // not translated. Now check in common
+ // CleanupStack::PopAndDestroy(stringHolder);
+ RDEBUG("1", 1);
+ title.Zero();
+ RDEBUG("1", 1);
+ _LIT(KFileNameCommon, "common_");
+ RDEBUG("1", 1);
+ result = HbTextResolverSymbian::Init(KFileNameCommon, KPath);
+ RDEBUG("bool result", result);
+ stringHolder = HbTextResolverSymbian::LoadLC(aMessageId);
+ RDEBUG("1", 1);
+ title.Append(stringHolder->Des());
+ RDEBUG("searched in KFileNameCommon", 1);
+ // RDEBUGSTR(aMessageId);
+ }
+ if(doDoubleTranslations && !title.CompareF(aMessageId))
+ {
+ // not translated. Now check in devicelocking
+ RDEBUG("1", 1);
+ CleanupStack::PopAndDestroy(stringHolder);
+ RDEBUG("1", 1);
+ title.Zero();
+ RDEBUG("1", 1);
+ _LIT(KFileNameDevicelocking, "devicelocking_");
+ RDEBUG("1", 1);
+ result = HbTextResolverSymbian::Init(KFileNameDevicelocking, KPath);
+ RDEBUG("bool result", result);
+ stringHolder = HbTextResolverSymbian::LoadLC(aMessageId);
+ RDEBUG("1", 1);
+ title.Append(stringHolder->Des());
+ RDEBUG("searched in KFileNameDevicelocking", 1);
+ // RDEBUGSTR(aMessageId);
+ }
+ // this is done by the caller: CleanupStack::PopAndDestroy(stringHolder);
+ RDEBUG("0x99", 0x99);
+ return stringHolder;
+ }
// End of file
--- a/securitydialogs/SecUi/group/SecUi.mmp Thu Oct 14 13:56:11 2010 +0300
+++ b/securitydialogs/SecUi/group/SecUi.mmp Wed Oct 20 14:51:23 2010 +0300
@@ -30,14 +30,6 @@
SOURCEPATH .
-SOURCEPATH ../Data
-
-START RESOURCE SecUi.rss
-HEADER
-TARGETPATH RESOURCE_FILES_DIR
-LANGUAGE_IDS
-END
-
USERINCLUDE . ../Inc
MW_LAYER_SYSTEMINCLUDE ../../../inc
@@ -55,7 +47,6 @@
SOURCE ../Src/SecUiWait.cpp
SOURCE ../Src/SecQueryUi.cpp
-// library avkon.lib eikdlg.lib
library euser.lib
library etel.lib etelmm.lib
library commonengine.lib
@@ -69,12 +60,14 @@
DEFFILE ../BWinsCw/SECUI_EKA2.def
#endif
LIBRARY featmgr.lib
-LIBRARY aknnotify.lib
LIBRARY HbCore.lib
LIBRARY HbWidgets.lib
LIBRARY lockclient.lib
LIBRARY phoneclient.lib
+LIBRARY aiwdialdata.lib
+LIBRARY servicehandler.lib
+LIBRARY etel3rdparty.lib
SMPSAFE
--- a/securitydialogs/lockclient/bwins/lockclientu.def Thu Oct 14 13:56:11 2010 +0300
+++ b/securitydialogs/lockclient/bwins/lockclientu.def Wed Oct 20 14:51:23 2010 +0300
@@ -17,4 +17,5 @@
??1CDevicelockAccessApi@@UAE@XZ @ 16 NONAME ; CDevicelockAccessApi::~CDevicelockAccessApi(void)
?OfferDevicelock@CDevicelockAccessApi@@QAEHXZ @ 17 NONAME ; int CDevicelockAccessApi::OfferDevicelock(void)
?NewL@CKeyguardAccessApi@@SAPAV1@XZ @ 18 NONAME ; class CKeyguardAccessApi * CKeyguardAccessApi::NewL(void)
+ ?AutolockStatus@CKeyguardAccessApi@@QAEHHH@Z @ 19 NONAME ; int CKeyguardAccessApi::AutolockStatus(int, int)
--- a/securitydialogs/lockclient/eabi/lockclientu.def Thu Oct 14 13:56:11 2010 +0300
+++ b/securitydialogs/lockclient/eabi/lockclientu.def Wed Oct 20 14:51:23 2010 +0300
@@ -21,4 +21,5 @@
_ZN20CDevicelockAccessApiD0Ev @ 20 NONAME
_ZN20CDevicelockAccessApiD1Ev @ 21 NONAME
_ZN20CDevicelockAccessApiD2Ev @ 22 NONAME
+ _ZN18CKeyguardAccessApi14AutolockStatusEii @ 23 NONAME
--- a/securitydialogs/lockclient/group/bwins/lockclientu.def Thu Oct 14 13:56:11 2010 +0300
+++ b/securitydialogs/lockclient/group/bwins/lockclientu.def Wed Oct 20 14:51:23 2010 +0300
@@ -17,4 +17,5 @@
??1CDevicelockAccessApi@@UAE@XZ @ 16 NONAME ; CDevicelockAccessApi::~CDevicelockAccessApi(void)
?OfferDevicelock@CDevicelockAccessApi@@QAEHXZ @ 17 NONAME ; int CDevicelockAccessApi::OfferDevicelock(void)
?NewL@CKeyguardAccessApi@@SAPAV1@XZ @ 18 NONAME ; class CKeyguardAccessApi * CKeyguardAccessApi::NewL(void)
+ ?AutolockStatus@CKeyguardAccessApi@@QAEHHH@Z @ 19 NONAME ; int CKeyguardAccessApi::AutolockStatus(int, int)
--- a/securitydialogs/lockclient/group/eabi/lockclientu.def Thu Oct 14 13:56:11 2010 +0300
+++ b/securitydialogs/lockclient/group/eabi/lockclientu.def Wed Oct 20 14:51:23 2010 +0300
@@ -21,4 +21,5 @@
_ZN20CDevicelockAccessApiD0Ev @ 20 NONAME
_ZN20CDevicelockAccessApiD1Ev @ 21 NONAME
_ZN20CDevicelockAccessApiD2Ev @ 22 NONAME
+ _ZN18CKeyguardAccessApi14AutolockStatusEii @ 23 NONAME
--- a/securitydialogs/lockclient/src/keyguardaccessapi.cpp Thu Oct 14 13:56:11 2010 +0300
+++ b/securitydialogs/lockclient/src/keyguardaccessapi.cpp Wed Oct 20 14:51:23 2010 +0300
@@ -89,6 +89,7 @@
case EKeyguardLocked:
case EKeyguardAutolockEmulation:
ret = ETrue;
+ break;
case EKeyguardNotActive:
default:
ret = EFalse;
@@ -119,6 +120,7 @@
{
case EKeyguardLocked:
ret = ETrue;
+ break;
case EKeyguardAutolockEmulation:
case EKeyguardNotActive:
default:
@@ -257,5 +259,22 @@
#endif
}
+// ---------------------------------------------------------------------------
+// Confirms that the server is running.
+// Returns KErrNone / Error
+// ---------------------------------------------------------------------------
+EXPORT_C TInt CKeyguardAccessApi::AutolockStatus( TInt aCommand, TInt aParam)
+ {
+ RDEBUG("aCommand", aCommand);
+ RDEBUG("aParam", aParam);
+ if ( iLockAccessExtension )
+ {
+ return iLockAccessExtension->SendMessage( aCommand, aParam );
+ }
+ else
+ {
+ return KErrNotFound;
+ }
+ }
// End of File
--- a/securitydialogs/lockclient/src/lockaccessextension.cpp Thu Oct 14 13:56:11 2010 +0300
+++ b/securitydialogs/lockclient/src/lockaccessextension.cpp Wed Oct 20 14:51:23 2010 +0300
@@ -43,6 +43,7 @@
// ---------------------------------------------------------------------------
TInt RLockAccessExtension::TryConnect( RWsSession& aWsSession )
{
+ (void)aWsSession;
TInt ret(KErrNone);
/*
this is the old methd. Now we use QtHighway
@@ -83,6 +84,7 @@
// This is done because Autolock.exe should start at the beginning, but it might not be ready yet.
// As Qthighway will start it, it's better to give time for the first one to prepare itself.
TInt err = KErrNone;
+ err = err;
TInt numAttempts = 0;
TInt numberOfInstances = 0;
do
@@ -130,7 +132,7 @@
err = RProperty::Get(KPSUidSecurityUIs, KSecurityUIsLockInitiatorUID, value);
RDEBUG("err", err);
RDEBUG("value", value);
- if(value<1)
+ if(value==0 || value==-1)
{
RDEBUG("Autolock.exe has started but it's not fully running", value);
User::After(5*100*1000); // half a second
--- a/securitydialogs/secuidialognotifiersrv/src/secuidialognotifiersession.cpp Thu Oct 14 13:56:11 2010 +0300
+++ b/securitydialogs/secuidialognotifiersrv/src/secuidialognotifiersession.cpp Wed Oct 20 14:51:23 2010 +0300
@@ -143,7 +143,7 @@
{
CKeyguardAccessApi* iKeyguardAccess = CKeyguardAccessApi::NewL( );
RDEBUG("0", 0);
- TInt err = iKeyguardAccess->ShowKeysLockedNote( );
+ TInt err = iKeyguardAccess->AutolockStatus( 0x100, lOperation ); // start server, if needed
RDEBUG("err", err);
delete iKeyguardAccess;
}
--- a/securitydialogs/secuinotifications/secuinotificationdialogplugin/inc/secuinotificationdialog.h Thu Oct 14 13:56:11 2010 +0300
+++ b/securitydialogs/secuinotifications/secuinotificationdialogplugin/inc/secuinotificationdialog.h Wed Oct 20 14:51:23 2010 +0300
@@ -104,6 +104,7 @@
int lEmergencySupported;
int isEmergency;
QValueSpaceSubscriber *subscriberKSecurityUIsDismissDialog;
+ QString codeTopTextPrev;
};
#endif // SECUINOTIFICATIONDIALOG_H
--- a/securitydialogs/secuinotifications/secuinotificationdialogplugin/src/secuinotificationcontentwidget.cpp Thu Oct 14 13:56:11 2010 +0300
+++ b/securitydialogs/secuinotifications/secuinotificationdialogplugin/src/secuinotificationcontentwidget.cpp Wed Oct 20 14:51:23 2010 +0300
@@ -186,7 +186,7 @@
if (queryType & ESecUiAlphaSupported)
{
RDEBUG("ESecUiAlphaSupported", ESecUiAlphaSupported);
- codeTop->setInputMethodHints(Qt::ImhNone);
+ codeTop->setInputMethodHints(Qt::ImhPreferNumbers); // all queries start with numbers, even if allow alpha. (old value was ImhNone)
}
if (queryType & ESecUiSecretSupported)
{
@@ -281,7 +281,7 @@
if (queryType & ESecUiAlphaSupported)
{
RDEBUG("setInputMethodHints", 0);
- codeBottom->setInputMethodHints(Qt::ImhNone);
+ codeBottom->setInputMethodHints(Qt::ImhPreferNumbers); // all queries start with numbers, even if allow alpha. (old value was ImhNone)
}
if (queryType & ESecUiSecretSupported)
{
--- a/securitydialogs/secuinotifications/secuinotificationdialogplugin/src/secuinotificationdialog.cpp Thu Oct 14 13:56:11 2010 +0300
+++ b/securitydialogs/secuinotifications/secuinotificationdialogplugin/src/secuinotificationdialog.cpp Wed Oct 20 14:51:23 2010 +0300
@@ -255,6 +255,7 @@
// ----------------------------------------------------------------------------
// SecUiNotificationDialog::constructDialog()
+// This is be called many times, because every key is sent (for checking Emergency and TARM repeat-characters policy). In these cases, the dialog is not created. It returns half-way.
// ----------------------------------------------------------------------------
//
bool SecUiNotificationDialog::constructDialog(const QVariantMap ¶meters)
@@ -265,21 +266,7 @@
setDismissPolicy(HbPopup::NoDismiss);
setModal(true);
mShowEventReceived = false;
- subscriberKSecurityUIsDismissDialog = NULL;
titleWidget = NULL;
- RDEBUG("subscriberKSecurityUIsDismissDialog NULL", 0);
-
- subscriberKSecurityUIsDismissDialog = new QValueSpaceSubscriber("/KPSUidSecurityUIs/KSecurityUIsDismissDialog", this);
- if(subscriberKSecurityUIsDismissDialog)
- {
- RDEBUG("subscriberKSecurityUIsDismissDialog created", 1);
- }
- else
- {
- RDEBUG("subscriberKSecurityUIsDismissDialog not created", 0);
- }
- connect(subscriberKSecurityUIsDismissDialog, SIGNAL(contentsChanged()), this, SLOT(subscriberKSecurityUIsDismissDialogChanged()));
- RDEBUG("subscriberKSecurityUIsDismissDialog", 1);
// Title
// this is also done later in the widget
@@ -305,7 +292,7 @@
// This is created only if needed (i.e. errors for NewLockCode)
// titleWidget = new HbLabel(titleText);
// setHeadingWidget(titleWidget);
- }
+ } // KDialogTitle
if (parameters.contains(KEmergency)) {
RDEBUG("KEmergency", 1);
@@ -317,6 +304,15 @@
isEmergency = 1;
okAction->setEnabled(true);
okAction->setText(hbTrId("Call"));
+ if (queryType & ESecUiSecretSupported)
+ {
+ RDEBUG("ESecUiSecretSupported", ESecUiSecretSupported);
+ codeTop->setEchoMode(HbLineEdit::Normal);
+ QString codeTopText = codeTop->text();
+ RDEBUGQT("codeTop->text()", codeTop->text());
+ codeTop->setText(codeTopText); // this time, display the characters . Not use "Emergency" because 1123 will need to restore from 112.
+ // note that this is not needed. 112 will soh. However, this will move the cursor to the end, as expected.
+ }
return true;
}
if(!emergencyText.compare("emergencyNo"))
@@ -325,9 +321,19 @@
isEmergency = 0;
okAction->setEnabled(false); // 112 -> 1122 (=password) . This is handled by < lMinLength
okAction->setText(hbTrId("Ok"));
+ if (queryType & ESecUiSecretSupported)
+ {
+ RDEBUG("ESecUiSecretSupported", ESecUiSecretSupported);
+ codeTop->setEchoMode(HbLineEdit::Password);
+ }
+ else
+ {
+ RDEBUG("ESecUiSecretNotSupported", ESecUiSecretNotSupported);
+ codeTop->setEchoMode(HbLineEdit::Normal);
+ }
return true;
}
- }
+ } // KEmergency
// after TARM validation.
if (parameters.contains(KInvalidNewLockCode)) {
RDEBUG("KInvalidNewLockCode", 0);
@@ -457,8 +463,23 @@
}
// need to return because all objects are already created
return true;
- }
+ } // KInvalidNewLockCode
+ subscriberKSecurityUIsDismissDialog = NULL;
+ RDEBUG("subscriberKSecurityUIsDismissDialog NULL", 0);
+
+ subscriberKSecurityUIsDismissDialog = new QValueSpaceSubscriber("/KPSUidSecurityUIs/KSecurityUIsDismissDialog", this);
+ if(subscriberKSecurityUIsDismissDialog)
+ {
+ RDEBUG("subscriberKSecurityUIsDismissDialog created", 1);
+ }
+ else
+ {
+ RDEBUG("subscriberKSecurityUIsDismissDialog not created", 0);
+ }
+ connect(subscriberKSecurityUIsDismissDialog, SIGNAL(contentsChanged()), this, SLOT(subscriberKSecurityUIsDismissDialogChanged()));
+ RDEBUG("subscriberKSecurityUIsDismissDialog", 1);
+
// Content
SecUiNotificationContentWidget *content = new SecUiNotificationContentWidget();
content->constructFromParameters(parameters);
@@ -654,6 +675,14 @@
{
RDEBUG("0", 0);
RDEBUGQT("text", text);
+ RDEBUGQT("codeTop->text()", codeTop->text());
+ RDEBUGQT("codeTopTextPrev", codeTopTextPrev);
+ if(!codeTopTextPrev.compare(text))
+ {
+ RDEBUG("Strings are same. Nothing to do. return", 0);
+ return;
+ }
+ codeTopTextPrev = text;
if(queryDual)
{
codeBottom->setText(""); // any change resets the verification.
@@ -669,7 +698,15 @@
RDEBUGQT("too short text", text);
okAction->setEnabled(false);
RDEBUG("lEmergencySupported", lEmergencySupported);
- if( lEmergencySupported && text.length() > 2 ) // emergency numbers need at least 3 digits
+ if( lEmergencySupported && text.length() <= 2 )
+ {
+ if (queryType & ESecUiSecretSupported)
+ {
+ RDEBUG("ESecUiSecretSupported", ESecUiSecretSupported);
+ codeTop->setEchoMode(HbLineEdit::Password);
+ }
+ }
+ else if( lEmergencySupported && text.length() > 2 ) // emergency numbers need at least 3 digits
{ // check whether it's a emergency number
QVariant codeTopVar(text);
mResultMap.insert(KCodeTopIndex, codeTopVar);
@@ -681,8 +718,28 @@
// might use a flag to avoid re-setting. But this complicates things if there's another initial verification
RDEBUGQT("long enough text", text);
okAction->setText(hbTrId("Ok"));
+ RDEBUG("queryDual", queryDual);
+ RDEBUG("isEmergency", isEmergency);
if(queryDual==0) // only if Bottom is not used
- okAction->setEnabled(true);
+ {
+ if (isEmergency == 1) // transition emergencyYes->emergencyNo
+ {
+ RDEBUG("new isEmergency", isEmergency);
+ if (queryType & ESecUiSecretSupported)
+ {
+ RDEBUG("ESecUiSecretSupported", ESecUiSecretSupported);
+ codeTop->setEchoMode(HbLineEdit::Password);
+ }
+ else
+ {
+ RDEBUG("ESecUiSecretNotSupported", ESecUiSecretNotSupported);
+ codeTop->setEchoMode(HbLineEdit::Normal);
+ }
+ }
+ isEmergency = 0;
+ okAction->setEnabled(true); // 112 -> 1122 (=password) . This is handled by < lMinLength
+ okAction->setText(hbTrId("Ok"));
+ }
}
QVariant codeTopVar(text);
mResultMap.insert(KCodeTopIndex, codeTopVar);
@@ -787,7 +844,7 @@
RDEBUGQT("codeTopText", codeTopText);
codeTopText = codeTopText + "5" ;
RDEBUGQT("codeTopText+5", codeTopText);
- codeTop->setEchoMode(HbLineEdit::PasswordEchoOnEdit);
+ codeTop->setEchoMode(HbLineEdit::Password);
RDEBUGQT("codeTopText", codeTopText);
codeTop->setText(codeTopText);
RDEBUG("setFocus", 0);