Revision: 201025 RCL_3 PDK_3.0.2 PDK_3.0.3 PDK_3.0.4
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 15 Jul 2010 18:39:46 +0300
branchRCL_3
changeset 19 d40e813b23c0
parent 17 65b472535a0d
child 20 48060abbbeaf
Revision: 201025 Kit: 2010127
htiui/HtiAdmin/inc/HtiAdminAppUi.h
htiui/HtiAdmin/src/HtiAdminAppUi.cpp
htiui/HtiAdminQt/chtiadminengine.cpp
htiui/HtiAdminQt/chtiadminengine.h
htiui/HtiServicePlugins/HtiCameraServicePlugin/engine/inc/EngineVideoRecording.h
htiui/HtiServicePlugins/HtiCameraServicePlugin/inc/HtiCameraServicePlugin.h
htiui/HtiServicePlugins/HtiCameraServicePlugin/src/HtiCameraServicePlugin.cpp
htiui/HtiServicePlugins/HtiSysInfoServicePlugin/group/HtiSysInfoServicePlugin.mmp
htiui/HtiServicePlugins/HtiSysInfoServicePlugin/inc/HtiSysInfoServicePlugin.h
htiui/HtiServicePlugins/HtiSysInfoServicePlugin/src/HtiSysInfoServicePlugin.cpp
htiui/sis/HTI_S60-10_1.pkg
htiui/sis/HTI_S60-52.pkg
htiui/sis/HTI_S60_Upgrade-10_1.pkg
htiui/sis/HTI_S60_Upgrade-52.pkg
htiui/sis/HTI_stub.pkg
memspyui/data/memspyui.rss
stifui/avkon/group/ReleaseNote.txt
stifui/avkon/stifui/inc/AppUIApp.h
stifui/avkon/stifui/inc/AppUIDocument.h
stifui/avkon/stifui/inc/MenuListBox.h
stifui/avkon/stifui/inc/Stifui.hrh
stifui/avkon/stifui/inc/Stifui_loc.hrh
stifui/avkon/stifui/inc/TestSetMenuView.h
stifui/avkon/stifui/inc/version.h
stifui/avkon/stifui/src/AppUIApp.cpp
stifui/avkon/stifui/src/AppUIDocument.cpp
stifui/avkon/stifui/src/CreatedTestSetMenuView.cpp
stifui/avkon/stifui/src/MainMenuContainer.cpp
stifui/avkon/stifui/src/MainMenuView.cpp
stifui/avkon/stifui/src/MenuListBox.cpp
stifui/avkon/stifui/src/ShowStartedCasesContainer.cpp
stifui/avkon/stifui/src/StartedCasesMenuContainer.cpp
stifui/avkon/stifui/src/StartedCasesMenuView.cpp
stifui/avkon/stifui/src/TestCaseMenuContainer.cpp
stifui/avkon/stifui/src/TestSetBaseMenuContainer.cpp
stifui/avkon/stifui/src/TestSetInsertMenuContainer.cpp
stifui/avkon/stifui/src/TestSetMenuView.cpp
stifui/avkon/stifui/src/TestSetStartedCasesContainer.cpp
stifui/avkon/stifui/src/Testmodulesmenuview.cpp
stifui/avkon/stifui/src/UIStoreHandler.cpp
stifui/avkon/uitestserverstarter/inc/UITestServerStarter.hrh
stifui/avkon/uitestserverstarter/inc/UITestServerStarterApplication.h
stifui/avkon/uitestserverstarter/inc/UITestServerStarterDocument.h
stifui/avkon/uitestserverstarter/src/EventUtil.cpp
stifui/avkon/uitestserverstarter/src/UITestServerStarterAppContainer.cpp
stifui/avkon/uitestserverstarter/src/UITestServerStarterAppUi.cpp
stifui/qt/ReleaseNote.txt
stifui/qt/inc/cstfcase.h
stifui/qt/inc/cstfmodule.h
stifui/qt/inc/dlgoutput.h
stifui/qt/inc/dlgrepeatrun.h
stifui/qt/inc/dlgsetselector.h
stifui/qt/inc/dlgsetting.h
stifui/qt/inc/frmmain.h
stifui/qt/inc/istfqtuicontroller.h
stifui/qt/inc/istfqtuimodel.h
stifui/qt/inc/stfqtuicontroller.h
stifui/qt/inc/stfqtuimodel.h
stifui/qt/inc/stifexecutor.h
stifui/qt/inc/uisetting.h
stifui/qt/inc/uiversion.h
stifui/qt/inc/version.h
stifui/qt/rom/stfui.iby
stifui/qt/sis/stifqtui.pkg
stifui/qt/src/dlgoutput.cpp
stifui/qt/src/dlgrepeatrun.cpp
stifui/qt/src/dlgsetselector.cpp
stifui/qt/src/dlgsetting.cpp
stifui/qt/src/frmmain.cpp
stifui/qt/src/main.cpp
stifui/qt/src/stfqtuicontroller.cpp
stifui/qt/src/stfqtuimodel.cpp
stifui/qt/src/stifexecutor.cpp
stifui/qt/src/uisetting.cpp
--- a/htiui/HtiAdmin/inc/HtiAdminAppUi.h	Mon Jun 21 15:41:16 2010 +0300
+++ b/htiui/HtiAdmin/inc/HtiAdminAppUi.h	Thu Jul 15 18:39:46 2010 +0300
@@ -135,6 +135,8 @@
     	void HandleBtSearch();
     	void HandleIPConnect();
     	void HandleIPListen();
+    	
+    	void StartTimer();
 
     private:
 
--- a/htiui/HtiAdmin/src/HtiAdminAppUi.cpp	Mon Jun 21 15:41:16 2010 +0300
+++ b/htiui/HtiAdmin/src/HtiAdminAppUi.cpp	Thu Jul 15 18:39:46 2010 +0300
@@ -109,6 +109,7 @@
     iAppView->SetSelectedCommCaption( KHtiSelectedCommCaption );
     UpdateVersion();
     UpdateStatusL();
+    StartTimer();
     iHtiCfg = CHtiCfg::NewL();
     UpdateAutoStartStatus(); // uses iHtiCfg
     UpdateSelectedComm(); // uses iHtiCfg
@@ -810,6 +811,7 @@
         {
         UpdateStatusL();
         UpdateAutoStartStatus();
+        StartTimer();
         }
     else
         {
@@ -889,15 +891,6 @@
                 {
                 _LIT( KTxt, "Running" );
                 iAppView->SetStatus( KTxt );
-
-                // start timer to watch the status
-                if ( !iPeriodic )
-                    {
-                    iPeriodic = CPeriodic::NewL( CActive::EPriorityStandard );
-                    iPeriodic->Start( 5 * 1000 * 1000,
-                                      5 * 1000 * 1000,
-                                      TCallBack( TimerCallBackL, this ) );
-                    }
                 }
                 break;
 
@@ -906,7 +899,6 @@
                 {
                 _LIT( KTxt, "Stopped" );
                 iAppView->SetStatus( KTxt );
-                KillTimer();
                 }
                 break;
 
@@ -914,16 +906,11 @@
                 {
                 _LIT( KTxt, "Panic" );
                 iAppView->SetStatus( KTxt );
-                KillTimer();
                 }
                 break;
             };
         prs.Close();
         }
-    else
-        {
-        KillTimer();
-        }
     }
 
 void CHtiAdminAppUi::UpdateAutoStartStatus()
@@ -1083,6 +1070,18 @@
         }
     }
 
+void CHtiAdminAppUi::StartTimer()
+    {
+    // start timer to watch the status
+    if ( !iPeriodic )
+        {
+        iPeriodic = CPeriodic::NewL( CActive::EPriorityIdle );
+        iPeriodic->Start( 1 * 1000 * 1000,
+                          10 * 1000 * 1000,
+                          TCallBack( TimerCallBackL, this ) );
+        }
+    }
+
 void CHtiAdminAppUi::KillTimer()
     {
     if ( iPeriodic )
--- a/htiui/HtiAdminQt/chtiadminengine.cpp	Mon Jun 21 15:41:16 2010 +0300
+++ b/htiui/HtiAdminQt/chtiadminengine.cpp	Thu Jul 15 18:39:46 2010 +0300
@@ -121,6 +121,7 @@
     iHtiCfg = CHtiCfg::NewL();
     
     CheckStatusesL();
+    StartTimer();
     }
 
 // ---------------------------------------------------------------------------
@@ -594,15 +595,6 @@
             case EExitPending:
                 {
                 iEngineWrapper->updateStatus(HtiEngineWrapper::Running);
-		
-                // start timer to watch the status
-                if ( !iPeriodic )
-                    {
-                    iPeriodic = CPeriodic::NewL( CActive::EPriorityStandard );
-                    iPeriodic->Start( 5 * 1000 * 1000,
-                                      5 * 1000 * 1000,
-                                      TCallBack( TimerCallBackL, this ) );
-                    }
                 }
                 break;
 
