diff -r ccd0fd43f247 -r 208a4ba3894c harvesterplugins/file/src/cfolderrenamedharvester.cpp --- a/harvesterplugins/file/src/cfolderrenamedharvester.cpp Mon Apr 19 14:40:05 2010 +0300 +++ b/harvesterplugins/file/src/cfolderrenamedharvester.cpp Mon May 03 12:32:15 2010 +0300 @@ -26,17 +26,23 @@ #include "cfileplugin.h" #include "cfolderrenamedharvester.h" +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "cfolderrenamedharvesterTraces.h" +#endif + // CONSTANTS _LIT( KFileMask, "*.*" ); const TInt KItemsPerRun = 1; + namespace { void AppendBackslash( TDes& aDirectory ) - { + { + const TInt lastChar = aDirectory.Length() - 1; const TChar KBackslashChar( '\\' ); - const TInt lastChar = aDirectory.Length() - 1; // If it is directory which not contain backslash. if ( KBackslashChar != aDirectory[lastChar] ) @@ -45,6 +51,21 @@ } } +void RemoveBackslash( TDes& aDirectory ) + { + const TInt lastChar = aDirectory.Length() - 1; + const TChar KBackslashChar( '\\' ); + + //If directory contains slash at the end + if ( KBackslashChar == aDirectory[lastChar] ) + { + TPtrC temppath( aDirectory.Left( lastChar ) ); + aDirectory.Zero(); + aDirectory.Append(temppath); + } + + } + } // namespace // ============================ MEMBER FUNCTIONS =============================== @@ -149,9 +170,11 @@ iFilePlugin( aFilePlugin ), iFs( aFs ) { + OstTraceFunctionEntry0( CFOLDERRENAMEDHARVESTER_CFOLDERRENAMEDHARVESTER_ENTRY ); CPIXLOGSTRING("ENTER CFolderRenamedHarvester::CFolderRenamedHarvester"); CActiveScheduler::Add( this ); CPIXLOGSTRING("END CFolderRenamedHarvester::CFolderRenamedHarvester"); + OstTraceFunctionExit0( CFOLDERRENAMEDHARVESTER_CFOLDERRENAMEDHARVESTER_EXIT ); } @@ -171,6 +194,7 @@ TBool CFolderRenamedHarvester::StartL( const TFileName& aOldDirectoryName, const TFileName& aNewDirectoryName ) { + OstTraceFunctionEntry0( CFOLDERRENAMEDHARVESTER_STARTL_ENTRY ); CPIXLOGSTRING("ENTER CFolderRenamedHarvester::Start"); // Append trailing backslash if required @@ -184,6 +208,7 @@ SetNextRequest( EFolderRenamedIdleState ); CPIXLOGSTRING("END CFolderRenamedHarvester::Start"); + OstTraceFunctionExit0( CFOLDERRENAMEDHARVESTER_STARTL_EXIT ); return ETrue; } @@ -193,6 +218,7 @@ // void CFolderRenamedHarvester::GetNextFolderL() { + OstTraceFunctionEntry0( CFOLDERRENAMEDHARVESTER_GETNEXTFOLDERL_ENTRY ); CPIXLOGSTRING("ENTER CFolderRenamedHarvester::GetNextFolderL"); delete iDir; @@ -203,13 +229,15 @@ if( iDir ) { + OstTrace0( TRACE_NORMAL, CFOLDERRENAMEDHARVESTER_GETNEXTFOLDERL, "CFolderRenamedHarvester::GetNextFolderL - IF EHarvesterGetFileId" ); CPIXLOGSTRING("CFolderRenamedHarvester::GetNextFolderL - IF EHarvesterGetFileId"); SetNextRequest( EFolderRenamedGetFileId ); } else { + OstTrace0( TRACE_NORMAL, DUP1_CFOLDERRENAMEDHARVESTER_GETNEXTFOLDERL, "CFolderRenamedHarvester::GetNextFolderL - IF EHarvesterIdle" ); CPIXLOGSTRING("CFolderRenamedHarvester::GetNextFolderL - IF EHarvesterIdle"); - + HandleFolderRenameL(); // finished folder rename, delete the folder from the array. CFolderRenamedItem *item = iRenamedFolders[0]; iRenamedFolders.Remove(0); @@ -218,6 +246,7 @@ SetNextRequest( EFolderRenamedIdleState ); } CPIXLOGSTRING("END CFolderRenamedHarvester::GetNextFolderL"); + OstTraceFunctionExit0( CFOLDERRENAMEDHARVESTER_GETNEXTFOLDERL_EXIT ); } // --------------------------------------------------------------------------- @@ -227,6 +256,7 @@ // void CFolderRenamedHarvester::GetFileIdL() { + OstTraceFunctionEntry0( CFOLDERRENAMEDHARVESTER_GETFILEIDL_ENTRY ); CPIXLOGSTRING("ENTER CFolderRenamedHarvester::GetFileId"); if( iCurrentIndex == 0 ) @@ -251,7 +281,7 @@ TEntry entry = (*iDir)[iCurrentIndex]; // Check if entry is a hidden or system file // if true -> continue until find something to index or have checked whole directory - if( !entry.IsHidden() && !entry.IsSystem() && !entry.IsDir() ) + if( !entry.IsHidden() && !entry.IsSystem() ) { TParse fileParser; fileParser.Set( iDirscan->FullPath(), &(*iDir)[iCurrentIndex].iName, NULL ); @@ -260,12 +290,22 @@ TPtrC leaf( fileNamePtr.Right( fileNamePtr.Length() - iNewFolderName.Length() ) ); TFileName oldFileName( iOldFolderName ); oldFileName.Append( leaf ); - - iFilePlugin.CreateFileIndexItemL( oldFileName, ECPixRemoveAction ); - iFilePlugin.CreateFileIndexItemL( fileParser.FullName(), ECPixAddAction ); + if(entry.IsDir()) + { + iFilePlugin.CreateFolderFileIndexItemL( oldFileName, ECPixRemoveAction ); + iFilePlugin.CreateFolderFileIndexItemL( fileParser.FullName(), ECPixAddAction ); + } + else + { + iFilePlugin.CreateContentIndexItemL( oldFileName, ECPixRemoveAction ); + iFilePlugin.CreateFolderFileIndexItemL( oldFileName, ECPixRemoveAction, false ); + + iFilePlugin.CreateContentIndexItemL( fileParser.FullName(), ECPixAddAction ); + iFilePlugin.CreateFolderFileIndexItemL( fileParser.FullName(), ECPixAddAction, false ); + } // TODO: If this is not TRAPPED, state machine breaks iStepNumber++; - } + } iCurrentIndex++; } @@ -286,6 +326,7 @@ SetNextRequest( EFolderRenamedStartHarvest ); } CPIXLOGSTRING("END CFolderRenamedHarvester::GetFileId"); + OstTraceFunctionExit0( CFOLDERRENAMEDHARVESTER_GETFILEIDL_EXIT ); } @@ -295,6 +336,7 @@ // void CFolderRenamedHarvester::DoCancel() { + OstTrace0( TRACE_NORMAL, CFOLDERRENAMEDHARVESTER_DOCANCEL, "CFolderRenamedHarvester::DoCancel" ); CPIXLOGSTRING("CFolderRenamedHarvester::DoCancel"); } @@ -304,6 +346,7 @@ // void CFolderRenamedHarvester::RunL() { + OstTraceFunctionEntry0( CFOLDERRENAMEDHARVESTER_RUNL_ENTRY ); CPIXLOGSTRING("ENTER CFolderRenamedHarvester::RunL"); // Simple Round-Robin scheduling. Deque(); @@ -315,6 +358,7 @@ { if ( iRenamedFolders.Count() == 0 ) { + OstTraceFunctionExit0( CFOLDERRENAMEDHARVESTER_RUNL_EXIT ); return; // Nothing to do. } @@ -342,6 +386,7 @@ break; } CPIXLOGSTRING("END CFolderRenamedHarvester::RunL"); + OstTraceFunctionExit0( DUP1_CFOLDERRENAMEDHARVESTER_RUNL_EXIT ); } // ----------------------------------------------------------------------------- @@ -350,6 +395,7 @@ // TInt CFolderRenamedHarvester::RunError(TInt aError) { + OstTrace1( TRACE_NORMAL, CFOLDERRENAMEDHARVESTER_RUNERROR, "CFolderRenamedHarvester::RunError;aError=%d", aError ); CPIXLOGSTRING2("CFolderRenamedHarvester::RunError - aError: %d", aError ); iRenamedFolders.ResetAndDestroy(); iHarvestState = EFolderRenamedIdleState; @@ -363,6 +409,7 @@ // void CFolderRenamedHarvester::SetNextRequest( TFileHarvesterState aState ) { + OstTrace0( TRACE_NORMAL, CFOLDERRENAMEDHARVESTER_SETNEXTREQUEST, "CFolderRenamedHarvester::SetNextRequest" ); CPIXLOGSTRING("CFolderRenamedHarvester::SetNextRequest"); if ( !IsActive() ) { @@ -373,5 +420,11 @@ } } - +void CFolderRenamedHarvester::HandleFolderRenameL() + { + RemoveBackslash(iOldFolderName); + iFilePlugin.CreateFolderFileIndexItemL( iOldFolderName, ECPixRemoveAction ); + RemoveBackslash(iNewFolderName); + iFilePlugin.CreateFolderFileIndexItemL( iNewFolderName, ECPixAddAction ); + } // End of File