@@ -610,23 +602,17 @@
             case EExitTerminate:
                 {
                 iEngineWrapper->updateStatus(HtiEngineWrapper::Stopped);
-                KillTimer();
                 }
                 break;
 
             case EExitPanic:
                 {
                 iEngineWrapper->updateStatus(HtiEngineWrapper::Panic);
-                KillTimer();
                 }
                 break;
             };
         prs.Close();
         }
-    else
-        {
-        KillTimer();
-        }
     }
 
 // ---------------------------------------------------------------------------
@@ -647,6 +633,18 @@
     }
 
 // ---------------------------------------------------------------------------
+void CHtiAdminEngine::StartTimer()
+    {
+    // start timer to watch the status
+    if ( !iPeriodic )
+        {
+        iPeriodic = CPeriodic::NewL( CActive::EPriorityIdle );
+        iPeriodic->Start( 1 * 1000 * 1000,
+                          10 * 1000 * 1000,
+                          TCallBack( TimerCallBackL, this ) );
+        }
+    }
+// ---------------------------------------------------------------------------
 void CHtiAdminEngine::KillTimer()
     {
     if ( iPeriodic )
--- a/htiui/HtiAdminQt/chtiadminengine.h	Mon Jun 21 15:41:16 2010 +0300
+++ b/htiui/HtiAdminQt/chtiadminengine.h	Thu Jul 15 18:39:46 2010 +0300
@@ -160,6 +160,8 @@
 		void SetCfgParamL(const TDesC& aParamName, const TDesC& aParamValue, const TDesC& aFileName);
 		void GetCfgParamL(const TDesC& aParamName, TDes& aParamValue, const TDesC& aFileName);
 		
+		void StartTimer();
+		
 	private:
 		// Enginewrapper that is used for communicating between QT and Symbian
 		HtiEngineWrapper* iEngineWrapper;             
--- a/htiui/HtiServicePlugins/HtiCameraServicePlugin/engine/inc/EngineVideoRecording.h	Mon Jun 21 15:41:16 2010 +0300
+++ b/htiui/HtiServicePlugins/HtiCameraServicePlugin/engine/inc/EngineVideoRecording.h	Thu Jul 15 18:39:46 2010 +0300
@@ -356,12 +356,12 @@
             TInt aError );
 
         void ViewFinderFrameReady( 
-            CFbsBitmap& aFrame ){};
+            CFbsBitmap& /*aFrame*/ ){};
 
         void ImageReady( 
-            CFbsBitmap* aBitmap, 
-            HBufC8*     aData, 
-            TInt        aError ){};
+            CFbsBitmap* /*aBitmap*/, 
+            HBufC8*     /*aData*/, 
+            TInt        /*aError*/ ){};
 
         void FrameBufferReady( 
             MFrameBuffer* /*aFrameBuffer*/, 
@@ -371,11 +371,11 @@
         
         void HandleEvent(const TECAMEvent& aEvent);
 
-        void ViewFinderReady(MCameraBuffer& aCameraBuffer,TInt aError){};
+        void ViewFinderReady(MCameraBuffer& /*aCameraBuffer*/,TInt /*aError*/){};
 
-        void ImageBufferReady(MCameraBuffer& aCameraBuffer,TInt aError){};
+        void ImageBufferReady(MCameraBuffer& /*aCameraBuffer*/,TInt /*aError*/){};
     
-        void VideoBufferReady(MCameraBuffer& aCameraBuffer,TInt aError){};
+        void VideoBufferReady(MCameraBuffer& /*aCameraBuffer*/,TInt /*aError*/){};
     protected:  
 
         /**
--- a/htiui/HtiServicePlugins/HtiCameraServicePlugin/inc/HtiCameraServicePlugin.h	Mon Jun 21 15:41:16 2010 +0300
+++ b/htiui/HtiServicePlugins/HtiCameraServicePlugin/inc/HtiCameraServicePlugin.h	Thu Jul 15 18:39:46 2010 +0300
@@ -49,7 +49,7 @@
         // commands
         enum TCommands
             {
-            ECmdInit                    = 0x01,
+            ECmdInitialize              = 0x01,
             ECmdPrepareVideoRecording   = 0x02,
             ECmdStartVideoRecording     = 0x05,
             ECmdPausingVideoRecording   = 0x06,
@@ -59,8 +59,8 @@
             ECmdGetZoom                 = 0x0a,
             ECmdSetZoom                 = 0x0b,
             
-            
-            EResultOk               = 0xFF // only for response message
+            ECmdUninitialize            = 0x51,
+            EResultOk                   = 0xFF // only for response message
             };
 
 
@@ -168,7 +168,8 @@
         virtual void MevroVideoRecordingComplete(TInt aError);
     
     private:
-        void HandleInitCmdL(const TDesC8& aData);
+        void HandleInitializeCmdL(const TDesC8& aData);
+        void HandleUninitializeCmdL(const TDesC8& aData);
         void HandlePrepareVideoRecordingCmdL(const TDesC8& aData);
         void HandleStartVideoRecordingCmdL( const TDesC8& aData );
         void HandlePausingVideoRecordingCmdL( const TDesC8& aData );
--- a/htiui/HtiServicePlugins/HtiCameraServicePlugin/src/HtiCameraServicePlugin.cpp	Mon Jun 21 15:41:16 2010 +0300
+++ b/htiui/HtiServicePlugins/HtiCameraServicePlugin/src/HtiCameraServicePlugin.cpp	Thu Jul 15 18:39:46 2010 +0300
@@ -44,6 +44,7 @@
 _LIT8( KErrorNoCommand, "ERROR: No command given" );
 _LIT8( KErrorUnknownCmd, "ERROR: Unknown Camera Service command" );
 _LIT8( KErrorInitFailed, "ERROR: Failed to init");
+_LIT8( KErrorUninitialized, "ERROR: Uninitialized");
 _LIT8( KErrInvalidateParameters, "ERROR: Invalidate parameters");
 _LIT8( KErrQualityLevel, "ERROR: Invalidate quality level");
 _LIT8( KErrorPrepareVideoRecordingFailed, "ERROR: Prepare video recording failed");
@@ -83,7 +84,6 @@
 void CHtiCameraServicePlugin::ConstructL()
     {
     HTI_LOG_TEXT( "CHtiCameraServicePlugin::ConstructL" );
-    iVideoRecordingEngine = CEngineVideoRecording::NewL(*this, 0);
     iWaiter = new ( ELeave ) CActiveSchedulerWait;
     }
 
@@ -106,8 +106,11 @@
 // Destructor
 CHtiCameraServicePlugin::~CHtiCameraServicePlugin()
     {
-    delete iVideoRecordingEngine;
-    iVideoRecordingEngine = NULL;
+    if(iVideoRecordingEngine)
+        {
+        delete iVideoRecordingEngine;
+        iVideoRecordingEngine = NULL;
+        }
     
     delete iWaiter;
     iWaiter = NULL;
@@ -146,8 +149,11 @@
 
     switch (command)
         {
-        case ECmdInit:
-            TRAP(err, HandleInitCmdL(aMessage.Right( aMessage.Length() - 1 )));
+        case ECmdInitialize:
+            TRAP(err, HandleInitializeCmdL(aMessage.Right( aMessage.Length() - 1 )));
+            break;
+        case ECmdUninitialize:
+            TRAP(err, HandleUninitializeCmdL(aMessage.Right( aMessage.Length() - 1 )));
             break;
         case ECmdPrepareVideoRecording:
             TRAP(err, HandlePrepareVideoRecordingCmdL(aMessage.Right( aMessage.Length() - 1 )));
@@ -187,9 +193,9 @@
     HTI_LOG_FUNC_OUT( "CHtiCameraServicePlugin::ProcessMessageL" );
     }
 
-void CHtiCameraServicePlugin::HandleInitCmdL( const TDesC8& aData )
+void CHtiCameraServicePlugin::HandleInitializeCmdL( const TDesC8& aData )
     {
-    HTI_LOG_FUNC_IN( "CHtiCameraServicePlugin::HandleInitCmdL" );
+    HTI_LOG_FUNC_IN( "CHtiCameraServicePlugin::HandleInitializeCmdL" );
     if(aData.Length() != 0)
         {
         SendErrorMessageL(KErrArgument, KErrInvalidateParameters);
@@ -197,6 +203,13 @@
         }
     
     HTI_LOG_TEXT("Initializes Camera Application Engine");
+    if(iVideoRecordingEngine)
+        {
+        delete iVideoRecordingEngine;
+        iVideoRecordingEngine = NULL;
+        }
+    
+    iVideoRecordingEngine = CEngineVideoRecording::NewL(*this, 0);
     iVideoRecordingEngine->InitL();
     iWaiter->Start();
     if(iError != KErrNone)
@@ -211,9 +224,30 @@
         SendOkMsgL(KNullDesC8);
         }
 
-    HTI_LOG_FUNC_OUT( "CHtiCameraServicePlugin::HandleInitCmdL" );
+    HTI_LOG_FUNC_OUT( "CHtiCameraServicePlugin::HandleInitializeCmdL" );
     }
 
+void CHtiCameraServicePlugin::HandleUninitializeCmdL(const TDesC8& aData)
+    {
+    HTI_LOG_FUNC_IN( "CHtiCameraServicePlugin::HandleUninitializeCmdL" );
+    if(aData.Length() != 0)
+        {
+        SendErrorMessageL(KErrArgument, KErrInvalidateParameters);
+        return;
+        }
+    
+    if(iVideoRecordingEngine == NULL)
+        {
+        SendErrorMessageL(KErrNotReady, KErrorUninitialized);
+        return;
+        }
+    
+    delete iVideoRecordingEngine;
+    iVideoRecordingEngine = NULL;
+    
+    SendOkMsgL(KNullDesC8);
+    HTI_LOG_FUNC_OUT( "CHtiCameraServicePlugin::HandleUninitializeCmdL" );
+    }
 
 void CHtiCameraServicePlugin::HandlePrepareVideoRecordingCmdL( const TDesC8& aData )
     {
@@ -224,6 +258,12 @@
         return;
         }
     
+    if(iVideoRecordingEngine == NULL)
+        {
+        SendErrorMessageL(KErrNotReady, KErrorUninitialized);
+        return;
+        }
+    
     TInt qualityLevelIndex = aData[0];
     if(qualityLevelIndex < 0 || qualityLevelIndex > iVideoRecordingEngine->VideoQualityCount() -1)
         {
@@ -267,6 +307,12 @@
         return;
         }
     
+    if(iVideoRecordingEngine == NULL)
+        {
+        SendErrorMessageL(KErrNotReady, KErrorUninitialized);
+        return;
+        }
+    
     HTI_LOG_TEXT("Start video recording...");
     iVideoRecordingEngine->StartVideoRecording();
     
@@ -291,6 +337,12 @@
         return;
         }
     
+    if(iVideoRecordingEngine == NULL)
+        {
+        SendErrorMessageL(KErrNotReady, KErrorUninitialized);
+        return;
+        }
+    
     HTI_LOG_TEXT("Pausing video recording");
     iVideoRecordingEngine->PauseVideoRecording();
     if(iError != KErrNone)
@@ -313,6 +365,12 @@
         return;
         }
     
+    if(iVideoRecordingEngine == NULL)
+        {
+        SendErrorMessageL(KErrNotReady, KErrorUninitialized);
+        return;
+        }
+    
     HTI_LOG_TEXT("Resume video recording...");
     iVideoRecordingEngine->ResumeVideoRecording();
     
@@ -336,6 +394,12 @@
         return;
         }
     
+    if(iVideoRecordingEngine == NULL)
+        {
+        SendErrorMessageL(KErrNotReady, KErrorUninitialized);
+        return;
+        }
+    
     HTI_LOG_TEXT("Stop video recording");
     iVideoRecordingEngine->StopVideoRecording();
     if(iError != KErrNone)
@@ -358,6 +422,12 @@
         return;
         }
     
+    if(iVideoRecordingEngine == NULL)
+        {
+        SendErrorMessageL(KErrNotReady, KErrorUninitialized);
+        return;
+        }
+    
     HTI_LOG_TEXT("Close video recording");
     iVideoRecordingEngine->CloseVideoRecording();
     SendOkMsgL(KNullDesC8);
@@ -373,6 +443,12 @@
         return;
         }
     
+    if(iVideoRecordingEngine == NULL)
+        {
+        SendErrorMessageL(KErrNotReady, KErrorUninitialized);
+        return;
+        }
+    
     TUint8 zoomMode = (TUint8)iVideoRecordingEngine->ZoomMode();
     HTI_LOG_FORMAT("Current zoom mode: %d", zoomMode);
     
@@ -404,6 +480,12 @@
         return;
         }
     
+    if(iVideoRecordingEngine == NULL)
+        {
+        SendErrorMessageL(KErrNotReady, KErrorUninitialized);
+        return;
+        }
+    
     CEngineVideoRecording::TZoomMode zoomMode = (CEngineVideoRecording::TZoomMode)aData[0];
     HTI_LOG_FORMAT("Set zoom mode: %d", zoomMode);
     TRAPD(err, iVideoRecordingEngine->SetZoomModeL(zoomMode));
@@ -515,7 +597,7 @@
     {
     HTI_LOG_FUNC_IN( "CHtiCameraServicePlugin::MevroInitComplete" );
     HTI_LOG_FORMAT("aError = %d", aError);
-    iError = aError;
+    iError = aError; 
     iWaiter->AsyncStop();
     HTI_LOG_FUNC_OUT( "CHtiCameraServicePlugin::MevroInitComplete" );
     }
--- a/htiui/HtiServicePlugins/HtiSysInfoServicePlugin/group/HtiSysInfoServicePlugin.mmp	Mon Jun 21 15:41:16 2010 +0300
+++ b/htiui/HtiServicePlugins/HtiSysInfoServicePlugin/group/HtiSysInfoServicePlugin.mmp	Thu Jul 15 18:39:46 2010 +0300
@@ -65,6 +65,7 @@
 LIBRARY         sysutil.lib
 LIBRARY         tzclient.lib
 LIBRARY         flogger.lib
+LIBRARY	        featmgr.lib // Chinese support
 
 SMPSAFE
 
--- a/htiui/HtiServicePlugins/HtiSysInfoServicePlugin/inc/HtiSysInfoServicePlugin.h	Mon Jun 21 15:41:16 2010 +0300
+++ b/htiui/HtiServicePlugins/HtiSysInfoServicePlugin/inc/HtiSysInfoServicePlugin.h	Thu Jul 15 18:39:46 2010 +0300
@@ -98,7 +98,9 @@
         void HandleHsdpaCommandL( const TDesC8& aMessage );
         void HandleUpdateMediaGalleryL( const TDesC8& aMessage );
         void HandleActivateSkinL( const TDesC8& aMessage );
+        void HandleSetLanguageL( const TDesC8& aMessage );
 
+        void SetDefaultNumberModeL(TInt aMode, TInt aNbrModeType);
         void ParseTimeDataL( const TDesC8& aTimeData, TTime& aResult );
         TInt CleanUpTempFiles();
         TBool CanTurnBluetoothOnL( const TBool aUseForce );
--- a/htiui/HtiServicePlugins/HtiSysInfoServicePlugin/src/HtiSysInfoServicePlugin.cpp	Mon Jun 21 15:41:16 2010 +0300
+++ b/htiui/HtiServicePlugins/HtiSysInfoServicePlugin/src/HtiSysInfoServicePlugin.cpp	Thu Jul 15 18:39:46 2010 +0300
@@ -31,6 +31,10 @@
 #include <AknSkinsInternalCRKeys.h>
 #include <AknsSkinUID.h>
 #include <AknsSrvClient.h>
+#include <AknFepInternalCRKeys.h>
+#include <AknFepGlobalEnums.h> //For chinese input modes
+#include <CommonEngineDomainCRKeys.h>
+#include <featmgr.h>
 #include <bautils.h>
 #include <btengsettings.h>
 #include <btengdomaincrkeys.h>
@@ -61,6 +65,8 @@
 const TInt KMaxBtNameLength = 30;
 const TInt KDateTimeFormatCmdLength = 6;
 
+const TInt KFepChineseInputModeLength = 10;
+
 _LIT( KTempFilePath, "\\" );
 _LIT( KTempFileName, "HtiTempFile.tmp" );
 _LIT( KMatchFileName, "HtiTempFile.tmp*" );
@@ -83,6 +89,7 @@
 _LIT8( KErrDescrSysUtil, "SysUtil failed" );
 _LIT8( KErrDescrSetTime, "Setting time failed" );
 _LIT8( KErrDescrDateTimeFormat, "Setting date and time formats failed" );
+_LIT8( KErrDescrSetLanguage, "Setting language failed");
 _LIT8( KErrDescrGetNetworkModes, "Getting network modes failed" );
 _LIT8( KErrDescrSetNetworkMode, "Setting network mode failed" );
 _LIT8( KErrDescrIrActivation, "IR activation failed" );
@@ -130,6 +137,8 @@
     ESysInfoSetHomeTime =     0x20,
     ESysInfoGetHomeTime =     0x21,
     ESetDateTimeFormat =      0x22,
+    
+    ESetLanguage =            0x25,
 
     ELightStatus =            0x30,
     ELightOn =                0x31,
@@ -164,6 +173,17 @@
     EActivateSkin =           0x80
     };
 
+enum TGSNumberModes
+    {
+    EGSNbrModeLatin, EGSNbrModeArabic = 1, EGSNbrModeIndic = 1
+    };
+
+// Number mode type
+enum TGSNumberModeType
+    {
+    EGSNbrModeTypeArabic, EGSNbrModeTypeIndic, EGSNbrModeTypeEasternArabic
+    // for Urdu & Farsi languages
+    };
 
 //------------------------------------------------------------------------------
 // Create instance of concrete ECOM interface implementation
@@ -211,6 +231,8 @@
     iAllowSSProperty.Close();
 #endif 
     delete iAllowSSSubscriber;
+    
+    FeatureManager::UnInitializeLib();
     }
 
 //------------------------------------------------------------------------------
@@ -221,6 +243,8 @@
     HTI_LOG_TEXT( "CHtiSysInfoServicePlugin::ConstructL" );
     User::LeaveIfError( iFs.Connect() );
     iFileMan = CFileMan::NewL( iFs );
+    
+    FeatureManager::InitializeLibL();
     }
 
 //------------------------------------------------------------------------------
@@ -352,6 +376,12 @@
                 HandleSetDateTimeFormatL( aMessage );
                 }
                 break;
+            case ESetLanguage:
+                {
+                HTI_LOG_TEXT("ESetLanguage");
+                HandleSetLanguageL( aMessage);
+                }
+                break;
             case ELightStatus:
             case ELightOn:
             case ELightOff:
@@ -2851,6 +2881,160 @@
     }
 
 //------------------------------------------------------------------------------
+// CHtiSysInfoServicePlugin::HandleSetLanguageL
+//------------------------------------------------------------------------------
+void CHtiSysInfoServicePlugin::HandleSetLanguageL( const TDesC8& aMessage )
+    {
+    HTI_LOG_FUNC_IN( "CHtiSysInfoServicePlugin::HandleSetLanguageL" );
+    if ( aMessage.Length() != 3 )
+        {
+        iDispatcher->DispatchOutgoingErrorMessage( KErrArgument,
+                KErrDescrArgument, KSysInfoServiceUid );
+        return;
+        }
+    
+    TInt language = aMessage[1] + ( aMessage[2] << 8 );
+    if(language < 0)
+        {
+        iDispatcher->DispatchOutgoingErrorMessage( KErrArgument,
+                KErrDescrSetLanguage, KSysInfoServiceUid );
+        return;
+        }
+    HTI_LOG_FORMAT( "Set language to %d", language );
+    
+    // Never set Language code 0 to HAL
+    if (language != 0)
+        {
+        User::LeaveIfError(HAL::Set(HAL::ELanguageIndex, language));
+        }
+    
+    CRepository* commonEngineRepository = CRepository::NewL(
+            KCRUidCommonEngineKeys);
+    CleanupStack::PushL(commonEngineRepository);
+    
+    User::LeaveIfError(commonEngineRepository->Set(KGSDisplayTxtLang, language));
+
+    CleanupStack::PopAndDestroy();
+
+    TBool nbrModeSaved = EFalse;
+    if (language == ELangArabic || User::Language() == ELangArabic)
+        {
+        //numberMode = EGSNumberModeArabicIndic;
+        SetDefaultNumberModeL(EGSNbrModeArabic, EGSNbrModeTypeArabic);
+        nbrModeSaved = ETrue;
+        }
+    else if ((language == ELangUrdu || User::Language() == ELangUrdu)
+            || (language == ELangFarsi || User::Language() == ELangFarsi))
+        {
+        //numberMode = EGSNumberModeEasternArabicIndic;
+        SetDefaultNumberModeL(EGSNbrModeLatin, EGSNbrModeTypeEasternArabic);
+        nbrModeSaved = ETrue;
+        }
+    else if (language == ELangHindi || User::Language() == ELangHindi
+            || language == ELangMarathi || User::Language() == ELangMarathi)
+        {
+        //numberMode = EGSNumberModeIndic;
+        SetDefaultNumberModeL(EGSNbrModeLatin, EGSNbrModeTypeIndic);
+        nbrModeSaved = ETrue;
+        }
+
+    //if number mode is not set above, then set it to Latin with respective
+    //number mode types. This part might be executed when Automatic is
+    //selected and the SIM card does not support the language.
+    if (!nbrModeSaved)
+        {
+        TInt nbrModeType = EGSNbrModeTypeIndic;
+        if (language == ELangArabic || User::Language() == ELangArabic)
+            {
+            nbrModeType = EGSNbrModeTypeArabic;
+            }
+        else if ((language == ELangUrdu || User::Language() == ELangUrdu)
+                || (language == ELangFarsi || User::Language() == ELangFarsi))
+            {
+            nbrModeType = EGSNbrModeTypeEasternArabic;
+            }
+
+        //EGSNumberModeLatin is true in both cases;
+        SetDefaultNumberModeL(EGSNbrModeLatin, nbrModeType);
+        }
+    
+    // Change input language
+    CRepository* aknFepRepository = CRepository::NewL( KCRUidAknFep );
+    CleanupStack::PushL(aknFepRepository);
+    User::LeaveIfError(  aknFepRepository->Set( KAknFepInputTxtLang,
+                                                language ));
+    // Change input method for Chinese variants
+    if( FeatureManager::FeatureSupported( KFeatureIdChinese ) )
+        {
+        TBuf<KFepChineseInputModeLength> conversion;
+        if( language == ELangPrcChinese )
+            {
+            conversion.Num( EPinyin, EHex );
+            User::LeaveIfError( aknFepRepository->Set( KAknFepChineseInputMode, conversion ) );
+            }
+        else if( language == ELangHongKongChinese )
+            {
+            conversion.Num( EStroke, EHex );
+            User::LeaveIfError( aknFepRepository->Set( KAknFepChineseInputMode, conversion ) );
+            }
+        else if( language == ELangTaiwanChinese )
+            {
+            conversion.Num( EZhuyin, EHex );
+            User::LeaveIfError( aknFepRepository->Set( KAknFepChineseInputMode, conversion ) );
+            }
+        }
+    CleanupStack::PopAndDestroy();
+    
+    iReply = HBufC8::NewL( 1 );
+    iReply->Des().Append( 0 );
+    HTI_LOG_FUNC_OUT( "CHtiSysInfoServicePlugin::HandleSetLanguageL" );
+    }
+
+void CHtiSysInfoServicePlugin::SetDefaultNumberModeL(TInt aMode, TInt aNbrModeType)
+    {
+
+    CRepository* localeRepository = CRepository::NewL(KCRUidLocaleSettings);
+    CleanupStack::PushL(localeRepository);
+    if (aNbrModeType == EGSNbrModeTypeArabic || aNbrModeType
+            == EGSNbrModeTypeEasternArabic)
+        {
+        localeRepository->Set(KSettingsDefaultNumberMode, aMode);
+        }
+    else
+        {
+        localeRepository->Set(KSettingsIndicDefaultNumberMode, aMode);
+        }
+    CleanupStack::PopAndDestroy();
+
+    TLocale locale;
+    if (aMode == EGSNbrModeLatin)
+        {
+        locale.SetDigitType(EDigitTypeWestern);
+        }
+    else
+        {
+        //if aMode <> EGSNbrModeLatin, then it should be either latin or arabic. However
+        //as EGSNbrModeArabic and EGsNbrModeIndic both have a value = 1, we can't use
+        //that constant for below comparison. Hence, need to depend on the 2nd param.
+        switch (aNbrModeType)
+            {
+            case EGSNbrModeTypeArabic:
+                locale.SetDigitType(EDigitTypeArabicIndic);
+                break;
+            case EGSNbrModeTypeIndic:
+                locale.SetDigitType(EDigitTypeDevanagari);
+                break;
+            case EGSNbrModeTypeEasternArabic:
+                locale.SetDigitType(EDigitTypeEasternArabicIndic);
+                break;
+            default:
+                break;
+            }
+        }
+
+    locale.Set();
+    }
+//------------------------------------------------------------------------------
 // CHtiSysInfoServicePlugin::ParseTimeDataL
 //------------------------------------------------------------------------------
 void CHtiSysInfoServicePlugin::ParseTimeDataL( const TDesC8& aTimeData,
--- a/htiui/sis/HTI_S60-10_1.pkg	Mon Jun 21 15:41:16 2010 +0300
+++ b/htiui/sis/HTI_S60-10_1.pkg	Thu Jul 15 18:39:46 2010 +0300
@@ -18,7 +18,7 @@
 &EN
 
 ; Using UID of HtiFramework project
-#{"HTI"},(0x1020DEB6),2,24,0
+#{"HTI"},(0x1020DEB6),2,25,0
 
 ; Series60 product id for S60 5.2
 [0x20022E6D], 0, 0, 0, {"Series60ProductID"}
@@ -96,6 +96,9 @@
 ; HTI watchdog
 "\epoc32\release\armv5\urel\HtiWatchDog.exe"                     - "!:\sys\bin\HtiWatchDog.exe"
 
+; HTI Restart
+"\epoc32\release\armv5\urel\HtiRestart.exe"                      - "!:\sys\bin\HtiRestart.exe"
+
 ; HTI device reboot
 "\epoc32\release\armv5\urel\HtiDeviceRebootUI.exe"               - "!:\sys\bin\HtiDeviceRebootUI.exe"
 
--- a/htiui/sis/HTI_S60-52.pkg	Mon Jun 21 15:41:16 2010 +0300
+++ b/htiui/sis/HTI_S60-52.pkg	Thu Jul 15 18:39:46 2010 +0300
@@ -18,7 +18,7 @@
 &EN
 
 ; Using UID of HtiFramework project
-#{"HTI"},(0x1020DEB6),2,24,0
+#{"HTI"},(0x1020DEB6),2,25,0
 
 ; Series60 product id for S60 5.2
 [0x20022E6D], 0, 0, 0, {"Series60ProductID"}
@@ -99,6 +99,9 @@
 ; HTI watchdog
 "\epoc32\release\armv5\urel\HtiWatchDog.exe"                     - "!:\sys\bin\HtiWatchDog.exe"
 
+; HTI Restart
+"\epoc32\release\armv5\urel\HtiRestart.exe"                      - "!:\sys\bin\HtiRestart.exe"
+
 ; HTI device reboot
 "\epoc32\release\armv5\urel\HtiDeviceRebootUI.exe"               - "!:\sys\bin\HtiDeviceRebootUI.exe"
 
--- a/htiui/sis/HTI_S60_Upgrade-10_1.pkg	Mon Jun 21 15:41:16 2010 +0300
+++ b/htiui/sis/HTI_S60_Upgrade-10_1.pkg	Thu Jul 15 18:39:46 2010 +0300
@@ -18,7 +18,7 @@
 &EN
 
 ; Using UID of HtiFramework project
-#{"HTI"},(0x1020DEB6),2,24,0,TYPE=SA,RU
+#{"HTI"},(0x1020DEB6),2,25,0,TYPE=SA,RU
 
 ; Series60 product id for S60 5.2
 [0x20022E6D], 0, 0, 0, {"Series60ProductID"}
@@ -96,6 +96,9 @@
 ; HTI watchdog
 "\epoc32\release\armv5\urel\HtiWatchDog.exe"                     - "!:\sys\bin\HtiWatchDog.exe"
 
+; HTI Restart
+"\epoc32\release\armv5\urel\HtiRestart.exe"                      - "!:\sys\bin\HtiRestart.exe"
+
 ; HTI device reboot
 "\epoc32\release\armv5\urel\HtiDeviceRebootUI.exe"               - "!:\sys\bin\HtiDeviceRebootUI.exe"
 
--- a/htiui/sis/HTI_S60_Upgrade-52.pkg	Mon Jun 21 15:41:16 2010 +0300
+++ b/htiui/sis/HTI_S60_Upgrade-52.pkg	Thu Jul 15 18:39:46 2010 +0300
@@ -18,7 +18,7 @@
 &EN
 
 ; Using UID of HtiFramework project
-#{"HTI"},(0x1020DEB6),2,24,0,TYPE=SA,RU
+#{"HTI"},(0x1020DEB6),2,25,0,TYPE=SA,RU
 
 ; Series60 product id for S60 5.2
 [0x20022E6D], 0, 0, 0, {"Series60ProductID"}
@@ -99,6 +99,9 @@
 ; HTI watchdog
 "\epoc32\release\armv5\urel\HtiWatchDog.exe"                     - "!:\sys\bin\HtiWatchDog.exe"
 
+; HTI Restart
+"\epoc32\release\armv5\urel\HtiRestart.exe"                      - "!:\sys\bin\HtiRestart.exe"
+
 ; HTI device reboot
 "\epoc32\release\armv5\urel\HtiDeviceRebootUI.exe"               - "!:\sys\bin\HtiDeviceRebootUI.exe"
 
--- a/htiui/sis/HTI_stub.pkg	Mon Jun 21 15:41:16 2010 +0300
+++ b/htiui/sis/HTI_stub.pkg	Thu Jul 15 18:39:46 2010 +0300
@@ -18,7 +18,7 @@
 &EN
 
 ; Using UID of HtiFramework project
-#{"HTI"},(0x1020DEB6),2,24,0
+#{"HTI"},(0x1020DEB6),2,25,0
 
 ; Localised Vendor name
 %{"Nokia"}
@@ -96,6 +96,9 @@
 ; HTI watchdog
 ""- "z:\sys\bin\HtiWatchDog.exe"
 
+; HTI Restart
+""- "z:\sys\bin\HtiRestart.exe"
+
 ; HTI device reboot
 ""- "z:\sys\bin\HtiDeviceRebootUI.exe"
 
--- a/memspyui/data/memspyui.rss	Mon Jun 21 15:41:16 2010 +0300
+++ b/memspyui/data/memspyui.rss	Thu Jul 15 18:39:46 2010 +0300
@@ -1019,7 +1019,7 @@
             id = EAknMessageQueryContentId;
             control = AVKON_MESSAGE_QUERY
 				{
-                message = "Version 1.2.0 - 27th October 2009. Copyright © 2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. Licensed under Eclipse Public License v1.0.";
+                message = "Version 1.2.1 - 15th June 2010. Copyright © 2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. Licensed under Eclipse Public License v1.0.";
 				};
 			}
 		};
--- a/stifui/avkon/group/ReleaseNote.txt	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/avkon/group/ReleaseNote.txt	Thu Jul 15 18:39:46 2010 +0300
@@ -1,5 +1,5 @@
 ========================================================================
-RELEASE NOTE FOR STIF UI - STIF_201022 (7.3.34)
+RELEASE NOTE FOR STIF UI - STIF_201024 (7.3.35)
 SUPPORTING SERIES 60 3.0 ->
 ========================================================================
 
--- a/stifui/avkon/stifui/inc/AppUIApp.h	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/avkon/stifui/inc/AppUIApp.h	Thu Jul 15 18:39:46 2010 +0300
@@ -54,5 +54,3 @@
 #endif
 
 // End of File
-
-// End of File
--- a/stifui/avkon/stifui/inc/AppUIDocument.h	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/avkon/stifui/inc/AppUIDocument.h	Thu Jul 15 18:39:46 2010 +0300
@@ -69,5 +69,3 @@
 #endif
 
 // End of File
-
-// End of File
--- a/stifui/avkon/stifui/inc/MenuListBox.h	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/avkon/stifui/inc/MenuListBox.h	Thu Jul 15 18:39:46 2010 +0300
@@ -73,3 +73,5 @@
     };
 
 #endif /*MENULISTBOX_H_*/
+
+// End of File
--- a/stifui/avkon/stifui/inc/Stifui.hrh	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/avkon/stifui/inc/Stifui.hrh	Thu Jul 15 18:39:46 2010 +0300
@@ -109,4 +109,5 @@
     };
 
 #endif      // STIF_UI_HRH
+
 // End of File
--- a/stifui/avkon/stifui/inc/Stifui_loc.hrh	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/avkon/stifui/inc/Stifui_loc.hrh	Thu Jul 15 18:39:46 2010 +0300
@@ -142,4 +142,3 @@
 #define qtn_testcase_state_unknown      "Undefined state!"
 
 // End of File
-
--- a/stifui/avkon/stifui/inc/TestSetMenuView.h	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/avkon/stifui/inc/TestSetMenuView.h	Thu Jul 15 18:39:46 2010 +0300
@@ -164,4 +164,4 @@
 
 #endif // TESTSETMENUVIEW_H
 
-// End of File
\ No newline at end of file
+// End of File
--- a/stifui/avkon/stifui/inc/version.h	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/avkon/stifui/inc/version.h	Thu Jul 15 18:39:46 2010 +0300
@@ -20,10 +20,12 @@
 
 #define STIFUI_MAJOR_VERSION 7
 #define STIFUI_MINOR_VERSION 3
-#define STIFUI_BUILD_VERSION 34
+#define STIFUI_BUILD_VERSION 35
 
-#define STIFUI_REL_DATE "1st June 2010"
+#define STIFUI_REL_DATE "15th June 2010"
 
 #define TO_UNICODE(text) _L(text) 
 
 #endif /*VERSION_H_*/
+
+// End of File
--- a/stifui/avkon/stifui/src/AppUIApp.cpp	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/avkon/stifui/src/AppUIApp.cpp	Thu Jul 15 18:39:46 2010 +0300
@@ -67,5 +67,4 @@
 		return EikStart::RunApplication(NewApplication);
 		}
 
-
 // End of File
--- a/stifui/avkon/stifui/src/AppUIDocument.cpp	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/avkon/stifui/src/AppUIDocument.cpp	Thu Jul 15 18:39:46 2010 +0300
@@ -59,4 +59,4 @@
     return new (ELeave) CAppUIAppUi;
     }
 
-// End of File  
+// End of File
--- a/stifui/avkon/stifui/src/CreatedTestSetMenuView.cpp	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/avkon/stifui/src/CreatedTestSetMenuView.cpp	Thu Jul 15 18:39:46 2010 +0300
@@ -188,12 +188,10 @@
 		substracted.Set(substracted.Right(substracted.Length()-2));
 		// Creating new view containing 		
        	CTestSetMenuView* testSetMenu = (CTestSetMenuView*)AppUi()->View( TUid::Uid(ETestSetMenuViewId) ); 
-       	TInt	error = testSetMenu->LoadTestSetL( substracted );
-		AppUi()->HandleCommandL(ECmdGoToTestSetView);
-		
+       	User::LeaveIfError( testSetMenu->LoadTestSetL( substracted ) );
+		AppUi()->HandleCommandL(ECmdGoToTestSetView);		
         }
  
     }
 
-
 // End of File
--- a/stifui/avkon/stifui/src/MainMenuContainer.cpp	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/avkon/stifui/src/MainMenuContainer.cpp	Thu Jul 15 18:39:46 2010 +0300
@@ -214,4 +214,4 @@
 	((CMenuListBox*)iListBox)->SaveFocusPosition();
 	}
 
-// End of File  
+// End of File
--- a/stifui/avkon/stifui/src/MainMenuView.cpp	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/avkon/stifui/src/MainMenuView.cpp	Thu Jul 15 18:39:46 2010 +0300
@@ -159,5 +159,3 @@
     }
 
 // End of File
-
-// End of File
--- a/stifui/avkon/stifui/src/MenuListBox.cpp	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/avkon/stifui/src/MenuListBox.cpp	Thu Jul 15 18:39:46 2010 +0300
@@ -106,3 +106,5 @@
 		this->SetTopItemIndex(0);
 		}
 	}
+
+// End of File
--- a/stifui/avkon/stifui/src/ShowStartedCasesContainer.cpp	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/avkon/stifui/src/ShowStartedCasesContainer.cpp	Thu Jul 15 18:39:46 2010 +0300
@@ -551,10 +551,8 @@
 //
 void CShowStartedCasesContainer::RemoveAllExecutionsInViewL()
     {
-    TInt exutionsInViewCount = iStartedTestsPtrs.Count();
-    iStartedTestsPtrs.Reset(); //Empties the array, does not delete the objects whose pointers are contained in the array
+    iStartedTestsPtrs.Reset(); // Empties the array, does not delete the objects whose pointers are contained in the array
     HandleItemRemovalL();
-
     }
 
 // ----------------------------------------------------------------------------
@@ -645,4 +643,4 @@
 	((CMenuListBox*)iListBox)->SaveFocusPosition();
 	}
 
-// End of File  
+// End of File
--- a/stifui/avkon/stifui/src/StartedCasesMenuContainer.cpp	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/avkon/stifui/src/StartedCasesMenuContainer.cpp	Thu Jul 15 18:39:46 2010 +0300
@@ -230,5 +230,4 @@
 	((CMenuListBox*)iListBox)->SaveFocusPosition();
 	}
 
-
-// End of File  
+// End of File
--- a/stifui/avkon/stifui/src/StartedCasesMenuView.cpp	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/avkon/stifui/src/StartedCasesMenuView.cpp	Thu Jul 15 18:39:46 2010 +0300
@@ -157,4 +157,3 @@
     }
 
 // End of File
-
--- a/stifui/avkon/stifui/src/TestCaseMenuContainer.cpp	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/avkon/stifui/src/TestCaseMenuContainer.cpp	Thu Jul 15 18:39:46 2010 +0300
@@ -221,4 +221,4 @@
 	((CMenuListBox*)iListBox)->SaveFocusPosition();
 	}
 
-// End of File  
+// End of File
--- a/stifui/avkon/stifui/src/TestSetBaseMenuContainer.cpp	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/avkon/stifui/src/TestSetBaseMenuContainer.cpp	Thu Jul 15 18:39:46 2010 +0300
@@ -185,4 +185,5 @@
 	{
 	((CMenuListBox*)iListBox)->SaveFocusPosition();
 	}
-// End of File  
+
+// End of File
--- a/stifui/avkon/stifui/src/TestSetInsertMenuContainer.cpp	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/avkon/stifui/src/TestSetInsertMenuContainer.cpp	Thu Jul 15 18:39:46 2010 +0300
@@ -220,5 +220,5 @@
 	{
 	((CMenuListBox*)iListBox)->SaveFocusPosition();
 	}
-    
+
 // End of File
--- a/stifui/avkon/stifui/src/TestSetMenuView.cpp	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/avkon/stifui/src/TestSetMenuView.cpp	Thu Jul 15 18:39:46 2010 +0300
@@ -550,5 +550,4 @@
         }
     }
 
-
 // End of File
--- a/stifui/avkon/stifui/src/TestSetStartedCasesContainer.cpp	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/avkon/stifui/src/TestSetStartedCasesContainer.cpp	Thu Jul 15 18:39:46 2010 +0300
@@ -446,7 +446,6 @@
 //
 void CTestSetStartedCasesContainer::RemoveAllExecutionsInViewL()
     {
-    TInt exutionsInViewCount = iStartedTestsPtrs.Count();
     iStartedTestsPtrs.Reset(); //Empties the array, does not delete the objects whose pointers are contained in the array
     HandleItemRemovalL();
 
@@ -463,4 +462,4 @@
 	((CMenuListBox*)iListBox)->SaveFocusPosition();
 	}
 
-// End of File  
+// End of File
--- a/stifui/avkon/stifui/src/Testmodulesmenuview.cpp	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/avkon/stifui/src/Testmodulesmenuview.cpp	Thu Jul 15 18:39:46 2010 +0300
@@ -277,4 +277,3 @@
     }
 
 // End of File
-
--- a/stifui/avkon/stifui/src/UIStoreHandler.cpp	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/avkon/stifui/src/UIStoreHandler.cpp	Thu Jul 15 18:39:46 2010 +0300
@@ -137,4 +137,4 @@
 // ================= OTHER EXPORTED FUNCTIONS =================================
 // None
 
-//  End of File
+// End of File
--- a/stifui/avkon/uitestserverstarter/inc/UITestServerStarter.hrh	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/avkon/uitestserverstarter/inc/UITestServerStarter.hrh	Thu Jul 15 18:39:46 2010 +0300
@@ -21,3 +21,5 @@
 #define _UID3 0x2000F8E8
 
 #endif // __UITESTSERVERSTARTER_HRH__
+
+// End of File
--- a/stifui/avkon/uitestserverstarter/inc/UITestServerStarterApplication.h	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/avkon/uitestserverstarter/inc/UITestServerStarterApplication.h	Thu Jul 15 18:39:46 2010 +0300
@@ -109,3 +109,5 @@
 
 
 #endif /*UITESTSERVERSTARTERAPPLICATION_H_*/
+
+// End of File
--- a/stifui/avkon/uitestserverstarter/inc/UITestServerStarterDocument.h	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/avkon/uitestserverstarter/inc/UITestServerStarterDocument.h	Thu Jul 15 18:39:46 2010 +0300
@@ -142,3 +142,5 @@
 
 
 #endif /*UITESTSERVERSTARTERDOCUMENT_H_*/
+
+// End of File
--- a/stifui/avkon/uitestserverstarter/src/EventUtil.cpp	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/avkon/uitestserverstarter/src/EventUtil.cpp	Thu Jul 15 18:39:46 2010 +0300
@@ -884,7 +884,7 @@
 	int keyScanCodeNamesCount = (sizeof( keyScanCodeNames )/sizeof(TText*));
 	
 	for ( int i = 0; i < keyScanCodeNamesCount; i++ ) {
-		if ( keyScanCodes[ i ] == aKeyScanCode ) 
+		if ( keyScanCodes[ i ] == (TUint)aKeyScanCode ) 
 			{
 			return keyScanCodeNames[ i ];
 			}
--- a/stifui/avkon/uitestserverstarter/src/UITestServerStarterAppContainer.cpp	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/avkon/uitestserverstarter/src/UITestServerStarterAppContainer.cpp	Thu Jul 15 18:39:46 2010 +0300
@@ -287,5 +287,4 @@
 	return CCoeControl::MopSupplyObject( aId );
 	}
 
-
 // End of File
--- a/stifui/avkon/uitestserverstarter/src/UITestServerStarterAppUi.cpp	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/avkon/uitestserverstarter/src/UITestServerStarterAppUi.cpp	Thu Jul 15 18:39:46 2010 +0300
@@ -240,6 +240,9 @@
 					}
 				}
 				break;
+			default: 
+			    // Do nothing
+			    break;
 			}
 		}
 	else if ( aEvent.Type() == EEventPointer )
@@ -247,7 +250,7 @@
 		if ( iEventType == EPointerEvent )
 			{
 			PointerEventHandled();
-			}
+			}		
 		}
 	}
 
@@ -504,5 +507,4 @@
 	iEventStatus = aStatus;
 	}
 
-
 // End of File
--- a/stifui/qt/ReleaseNote.txt	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/qt/ReleaseNote.txt	Thu Jul 15 18:39:46 2010 +0300
@@ -1,5 +1,5 @@
 ========================================================================
-RELEASE NOTE FOR STFUI_201022 (7.3.34)
+RELEASE NOTE FOR STFUI_201024 (7.3.35)
 ========================================================================
 
 Product Description:
--- a/stifui/qt/inc/cstfcase.h	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/qt/inc/cstfcase.h	Thu Jul 15 18:39:46 2010 +0300
@@ -61,3 +61,5 @@
     QString moduleName;
 };
 #endif // CSTFCASE_H
+
+// End of File
--- a/stifui/qt/inc/cstfmodule.h	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/qt/inc/cstfmodule.h	Thu Jul 15 18:39:46 2010 +0300
@@ -48,3 +48,5 @@
 
 };
 #endif // CSTFMODULE_H
+
+// End of File
--- a/stifui/qt/inc/dlgoutput.h	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/qt/inc/dlgoutput.h	Thu Jul 15 18:39:46 2010 +0300
@@ -66,3 +66,5 @@
 
 
 #endif /* DLGOUTPUT_H_ */
+
+// End of File
--- a/stifui/qt/inc/dlgrepeatrun.h	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/qt/inc/dlgrepeatrun.h	Thu Jul 15 18:39:46 2010 +0300
@@ -60,3 +60,5 @@
     };
 
 #endif /* DLGREPEATRUN_H_ */
+
+// End of File
--- a/stifui/qt/inc/dlgsetselector.h	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/qt/inc/dlgsetselector.h	Thu Jul 15 18:39:46 2010 +0300
@@ -62,3 +62,5 @@
 
 
 #endif /* DLGSETSELECTOR_H_ */
+
+// End of File
--- a/stifui/qt/inc/dlgsetting.h	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/qt/inc/dlgsetting.h	Thu Jul 15 18:39:46 2010 +0300
@@ -25,6 +25,8 @@
 class QGridLayout;
 class QCheckBox;
 class QPushButton;
+class QLabel;
+class QLineEdit;
 QT_END_NAMESPACE
 
 class DlgSetting : public QDialog {    
@@ -40,6 +42,9 @@
     QPushButton* btnOk;
     QPushButton* btnCancel;
     QCheckBox* chkShowoutput;
+    QLabel* lblFilter;
+    QLineEdit* ledFilter;
+    QCheckBox* chkFilterCaseSens;
     
 private slots:
     void on_btnOk_clicked();
@@ -51,3 +56,5 @@
     };
 
 #endif /* DLGSETTING_H_ */
+
+// End of File
--- a/stifui/qt/inc/frmmain.h	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/qt/inc/frmmain.h	Thu Jul 15 18:39:46 2010 +0300
@@ -96,6 +96,8 @@
     UiSetting* uiSetting; 
     bool layoutType;
     QTreeWidgetItem* lastItemSelected;
+    QString currentFilter;
+    QString currentFilterCaseSens;
 
 private: //UI Components
     QWidget* centerWidget;
@@ -199,3 +201,5 @@
 };
 
 #endif // FrmMain_H
+
+// End of File
--- a/stifui/qt/inc/istfqtuicontroller.h	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/qt/inc/istfqtuicontroller.h	Thu Jul 15 18:39:46 2010 +0300
@@ -82,3 +82,5 @@
 
 
 #endif // ISTFQTUICONTROLLER_H
+
+// End of File
--- a/stifui/qt/inc/istfqtuimodel.h	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/qt/inc/istfqtuimodel.h	Thu Jul 15 18:39:46 2010 +0300
@@ -53,3 +53,5 @@
 };
 
 #endif // ISTFQTUIMODEL_H
+
+// End of File
--- a/stifui/qt/inc/stfqtuicontroller.h	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/qt/inc/stfqtuicontroller.h	Thu Jul 15 18:39:46 2010 +0300
@@ -101,3 +101,5 @@
 
 
 #endif /* STFQTUICONTROLLER_H_ */
+
+// End of File
--- a/stifui/qt/inc/stfqtuimodel.h	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/qt/inc/stfqtuimodel.h	Thu Jul 15 18:39:46 2010 +0300
@@ -56,3 +56,5 @@
     
     
     };
+
+// End of File
--- a/stifui/qt/inc/stifexecutor.h	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/qt/inc/stifexecutor.h	Thu Jul 15 18:39:46 2010 +0300
@@ -76,3 +76,5 @@
 
 
 #endif /* STIFEXECUTOR_H_ */
+
+// End of File
--- a/stifui/qt/inc/uisetting.h	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/qt/inc/uisetting.h	Thu Jul 15 18:39:46 2010 +0300
@@ -20,7 +20,8 @@
 
 const QString KShowOutput = "showoutput";
 const QString KStyleSheet = "StyleSheet";
-
+const QString KFilter = "filter";
+const QString KFilterCaseSens = "filtercasesens";
 
 class UiSetting
     {
@@ -43,3 +44,5 @@
     };
 
 #endif /* UISETTING_H_ */
+
+// End of File
--- a/stifui/qt/inc/uiversion.h	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/qt/inc/uiversion.h	Thu Jul 15 18:39:46 2010 +0300
@@ -24,3 +24,5 @@
 const QString QtUIName = "STFUI";
 
 #endif /* UIVERSION_H_ */
+
+// End of File
--- a/stifui/qt/inc/version.h	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/qt/inc/version.h	Thu Jul 15 18:39:46 2010 +0300
@@ -20,10 +20,12 @@
 
 #define STIF_MAJOR_VERSION 7
 #define STIF_MINOR_VERSION 3
-#define STIF_BUILD_VERSION 34
+#define STIF_BUILD_VERSION 35
 
-#define STIF_REL_DATE "1st June 2010"
+#define STIF_REL_DATE "15th June 2010"
 
 #define TO_UNICODE(text) _L(text) 
 
 #endif /*VERSION_H_*/
+
+// End of File
--- a/stifui/qt/rom/stfui.iby	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/qt/rom/stfui.iby	Thu Jul 15 18:39:46 2010 +0300
@@ -19,15 +19,15 @@
 #ifndef __STIF_UI_IBY__
 #define __STIF_UI_IBY__
 
-S60_APP_EXE(Stifqtui)
+S60_APP_EXE(Stfqtui)
 
 #ifdef S60_UPGRADABLE_APP_REG_RSC
-  S60_UPGRADABLE_APP_REG_RSC(Stifqtui)
+  S60_UPGRADABLE_APP_REG_RSC(Stfqtui)
 #else
-  S60_APP_AIF_RSC(Stifqtui)
+  S60_APP_AIF_RSC(Stfqtui)
 #endif
 
-S60_APP_RESOURCE(Stifqtui)
+S60_APP_RESOURCE(Stfqtui)
 
 #endif
 // End of File
\ No newline at end of file
--- a/stifui/qt/sis/stifqtui.pkg	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/qt/sis/stifqtui.pkg	Thu Jul 15 18:39:46 2010 +0300
@@ -22,6 +22,6 @@
 (0x2001E61C), 4, 5, 2, {"QtLibs pre-release"}
 
 ; Executable and default resource files
-"/S60/non_public/S60_5_0_200906/epoc32/release/armv5/urel/STFUI.exe"    - "!:\sys\bin\STFUI.exe"
-"/S60/non_public/S60_5_0_200906/epoc32/data/z/resource/apps/STFUI.rsc"    - "!:\resource\apps\STFUI.rsc"
-"/S60/non_public/S60_5_0_200906/epoc32/data/z/private/10003a3f/import/apps/STFUI_reg.rsc"    - "!:\private\10003a3f\import\apps\STFUI_reg.rsc"
+"/epoc32/release/armv5/urel/STFUI.exe"    - "!:\sys\bin\STFUI.exe"
+"/epoc32/data/z/resource/apps/STFUI.rsc"    - "!:\resource\apps\STFUI.rsc"
+"/epoc32/data/z/private/10003a3f/import/apps/STFUI_reg.rsc"    - "!:\private\10003a3f\import\apps\STFUI_reg.rsc"
--- a/stifui/qt/src/dlgoutput.cpp	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/qt/src/dlgoutput.cpp	Thu Jul 15 18:39:46 2010 +0300
@@ -69,8 +69,6 @@
 
 void DlgOutput::CloseItem(QString index)
     {
-    int u = tabList.keys().indexOf(index);
-    
     delete tabList.value(index);
     tabList.remove(index);
     if (tabMain->count() == 0)
@@ -141,3 +139,4 @@
 
     }
 
+// End of File
--- a/stifui/qt/src/dlgrepeatrun.cpp	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/qt/src/dlgrepeatrun.cpp	Thu Jul 15 18:39:46 2010 +0300
@@ -129,3 +129,5 @@
         lineEdit->setReadOnly(false);
         }
     }
+
+// End of File
--- a/stifui/qt/src/dlgsetselector.cpp	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/qt/src/dlgsetselector.cpp	Thu Jul 15 18:39:46 2010 +0300
@@ -112,3 +112,5 @@
     {
     this->reject();
     }
+
+// End of File
--- a/stifui/qt/src/dlgsetting.cpp	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/qt/src/dlgsetting.cpp	Thu Jul 15 18:39:46 2010 +0300
@@ -33,6 +33,16 @@
     chkShowoutput = new QCheckBox(this);
     chkShowoutput->setText(tr("Show output in execution."));
     chkShowoutput->setChecked(setting->ReadSetting(KShowOutput) == "true");
+    
+    lblFilter = new QLabel(this);
+    lblFilter->setText(tr("Filter for displayed titles."));
+    ledFilter = new QLineEdit(this);
+    ledFilter->setFrame(true);
+    ledFilter->setText(setting->ReadSetting(KFilter));
+    chkFilterCaseSens = new QCheckBox(this);
+    chkFilterCaseSens->setText(tr("Filter is case sensitive."));
+    chkFilterCaseSens->setChecked(setting->ReadSetting(KFilterCaseSens) == "true");
+    
     QWidget *toolWidget = new QWidget(this);
     QGridLayout *toolLayout = new QGridLayout(this);
     
@@ -51,7 +61,10 @@
     
     mainLayout->addWidget(nullWidget, 0, 0);
     mainLayout->addWidget(chkShowoutput, 1, 0);
-    mainLayout->addWidget(toolWidget, 3, 0);    
+    mainLayout->addWidget(lblFilter, 3, 0);
+    mainLayout->addWidget(ledFilter, 4, 0);
+    mainLayout->addWidget(chkFilterCaseSens, 5, 0);
+    mainLayout->addWidget(toolWidget, 7, 0); 
     
     }
 
@@ -65,6 +78,8 @@
         {
         setting->SetSetting(KShowOutput, "false");    
         }
+    setting->SetSetting(KFilter, ledFilter->text());
+    setting->SetSetting(KFilterCaseSens, (chkFilterCaseSens->checkState() == Qt::Checked) ? ("true") : ("false"));
     this->accept();
     }
 
@@ -72,3 +87,5 @@
     {
     this->reject();
     }
+
+// End of File
--- a/stifui/qt/src/frmmain.cpp	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/qt/src/frmmain.cpp	Thu Jul 15 18:39:46 2010 +0300
@@ -108,6 +108,51 @@
 void FrmMain::setSetting()
     {
     controller->SetShowOutput(uiSetting->ReadSetting(KShowOutput) == "true");    
+    // Apply filter changes
+    QString newFilter = uiSetting->ReadSetting(KFilter);
+    QString newFilterCaseSens = uiSetting->ReadSetting(KFilterCaseSens); 
+    if(currentFilter != newFilter || currentFilterCaseSens != newFilterCaseSens)
+        {
+        // Store new filter for further use
+        currentFilter = newFilter;
+        currentFilterCaseSens = newFilterCaseSens;
+        
+        // Create and setup regular expression for wildcard searching
+        QRegExp filter;
+        filter.setPattern((newFilter == "") ? ("*") : (tr("*") + newFilter + tr("*")));
+        filter.setCaseSensitivity((newFilterCaseSens == "true") ? (Qt::CaseSensitive) : (Qt::CaseInsensitive));
+        filter.setPatternSyntax(QRegExp::Wildcard);
+
+        // Go through top level entries (modules)
+        bool isAnythingHidden = false;
+        for(int i = 0; i < treeModuleList->topLevelItemCount(); i++)
+            {
+            QTreeWidgetItem* top = treeModuleList->topLevelItem(i);
+            // And through test cases for each module
+            for(int j = 0; j < top->childCount(); j++)
+                {                
+                QTreeWidgetItem *child = top->child(j);
+                // Remove first three chars to get valid test case title
+                QString title = (child->text(0)).mid(3);
+                // Check if title is matching to filter and show or hide it
+                if(filter.exactMatch(title))
+                    {
+                    child->setHidden(false);
+                    }
+                else
+                    {
+                    child->setHidden(true);
+                    child->setText(0, child->text(0).replace(0, 3, UNSELECTITEMHEADER));
+                    isAnythingHidden = true;
+                    }
+                }
+            }
+
+        if(isAnythingHidden)
+            treeModuleList->headerItem()->setText(0, tr("Module List (filtered)"));
+        else
+            treeModuleList->headerItem()->setText(0, tr("Module List"));
+        }
     }
 
 void FrmMain::OnGetMessage(const QString& aMessage)
@@ -801,11 +846,13 @@
     QTreeWidgetItem* item = treeModuleList->topLevelItem(index);
     while (item != 0)
         {
-        item->setText(0, item->text(0).replace(0,3, header));
+        if(!item->isHidden())
+            item->setText(0, item->text(0).replace(0,3, header));
         for (int i = 0; i < item->childCount(); i++)
             {
             QTreeWidgetItem* child = item->child(i);
-            child->setText(0,child->text(0).replace(0,3,header));
+            if(!child->isHidden())
+                child->setText(0,child->text(0).replace(0,3,header));
             }
         index++;
         item = treeModuleList->topLevelItem(index);
@@ -844,6 +891,8 @@
 void FrmMain::on_actSetting_triggered()
     {
     DlgSetting dlgSet(uiSetting);
+    currentFilter = uiSetting->ReadSetting(KFilter);
+    currentFilterCaseSens = uiSetting->ReadSetting(KFilterCaseSens);
     int result = dlgSet.exec();
     if(result == QDialog::Accepted)
         {
@@ -1108,4 +1157,4 @@
     controller->SetShowOutput(true);
     }
 
-
+// End of File
--- a/stifui/qt/src/main.cpp	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/qt/src/main.cpp	Thu Jul 15 18:39:46 2010 +0300
@@ -27,3 +27,4 @@
     return app.exec();
 }
 
+// End of File
--- a/stifui/qt/src/stfqtuicontroller.cpp	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/qt/src/stfqtuicontroller.cpp	Thu Jul 15 18:39:46 2010 +0300
@@ -407,3 +407,5 @@
             listener->OnSetListChanged();
             }
     }
+
+// End of File
--- a/stifui/qt/src/stfqtuimodel.cpp	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/qt/src/stfqtuimodel.cpp	Thu Jul 15 18:39:46 2010 +0300
@@ -91,6 +91,8 @@
         case EStatusCrashed:
             crashedCaseList.append(aCase);
             break;
+        default:
+            break;            
         }
     FireOnCaseStatisticChangedEvent();
     }
@@ -111,6 +113,8 @@
             return abortCaseList;
         case EStatusCrashed:
             return crashedCaseList;
+        default:
+            break;
         }
     QList<CSTFCase> list;
     return list;
@@ -159,3 +163,5 @@
     crashedCaseList.clear();
     FireOnCaseStatisticChangedEvent();
     }
+
+// End of File
--- a/stifui/qt/src/stifexecutor.cpp	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/qt/src/stifexecutor.cpp	Thu Jul 15 18:39:46 2010 +0300
@@ -404,3 +404,4 @@
 
     }
 
+// End of File
--- a/stifui/qt/src/uisetting.cpp	Mon Jun 21 15:41:16 2010 +0300
+++ b/stifui/qt/src/uisetting.cpp	Thu Jul 15 18:39:46 2010 +0300
@@ -65,6 +65,8 @@
     settingList.clear();
     settingList.insert(KShowOutput, getDefaultValue(KShowOutput));
     settingList.insert(KStyleSheet, getDefaultValue(KStyleSheet));
+    settingList.insert(KFilter, getDefaultValue(KFilter));
+    settingList.insert(KFilterCaseSens, getDefaultValue(KFilterCaseSens));
     //add mor default setting here.
     }
 
@@ -79,6 +81,14 @@
         {
         result = ":/qss/coffee.qss";
         }
+    else if(item == KFilter)
+        {
+        result = "";
+        }
+    else if(item == KFilterCaseSens)
+        {
+        result = "false";
+        }
     return result;
     }
 
@@ -102,6 +112,8 @@
                 {
                 item = line.left(index).trimmed();
                 value = line.right(line.length() - index  -1);
+                if(item == KFilter) //For filter do not care about stored value
+                    value = "";
                 settingList.insert(item, value);
                 }
             }
@@ -131,3 +143,4 @@
     return true;    
     }
 
+// End of File