# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1282114189 -10800 # Node ID 7d8c8d8f5eab00d13d3a2a229e08086dc2b5c391 # Parent 993ab30e92fc58f4b9c3ef82b68d0909083aa26a Revision: 201031 Kit: 201033 diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/applications/group/applicationsplugin.mmp --- a/harvesterplugins/applications/group/applicationsplugin.mmp Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/applications/group/applicationsplugin.mmp Wed Aug 18 09:49:49 2010 +0300 @@ -46,10 +46,13 @@ LIBRARY cpixsearchclient.lib LIBRARY apgrfx.lib //for RApaLsSession LIBRARY apparc.lib //for TApaAppInfo -LIBRARY widgetregistryclient.lib +//LIBRARY widgetregistryclient.lib LIBRARY centralrepository.lib //for CRepository // For logging LIBRARY flogger.lib +// For enabling Highlighter +//MACRO USE_HIGHLIGHTER + EXPORTUNFROZEN \ No newline at end of file diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/applications/inc/applicationsplugin.h --- a/harvesterplugins/applications/inc/applicationsplugin.h Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/applications/inc/applicationsplugin.h Wed Aug 18 09:49:49 2010 +0300 @@ -23,7 +23,7 @@ #include #include //RApaLsSession #include //Notification -#include +//#include #include "delayedcallback.h" class CCPixIndexer; @@ -72,7 +72,7 @@ * @return void * Leaves in case of error. */ - void AddWidgetInfoL( CSearchDocument* aDocument, TUid aUid ); + //void AddWidgetInfoL( CSearchDocument* aDocument, TUid aUid ); /* * @description Returns true if applicaiton with uid aUid hidden, false otherwise @@ -86,7 +86,7 @@ CCPixIndexer* iIndexer; // CPix database. Owned. RApaLsSession iApplicationServerSession; //to get application info. CApaAppListNotifier* iNotifier; //Owned. - RWidgetRegistryClientSession iWidgetRegistry; //to get widget info. + //RWidgetRegistryClientSession iWidgetRegistry; //to get widget info. CRepository* iHiddenApplicationsRepository; #ifdef __PERFORMANCE_DATA diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/applications/src/applicationsplugin.cpp --- a/harvesterplugins/applications/src/applicationsplugin.cpp Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/applications/src/applicationsplugin.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -23,7 +23,7 @@ #include #include //#include //for KCRUidMenu -#include // EBundleDisplayName +//#include // EBundleDisplayName #include #include #include "OstTraceDefinitions.h" @@ -81,7 +81,7 @@ if (iAsynchronizer) iAsynchronizer->CancelCallback(); iApplicationServerSession.Close(); - iWidgetRegistry.Close(); + //iWidgetRegistry.Close(); //delete iHiddenApplicationsRepository; delete iAsynchronizer; delete iNotifier; @@ -94,7 +94,7 @@ iAsynchronizer = CDelayedCallback::NewL( CActive::EPriorityIdle ); iNotifier = CApaAppListNotifier::NewL( this, CActive::EPriorityHigh ); //iHiddenApplicationsRepository = CRepository::NewL( KHiddenAppRepositoryUid ); - User::LeaveIfError( iWidgetRegistry.Connect() ); + //User::LeaveIfError( iWidgetRegistry.Connect() ); } // ----------------------------------------------------------------------------- @@ -124,7 +124,8 @@ iAsynchronizer->Start( 0, this, KHarvestingDelay ); } -// ----------------------------------------------------------------------------- +//Removing Widget Registry support +/* ----------------------------------------------------------------------------- void CApplicationsPlugin::AddWidgetInfoL( CSearchDocument* aDocument, TUid aUid ) { TBuf temp;//we can reuse this. @@ -145,7 +146,7 @@ OstTraceExt1( TRACE_NORMAL, DUP1_CAPPLICATIONSPLUGIN_ADDWIDGETINFOL, "CApplicationsPlugin::AddWidgetInfoL;DisplayName=%S", &temp ); CPIXLOGSTRING2("AddApplicationInfo(): DisplayName = %S ", &temp ); - } + }*/ // ----------------------------------------------------------------------------- //This need not be a member function. @@ -240,11 +241,19 @@ //That way, if a client is interested in the UID field, he can choose to query it explicitly. document->AddFieldL(KMimeTypeField, KMimeTypeApplication, CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized ); document->AddFieldL(KApplicationFieldUid, docidString, CDocumentField::EStoreYes | CDocumentField::EIndexTokenized | CDocumentField::EAggregateNo ); - - if( iWidgetRegistry.IsWidget( aAppInfo.iUid ) ) +#ifdef USE_HIGHLIGHTER + TInt excerptLength = docidString.Length(); + HBufC* excerpt = HBufC::NewL(excerptLength); + TPtr excerptPtr = excerpt->Des(); + CleanupStack::PushL(excerpt); + document->AddExcerptL(excerptPtr); + CleanupStack::PopAndDestroy(excerpt); +#endif + + /*if( iWidgetRegistry.IsWidget( aAppInfo.iUid ) ) //Widget support AddWidgetInfoL( document, aAppInfo.iUid ); - else - AddApplicationInfoL( document, aAppInfo ); + else*/ + AddApplicationInfoL( document, aAppInfo ); TRAPD( error, iIndexer->AddL( *document ) ); if( KErrNone == error ) diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/calendar/group/calendarplugin.mmp --- a/harvesterplugins/calendar/group/calendarplugin.mmp Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/calendar/group/calendarplugin.mmp Wed Aug 18 09:49:49 2010 +0300 @@ -47,6 +47,8 @@ LIBRARY cpixharvesterplugininterface.lib LIBRARY cpixsearchclient.lib +// For Enabling highlighter +//MACRO USE_HIGHLIGHTER // For logging LIBRARY flogger.lib diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/calendar/inc/ccalendarplugin.h --- a/harvesterplugins/calendar/inc/ccalendarplugin.h Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/calendar/inc/ccalendarplugin.h Wed Aug 18 09:49:49 2010 +0300 @@ -123,7 +123,12 @@ TBool iFirstEntry; // Start harvesting - TBool iStartHarvesting; + TBool iStartHarvesting; + + //for unit testing. + #ifdef HARVESTERPLUGINTESTER_FRIEND + friend class CHarvesterPluginTester; + #endif #ifdef __PERFORMANCE_DATA TTime iStartTime; diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/calendar/src/ccalendarplugin.cpp --- a/harvesterplugins/calendar/src/ccalendarplugin.cpp Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/calendar/src/ccalendarplugin.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -385,64 +385,72 @@ // Add fields index_item->AddFieldL(KCalendarSummaryField, entry->SummaryL()); index_item->AddFieldL(KCalendarDescriptionField, entry->DescriptionL()); - index_item->AddFieldL(KCalendarLocationField, entry->LocationL()); - - TUint priority = entry->PriorityL(); - - switch(priority) - { - case 1: - index_item->AddFieldL(KCalendarPriorityField, KCalendarPriorityHigh); - break; - case 2: - index_item->AddFieldL(KCalendarPriorityField, KCalendarPriorityMedium); - break; - case 3: - index_item->AddFieldL(KCalendarPriorityField, KCalendarPriorityLow); - break; - default: - index_item->AddFieldL(KCalendarPriorityField, KNullDesC); - break; - } + index_item->AddFieldL(KCalendarLocationField, entry->LocationL()); TBuf<30> dateString; - TDateTime datetime = entry->StartTimeL().TimeUtcL().DateTime(); + TDateTime datetime = entry->StartTimeL().TimeLocalL().DateTime(); dateString.Format( KCalendarTimeFormat, datetime.Year(), TInt(datetime.Month()+ 1), datetime.Day() + 1, - datetime.Hour()+ 1, + datetime.Hour(), datetime.Minute()); index_item->AddFieldL(KCalendarStartTimeField, dateString, CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized); - TDateTime endTime = entry->EndTimeL().TimeUtcL().DateTime(); + TDateTime endTime = entry->EndTimeL().TimeLocalL().DateTime(); dateString.Format( KCalendarTimeFormat, endTime.Year(), TInt(endTime.Month()+ 1), endTime.Day() + 1, - endTime.Hour()+ 1, + endTime.Hour(), endTime.Minute()); index_item->AddFieldL(KCalendarEndTimeField, dateString, CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized); - TTime completedTime = entry->CompletedTimeL().TimeUtcL(); - if( completedTime != Time::NullTTime() && CCalEntry::ETodo == entry->EntryTypeL()) + + if( CCalEntry::ETodo == entry->EntryTypeL()) { - TDateTime compTime = completedTime.DateTime(); - dateString.Format( KCalendarTimeFormat, compTime.Year(), - TInt(compTime.Month()+ 1), - compTime.Day() + 1, - compTime.Hour()+ 1, - compTime.Minute()); - index_item->AddFieldL(KCalenderCompletedField, dateString, CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized); + TUint priority = entry->PriorityL(); + switch(priority) + { + case 1: + index_item->AddFieldL(KCalendarPriorityField, KCalendarPriorityHigh); + break; + case 2: + index_item->AddFieldL(KCalendarPriorityField, KCalendarPriorityMedium); + break; + case 3: + index_item->AddFieldL(KCalendarPriorityField, KCalendarPriorityLow); + break; + default: + index_item->AddFieldL(KCalendarPriorityField, KNullDesC); + break; + } + TTime completedTime = entry->CompletedTimeL().TimeLocalL(); + if( completedTime != Time::NullTTime()) + { + TDateTime compTime = completedTime.DateTime(); + dateString.Format( KCalendarTimeFormat, compTime.Year(), + TInt(compTime.Month()+ 1), + compTime.Day() + 1, + compTime.Hour(), + compTime.Minute()); + index_item->AddFieldL(KCalenderCompletedField, dateString, CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized); + } } index_item->AddFieldL(KMimeTypeField, KMimeTypeCalendar, CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized); - +#ifdef USE_HIGHLIGHTER + TInt excerptLength = 1 /*single 1-character delimiters*/ + entry->DescriptionL().Length() + entry->LocationL().Length() + 1 + entry->SummaryL().Length(); +#else TInt excerptLength = 1 /*single 1-character delimiters*/ + entry->DescriptionL().Length() + entry->LocationL().Length(); +#endif HBufC* excerpt = HBufC::NewLC(excerptLength); TPtr excerptDes = excerpt->Des(); excerptDes.Append(entry->DescriptionL()); excerptDes.Append(KExcerptDelimiter); excerptDes.Append(entry->LocationL()); - - index_item->AddExcerptL(*excerpt); +#ifdef USE_HIGHLIGHTER + excerptDes.Append(KExcerptDelimiter); + excerptDes.Append(entry->SummaryL()); +#endif + index_item->AddExcerptL(*excerpt); CleanupStack::PopAndDestroy(excerpt); CleanupStack::PopAndDestroy(entry); @@ -461,46 +469,19 @@ if (aActionType == ECPixAddAction) { TRAPD(err, iIndexer->AddL(*index_item)); - if (err == KErrNone) - { - OstTrace0( TRACE_NORMAL, DUP2_CCALENDARPLUGIN_CREATEENTRYL, "CCalendarPlugin::CreateEntryL(): Added." ); - CPIXLOGSTRING("CCalendarPlugin::CreateEntryL(): Added."); - } - else - { - OstTrace1( TRACE_NORMAL, DUP3_CCALENDARPLUGIN_CREATEENTRYL, "CCalendarPlugin::CreateEntryL();Error %d in adding", err ); - CPIXLOGSTRING2("CCalendarPlugin::CreateEntryL(): Error %d in adding.", err); - } + OstTrace1( TRACE_NORMAL, DUP8_CCALENDARPLUGIN_CREATEENTRYL, "CCalendarPlugin::CreateEntryL: Indexer->AddL;err=%d", err ); } - else if (aActionType == ECPixUpdateAction) + else { TRAPD(err, iIndexer->UpdateL(*index_item)); - if (err == KErrNone) - { - OstTrace0( TRACE_NORMAL, DUP4_CCALENDARPLUGIN_CREATEENTRYL, "CCalendarPlugin::CreateEntryL(): Updated." ); - CPIXLOGSTRING("CCalendarPlugin::CreateEntryL(): Updated."); - } - else - { - OstTrace1( TRACE_NORMAL, DUP5_CCALENDARPLUGIN_CREATEENTRYL, "CCalendarPlugin::CreateEntryL();Error %d in updating", err ); - CPIXLOGSTRING2("CCalendarPlugin::CreateEntryL(): Error %d in updating.", err); - } + OstTrace1( TRACE_NORMAL, DUP9_CCALENDARPLUGIN_CREATEENTRYL, "CCalendarPlugin::CreateEntryL: iIndexer->UpdateL;err=%d", err ); } CleanupStack::PopAndDestroy(index_item); } else if (aActionType == ECPixRemoveAction) { TRAPD(err, iIndexer->DeleteL(docid_str)); - if (err == KErrNone) - { - OstTrace0( TRACE_NORMAL, DUP6_CCALENDARPLUGIN_CREATEENTRYL, "CCalendarPlugin::CreateEntryL(): Deleted." ); - CPIXLOGSTRING("CCalendarPlugin::CreateEntryL(): Deleted."); - } - else - { - OstTrace1( TRACE_NORMAL, DUP7_CCALENDARPLUGIN_CREATEENTRYL, "CCalendarPlugin::CreateEntryL();Error %d in deleting", err ); - CPIXLOGSTRING2("CCalendarPlugin::CreateEntryL(): Error %d in deleting.", err); - } + OstTrace1( TRACE_NORMAL, DUP2_CCALENDARPLUGIN_CREATEENTRYL, "CCalendarPlugin::CreateEntryL: iIndexer->RemoveL;err=%d", err ); } } diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/calendar/traces/ccalendarpluginTraces.h --- a/harvesterplugins/calendar/traces/ccalendarpluginTraces.h Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/calendar/traces/ccalendarpluginTraces.h Wed Aug 18 09:49:49 2010 +0300 @@ -1,4 +1,4 @@ -// Created by TraceCompiler 2.1.2 +// Created by TraceCompiler 2.2.3 // DO NOT EDIT, CHANGES WILL BE LOST #ifndef __CCALENDARPLUGINTRACES_H__ @@ -15,11 +15,8 @@ #define CCALENDARPLUGIN_CREATEENTRYL 0x860007 #define DUP1_CCALENDARPLUGIN_CREATEENTRYL 0x860008 #define DUP2_CCALENDARPLUGIN_CREATEENTRYL 0x860009 -#define DUP3_CCALENDARPLUGIN_CREATEENTRYL 0x86000a -#define DUP4_CCALENDARPLUGIN_CREATEENTRYL 0x86000b -#define DUP5_CCALENDARPLUGIN_CREATEENTRYL 0x86000c -#define DUP6_CCALENDARPLUGIN_CREATEENTRYL 0x86000d -#define DUP7_CCALENDARPLUGIN_CREATEENTRYL 0x86000e +#define DUP8_CCALENDARPLUGIN_CREATEENTRYL 0x86000f +#define DUP9_CCALENDARPLUGIN_CREATEENTRYL 0x860010 #endif diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/calendar/traces/fixed_id.definitions --- a/harvesterplugins/calendar/traces/fixed_id.definitions Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/calendar/traces/fixed_id.definitions Wed Aug 18 09:49:49 2010 +0300 @@ -8,9 +8,11 @@ [TRACE]TRACE_NORMAL[0x86]_DUP1_CCALENDARPLUGIN_HANDLECHANGEDENTRYL=0x4 [TRACE]TRACE_NORMAL[0x86]_DUP2_CCALENDARPLUGIN_CREATEENTRYL=0x9 [TRACE]TRACE_NORMAL[0x86]_DUP2_CCALENDARPLUGIN_HANDLECHANGEDENTRYL=0x5 -[TRACE]TRACE_NORMAL[0x86]_DUP3_CCALENDARPLUGIN_CREATEENTRYL=0xa [TRACE]TRACE_NORMAL[0x86]_DUP3_CCALENDARPLUGIN_HANDLECHANGEDENTRYL=0x6 -[TRACE]TRACE_NORMAL[0x86]_DUP4_CCALENDARPLUGIN_CREATEENTRYL=0xb -[TRACE]TRACE_NORMAL[0x86]_DUP5_CCALENDARPLUGIN_CREATEENTRYL=0xc -[TRACE]TRACE_NORMAL[0x86]_DUP6_CCALENDARPLUGIN_CREATEENTRYL=0xd -[TRACE]TRACE_NORMAL[0x86]_DUP7_CCALENDARPLUGIN_CREATEENTRYL=0xe +[TRACE]TRACE_NORMAL[0x86]_DUP8_CCALENDARPLUGIN_CREATEENTRYL=0xf +[TRACE]TRACE_NORMAL[0x86]_DUP9_CCALENDARPLUGIN_CREATEENTRYL=0x10 +[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP3_CCALENDARPLUGIN_CREATEENTRYL=0xa +[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP4_CCALENDARPLUGIN_CREATEENTRYL=0xb +[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP5_CCALENDARPLUGIN_CREATEENTRYL=0xc +[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP6_CCALENDARPLUGIN_CREATEENTRYL=0xd +[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP7_CCALENDARPLUGIN_CREATEENTRYL=0xe diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/contacts/group/contactsplugin.mmp --- a/harvesterplugins/contacts/group/contactsplugin.mmp Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/contacts/group/contactsplugin.mmp Wed Aug 18 09:49:49 2010 +0300 @@ -46,6 +46,8 @@ LIBRARY cpixharvesterplugininterface.lib LIBRARY cpixsearchclient.lib +// For Enabling Highlighter +//MACRO USE_HIGHLIGHTER // For logging LIBRARY flogger.lib diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/contacts/src/ccontactsplugin.cpp --- a/harvesterplugins/contacts/src/ccontactsplugin.cpp Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/contacts/src/ccontactsplugin.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -310,16 +310,38 @@ if (! (findpos < 0) || (findpos >= aFieldSet.Count() ) ) { CContactItemField& additionalField = aFieldSet[ findpos ]; - CContactTextField* fieldText = additionalField.TextStorage(); - if ( fieldText && fieldText->Text() != KNullDesC ) - { - TInt currentSize = iExcerpt->Size(); - TInt newSize = currentSize + fieldText->Text().Size() + 1; - iExcerpt = iExcerpt->ReAllocL(newSize); - TPtr ptr = iExcerpt->Des(); - ptr.Append(fieldText->Text()); - ptr.Append(KExcerptDelimiter); - } + TInt newfieldsize = 0; + if( additionalField.StorageType() == KStorageTypeDateTime) + { + CContactDateField* fieldDate = additionalField.DateTimeStorage(); + if (fieldDate) + { + TBuf<30> dateString; + fieldDate->Time().FormatL(dateString, KTimeFormat); + TInt currentSize = iExcerpt->Size(); + TInt newSize = currentSize + dateString.Size()+ 1; + iExcerpt = iExcerpt->ReAllocL(newSize); + TPtr ptr = iExcerpt->Des(); + ptr.Append(dateString); + ptr.Append(KExcerptDelimiter); + } + + } + else + { + CContactTextField* fieldText = additionalField.TextStorage(); + if (fieldText && fieldText->Text() != KNullDesC ) + { + TInt currentSize = iExcerpt->Size(); + TInt newSize = currentSize + fieldText->Text().Size() + 1; + iExcerpt = iExcerpt->ReAllocL(newSize); + TPtr ptr = iExcerpt->Des(); + ptr.Append(fieldText->Text()); + ptr.Append(KExcerptDelimiter); + } + } + + } } @@ -383,10 +405,15 @@ /* The order of fields in excerpt is as below. The order in this case * is the order of fields shown when you 'Edit' the contact. */ +#ifdef USE_HIGHLIGHTER + AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldGivenName, KContactsGivenNameField, CDocumentField::EStoreYes | CDocumentField::EIndexTokenized | CDocumentField::EIndexFreeText ); + AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldFamilyName, KContactsFamilyNameField, CDocumentField::EStoreYes | CDocumentField::EIndexTokenized | CDocumentField:: EIndexFreeText ); +#else AddFieldL( *index_item, fieldSet, KUidContactFieldGivenName, KContactsGivenNameField, CDocumentField::EStoreYes | CDocumentField::EIndexTokenized | CDocumentField::EIndexFreeText ); - AddFieldL( *index_item, fieldSet, KUidContactFieldFamilyName, KContactsFamilyNameField, CDocumentField::EStoreYes | CDocumentField::EIndexTokenized | CDocumentField:: EIndexFreeText ); + AddFieldL( *index_item, fieldSet, KUidContactFieldFamilyName, KContactsFamilyNameField, CDocumentField::EStoreYes | CDocumentField::EIndexTokenized | CDocumentField:: EIndexFreeText ); +#endif AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldPhoneNumber, KContactsPhoneNumberField ); - AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldEMail, KContactsEMailField ); + AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldEMail, KContactsEMailField, CDocumentField::EStoreYes | CDocumentField::EIndexTokenized | CDocumentField::EIndexFreeText ); AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldSIPID, KContactsSIPIDField ); AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldCompanyName, KContactsCompanyNameField, CDocumentField::EStoreYes | CDocumentField::EIndexTokenized | CDocumentField::EIndexFreeText ); AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldJobTitle, KContactsJobTitleField, CDocumentField::EStoreYes | CDocumentField::EIndexTokenized | CDocumentField::EIndexFreeText ); @@ -419,9 +446,13 @@ AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldIMAddress, KContactIMAddress); AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldServiceProvider, KContactServiceProvider); - +#ifdef USE_HIGHLIGHTER + AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldBirthday, KContactBirthday); + AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldAnniversary, KContactAnniversary); +#else AddFieldL( *index_item, fieldSet, KUidContactFieldBirthday, KContactBirthday); - AddFieldL( *index_item, fieldSet, KUidContactFieldAnniversary, KContactAnniversary); + AddFieldL( *index_item, fieldSet, KUidContactFieldAnniversary, KContactAnniversary); +#endif index_item->AddExcerptL(*iExcerpt); } diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/file/inc/cfileplugin.h --- a/harvesterplugins/file/inc/cfileplugin.h Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/file/inc/cfileplugin.h Wed Aug 18 09:49:49 2010 +0300 @@ -79,6 +79,12 @@ * @aExt file extention */ TBool IsFileTypeMedia(const TDesC& aExt); + + /** + * RemoveFileDatabaseL deletes the database file from the requested drive + * @aDrive drive number + */ + void RemoveFileDatabaseL(TDriveNumber aDrive); public: // diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/file/src/cfileplugin.cpp --- a/harvesterplugins/file/src/cfileplugin.cpp Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/file/src/cfileplugin.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -41,8 +41,9 @@ namespace { _LIT(KCPixSearchServerPrivateDirectory, "\\Private\\2001f6f7\\"); +_LIT(KIndexingDBPath,"indexing\\indexdb"); _LIT(KPathIndexDbPath, CPIX_INDEVICE_INDEXDB); - +_LIT(KfileDBPath, "\\root\\file"); _LIT(KPathFolder, "\\root\\file\\folder"); _LIT(KPathFileContent, "\\root\\file\\content"); _LIT(KFileBaseAppClassContent, "root file content"); @@ -51,6 +52,7 @@ _LIT(KFilePluginColon, ":"); _LIT(KNameField, "Name"); _LIT(KExtensionField, "Extension"); +_LIT(KIsFolderField, "IsFolder"); _LIT(KMimeTypeFile, FILE_MIMETYPE); _LIT(KMimeTypeFolder , FOLDER_MIMETYPE); _LIT(KMimeTypeField , CPIX_MIMETYPE_FIELD); @@ -273,7 +275,12 @@ // Check if already exists if (iIndexer[aMedia] && iFolderIndexer[aMedia]) return; - + //remove the database incase of memory card insertion before harvesting + if (aForceReharvest) + { + RemoveFileDatabaseL(aMedia); + } + // Add Notifications paths prior to opening IndexDB. AddNotificationPathsL(aMedia); @@ -649,8 +656,10 @@ { index_item->AddFieldL(KExtensionField, KNullDesC); index_item->AddFieldL(KMimeTypeField, KMimeTypeFolder, CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized); - } - + } + TBuf<2> Isfolder; + Isfolder.AppendNum(aIsDir); + index_item->AddFieldL(KIsFolderField, Isfolder, CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized); //Only content to be added to exceprt field. See appclass-hierarchy.txt //Add excerpt field //index_item->AddExcerptL(aFilePath); @@ -659,6 +668,28 @@ return index_item; } +void CFilePlugin::RemoveFileDatabaseL(TDriveNumber aDrive) + { + RFs aFs; + User::LeaveIfError( aFs.Connect() ); + TChar drive; + TInt err = aFs.DriveToChar((TDriveNumber)aDrive,drive); + if ( err == KErrNone ) + { + TBuf folderpath; + folderpath.Append(drive); + folderpath.Append(KFilePluginColon); + folderpath.Append(KCPixSearchServerPrivateDirectory); + folderpath.Append(KIndexingDBPath); + folderpath.Append(KfileDBPath); + CFileMan* FileMan = CFileMan::NewL(aFs); + if ( FileMan ) + FileMan->Delete( folderpath ); + delete FileMan; + } + aFs.Close(); + } + #ifdef __PERFORMANCE_DATA void CFilePlugin::UpdatePerformaceDataL(TDriveNumber aDriveNumber) { diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/file/src/cmmcmonitor.cpp --- a/harvesterplugins/file/src/cmmcmonitor.cpp Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/file/src/cmmcmonitor.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -133,7 +133,34 @@ { OstTraceFunctionEntry0( CMMCMONITOR_STARTMONITORING_ENTRY ); CPIXLOGSTRING("ENTER CMMCMonitor::StartMonitoring"); - TRAP_IGNORE( RunL() ); // Need to TRAP this rather than use RunError + iProperty.Subscribe( iStatus ); + SetActive(); + User::LeaveIfError( iProperty.Get( KPSUidUikon, KUikMMCInserted, iMmcStatus ) ); + + for ( TInt driveNumber = EDriveA; driveNumber <= EDriveZ; driveNumber++ ) + { + const TBool foundMmc = MmcStatus( driveNumber ); + if ( !foundMmc ) + { + continue; + } + + // This drive has been recognized as MMC. + TDriveNumber drv = TDriveNumber( driveNumber ); + + TUint drvStatus( 0 ); + + const TInt err = DriveInfo::GetDriveStatus( *iFsSession, driveNumber, drvStatus ); + if ( err ) + { + continue; // should not happen + } + + if ( drvStatus & DriveInfo::EDrivePresent ) + { + iFilePlugin.MountL(drv, EFalse); + } + } CPIXLOGSTRING("END CMMCMonitor::StartMonitoring"); OstTraceFunctionExit0( CMMCMONITOR_STARTMONITORING_EXIT ); return ETrue; @@ -242,7 +269,7 @@ OstTrace0( TRACE_NORMAL, DUP2_CMMCMONITOR_RUNL, "CMMCMonitor::RunL insert event" ); CPIXLOGSTRING("CMMCMonitor::RunL insert event"); // Mount MMC and force reharvest - iFilePlugin.MountL(drv, EFalse); //dont force reharvest + iFilePlugin.MountL(drv, ETrue); } else { diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/media/audio/group/audioplugin.mmp --- a/harvesterplugins/media/audio/group/audioplugin.mmp Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/media/audio/group/audioplugin.mmp Wed Aug 18 09:49:49 2010 +0300 @@ -56,6 +56,10 @@ LIBRARY bafl.lib // For logging LIBRARY flogger.lib + +// For enabling Highlighter +//MACRO USE_HIGHLIGHTER + //Enable this macro to get harvester performance data //MACRO __PERFORMANCE_DATA EXPORTUNFROZEN diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/media/audio/inc/mediaplugin.h --- a/harvesterplugins/media/audio/inc/mediaplugin.h Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/media/audio/inc/mediaplugin.h Wed Aug 18 09:49:49 2010 +0300 @@ -123,6 +123,11 @@ CCPIXMDEDbManager* iDBManager; CMDSEntity* iMdsItem; +//for helping with testing. +#ifdef HARVESTERPLUGINTESTER_FRIEND + friend class CHarvesterPluginTester; +#endif + #ifdef __PERFORMANCE_DATA TTime iStartTime; TTime iCompleteTime; diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/media/audio/src/cpixmediaaudiodoc.cpp --- a/harvesterplugins/media/audio/src/cpixmediaaudiodoc.cpp Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/media/audio/src/cpixmediaaudiodoc.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -112,6 +112,12 @@ CDocumentField::EStoreYes | CDocumentField::EIndexTokenized | CDocumentField::EIndexFreeText); AddToFieldExcerptL(textProperty->Value());//Add artist to excerpt } +#ifdef USE_HIGHLIGHTER + //Get the media file extension and store + TBuf extension; + GetExtension(aObject.Uri(),extension); + AddToFieldExcerptL(extension); +#endif CMdEPropertyDef& albumPropDef = aObjectDef.GetPropertyDefL(MdeConstants::Audio::KAlbumProperty ); if(aObject.Property( albumPropDef, property )!= KErrNotFound) { @@ -221,18 +227,15 @@ CMdEPropertyDef& sizePropDef = aObjectDef.GetPropertyDefL(MdeConstants::Object::KSizeProperty); if(aObject.Property( sizePropDef, property )!= KErrNotFound) { - //Add field to document - if( property->Def().PropertyType() == EPropertyUint32 ) - { - CMdEUint32Property& sizeProperty = static_cast < CMdEUint32Property& > (*property ); - TBuf<32> buf; - buf.Format(_L("%u"), sizeProperty.Value()); - AddFiledtoDocumentL(*index_item, - MdeConstants::Object::KSizeProperty, - buf, - CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized); - AddToFieldExcerptL(buf); - } + //Add field to document + CMdEUint32Property& sizeProperty = static_cast < CMdEUint32Property& > (*property ); + TBuf<32> buf; + buf.Format(_L("%u"), sizeProperty.Value()); + AddFiledtoDocumentL(*index_item, + MdeConstants::Object::KSizeProperty, + buf, + CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized); + AddToFieldExcerptL(buf); } //Get legal property @@ -251,94 +254,83 @@ if(aObject.Property( trackPropDef, property ) != KErrNotFound) { //Add field to document - if( property->Def().PropertyType() == EPropertyUint16 ) - { - CMdEUint16Property& trackProperty = static_cast < CMdEUint16Property& > (*property ); - TBuf<32> buf; - buf.Format(_L("%d"), trackProperty.Value()); - AddFiledtoDocumentL(*index_item, - MdeConstants::MediaObject::KTrackProperty, - buf); - } + CMdEUint16Property& trackProperty = static_cast < CMdEUint16Property& > (*property ); + TBuf<32> buf; + buf.Format(_L("%d"), trackProperty.Value()); + AddFiledtoDocumentL(*index_item, + MdeConstants::MediaObject::KTrackProperty, + buf); + } // Capturedate property CMdEPropertyDef& captureDatePropDef = aObjectDef.GetPropertyDefL(MdeConstants::MediaObject::KCaptureDateProperty); if(aObject.Property( captureDatePropDef, property ) != KErrNotFound) { - //Add field to document - if(EPropertyTime == property->Def().PropertyType()) - { - CMdETimeProperty& timeProperty = static_cast < CMdETimeProperty& > (*property); - TDateTime time = timeProperty.Value().DateTime(); - TBuf<32> buf; - buf.Format( KFormatDateTime, time.Year(), - time.Month() + 1, - time.Day() + 1, - time.Hour(), - time.Minute()); - - AddFiledtoDocumentL(*index_item, - MdeConstants::MediaObject::KCaptureDateProperty, - buf, - CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized); - - //Format for excerpt field - buf.Format( KExcerptFormat, time.Year(), - time.Month() + 1, - time.Day() + 1, - time.Hour(), - time.Minute()); - AddToFieldExcerptL(buf); - } + //Add field to document + CMdETimeProperty& timeProperty = static_cast < CMdETimeProperty& > (*property); + TDateTime time = timeProperty.Value().DateTime(); + TBuf<32> buf; + buf.Format( KFormatDateTime, time.Year(), + time.Month() + 1, + time.Day() + 1, + time.Hour(), + time.Minute()); + + AddFiledtoDocumentL(*index_item, + MdeConstants::MediaObject::KCaptureDateProperty, + buf, + CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized); + + //Format for excerpt field + buf.Format( KExcerptFormat, time.Year(), + time.Month() + 1, + time.Day() + 1, + time.Hour(), + time.Minute()); + AddToFieldExcerptL(buf); } //Get LastModifiedDate property CMdEPropertyDef& dateTimePropDef = aObjectDef.GetPropertyDefL(MdeConstants::Object::KLastModifiedDateProperty); if(aObject.Property( dateTimePropDef, property ) != KErrNotFound) { - //Add field to document - if(EPropertyTime == property->Def().PropertyType()) - { - CMdETimeProperty& timeProperty = static_cast < CMdETimeProperty& > (*property); - TDateTime time = timeProperty.Value().DateTime(); - TBuf<32> buf; - buf.Format( KFormatDateTime, time.Year(), - time.Month() + 1, - time.Day() + 1, - time.Hour(), - time.Minute()); - - AddFiledtoDocumentL(*index_item, - MdeConstants::Object::KLastModifiedDateProperty, - buf, - CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized); - //Format for excerpt field - buf.Format( KExcerptFormat, time.Year(), - time.Month() + 1, - time.Day() + 1, - time.Hour(), + //Add field to document + CMdETimeProperty& timeProperty = static_cast < CMdETimeProperty& > (*property); + TDateTime time = timeProperty.Value().DateTime(); + TBuf<32> buf; + buf.Format( KFormatDateTime, time.Year(), + time.Month() + 1, + time.Day() + 1, + time.Hour(), time.Minute()); - AddToFieldExcerptL(buf); - } + + AddFiledtoDocumentL(*index_item, + MdeConstants::Object::KLastModifiedDateProperty, + buf, + CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized); + //Format for excerpt field + buf.Format( KExcerptFormat, time.Year(), + time.Month() + 1, + time.Day() + 1, + time.Hour(), + time.Minute()); + AddToFieldExcerptL(buf); } //Get duration property CMdEPropertyDef& durationPropDef = aObjectDef.GetPropertyDefL(MdeConstants::MediaObject::KDurationProperty ); if(aObject.Property( durationPropDef, property ) != KErrNotFound) { - //Add field to document - if( property->Def().PropertyType() == EPropertyReal32 ) - { - CMdEReal32Property& durationProperty = static_cast < CMdEReal32Property& > (*property ); - TBuf<32> buf; - buf.Format(_L("%f"), durationProperty.Value()); - AddFiledtoDocumentL(*index_item, - MdeConstants::MediaObject::KDurationProperty, - buf ); - } + //Add field to document + CMdEReal32Property& durationProperty = static_cast < CMdEReal32Property& > (*property ); + TBuf<32> buf; + buf.Format(_L("%f"), durationProperty.Value()); + AddFiledtoDocumentL(*index_item, + MdeConstants::MediaObject::KDurationProperty, + buf ); + } - if( iExcerpt ) - { - index_item->AddExcerptL(*iExcerpt); - } + + index_item->AddExcerptL(*iExcerpt); + CPIXLOGSTRING("END CCPIXMediaAudioDoc::GetCpixDocumentL"); OstTraceFunctionExit0( CCPIXMEDIAAUDIODOC_GETCPIXDOCUMENTL_EXIT ); return index_item; diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/media/audio/src/mediaplugin.cpp --- a/harvesterplugins/media/audio/src/mediaplugin.cpp Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/media/audio/src/mediaplugin.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -88,6 +88,7 @@ delete iObjectJobQueueManager; delete iMdsUtils; delete iAudioDocument; + iIndexerUtil->UnMountAllDrivesL(_L(MEDIAGENERICAPPCLASS)); delete iIndexerUtil; delete iMMcMonitor; delete iDBManager; @@ -235,7 +236,7 @@ CPIXLOGSTRING2("CAudioPlugin::HandleMdeItemL(): Error %d in adding.", err); } } - else if (aActionType == ECPixUpdateAction) + else { //If DocID for e.g \music\something.mp3 itself changes the we have to compare //existing URI with new one and Remove that first and Update to avoid diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/media/image/group/imageplugin.mmp --- a/harvesterplugins/media/image/group/imageplugin.mmp Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/media/image/group/imageplugin.mmp Wed Aug 18 09:49:49 2010 +0300 @@ -56,6 +56,10 @@ // For logging LIBRARY flogger.lib + +// For enabling Highlighter +//MACRO USE_HIGHLIGHTER + //Enable this macro to get harvester performance data //MACRO __PERFORMANCE_DATA EXPORTUNFROZEN diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/media/image/inc/imageplugin.h --- a/harvesterplugins/media/image/inc/imageplugin.h Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/media/image/inc/imageplugin.h Wed Aug 18 09:49:49 2010 +0300 @@ -122,6 +122,12 @@ CMMCMonitorUtil* iMMcMonitor;//MMC monitor owned CCPIXMDEDbManager* iDBManager; CMDSEntity* iMdsItem; + +//for helping with testing. +#ifdef HARVESTERPLUGINTESTER_FRIEND + friend class CHarvesterPluginTester; +#endif + #ifdef __PERFORMANCE_DATA TTime iStartTime; TTime iCompleteTime; diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/media/image/src/cpixmediaimagedoc.cpp --- a/harvesterplugins/media/image/src/cpixmediaimagedoc.cpp Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/media/image/src/cpixmediaimagedoc.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -107,6 +107,12 @@ AddToFieldExcerptL(textProperty->Value()); } +#ifdef USE_HIGHLIGHTER + //Get the media file extension and store + TBuf extension; + GetExtension(aObject.Uri(),extension); + AddToFieldExcerptL(extension); +#endif //Get user comment field CMdEPropertyDef& commentPropDef = aObjectDef.GetPropertyDefL(MdeConstants::MediaObject::KCommentProperty ); if(aObject.Property( commentPropDef, property )!= KErrNotFound) @@ -170,75 +176,66 @@ CMdEPropertyDef& sizePropDef = aObjectDef.GetPropertyDefL(MdeConstants::Object::KSizeProperty); if(aObject.Property( sizePropDef, property )!= KErrNotFound) { - //Add field to document - if( property->Def().PropertyType() == EPropertyUint32 ) - { - CMdEUint32Property& sizeProperty = static_cast < CMdEUint32Property& > (*property ); - TBuf<32> buf; - buf.Format(_L("%u"), sizeProperty.Value()); - AddFiledtoDocumentL(*index_item, - MdeConstants::Object::KSizeProperty, - buf, - CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized); - AddToFieldExcerptL(buf); - } + //Add field to document + CMdEUint32Property& sizeProperty = static_cast < CMdEUint32Property& > (*property ); + TBuf<32> buf; + buf.Format(_L("%u"), sizeProperty.Value()); + AddFiledtoDocumentL(*index_item, + MdeConstants::Object::KSizeProperty, + buf, + CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized); + AddToFieldExcerptL(buf); } //Get DateTimeOrginal property CMdEPropertyDef& dateTimeOrgPropDef = aObjectDef.GetPropertyDefL(MdeConstants::Image::KDateTimeOriginalProperty); if(aObject.Property( dateTimeOrgPropDef, property ) != KErrNotFound) { - //Add field to document - if(EPropertyTime == property->Def().PropertyType()) - { - CMdETimeProperty& timeProperty = static_cast < CMdETimeProperty& > (*property); - TDateTime time = timeProperty.Value().DateTime(); - TBuf<32> buf; - buf.Format( KFormatDateTime, time.Year(), - time.Month() + 1, - time.Day() + 1, - time.Hour(), - time.Minute()); - AddFiledtoDocumentL(*index_item, - MdeConstants::Image::KDateTimeOriginalProperty, - buf, - CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized); - //Format for excerpt field - buf.Format( KExcerptFormat, time.Year(), - time.Month() + 1, - time.Day() + 1, - time.Hour(), + //Add field to document + CMdETimeProperty& timeProperty = static_cast < CMdETimeProperty& > (*property); + TDateTime time = timeProperty.Value().DateTime(); + TBuf<32> buf; + buf.Format( KFormatDateTime, time.Year(), + time.Month() + 1, + time.Day() + 1, + time.Hour(), time.Minute()); - AddToFieldExcerptL(buf); - } + AddFiledtoDocumentL(*index_item, + MdeConstants::Image::KDateTimeOriginalProperty, + buf, + CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized); + //Format for excerpt field + buf.Format( KExcerptFormat, time.Year(), + time.Month() + 1, + time.Day() + 1, + time.Hour(), + time.Minute()); + } //Get LastModifiedDate property CMdEPropertyDef& dateTimePropDef = aObjectDef.GetPropertyDefL(MdeConstants::Object::KLastModifiedDateProperty); if(aObject.Property( dateTimePropDef, property ) != KErrNotFound) { //Add field to document - if(EPropertyTime == property->Def().PropertyType()) - { - CMdETimeProperty& timeProperty = static_cast < CMdETimeProperty& > (*property); - TDateTime time = timeProperty.Value().DateTime(); - TBuf<32> buf; - buf.Format( KFormatDateTime, time.Year(), - time.Month() + 1, - time.Day() + 1, - time.Hour(), - time.Minute()); - - AddFiledtoDocumentL(*index_item, - MdeConstants::Object::KLastModifiedDateProperty, - buf, - CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized); - //Format for excerpt field - buf.Format( KExcerptFormat, time.Year(), - time.Month() + 1, - time.Day() + 1, - time.Hour(), + CMdETimeProperty& timeProperty = static_cast < CMdETimeProperty& > (*property); + TDateTime time = timeProperty.Value().DateTime(); + TBuf<32> buf; + buf.Format( KFormatDateTime, time.Year(), + time.Month() + 1, + time.Day() + 1, + time.Hour(), time.Minute()); - AddToFieldExcerptL(buf); - } + + AddFiledtoDocumentL(*index_item, + MdeConstants::Object::KLastModifiedDateProperty, + buf, + CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized); + //Format for excerpt field + buf.Format( KExcerptFormat, time.Year(), + time.Month() + 1, + time.Day() + 1, + time.Hour(), + time.Minute()); + AddToFieldExcerptL(buf); } if( iExcerpt ) { diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/media/image/src/imageplugin.cpp --- a/harvesterplugins/media/image/src/imageplugin.cpp Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/media/image/src/imageplugin.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -86,6 +86,7 @@ delete iObjectJobQueueManager; delete iMdsUtils; delete iImageDocument; + iIndexerUtil->UnMountAllDrivesL(_L(MEDIAGENERICAPPCLASS)); delete iIndexerUtil; delete iMMcMonitor; delete iDBManager; @@ -231,7 +232,7 @@ CPIXLOGSTRING2("CImagePlugin::HandleMdeItemL(): Error %d in adding.", err); } } - else if (aActionType == ECPixUpdateAction) + else { //If DocID for e.g \image\something.jpeg itself changes the we have to compare //existing URI with new one and Remove that first and Update to avoid diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/media/mediautils/inc/cpixdocfetcher.h --- a/harvesterplugins/media/mediautils/inc/cpixdocfetcher.h Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/media/mediautils/inc/cpixdocfetcher.h Wed Aug 18 09:49:49 2010 +0300 @@ -29,6 +29,21 @@ class CMdEObject; class CMdEObjectDef; +#define CPIX_MIMETYPE_FIELD L"_mimetype" +#define LCPIX_MIMETYPE_FIELD L"_mimetype" +const TInt KInitialExcerptLength = 5; +const TInt KStartPosition = 2; //Start position of absolute path +const TInt KDrivePosition = 0; //Drive position in object Uri +const TInt KMaxMediaLength = 14; +const TInt KMaxExtLength = 5; +//To unsigned decimal representation as UIds are out of range for signed decimal +_LIT(KFormat, "%u"); +_LIT(KNameField, "Name"); +_LIT(KMediaIdField, "MediaId"); +_LIT(KExtensionField, "Extension"); +_LIT(KExcerptDelimiter, " "); + + class CCPIXDocFetcher : public CBase { public: diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/media/mediautils/inc/cpixindexerutils.h --- a/harvesterplugins/media/mediautils/inc/cpixindexerutils.h Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/media/mediautils/inc/cpixindexerutils.h Wed Aug 18 09:49:49 2010 +0300 @@ -144,11 +144,24 @@ * @param TDriveNumber aMedia drive */ void RemoveUnmountedDrive(TDriveNumber aMedia); + + /* + * Remove unmounted drive database + * @param TDriveNumber aMedia drive + * @param TDesC& aPath path of database + */ + void RemoveUnmountedDatabaseL(TDriveNumber aMedia, const TDesC& aPath); + private: RArray iMountedDrives; //Array of mounted drives CCPixIndexer *iIndexer[EDriveZ + 1];//Array of all Indexers RFs iFs; //File session RSearchServerSession iSearchSession; //Search session + + //for helping with testing. + #ifdef HARVESTERPLUGINTESTER_FRIEND + friend class CHarvesterPluginTester; + #endif }; #endif /* CPIXINDERUTILS_H_ */ diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/media/mediautils/src/cpixdocfetcher.cpp --- a/harvesterplugins/media/mediautils/src/cpixdocfetcher.cpp Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/media/mediautils/src/cpixdocfetcher.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -25,19 +25,6 @@ #include #include "harvesterserverlogger.h" -#define CPIX_MIMETYPE_FIELD L"_mimetype" -#define LCPIX_MIMETYPE_FIELD L"_mimetype" -const TInt KInitialExcerptLength = 5; -const TInt KStartPosition = 2; //Start position of absolute path -const TInt KDrivePosition = 0; //Drive position in object Uri -const TInt KMaxMediaLength = 14; -const TInt KMaxExtLength = 5; -//To unsigned decimal representation as UIds are out of range for signed decimal -_LIT(KFormat, "%u"); -_LIT(KNameField, "Name"); -_LIT(KMediaIdField, "MediaId"); -_LIT(KExtensionField, "Extension"); -_LIT(KExcerptDelimiter, " "); // ----------------------------------------------------------------------------- // CCPIXDocFetcher::NewL() diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/media/mediautils/src/cpixindexerutils.cpp --- a/harvesterplugins/media/mediautils/src/cpixindexerutils.cpp Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/media/mediautils/src/cpixindexerutils.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -28,6 +28,7 @@ // local declarations and functions namespace { _LIT(KCPixSearchServerPrivateDirectory, "\\Private\\2001f6f7\\"); +_LIT(KIndexingDBPath,"indexing\\indexdb"); _LIT(KPathIndexDbPath, CPIX_INDEVICE_INDEXDB); _LIT(KAtSign, "@"); @@ -276,6 +277,8 @@ } if(IsDriveCanbeMountedL(aMedia)) { + //clean the existing database if any + RemoveUnmountedDatabaseL(aMedia,aPath); // Form the baseappclass for this media TBuf baseAppClass; FormBaseAppClass(TDriveNumber(aMedia), aBaseAppClassGeneric,baseAppClass); @@ -467,4 +470,30 @@ return iMountedDrives; } +// ----------------------------------------------------------------------------- +// CCPixIndexerUtils::RemoveUnmountedDatabase() +// ----------------------------------------------------------------------------- +// +void CCPixIndexerUtils::RemoveUnmountedDatabaseL(TDriveNumber aMedia, const TDesC& aPath) + { + RFs aFs; + User::LeaveIfError( aFs.Connect() ); + TChar drive; + TInt err = aFs.DriveToChar((TDriveNumber)aMedia,drive); + if ( err == KErrNone ) + { + TBuf folderpath; + folderpath.Append(drive); + folderpath.Append(KColon); + folderpath.Append(KCPixSearchServerPrivateDirectory); + folderpath.Append(KIndexingDBPath); + folderpath.Append(aPath); + CFileMan* FileMan = CFileMan::NewL(aFs); + if ( FileMan ) + FileMan->Delete( folderpath ); + delete FileMan; + } + aFs.Close(); + } + //End of file diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/media/video/group/videoplugin.mmp --- a/harvesterplugins/media/video/group/videoplugin.mmp Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/media/video/group/videoplugin.mmp Wed Aug 18 09:49:49 2010 +0300 @@ -56,6 +56,10 @@ // For logging LIBRARY flogger.lib + +// For enabling Highlighter +//MACRO USE_HIGHLIGHTER + //Enable this macro to get harvester performance data //MACRO __PERFORMANCE_DATA EXPORTUNFROZEN diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/media/video/inc/videoplugin.h --- a/harvesterplugins/media/video/inc/videoplugin.h Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/media/video/inc/videoplugin.h Wed Aug 18 09:49:49 2010 +0300 @@ -107,6 +107,11 @@ CCPIXMDEDbManager* iDBManager; CMDSEntity* iMdsItem; +//for helping with testing. +#ifdef HARVESTERPLUGINTESTER_FRIEND + friend class CHarvesterPluginTester; +#endif + #ifdef __PERFORMANCE_DATA TTime iStartTime; TTime iCompleteTime; diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/media/video/src/cpixmediavideodoc.cpp --- a/harvesterplugins/media/video/src/cpixmediavideodoc.cpp Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/media/video/src/cpixmediavideodoc.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -106,18 +106,15 @@ CMdETextProperty* textProperty = ( CMdETextProperty* ) property; if( textProperty->Value().Compare(KNullDesC) > 0 )AddToFieldExcerptL(name); //Add name to excerpt field } +#ifdef USE_HIGHLIGHTER + //Get the media file extension and store + TBuf extension; + GetExtension(aObject.Uri(),extension); + AddToFieldExcerptL(extension); +#endif //URI and Excerpt is done add additional properties here - CMdEPropertyDef& descriptionPropDef = aObjectDef.GetPropertyDefL(MdeConstants::MediaObject::KDescriptionProperty ); - if(aObject.Property( descriptionPropDef, property ) != KErrNotFound) - { - //Add field to document - CMdETextProperty* textProperty = static_cast< CMdETextProperty* > (property ); - AddFiledtoDocumentL(*index_item, - MdeConstants::MediaObject::KDescriptionProperty, - textProperty->Value()); - AddToFieldExcerptL(textProperty->Value()); - } + CMdEPropertyDef& artistPropDef = aObjectDef.GetPropertyDefL(MdeConstants::MediaObject::KArtistProperty ); if(aObject.Property( artistPropDef, property )!= KErrNotFound) { @@ -189,34 +186,29 @@ CMdEPropertyDef& sizePropDef = aObjectDef.GetPropertyDefL(MdeConstants::Object::KSizeProperty); if(aObject.Property( sizePropDef, property )!= KErrNotFound) { - //Add field to document - if( property->Def().PropertyType() == EPropertyUint32 ) - { - CMdEUint32Property& sizeProperty = static_cast < CMdEUint32Property& > (*property ); - TBuf<32> buf; - buf.Format(_L("%u"), sizeProperty.Value()); - AddFiledtoDocumentL(*index_item, - MdeConstants::Object::KSizeProperty, - buf, - CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized); - AddToFieldExcerptL(buf); - } + //Add field to document + CMdEUint32Property& sizeProperty = static_cast < CMdEUint32Property& > (*property ); + TBuf<32> buf; + buf.Format(_L("%u"), sizeProperty.Value()); + AddFiledtoDocumentL(*index_item, + MdeConstants::Object::KSizeProperty, + buf, + CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized); + AddToFieldExcerptL(buf); } //Get resolution property CMdEPropertyDef& resolutionPropDef = aObjectDef.GetPropertyDefL(MdeConstants::MediaObject::KResolutionUnitProperty ); if(aObject.Property( resolutionPropDef, property ) != KErrNotFound) { - //Add field to document - if( property->Def().PropertyType() == EPropertyUint16 ) - { - CMdEUint16Property& resolutionProperty = static_cast < CMdEUint16Property& > (*property ); - TBuf<32> buf; - buf.Format(_L("%d"), resolutionProperty.Value()); - AddFiledtoDocumentL(*index_item, - MdeConstants::MediaObject::KResolutionUnitProperty, - buf, - CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized); - } + //Add field to document + CMdEUint16Property& resolutionProperty = static_cast < CMdEUint16Property& > (*property ); + TBuf<32> buf; + buf.Format(_L("%d"), resolutionProperty.Value()); + AddFiledtoDocumentL(*index_item, + MdeConstants::MediaObject::KResolutionUnitProperty, + buf, + CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized); + } //Get legal property CMdEPropertyDef& legalPropDef = aObjectDef.GetPropertyDefL(MdeConstants::MediaObject::KLegalProperty ); @@ -226,96 +218,86 @@ CMdETextProperty* textProperty = static_cast< CMdETextProperty* > (property ); AddFiledtoDocumentL(*index_item, MdeConstants::MediaObject::KLegalProperty, - textProperty->Value()); + textProperty->Value()); + AddToFieldExcerptL(textProperty->Value()); } //Get track property CMdEPropertyDef& trackPropDef = aObjectDef.GetPropertyDefL(MdeConstants::MediaObject::KTrackProperty ); if(aObject.Property( trackPropDef, property ) != KErrNotFound) { //Add field to document - if( property->Def().PropertyType() == EPropertyUint16 ) - { - CMdEUint16Property& trackProperty = static_cast < CMdEUint16Property& > (*property ); - TBuf<32> buf; - buf.Format(_L("%d"), trackProperty.Value()); - AddFiledtoDocumentL(*index_item, - MdeConstants::MediaObject::KTrackProperty, - buf); - } + CMdEUint16Property& trackProperty = static_cast < CMdEUint16Property& > (*property ); + TBuf<32> buf; + buf.Format(_L("%d"), trackProperty.Value()); + AddFiledtoDocumentL(*index_item, + MdeConstants::MediaObject::KTrackProperty, + buf); + } // Capturedate property CMdEPropertyDef& captureDatePropDef = aObjectDef.GetPropertyDefL(MdeConstants::MediaObject::KCaptureDateProperty); if(aObject.Property( captureDatePropDef, property ) != KErrNotFound) { //Add field to document - if(EPropertyTime == property->Def().PropertyType()) - { - CMdETimeProperty& timeProperty = static_cast < CMdETimeProperty& > (*property); - TDateTime time = timeProperty.Value().DateTime(); - TBuf<32> buf; - buf.Format( KFormatDateTime, time.Year(), - time.Month() + 1, - time.Day() + 1, - time.Hour(), - time.Minute()); - - AddFiledtoDocumentL(*index_item, - MdeConstants::MediaObject::KCaptureDateProperty, - buf, - CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized); - //Format for excerpt field - buf.Format( KExcerptFormat, time.Year(), - time.Month() + 1, - time.Day() + 1, - time.Hour(), - time.Minute()); - AddToFieldExcerptL(buf); - } + CMdETimeProperty& timeProperty = static_cast < CMdETimeProperty& > (*property); + TDateTime time = timeProperty.Value().DateTime(); + TBuf<32> buf; + buf.Format( KFormatDateTime, time.Year(), + time.Month() + 1, + time.Day() + 1, + time.Hour(), + time.Minute()); + + AddFiledtoDocumentL(*index_item, + MdeConstants::MediaObject::KCaptureDateProperty, + buf, + CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized); + //Format for excerpt field + buf.Format( KExcerptFormat, time.Year(), + time.Month() + 1, + time.Day() + 1, + time.Hour(), + time.Minute()); + AddToFieldExcerptL(buf); } //Get LastModifiedDate property CMdEPropertyDef& dateTimePropDef = aObjectDef.GetPropertyDefL(MdeConstants::Object::KLastModifiedDateProperty); if(aObject.Property( dateTimePropDef, property ) != KErrNotFound) { - //Add field to document - if(EPropertyTime == property->Def().PropertyType()) - { - CMdETimeProperty& timeProperty = static_cast < CMdETimeProperty& > (*property); - TDateTime time = timeProperty.Value().DateTime(); - TBuf<32> buf; - buf.Format( KFormatDateTime, time.Year(), - time.Month() + 1, - time.Day() + 1, - time.Hour(), - time.Minute()); - - AddFiledtoDocumentL(*index_item, - MdeConstants::Object::KLastModifiedDateProperty, - buf, - CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized); - //Format for excerpt field - buf.Format( KExcerptFormat, time.Year(), - time.Month() + 1, - time.Day() + 1, - time.Hour(), + //Add field to document + CMdETimeProperty& timeProperty = static_cast < CMdETimeProperty& > (*property); + TDateTime time = timeProperty.Value().DateTime(); + TBuf<32> buf; + buf.Format( KFormatDateTime, time.Year(), + time.Month() + 1, + time.Day() + 1, + time.Hour(), time.Minute()); - AddToFieldExcerptL(buf); - } + + AddFiledtoDocumentL(*index_item, + MdeConstants::Object::KLastModifiedDateProperty, + buf, + CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized); + //Format for excerpt field + buf.Format( KExcerptFormat, time.Year(), + time.Month() + 1, + time.Day() + 1, + time.Hour(), + time.Minute()); + AddToFieldExcerptL(buf); } //Get duration property CMdEPropertyDef& durationPropDef = aObjectDef.GetPropertyDefL(MdeConstants::MediaObject::KDurationProperty ); if(aObject.Property( durationPropDef, property ) != KErrNotFound) { //Add field to document - if( property->Def().PropertyType() == EPropertyReal32 ) - { - CMdEReal32Property& durationProperty = static_cast < CMdEReal32Property& > (*property ); - TBuf<32> buf; - buf.Format(_L("%f"), durationProperty.Value()); - AddFiledtoDocumentL(*index_item, - MdeConstants::MediaObject::KDurationProperty, - buf, - CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized); - } + CMdEReal32Property& durationProperty = static_cast < CMdEReal32Property& > (*property ); + TBuf<32> buf; + buf.Format(_L("%f"), durationProperty.Value()); + AddFiledtoDocumentL(*index_item, + MdeConstants::MediaObject::KDurationProperty, + buf, + CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized); } if( iExcerpt ) { diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/media/video/src/videoplugin.cpp --- a/harvesterplugins/media/video/src/videoplugin.cpp Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/media/video/src/videoplugin.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -73,6 +73,7 @@ delete iObjectJobQueueManager; delete iMdsUtils; delete iVideoDocument; + iIndexerUtil->UnMountAllDrivesL(_L(MEDIAGENERICAPPCLASS)); delete iIndexerUtil; delete iMMcMonitor; delete iDBManager; @@ -211,7 +212,7 @@ CPIXLOGSTRING2("CVideoPlugin::HandleMdeItemL(): Error %d in adding.", err); } } - else if (aActionType == ECPixUpdateAction) + else { //If DocID for e.g \video\something.3gpp itself changes the we have to compare //existing URI with new one and Remove that first and Update to avoid diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/messaging/email/inc/cemailplugin.h --- a/harvesterplugins/messaging/email/inc/cemailplugin.h Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/messaging/email/inc/cemailplugin.h Wed Aug 18 09:49:49 2010 +0300 @@ -105,6 +105,10 @@ RFs iFs; //Email fecther from Qt Module QEmailFetcher* iQEmailFetcher; + //for unit testing. + #ifdef HARVESTERPLUGINTESTER_FRIEND + friend class CHarvesterPluginTester; + #endif #ifdef __PERFORMANCE_DATA TTime iStartTime; TTime iCompleteTime; diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/messaging/smsmms/group/messageplugin.mmp --- a/harvesterplugins/messaging/smsmms/group/messageplugin.mmp Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/messaging/smsmms/group/messageplugin.mmp Wed Aug 18 09:49:49 2010 +0300 @@ -53,6 +53,9 @@ LIBRARY imcm.lib // CImHeader, CImEmailMessage LIBRARY etext.lib // CParaFormatLayer etc +// For Enabling Highlighter +//MACRO USE_HIGHLIGHTER + // For logging LIBRARY flogger.lib diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/messaging/smsmms/src/cmessagedatahandler.cpp --- a/harvesterplugins/messaging/smsmms/src/cmessagedatahandler.cpp Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/messaging/smsmms/src/cmessagedatahandler.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -493,8 +493,12 @@ _LIT(KEllipsis, "..."); _LIT(KSpace, " "); - TInt excerptLength = KMsgBodyExcerptSymbols + KEllipsis().Length(); - + // +#ifdef USE_HIGHLIGHTER + TInt excerptLength = aBodyText.Length() + KEllipsis().Length(); +#else + TInt excerptLength = KMsgBodyExcerptSymbols + KEllipsis().Length(); +#endif //Not removing commented out code as this may come back into use in near future. // TMsvEntry entry; // TMsvId service = 0; @@ -541,11 +545,13 @@ // excerptPtr.Append(aSubject); // excerptPtr.Append(KSpace); // } - - excerptPtr.Append(aBodyText.Left(KMsgBodyExcerptSymbols)); +#ifdef USE_HIGHLIGHTER + excerptPtr.Append(aBodyText); +#else + excerptPtr.Append(aBodyText.Left(KMsgBodyExcerptSymbols)); if (aBodyText.Length() > KMsgBodyExcerptSymbols) excerptPtr.Append(KEllipsis); - +#endif // CleanupStack::PopAndDestroy(folder_str); CleanupStack::PushL(excerpt); return excerpt; diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/notes/group/notesplugin.mmp --- a/harvesterplugins/notes/group/notesplugin.mmp Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/notes/group/notesplugin.mmp Wed Aug 18 09:49:49 2010 +0300 @@ -48,6 +48,8 @@ LIBRARY cpixsearchclient.lib LIBRARY centralrepository.lib +// For Enabling Highlighter +//MACRO USE_HIGHLIGHTER // For logging LIBRARY flogger.lib diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/notes/inc/notesplugin.h --- a/harvesterplugins/notes/inc/notesplugin.h Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/notes/inc/notesplugin.h Wed Aug 18 09:49:49 2010 +0300 @@ -126,6 +126,12 @@ //Notes count TInt iNoteCount; + //for unit testing. + #ifdef HARVESTERPLUGINTESTER_FRIEND + friend class CHarvesterPluginTester; + #endif + + #ifdef __PERFORMANCE_DATA TTime iStartTime; TTime iCompleteTime; diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/notes/src/notesplugin.cpp --- a/harvesterplugins/notes/src/notesplugin.cpp Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/notes/src/notesplugin.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -55,6 +55,7 @@ //Reference from CPix calender harvester plugin. _LIT(KNotesTimeFormat,"%04d %02d %02d %02d %02d"); +_LIT(KExcerptDelimiter, " "); // --------------------------------------------------------------------------- // CNotesPlugin::NewL // --------------------------------------------------------------------------- @@ -346,11 +347,11 @@ index_item->AddFieldL(KNpdMemo, entry->DescriptionL()); // Add Date fields TBuf<30> dateString; - TDateTime datetime = entry->EndTimeL().TimeUtcL().DateTime(); + TDateTime datetime = entry->EndTimeL().TimeLocalL().DateTime(); dateString.Format( KNotesTimeFormat, datetime.Year(), TInt(datetime.Month()+ 1), datetime.Day() + 1, - datetime.Hour()+ 1, + datetime.Hour(), datetime.Minute()); index_item->AddFieldL(KNpdUpdateTime, dateString, CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized); @@ -359,12 +360,16 @@ //For notes, no content is expected in excerpt for now. //See appclass-hierarchy.txt for details. -// TInt excerptLength = entry->DescriptionL().Length(); -// HBufC* excerpt = HBufC::NewLC(excerptLength); -// TPtr excerptDes = excerpt->Des(); -// excerptDes.Append(entry->DescriptionL()); -// index_item->AddExcerptL(*excerpt); -// CleanupStack::PopAndDestroy(excerpt); +#ifdef USE_HIGHLIGHTER + TInt excerptLength = entry->DescriptionL().Length() + 1 + dateString.Length(); + HBufC* excerpt = HBufC::NewLC(excerptLength); + TPtr excerptDes = excerpt->Des(); + excerptDes.Append(entry->DescriptionL()); + excerptDes.Append(KExcerptDelimiter); + excerptDes.Append(dateString); + index_item->AddExcerptL(*excerpt); + CleanupStack::PopAndDestroy(excerpt); +#endif // Send for indexing if (aActionType == ECPixAddAction) @@ -373,34 +378,16 @@ TRAP_IGNORE( iIndexer->AddL(*index_item) ); #else TRAPD( err, iIndexer->AddL(*index_item) ); - if ( err == KErrNone ) - { - OstTrace0( TRACE_NORMAL, DUP3_CNOTESPLUGIN_CREATENOTEENTRYL, "CNotesPlugin::CreateNoteEntryL(): Added." ); - CPIXLOGSTRING("CNotesPlugin::CreateNoteEntryL(): Added."); - } - else - { - OstTrace1( TRACE_NORMAL, DUP4_CNOTESPLUGIN_CREATENOTEENTRYL, "CNotesPlugin::CreateNoteEntryL;Error while adding=%d", err ); - CPIXLOGSTRING2("CNotesPlugin::CreateNoteEntryL(): Error %d in adding.", err); - } + OstTrace1( TRACE_NORMAL, DUP9_CNOTESPLUGIN_CREATENOTEENTRYL, "CNotesPlugin::CreateNoteEntryL : iIndexer->AddL;err=%d", err ); #endif } - else if ( aActionType == ECPixUpdateAction ) + else { #ifndef _DEBUG TRAP_IGNORE( iIndexer->UpdateL(*index_item) ); #else TRAPD( err, iIndexer->UpdateL(*index_item) ); - if ( err == KErrNone ) - { - OstTrace0( TRACE_NORMAL, DUP5_CNOTESPLUGIN_CREATENOTEENTRYL, "CNotesPlugin::CreateNoteEntryL(): Updated." ); - CPIXLOGSTRING("CNotesPlugin::CreateNoteEntryL(): Updated."); - } - else - { - OstTrace1( TRACE_NORMAL, DUP6_CNOTESPLUGIN_CREATENOTEENTRYL, "CNotesPlugin::CreateNoteEntryL;Error while updating=%d", err ); - CPIXLOGSTRING2("CNotesPlugin::CreateNoteEntryL(): Error %d in updating.", err); - } + OstTrace1( TRACE_NORMAL, DUP10_CNOTESPLUGIN_CREATENOTEENTRYL, "CNotesPlugin::CreateNoteEntryL: iIndexer->UpdateL;err=%d", err ); #endif } CleanupStack::PopAndDestroy(index_item); @@ -412,16 +399,7 @@ TRAP_IGNORE( iIndexer->DeleteL(docid_str) ); #else TRAPD( err, iIndexer->DeleteL(docid_str) ); - if (err == KErrNone) - { - OstTrace0( TRACE_NORMAL, DUP7_CNOTESPLUGIN_CREATENOTEENTRYL, "CNotesPlugin::CreateNoteEntryL(): Deleted." ); - CPIXLOGSTRING("CNotesPlugin::CreateNoteEntryL(): Deleted."); - } - else - { - OstTrace1( TRACE_NORMAL, DUP8_CNOTESPLUGIN_CREATENOTEENTRYL, "CNotesPlugin::CreateNoteEntryL;Error while deleting=%d", err ); - CPIXLOGSTRING2("CNotesPlugin::CreateNoteEntryL(): Error %d in deleting.", err); - } + OstTrace1( TRACE_NORMAL, DUP3_CNOTESPLUGIN_CREATENOTEENTRYL, "CNotesPlugin::CreateNoteEntryL: iIndexer->RemoveL;err=%d", err ); #endif } } diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/notes/traces/fixed_id.definitions --- a/harvesterplugins/notes/traces/fixed_id.definitions Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/notes/traces/fixed_id.definitions Wed Aug 18 09:49:49 2010 +0300 @@ -16,6 +16,7 @@ [TRACE]TRACE_NORMAL[0x86]_CNOTESPLUGIN_DELAYEDCALLBACKL=0x2 [TRACE]TRACE_NORMAL[0x86]_CNOTESPLUGIN_HANDLENOTECHANGEDENTRYL=0x5 [TRACE]TRACE_NORMAL[0x86]_CNOTESPLUGIN_STARTHARVESTINGL=0x1 +[TRACE]TRACE_NORMAL[0x86]_DUP10_CNOTESPLUGIN_CREATENOTEENTRYL=0x13 [TRACE]TRACE_NORMAL[0x86]_DUP1_CNOTESPLUGIN_CREATENOTEENTRYL=0xa [TRACE]TRACE_NORMAL[0x86]_DUP1_CNOTESPLUGIN_DELAYEDCALLBACKL=0x3 [TRACE]TRACE_NORMAL[0x86]_DUP1_CNOTESPLUGIN_HANDLENOTECHANGEDENTRYL=0x6 @@ -23,8 +24,9 @@ [TRACE]TRACE_NORMAL[0x86]_DUP2_CNOTESPLUGIN_HANDLENOTECHANGEDENTRYL=0x7 [TRACE]TRACE_NORMAL[0x86]_DUP3_CNOTESPLUGIN_CREATENOTEENTRYL=0xc [TRACE]TRACE_NORMAL[0x86]_DUP3_CNOTESPLUGIN_HANDLENOTECHANGEDENTRYL=0x8 -[TRACE]TRACE_NORMAL[0x86]_DUP4_CNOTESPLUGIN_CREATENOTEENTRYL=0xd -[TRACE]TRACE_NORMAL[0x86]_DUP5_CNOTESPLUGIN_CREATENOTEENTRYL=0xe -[TRACE]TRACE_NORMAL[0x86]_DUP6_CNOTESPLUGIN_CREATENOTEENTRYL=0xf -[TRACE]TRACE_NORMAL[0x86]_DUP7_CNOTESPLUGIN_CREATENOTEENTRYL=0x10 -[TRACE]TRACE_NORMAL[0x86]_DUP8_CNOTESPLUGIN_CREATENOTEENTRYL=0x11 +[TRACE]TRACE_NORMAL[0x86]_DUP9_CNOTESPLUGIN_CREATENOTEENTRYL=0x12 +[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP4_CNOTESPLUGIN_CREATENOTEENTRYL=0xd +[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP5_CNOTESPLUGIN_CREATENOTEENTRYL=0xe +[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP6_CNOTESPLUGIN_CREATENOTEENTRYL=0xf +[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP7_CNOTESPLUGIN_CREATENOTEENTRYL=0x10 +[[OBSOLETE]][TRACE]TRACE_NORMAL[0x86]_DUP8_CNOTESPLUGIN_CREATENOTEENTRYL=0x11 diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/notes/traces/notespluginTraces.h --- a/harvesterplugins/notes/traces/notespluginTraces.h Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/notes/traces/notespluginTraces.h Wed Aug 18 09:49:49 2010 +0300 @@ -1,4 +1,4 @@ -// Created by TraceCompiler 2.1.2 +// Created by TraceCompiler 2.2.3 // DO NOT EDIT, CHANGES WILL BE LOST #ifndef __NOTESPLUGINTRACES_H__ @@ -28,11 +28,8 @@ #define DUP1_CNOTESPLUGIN_CREATENOTEENTRYL 0x86000a #define DUP2_CNOTESPLUGIN_CREATENOTEENTRYL 0x86000b #define DUP3_CNOTESPLUGIN_CREATENOTEENTRYL 0x86000c -#define DUP4_CNOTESPLUGIN_CREATENOTEENTRYL 0x86000d -#define DUP5_CNOTESPLUGIN_CREATENOTEENTRYL 0x86000e -#define DUP6_CNOTESPLUGIN_CREATENOTEENTRYL 0x86000f -#define DUP7_CNOTESPLUGIN_CREATENOTEENTRYL 0x860010 -#define DUP8_CNOTESPLUGIN_CREATENOTEENTRYL 0x860011 +#define DUP9_CNOTESPLUGIN_CREATENOTEENTRYL 0x860012 +#define DUP10_CNOTESPLUGIN_CREATENOTEENTRYL 0x860013 #endif diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/tsrc/harvesterplugintester/Bwins/harvesterplugintesteru.def --- a/harvesterplugins/tsrc/harvesterplugintester/Bwins/harvesterplugintesteru.def Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/tsrc/harvesterplugintester/Bwins/harvesterplugintesteru.def Wed Aug 18 09:49:49 2010 +0300 @@ -1,3 +1,4 @@ EXPORTS ?LibEntryL@@YAPAVCScriptBase@@AAVCTestModuleIf@@@Z @ 1 NONAME ; class CScriptBase * __cdecl LibEntryL(class CTestModuleIf &) + ?getloc@ios_base@std@@QBE?AVlocale@2@XZ @ 2 NONAME ; class std::locale std::ios_base::getloc(void) const diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/tsrc/harvesterplugintester/conf/eagle_landed.mp3 Binary file harvesterplugins/tsrc/harvesterplugintester/conf/eagle_landed.mp3 has changed diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/tsrc/harvesterplugintester/conf/harvesterplugintester.cfg --- a/harvesterplugins/tsrc/harvesterplugintester/conf/harvesterplugintester.cfg Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/tsrc/harvesterplugintester/conf/harvesterplugintester.cfg Wed Aug 18 09:49:49 2010 +0300 @@ -284,6 +284,41 @@ [Endtest] [Test] +title TestNotesEntryNegative +create HarvesterPluginTester foobar +foobar TestNotesEntryNegative +delete foobar +[Endtest] + +[Test] +title TestNotesDestructor +create HarvesterPluginTester foobar +foobar TestNotesDestructor +delete foobar +[Endtest] + +[Test] +title TestNotesDelayedError +create HarvesterPluginTester foobar +foobar TestNotesDelayedError +delete foobar +[Endtest] + +[Test] +title TestNotesChangeEntry +create HarvesterPluginTester foobar +foobar TestNotesChangeEntry +delete foobar +[Endtest] + +[Test] +title TestNotesEntryNoIndexer +create HarvesterPluginTester foobar +foobar TestNotesEntryNoIndexer +delete foobar +[Endtest] + +[Test] title TestContactsHarvesting create HarvesterPluginTester foobar foobar TestContactsHarvesting @@ -389,6 +424,27 @@ [Endtest] [Test] +title Testcalenderdestructor +create HarvesterPluginTester foobar +foobar Testcalenderdestructor +delete foobar +[Endtest] + +[Test] +title TestCalChangeEntry +create HarvesterPluginTester foobar +foobar TestCalChangeEntry +delete foobar +[Endtest] + +[Test] +title TestCalCreateEntry +create HarvesterPluginTester foobar +foobar TestCalCreateEntry +delete foobar +[Endtest] + +[Test] title TestCreateEmail create HarvesterPluginTester foobar foobar TestCreateEmail @@ -403,20 +459,6 @@ [Endtest] [Test] -title TestAudioHarvestingUpdateIndex -create HarvesterPluginTester foobar -foobar TestAudioHarvestingUpdateIndex c:\data\eagle_landed.mp3 eagle_landed.mp3 testaudio.mp3 -delete foobar -[Endtest] - -[Test] -title TestAudioHarvestingDeleteIndex -create HarvesterPluginTester foobar -foobar TestAudioHarvestingDeleteIndex c:\data\eagle_landed.mp3 eagle_landed.mp3 -delete foobar -[Endtest] - -[Test] title TestMdsSyncController create HarvesterPluginTester foobar foobar TestMdsSyncController @@ -424,44 +466,24 @@ [Endtest] [Test] -title TestVideoHarvestingIndex -create HarvesterPluginTester foobar -foobar TestVideoHarvestingIndex c:\data\Niagara.wmv Niagara.wmv -delete foobar -[Endtest] - -[Test] -title TestVideoHarvestingUpdateIndex -create HarvesterPluginTester foobar -foobar TestVideoHarvestingUpdateIndex c:\data\Niagara.wmv Niagara.wmv Falls.wmv +title TestAudioHandleItem +create HarvesterPluginTester foobar +foobar TestAudioHandleItem 3 0 +foobar TestAudioHandleItem 4 0 +foobar TestAudioHandleItem 5 0 +foobar TestAudioHandleItem 3 1 +foobar TestAudioHandleItem 4 1 +foobar TestAudioHandleItem 5 1 +foobar TestAudioHandleItem 3 2 +foobar TestAudioHandleItem 4 2 +foobar TestAudioHandleItem 5 2 delete foobar [Endtest] [Test] -title TestVideoHarvestingDeleteIndex -create HarvesterPluginTester foobar -foobar TestVideoHarvestingDeleteIndex c:\data\Niagara.wmv Niagara.wmv -delete foobar -[Endtest] - -[Test] -title TestImageHarvestingAddIndex -create HarvesterPluginTester foobar -foobar TestImageHarvestingAddIndex c:\data\square.jpg square.jpg -delete foobar -[Endtest] - -[Test] -title TestImageHarvestingUpdateIndex -create HarvesterPluginTester foobar -foobar TestImageHarvestingUpdateIndex c:\data\square.jpg square.jpg portrait.jpg -delete foobar -[Endtest] - -[Test] -title TestImageHarvestingDeleteIndex -create HarvesterPluginTester foobar -foobar TestImageHarvestingDeleteIndex c:\data\square.jpg square.jpg +title TestAudioSyncDbManager +create HarvesterPluginTester foobar +foobar TestAudioSyncDbManager delete foobar [Endtest] @@ -469,13 +491,45 @@ title TestAudioMMCEventL create HarvesterPluginTester foobar foobar TestAudioMMCEventL 2 0 +foobar TestAudioMMCEventL 2 1 +delete foobar +[Endtest] + +[Test] +title TestAudioNoIndexer +create HarvesterPluginTester foobar +foobar TestAudioNoIndexer 2 3 +foobar TestAudioNoIndexer 2 4 +foobar TestAudioNoIndexer 2 5 delete foobar [Endtest] [Test] -title TestAudioMMCEventL +title TestVideoHarvesting create HarvesterPluginTester foobar -foobar TestAudioMMCEventL 2 1 +foobar TestVideoHarvesting c:\data\Niagara.wmv Niagara.wmv +delete foobar +[Endtest] + +[Test] +title TestVideoHandleItem +create HarvesterPluginTester foobar +foobar TestVideoHandleItem 10 0 +foobar TestVideoHandleItem 11 0 +foobar TestVideoHandleItem 12 0 +foobar TestVideoHandleItem 10 1 +foobar TestVideoHandleItem 11 1 +foobar TestVideoHandleItem 12 1 +foobar TestVideoHandleItem 10 2 +foobar TestVideoHandleItem 11 2 +foobar TestVideoHandleItem 12 2 +delete foobar +[Endtest] + +[Test] +title TestVideoSyncDbManager +create HarvesterPluginTester foobar +foobar TestVideoSyncDbManager delete foobar [Endtest] @@ -483,13 +537,45 @@ title TestVideoMMCEventL create HarvesterPluginTester foobar foobar TestVideoMMCEventL 2 0 +foobar TestVideoMMCEventL 2 1 +delete foobar +[Endtest] + +[Test] +title TestVideoNoIndexer +create HarvesterPluginTester foobar +foobar TestVideoNoIndexer 2 10 +foobar TestVideoNoIndexer 2 11 +foobar TestVideoNoIndexer 2 12 delete foobar [Endtest] [Test] -title TestVideoMMCEventL +title TestImageHarvesting create HarvesterPluginTester foobar -foobar TestVideoMMCEventL 2 1 +foobar TestImageHarvesting c:\data\square.jpg square.jpg +delete foobar +[Endtest] + +[Test] +title TestImageHandleItem +create HarvesterPluginTester foobar +foobar TestImageHandleItem 3 0 +foobar TestImageHandleItem 4 0 +foobar TestImageHandleItem 5 0 +foobar TestImageHandleItem 3 1 +foobar TestImageHandleItem 4 1 +foobar TestImageHandleItem 5 1 +foobar TestImageHandleItem 3 2 +foobar TestImageHandleItem 4 2 +foobar TestImageHandleItem 5 2 +delete foobar +[Endtest] + +[Test] +title TestImageSyncDbManager +create HarvesterPluginTester foobar +foobar TestImageSyncDbManager delete foobar [Endtest] @@ -497,13 +583,16 @@ title TestImageMMCEventL create HarvesterPluginTester foobar foobar TestImageMMCEventL 2 0 +foobar TestImageMMCEventL 2 1 delete foobar [Endtest] [Test] -title TestImageMMCEventL +title TestImageNoIndexer create HarvesterPluginTester foobar -foobar TestImageMMCEventL 2 1 +foobar TestImageNoIndexer 2 3 +foobar TestImageNoIndexer 2 4 +foobar TestImageNoIndexer 2 5 delete foobar [Endtest] @@ -520,3 +609,17 @@ foobar TestHandleEmailDoc delete foobar [Endtest] + +[Test] +title TestEmailBaseappclass +create HarvesterPluginTester foobar +foobar TestEmailBaseappclass +delete foobar +[Endtest] + +[Test] +title TestEmailHandleDoc +create HarvesterPluginTester foobar +foobar TestEmailHandleDoc +delete foobar +[Endtest] diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/tsrc/harvesterplugintester/data/cpixmediatest/3GPP-70kB.3gpp Binary file harvesterplugins/tsrc/harvesterplugintester/data/cpixmediatest/3GPP-70kB.3gpp has changed diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/tsrc/harvesterplugintester/data/cpixmediatest/audio1.mp3 Binary file harvesterplugins/tsrc/harvesterplugintester/data/cpixmediatest/audio1.mp3 has changed diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/tsrc/harvesterplugintester/data/cpixmediatest/kodak-dc210.jpg Binary file harvesterplugins/tsrc/harvesterplugintester/data/cpixmediatest/kodak-dc210.jpg has changed diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/tsrc/harvesterplugintester/data/cpixmediatest/nokia_logo.png Binary file harvesterplugins/tsrc/harvesterplugintester/data/cpixmediatest/nokia_logo.png has changed diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/tsrc/harvesterplugintester/data/cpixmediatest/song.wma Binary file harvesterplugins/tsrc/harvesterplugintester/data/cpixmediatest/song.wma has changed diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/tsrc/harvesterplugintester/group/bld.inf --- a/harvesterplugins/tsrc/harvesterplugintester/group/bld.inf Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/tsrc/harvesterplugintester/group/bld.inf Wed Aug 18 09:49:49 2010 +0300 @@ -34,6 +34,11 @@ ../conf/eagle_landed.mp3 /epoc32/winscw/c/data/eagle_landed.mp3 ../conf/niagara.wmv /epoc32/winscw/c/data/niagara.wmv ../conf/square.jpg /epoc32/winscw/c/data/square.jpg +../data/cpixmediatest/audio1.mp3 /epoc32/winscw/c/data/cpixmediatest/audio1.mp3 +../data/cpixmediatest/song.wma /epoc32/winscw/c/data/cpixmediatest/song.wma +../data/cpixmediatest/kodak-dc210.jpg /epoc32/winscw/c/data/cpixmediatest/kodak-dc210.jpg +../data/cpixmediatest/nokia_logo.png /epoc32/winscw/c/data/cpixmediatest/nokia_logo.png +../data/cpixmediatest/3GPP-70kB.3gpp /epoc32/winscw/c/data/cpixmediatest/3GPP-70kB.3gpp //Note: Export for ROM build ../conf/testframework.ini z:/system/data/testframework.ini @@ -45,6 +50,7 @@ ../conf/testfile.txt z:/ids/testfile.txt ../conf/eagle_landed.mp3 z:/ids/eagle_landed.mp3 ../conf/niagara.wmv z:/ids/niagara.wmv + PRJ_EXPORTS // Specify the source file followed by its destination here // copy will be used to copy the source file to its destination diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/tsrc/harvesterplugintester/group/harvesterplugintester.mmp --- a/harvesterplugins/tsrc/harvesterplugintester/group/harvesterplugintester.mmp Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/tsrc/harvesterplugintester/group/harvesterplugintester.mmp Wed Aug 18 09:49:49 2010 +0300 @@ -234,7 +234,7 @@ OPTION CW -wchar_t on MACRO _WCHAR_T_DECLARED -//EPOCALLOWDLLDATA +EPOCALLOWDLLDATA //------------------End for Eail plugin ----------------------------- USERINCLUDE ../../../applications/traces diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/tsrc/harvesterplugintester/inc/harvesterplugintester.h --- a/harvesterplugins/tsrc/harvesterplugintester/inc/harvesterplugintester.h Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/tsrc/harvesterplugintester/inc/harvesterplugintester.h Wed Aug 18 09:49:49 2010 +0300 @@ -213,6 +213,16 @@ TInt PerformNotesTestL( TPtrC aString1 , TPtrC aString2 ); virtual TInt TestDeleteNoteL( CStifItemParser& aItem); virtual TInt TestUpdateNoteL( CStifItemParser& aItem ); + + virtual TInt TestNotesEntryNegativeL( CStifItemParser& aItem ); + + virtual TInt TestNotesDestructorL ( CStifItemParser& aItem ); + + virtual TInt TestNotesDelayedErrorL( CStifItemParser& aItem ); + + virtual TInt TestNotesChangeEntryL( CStifItemParser& aItem ); + + virtual TInt TestNotesEntryNoIndexerL( CStifItemParser& aItem ); /*** End of Notes plugin tests ***/ virtual TInt TestStartContactsHarvesterL( CStifItemParser& aItem ); @@ -243,44 +253,60 @@ virtual TInt TestCreateMmsL( CStifItemParser& aItem ); + virtual TInt TestcalenderdestructorL( CStifItemParser& aItem ); + + virtual TInt TestCalChangeEntryL( CStifItemParser& aItem ); + + virtual TInt TestCalCreateEntryL( CStifItemParser& aItem ); + virtual TInt TestCreateEmailL( CStifItemParser& aItem ); virtual TInt TestAudioHarvestingL( CStifItemParser& aItem ); - virtual TInt TestAudioHarvestingUpdateIndexL( CStifItemParser& aItem ); - - virtual TInt TestAudioHarvestingDeleteIndexL( CStifItemParser& aItem ); + virtual TInt TestAudioHandleItemL( CStifItemParser& aItem ); virtual TInt TestMdsSyncControllerL( CStifItemParser& aItem ); + virtual TInt TestAudioSyncDbManagerL( CStifItemParser& aItem ); + + virtual TInt TestAudioMMCEventL( CStifItemParser& aItem ); + + virtual TInt TestAudioNoIndexerL( CStifItemParser& aItem ); + virtual TInt TestBlacklistPluginL( CStifItemParser& aItem ); virtual TInt TestBlacklistPluginVersionL( CStifItemParser& aItem ); - virtual TInt TestVideoHarvestingIndexL( CStifItemParser& aItem ); - - virtual TInt TestVideoHarvestingUpdateIndexL( CStifItemParser& aItem ); - - virtual TInt TestVideoHarvestingDeleteIndexL( CStifItemParser& aItem ); + virtual TInt TestVideoHarvestingL( CStifItemParser& aItem ); - virtual TInt TestImageHarvestingAddIndexL( CStifItemParser& aItem ); - - virtual TInt TestImageHarvestingUpdateIndexL( CStifItemParser& aItem ); + virtual TInt TestVideoHandleItemL( CStifItemParser& aItem ); - virtual TInt TestImageHarvestingDeleteIndexL( CStifItemParser& aItem ); - - virtual TInt TestAudioMMCEventL( CStifItemParser& aItem ); + virtual TInt TestVideoSyncDbManagerL ( CStifItemParser& aItem ); virtual TInt TestVideoMMCEventL( CStifItemParser& aItem ); + virtual TInt TestVideoNoIndexerL( CStifItemParser& aItem ); + + virtual TInt TestImageHarvestingL( CStifItemParser& aItem ); + + virtual TInt TestImageHandleItemL( CStifItemParser& aItem ); + + virtual TInt TestImageSyncDbManagerL ( CStifItemParser& aItem ); + virtual TInt TestImageMMCEventL( CStifItemParser& aItem ); + virtual TInt TestImageNoIndexerL( CStifItemParser& aItem ); + virtual TInt TestStartEmailPluginL( CStifItemParser& aItem ); CSearchDocument* prepareemaildocument(); virtual TInt TestHandleEmailDocL( CStifItemParser& aItem ); + virtual TInt TestEmailBaseappclassL( CStifItemParser& aItem ); + + virtual TInt TestEmailHandleDocL( CStifItemParser& aItem ); + virtual TInt TestQualifiedBaseAppClassL( CStifItemParser& ); virtual TAny TestHandleMsgMovedL( CStifItemParser& ); diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/tsrc/harvesterplugintester/src/ccalanderobserver.cpp --- a/harvesterplugins/tsrc/harvesterplugintester/src/ccalanderobserver.cpp Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/tsrc/harvesterplugintester/src/ccalanderobserver.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -72,8 +72,8 @@ CleanupStack::PushL(entry); // For an appointment, the time as well as the date is relevant - TDateTime startTime(2010, EJanuary, 04, 10, 0, 0, 0); - TDateTime endTime(2010, EJanuary, 05, 16, 0, 0, 0); + TDateTime startTime(2010, EJuly, 07, 10, 0, 0, 0); + TDateTime endTime(2010, EJuly, 07, 16, 0, 0, 0); TCalTime calstart; TCalTime calstop; diff -r 993ab30e92fc -r 7d8c8d8f5eab harvesterplugins/tsrc/harvesterplugintester/src/harvesterplugintesterblocks.cpp --- a/harvesterplugins/tsrc/harvesterplugintester/src/harvesterplugintesterblocks.cpp Tue Jul 06 14:17:22 2010 +0300 +++ b/harvesterplugins/tsrc/harvesterplugintester/src/harvesterplugintesterblocks.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -45,11 +45,14 @@ #include #include "mdsitementity.h" #include "cpixmdedbmanager.h" +#include "cpixindexerutils.h" #include "cfolderrenamedharvester.h" #include "videoplugin.h" #include "imageplugin.h" #include "cemailplugin.h" #include "cmessagedatahandler.h" +#include + _LIT(KAppBasePath,"@c:root file content"); _LIT(KEmailAppBasePath,"@c:root msg email"); _LIT(KAppBaseFolderFilePath,"@c:root file folder"); @@ -125,7 +128,12 @@ ENTRY( "TestAddLongNoteL", CHarvesterPluginTester::TestAddLongNoteL ), ENTRY( "TestAddAlphaNumericNoteL", CHarvesterPluginTester::TestAddAlphaNumericNoteL ), ENTRY( "TestDeleteNoteL", CHarvesterPluginTester::TestDeleteNoteL ), - ENTRY( "TestUpdateNoteL", CHarvesterPluginTester::TestUpdateNoteL ), + ENTRY( "TestUpdateNoteL", CHarvesterPluginTester::TestUpdateNoteL ), + ENTRY( "TestNotesEntryNegative", CHarvesterPluginTester::TestNotesEntryNegativeL ), + ENTRY( "TestNotesDestructor", CHarvesterPluginTester::TestNotesDestructorL ), + ENTRY( "TestNotesDelayedError", CHarvesterPluginTester::TestNotesDelayedErrorL ), + ENTRY( "TestNotesChangeEntry", CHarvesterPluginTester::TestNotesChangeEntryL), + ENTRY( "TestNotesEntryNoIndexer", CHarvesterPluginTester::TestNotesEntryNoIndexerL), ENTRY( "TestContactsHarvesting", CHarvesterPluginTester::TestStartContactsHarvesterL ), ENTRY( "TestCreateContactIndexItemL_Add", CHarvesterPluginTester::TestCreateContactIndexItemL ), ENTRY( "TestCreateAllContactFields", CHarvesterPluginTester::TestCreateAllContactFieldsL ), @@ -140,25 +148,33 @@ ENTRY( "TestCreateContactGroup", CHarvesterPluginTester::TestCreateContactGroupL ), ENTRY( "TestCalenderHarvesting", CHarvesterPluginTester::TestStartCalenderHarvesterL ), ENTRY( "TestCalenderEntry",CHarvesterPluginTester::TestCalenderEntryL ), - ENTRY( "TestCreateMMS",CHarvesterPluginTester::TestCreateMmsL ), + ENTRY( "TestCreateMMS",CHarvesterPluginTester::TestCreateMmsL ), + ENTRY( "Testcalenderdestructor",CHarvesterPluginTester::TestcalenderdestructorL ), + ENTRY( "TestCalChangeEntry",CHarvesterPluginTester::TestCalChangeEntryL ), + ENTRY( "TestCalCreateEntry",CHarvesterPluginTester::TestCalCreateEntryL ), ENTRY( "TestCreateEmail",CHarvesterPluginTester::TestCreateEmailL ), - ENTRY( "TestAudioHarvesting",CHarvesterPluginTester::TestAudioHarvestingL ), - ENTRY( "TestAudioHarvestingUpdateIndex",CHarvesterPluginTester::TestAudioHarvestingUpdateIndexL ), - ENTRY( "TestAudioHarvestingDeleteIndex",CHarvesterPluginTester::TestAudioHarvestingDeleteIndexL ), + ENTRY( "TestAudioHarvesting",CHarvesterPluginTester::TestAudioHarvestingL ), ENTRY( "TestMdsSyncController",CHarvesterPluginTester::TestMdsSyncControllerL ), + ENTRY( "TestAudioHandleItem",CHarvesterPluginTester::TestAudioHandleItemL ), + ENTRY( "TestAudioSyncDbManager",CHarvesterPluginTester::TestAudioSyncDbManagerL ), + ENTRY( "TestAudioMMCEventL",CHarvesterPluginTester::TestAudioMMCEventL ), + ENTRY( "TestAudioNoIndexer",CHarvesterPluginTester::TestAudioNoIndexerL ), //ENTRY( "TestBlacklistPlugin",CHarvesterPluginTester::TestBlacklistPluginL ), //ENTRY( "TestBlacklistPluginVersion",CHarvesterPluginTester::TestBlacklistPluginVersionL ), - ENTRY( "TestVideoHarvestingIndex",CHarvesterPluginTester::TestVideoHarvestingIndexL ), - ENTRY( "TestVideoHarvestingUpdateIndex",CHarvesterPluginTester::TestVideoHarvestingUpdateIndexL ), - ENTRY( "TestVideoHarvestingDeleteIndex",CHarvesterPluginTester::TestVideoHarvestingDeleteIndexL ), - ENTRY( "TestImageHarvestingAddIndex",CHarvesterPluginTester::TestImageHarvestingAddIndexL ), - ENTRY( "TestImageHarvestingUpdateIndex",CHarvesterPluginTester::TestImageHarvestingUpdateIndexL ), - ENTRY( "TestImageHarvestingDeleteIndex",CHarvesterPluginTester::TestImageHarvestingDeleteIndexL ), - ENTRY( "TestAudioMMCEventL",CHarvesterPluginTester::TestAudioMMCEventL ), - ENTRY( "TestVideoMMCEventL",CHarvesterPluginTester::TestVideoMMCEventL ), + ENTRY( "TestVideoHarvesting",CHarvesterPluginTester::TestVideoHarvestingL ), + ENTRY( "TestVideoHandleItem",CHarvesterPluginTester::TestVideoHandleItemL ), + ENTRY( "TestVideoSyncDbManager",CHarvesterPluginTester::TestVideoSyncDbManagerL ), + ENTRY( "TestVideoMMCEventL",CHarvesterPluginTester::TestVideoMMCEventL ), + ENTRY( "TestVideoNoIndexer",CHarvesterPluginTester::TestVideoNoIndexerL ), + ENTRY( "TestImageHarvesting",CHarvesterPluginTester::TestImageHarvestingL ), + ENTRY( "TestImageHandleItem",CHarvesterPluginTester::TestImageHandleItemL ), + ENTRY( "TestImageSyncDbManager",CHarvesterPluginTester::TestImageSyncDbManagerL ), ENTRY( "TestImageMMCEventL",CHarvesterPluginTester::TestImageMMCEventL ), + ENTRY( "TestImageNoIndexer",CHarvesterPluginTester::TestImageNoIndexerL ), ENTRY( "TestStartEmailPlugin",CHarvesterPluginTester::TestStartEmailPluginL ), ENTRY( "TestHandleEmailDoc",CHarvesterPluginTester::TestHandleEmailDocL ), + ENTRY( "TestEmailBaseappclass",CHarvesterPluginTester::TestEmailBaseappclassL ), + ENTRY( "TestEmailHandleDoc",CHarvesterPluginTester::TestEmailHandleDocL ), //ADD NEW ENTRY HERE // [test cases entries] - Do not remove }; @@ -835,6 +851,7 @@ { DocumentCount = searcher->SearchL(aQueryString, aDefaultField); } + session.Close(); return DocumentCount; } @@ -1043,7 +1060,7 @@ return error; } -TInt CHarvesterPluginTester::TestDeleteNoteL( CStifItemParser& aItem ) +TInt CHarvesterPluginTester::TestDeleteNoteL( CStifItemParser& /*aItem */) { TInt error = KErrNone; _LIT( KSearchError, "Search Failed" ); @@ -1053,9 +1070,10 @@ CCalendarObserver* session = CCalendarObserver::NewL(); plugin->StartHarvestingL( _L(NOTES_QBASEAPPCLASS) ); + session->DeleteNoteEntryL(); iPluginTester->iWaitForHarvester->Start(); // Add a Note entry - TPtrC searchstring; + /*TPtrC searchstring; error = aItem.GetNextString( searchstring ); HBufC8* buf8 = HBufC8::NewL(2*searchstring.Length()); buf8->Des().Copy(searchstring); @@ -1073,7 +1091,7 @@ //If the entery is succesfully deleted, make error to KErrNone.To show testcase success if(error == KErrNotFound) error = KErrNone; - } + }*/ delete session; delete plugin; delete iPluginTester; @@ -1125,6 +1143,76 @@ return error; } +TInt CHarvesterPluginTester::TestNotesEntryNegativeL( CStifItemParser& /*aItem*/ ) + { + CNotesPlugin* plugin = CNotesPlugin::NewL(); + CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( plugin ); + plugin->StartPluginL(); + plugin->StartHarvestingL( _L(NOTES_QBASEAPPCLASS) ); + iPluginTester->iWaitForHarvester->Start();//Wait here till Harvesting is complete. + plugin->CreateNoteEntryL(0, ECPixUpdateAction); + delete plugin; + delete iPluginTester; + iPluginTester = NULL; + doLog( iLog, KErrNone, KNoErrorString ); + return KErrNone; + } + +TInt CHarvesterPluginTester::TestNotesDestructorL( CStifItemParser& /*aItem*/ ) + { + CNotesPlugin* plugin = CNotesPlugin::NewL(); + plugin->iAsynchronizer->CancelCallback(); + plugin->iAsynchronizer = NULL; + plugin->iSession->StopChangeNotification(); + plugin->iSession = NULL; + delete plugin; + return KErrNone; + } + +TInt CHarvesterPluginTester::TestNotesDelayedErrorL( CStifItemParser& /*aItem*/ ) + { + CNotesPlugin* plugin = CNotesPlugin::NewL(); + CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( plugin ); + iPluginTester->SetWaitTime(2000000); + plugin->StartPluginL(); + TRAPD(err, plugin->DelayedError( KErrGeneral )); + delete plugin; + delete iPluginTester; + return KErrNone; + } + +TInt CHarvesterPluginTester::TestNotesChangeEntryL( CStifItemParser& /*aItem*/ ) + { + CNotesPlugin* plugin = CNotesPlugin::NewL(); + CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( plugin ); + iPluginTester->SetWaitTime(2000000); + plugin->StartPluginL(); + TCalChangeEntry calEntry; + calEntry.iChangeType = MCalChangeCallBack2::EChangeUndefined; //undefined type + plugin->HandleNoteChangedEntryL( calEntry ); + calEntry.iChangeType = MCalChangeCallBack2::EChangeTzRules; //default check + plugin->HandleNoteChangedEntryL( calEntry ); + delete plugin; + delete iPluginTester; + return KErrNone; + } + +TInt CHarvesterPluginTester::TestNotesEntryNoIndexerL( CStifItemParser& /*aItem*/ ) + { + CNotesPlugin* plugin = CNotesPlugin::NewL(); + CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( plugin ); + plugin->StartPluginL(); + TRAPD(err, plugin->CreateNoteEntryL(0, ECPixUpdateAction) ); + TRAP(err, plugin->CreateNoteEntryL(0, (TCPixActionType)3) ); + iPluginTester->SetWaitTime(2000000); + CCalendarObserver* calobserver = CCalendarObserver::NewL(); + calobserver->AddEntryL(); + delete calobserver; + delete plugin; + delete iPluginTester; + return err; + } + TInt CHarvesterPluginTester::TestStartContactsHarvesterL( CStifItemParser& /*aItem*/ ) { CContactsPlugin* plugin = CContactsPlugin::NewL(); @@ -1442,6 +1530,10 @@ TInt CHarvesterPluginTester::TestStartCalenderHarvesterL( CStifItemParser& /*aItem*/ ) { + CCalendarObserver* session = CCalendarObserver::NewL(); + // Add a calender entry + session->AddEntryL(); + delete session; CCalendarPlugin* plugin = CCalendarPlugin::NewL(); CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( plugin ); plugin->StartPluginL(); //start to moniter contacts db @@ -1534,6 +1626,67 @@ return KErrNone; } +TInt CHarvesterPluginTester::TestcalenderdestructorL( CStifItemParser& /*aItem */ ) + { + CCalendarPlugin* plugin = CCalendarPlugin::NewL(); + CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( plugin ); + plugin->StartPluginL(); //start to moniter contacts db + plugin->Progress(100); + iPluginTester->SetWaitTime(2000000); + plugin->StartHarvestingL( _L(CALENDAR_QBASEAPPCLASS) ); + plugin->DelayedError(KErrNone); + iPluginTester->iWaitForHarvester->Start();//Wait here till Harvesting is complete. + plugin->Completed(KErrGeneral); + plugin->iAsynchronizer->CancelCallback(); + plugin->iAsynchronizer = NULL; + plugin->iSession->StopChangeNotification(); + plugin->iSession = NULL; + delete plugin; + delete iPluginTester; + iPluginTester = NULL; + doLog( iLog, KErrNone, KNoErrorString ); + return KErrNone; + } + +TInt CHarvesterPluginTester::TestCalChangeEntryL( CStifItemParser& /*aItem */ ) + { + CCalendarPlugin* plugin = CCalendarPlugin::NewL(); + CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( plugin ); + iPluginTester->SetWaitTime(2000000); + plugin->StartPluginL(); + TCalChangeEntry calEntry; + calEntry.iChangeType = MCalChangeCallBack2::EChangeAdd; //undefined type + plugin->HandleChangedEntryL( calEntry ); + calEntry.iChangeType = MCalChangeCallBack2::EChangeUndefined; //undefined type + plugin->HandleChangedEntryL( calEntry ); + calEntry.iChangeType = MCalChangeCallBack2::EChangeTzRules; //default check + plugin->HandleChangedEntryL( calEntry ); + delete plugin; + return KErrNone; + } + +TInt CHarvesterPluginTester::TestCalCreateEntryL( CStifItemParser& /*aItem */ ) + { + _LIT8(KTestmemo , "Notesplugin"); + CCalendarPlugin* plugin = CCalendarPlugin::NewL(); + CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( plugin ); + iPluginTester->SetWaitTime(2000000); + plugin->CreateEntryL(0,ECPixAddAction ); + plugin->StartPluginL(); + plugin->CreateEntryL(0,ECPixAddAction ); + CCalendarObserver* calobserver = CCalendarObserver::NewL(); + HBufC8* memo = HBufC8::New(10); + TPtr8 ptr = memo->Des(); + ptr.Copy(KTestmemo); + calobserver->AddNoteL(ptr); + delete calobserver; + delete memo; + plugin->CreateEntryL(0,(TCPixActionType )3); + delete plugin; + delete iPluginTester; + return KErrNone; + } + TInt CHarvesterPluginTester::TestCreateEmailL( CStifItemParser& /*aItem */) { TInt error = KErrNone; @@ -1596,119 +1749,14 @@ //Wait for one minutes after doc processing to Index and Flush to happen iPluginTester->SetWaitTime((TTimeIntervalMicroSeconds32)60000000); iPluginTester->iWaitForHarvester->Start(); //Start Wait AO and let it complete - TInt count = SearchForTextL(_L("Eagle"),_L(MEDIA_QBASEAPPCLASS),KNullDesC); - if(count <= 0) - { - error = KErrNotFound; - } - doLog(iLog,error,_L("Error in TestAudioHarvestingL")); + error = doSearchL( _L("Eagle"),_L(MEDIA_QBASEAPPCLASS), ESearchTypeResultsExpected ); + delete plugin; delete iPluginTester; iPluginTester = NULL; fileSession.Close(); //End search - return error; - } -TInt CHarvesterPluginTester::TestAudioHarvestingUpdateIndexL( CStifItemParser& aItem ) - { - TInt error = KErrNone; - TPtrC filepath; - TPtrC filename; - TPtrC newFile; - TBuf srcPath(_L("c:\\data\\Sounds\\")); - TBuf desPath; - desPath.Copy( srcPath ); - CAudioPlugin* plugin = CAudioPlugin::NewL(); - CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( plugin ); - plugin->StartPluginL(); - RFs fSession; - User::LeaveIfError( fSession.Connect()); - CleanupClosePushL( fSession ); - if((aItem.GetNextString(filepath)==KErrNone) && (aItem.GetNextString(filename) == KErrNone)) - { - srcPath.Append( filename ); - if( aItem.GetNextString(newFile) == KErrNone ) - { - desPath.Append( newFile ); - RHarvesterClient harvester; - User::LeaveIfError(harvester.Connect()); - harvester.Pause(); - TBool fileExist = BaflUtils::FileExists( fSession, srcPath ); - if(!fileExist) - { - BaflUtils::EnsurePathExistsL( fSession, srcPath );//Create folder - BaflUtils::CopyFile( fSession, filepath, srcPath ); - } - BaflUtils::RenameFile( fSession, srcPath, desPath ); - harvester.Resume(); - harvester.Close(); - plugin->StartHarvestingL( _L(MEDIA_QBASEAPPCLASS) ); - //wait for index to flush - iPluginTester->SetWaitTime( (TTimeIntervalMicroSeconds32)60000000 ); - //wait till video harvesting completes - iPluginTester->iWaitForHarvester->Start(); - TInt count = SearchForTextL(_L("testaudio"), _L(MEDIA_QBASEAPPCLASS), KNullDesC ); - if(count <= 0) - { - error = KErrNotFound; - } - doLog( iLog, error, _L("Error in TestAudioHarvestingUpdateIndexL") ); - } - } - else - doLog( iLog, KErrNotFound, _L("Error in TestAudioHarvestingUpdateIndexL") ); - CleanupStack::PopAndDestroy(); - delete plugin; - delete iPluginTester; - iPluginTester = NULL; - return error; - } - -TInt CHarvesterPluginTester::TestAudioHarvestingDeleteIndexL( CStifItemParser& aItem ) - { - TInt error = KErrNone; - TPtrC filepath; - TPtrC filename; - TBuf srcPath(_L("c:\\data\\Sounds\\")); - CAudioPlugin* plugin = CAudioPlugin::NewL(); - CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( plugin ); - plugin->StartPluginL(); - RFs fSession; - User::LeaveIfError( fSession.Connect()); - CleanupClosePushL( fSession ); - if((aItem.GetNextString(filepath)==KErrNone) && (aItem.GetNextString(filename) == KErrNone)) - { - srcPath.Append( filename ); - RHarvesterClient harvester; - User::LeaveIfError(harvester.Connect()); - harvester.Pause(); - TBool fileExist = BaflUtils::FileExists( fSession, srcPath ); - if(!fileExist) - { - BaflUtils::EnsurePathExistsL( fSession, srcPath );//Create folder - BaflUtils::CopyFile( fSession, filepath, srcPath ); - } - BaflUtils::DeleteFile( fSession, srcPath ); - harvester.Resume(); - harvester.Close(); - plugin->StartHarvestingL( _L(MEDIA_QBASEAPPCLASS) ); - //wait for index to flush - iPluginTester->SetWaitTime( (TTimeIntervalMicroSeconds32)60000000 ); - //wait till video harvesting completes - iPluginTester->iWaitForHarvester->Start(); - TInt count = SearchForTextL(_L("eagle"), _L(MEDIA_QBASEAPPCLASS), KNullDesC ); - if(count <= 0) - { - // If the search is not found,then testcase is success - doLog( iLog, error, _L("Error in TestAudioHarvestingDeleteIndexL") ); - } - } - else - doLog( iLog, KErrNotFound, _L("Error in TestAudioHarvestingDeleteIndexL") ); - CleanupStack::PopAndDestroy(); - delete plugin; - delete iPluginTester; - iPluginTester = NULL; + doLog(iLog,error,_L("Error in TestAudioHarvestingL")); return error; } @@ -1748,7 +1796,83 @@ delete dbcontroller; return error; } - + +TInt CHarvesterPluginTester::TestAudioHandleItemL( CStifItemParser& aItem) + { + TInt error = KErrNone; + TInt objId; + TInt actionType; + aItem.GetNextInt ( objId ); + aItem.GetNextInt ( actionType ); + CAudioPlugin* plugin = CAudioPlugin::NewL(); + CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( plugin ); + plugin->StartPluginL(); + TRAPD( err , plugin->HandleMdeItemL(objId, (TCPixActionType)actionType) ); + doLog(iLog,error,_L("Error in TestAudioHandleItemL")); + delete plugin; + delete iPluginTester; + iPluginTester = NULL; + return KErrNone; + } + +TInt CHarvesterPluginTester::TestAudioSyncDbManagerL( CStifItemParser& /* aItem */) + { + CAudioPlugin* plugin = CAudioPlugin::NewL(); + CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( plugin ); + plugin->StartPluginL(); + CMDSEntity* entity; + entity = CMDSEntity::NewL(); + entity->Setkey(100); + entity->SetUri(_L("\\music\\audio.mp3")); + TDriveNumber drive = TDriveNumber(EDriveC); + entity->SetDrive(drive); + plugin->iDBManager->AddL( entity->Key(),*entity ); + TRAPD( err , plugin->HandleMdeItemL(entity->Key(), ECPixAddAction)); + TRAP( err , plugin->HandleMdeItemL(entity->Key(), ECPixUpdateAction)); + TRAP( err , plugin->HandleMdeItemL(entity->Key(), ECPixRemoveAction)); + delete plugin; + delete iPluginTester; + iPluginTester = NULL; + return KErrNone; + } + +TInt CHarvesterPluginTester::TestAudioMMCEventL( CStifItemParser& aItem ) + { + TInt error(KErrNone); + TInt drive; + TInt mmcstatus; + aItem.GetNextInt ( drive ); + aItem.GetNextInt ( mmcstatus ); + CAudioPlugin* plugin = CAudioPlugin::NewL(); + CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( plugin ); + plugin->StartPluginL(); //Initialize the Plugin + TRAPD( err , plugin->HandleMMCEventL( (TDriveNumber)drive , mmcstatus) ); + //iPluginTester->iWaitForHarvester->Start(); //Start Wait AO and let it complete + doLog(iLog,error,_L("Error in TestAudioMMCEventL")); + delete plugin; + delete iPluginTester; + iPluginTester = NULL; + //End search + return err; + } + +TInt CHarvesterPluginTester::TestAudioNoIndexerL( CStifItemParser& aItem ) + { + TInt drive; + TInt objId; + aItem.GetNextInt ( drive ); + aItem.GetNextInt ( objId ); + CAudioPlugin* plugin = CAudioPlugin::NewL(); + CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( plugin ); + plugin->StartPluginL(); + plugin->iIndexerUtil->iIndexer[drive]= NULL; + TRAPD( err , plugin->HandleMdeItemL(objId, ECPixUpdateAction) ); + delete plugin; + delete iPluginTester; + iPluginTester = NULL; + return KErrNone; + } + TInt CHarvesterPluginTester::TestBlacklistPluginL( CStifItemParser& /*aItem*/ ) { //@todo: This test case shoud be in IDS middleware harvester STIF cases @@ -1805,7 +1929,7 @@ doLog( iLog, err, KNoErrorString );*/ return err; } -TInt CHarvesterPluginTester::TestVideoHarvestingIndexL( CStifItemParser& aItem ) +TInt CHarvesterPluginTester::TestVideoHarvestingL( CStifItemParser& aItem ) { TInt error = KErrNone; TPtrC filepath; @@ -1815,8 +1939,7 @@ CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( plugin ); plugin->StartPluginL(); RFs fSession; - User::LeaveIfError( fSession.Connect()); - CleanupClosePushL( fSession ); + User::LeaveIfError( fSession.Connect()); if((aItem.GetNextString(filepath)==KErrNone) && (aItem.GetNextString(filename) == KErrNone)) { TBuf desPath(_L("c:\\data\\Videos\\")); @@ -1843,121 +1966,72 @@ { error = KErrNotFound; } - } - else - error = KErrNotFound; - CleanupStack::PopAndDestroy(); + } + fSession.Close(); delete plugin; delete iPluginTester; iPluginTester = NULL; - doLog( iLog, error, _L("Error in TestVideoHarvestingIndexL") ); + doLog( iLog, error, _L("Error in TestVideoHarvesting") ); return error; } -TInt CHarvesterPluginTester::TestVideoHarvestingUpdateIndexL( CStifItemParser& aItem ) +TInt CHarvesterPluginTester::TestVideoHandleItemL( CStifItemParser& aItem ) { - TInt error = KErrNone; - TPtrC filepath; - TPtrC filename; - TPtrC newFile; - TBuf srcPath(_L("c:\\data\\Videos\\")); - TBuf desPath; - desPath.Copy( srcPath ); - CVideoPlugin* plugin = CVideoPlugin::NewL(); + TInt error = KErrNone; + TInt objId; + TInt actionType; + aItem.GetNextInt ( objId ); + aItem.GetNextInt ( actionType ); + CVideoPlugin* plugin = CVideoPlugin::NewL(); CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( plugin ); plugin->StartPluginL(); - RFs fSession; - User::LeaveIfError( fSession.Connect()); - CleanupClosePushL( fSession ); - if((aItem.GetNextString(filepath)==KErrNone) && (aItem.GetNextString(filename) == KErrNone)) - { - srcPath.Append( filename ); - if( aItem.GetNextString(newFile) == KErrNone ) - { - desPath.Append( newFile ); - RHarvesterClient harvester; - User::LeaveIfError(harvester.Connect()); - harvester.Pause(); - TBool fileExist = BaflUtils::FileExists( fSession, srcPath ); - if(!fileExist) - { - BaflUtils::EnsurePathExistsL( fSession, srcPath );//Create folder - BaflUtils::CopyFile( fSession, filepath, srcPath ); - } - BaflUtils::RenameFile( fSession, srcPath, desPath ); - harvester.Resume(); - harvester.Close(); - plugin->StartHarvestingL( _L(VIDEO_QBASEAPPCLASS) ); - //wait for index to flush - iPluginTester->SetWaitTime( (TTimeIntervalMicroSeconds32)60000000 ); - //wait till video harvesting completes - iPluginTester->iWaitForHarvester->Start(); - TInt count = SearchForTextL(_L("Falls"), _L(VIDEO_QBASEAPPCLASS), KNullDesC ); - if(count <= 0) - { - error = KErrNotFound; - } - doLog( iLog, error, _L("Error in TestVideoHarvestingUpdateIndexL") ); - } - } - else - doLog( iLog, KErrNotFound, _L("Error in TestVideoHarvestingUpdateIndexL") ); - CleanupStack::PopAndDestroy(); + TRAPD( err , plugin->HandleMdeItemL(objId, (TCPixActionType)actionType) ); + doLog(iLog,error,_L("Error in TestVideoHandleItemL")); delete plugin; delete iPluginTester; iPluginTester = NULL; - return error; + return KErrNone; } -TInt CHarvesterPluginTester::TestVideoHarvestingDeleteIndexL( CStifItemParser& aItem ) +TInt CHarvesterPluginTester::TestVideoSyncDbManagerL( CStifItemParser& /*aItem */) { - TInt error = KErrNone; - TPtrC filepath; - TPtrC filename; - TBuf srcPath(_L("c:\\data\\Videos\\")); - CVideoPlugin* plugin = CVideoPlugin::NewL(); + CVideoPlugin* plugin = CVideoPlugin::NewL(); CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( plugin ); plugin->StartPluginL(); - RFs fSession; - User::LeaveIfError( fSession.Connect()); - CleanupClosePushL( fSession ); - if((aItem.GetNextString(filepath)==KErrNone) && (aItem.GetNextString(filename) == KErrNone)) - { - srcPath.Append( filename ); - RHarvesterClient harvester; - User::LeaveIfError(harvester.Connect()); - harvester.Pause(); - TBool fileExist = BaflUtils::FileExists( fSession, srcPath ); - if(!fileExist) - { - BaflUtils::EnsurePathExistsL( fSession, srcPath );//Create folder - BaflUtils::CopyFile( fSession, filepath, srcPath ); - } - BaflUtils::DeleteFile( fSession, srcPath ); - harvester.Resume(); - harvester.Close(); - plugin->StartHarvestingL( _L(VIDEO_QBASEAPPCLASS) ); - //wait for index to flush - iPluginTester->SetWaitTime( (TTimeIntervalMicroSeconds32)60000000 ); - //wait till video harvesting completes - iPluginTester->iWaitForHarvester->Start(); - TInt count = SearchForTextL(_L("Niagara"), _L(VIDEO_QBASEAPPCLASS), KNullDesC ); - if(count <= 0) - { - // If the search is not found,then testcase is success - doLog( iLog, error, _L("Error in TestVideoHarvestingDeleteIndexL") ); - } - } - else - doLog( iLog, KErrNotFound, _L("Error in TestVideoHarvestingDeleteIndexL") ); - CleanupStack::PopAndDestroy(); + CMDSEntity* entity; + entity = CMDSEntity::NewL(); + entity->Setkey(101); + entity->SetUri(_L("\\video\\video.mpg")); + TDriveNumber drive = TDriveNumber(EDriveC); + entity->SetDrive(drive); + plugin->iDBManager->AddL( entity->Key(),*entity ); + TRAPD( err , plugin->HandleMdeItemL(entity->Key(), ECPixAddAction)); + TRAP( err , plugin->HandleMdeItemL(entity->Key(), ECPixUpdateAction)); + TRAP( err , plugin->HandleMdeItemL(entity->Key(), ECPixRemoveAction)); delete plugin; delete iPluginTester; iPluginTester = NULL; - return error; + return KErrNone; } -TInt CHarvesterPluginTester::TestImageHarvestingAddIndexL( CStifItemParser& aItem ) +TInt CHarvesterPluginTester::TestVideoNoIndexerL( CStifItemParser& aItem ) + { + TInt drive; + TInt objId; + aItem.GetNextInt ( drive ); + aItem.GetNextInt ( objId ); + CVideoPlugin* plugin = CVideoPlugin::NewL(); + CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( plugin ); + plugin->StartPluginL(); + plugin->iIndexerUtil->iIndexer[drive]= NULL; + TRAPD( err , plugin->HandleMdeItemL(objId, ECPixUpdateAction) ); + delete plugin; + delete iPluginTester; + iPluginTester = NULL; + return KErrNone; + } + +TInt CHarvesterPluginTester::TestImageHarvestingL( CStifItemParser& aItem ) { TInt error = KErrNone; TPtrC filepath; @@ -1967,8 +2041,7 @@ CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( plugin ); plugin->StartPluginL(); RFs fSession; - User::LeaveIfError( fSession.Connect()); - CleanupClosePushL( fSession ); + User::LeaveIfError( fSession.Connect()); if((aItem.GetNextString(filepath)==KErrNone) && (aItem.GetNextString(filename) == KErrNone)) { TBuf desPath(_L("c:\\data\\Images\\")); @@ -1998,135 +2071,68 @@ else error = KErrNotFound; doLog( iLog, error, _L("Error in TestImageHarvestingAddIndexL") ); - CleanupStack::PopAndDestroy(); - delete plugin; - delete iPluginTester; - iPluginTester = NULL; - return error; - } - -TInt CHarvesterPluginTester::TestImageHarvestingUpdateIndexL( CStifItemParser& aItem ) - { - TInt error = KErrNone; - TPtrC filepath; - TPtrC filename; - TPtrC newFile; - TBuf srcPath(_L("c:\\data\\Images\\")); - TBuf desPath; - desPath.Copy( srcPath ); - CImagePlugin* plugin = CImagePlugin::NewL(); - CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( plugin ); - plugin->StartPluginL(); - RFs fSession; - User::LeaveIfError( fSession.Connect()); - CleanupClosePushL( fSession ); - if((aItem.GetNextString(filepath)==KErrNone) && (aItem.GetNextString(filename) == KErrNone)) - { - srcPath.Append( filename ); - if( aItem.GetNextString(newFile) == KErrNone ) - { - desPath.Append( newFile ); - RHarvesterClient harvester; - User::LeaveIfError(harvester.Connect()); - harvester.Pause(); - TBool fileExist = BaflUtils::FileExists( fSession, srcPath ); - if(!fileExist) - { - BaflUtils::EnsurePathExistsL( fSession, srcPath );//Create folder - BaflUtils::CopyFile( fSession, filepath, srcPath ); - } - BaflUtils::RenameFile( fSession, srcPath, desPath ); - harvester.Resume(); - harvester.Close(); - plugin->StartHarvestingL( _L(IMAGE_QBASEAPPCLASS) ); - //wait for index to flush - iPluginTester->SetWaitTime( (TTimeIntervalMicroSeconds32)60000000 ); - iPluginTester->iWaitForHarvester->Start(); - TInt count = SearchForTextL(_L("Portrait"), _L(IMAGE_QBASEAPPCLASS), KNullDesC ); - if(count <= 0) - { - error = KErrNotFound; - } - doLog( iLog, error, _L("Error in TestImageHarvestingUpdateIndexL") ); - } - } - else - doLog( iLog, KErrNotFound, _L("Error in TestImageHarvestingUpdateIndexL") ); - CleanupStack::PopAndDestroy(); + fSession.Close(); delete plugin; delete iPluginTester; iPluginTester = NULL; return error; } -TInt CHarvesterPluginTester::TestImageHarvestingDeleteIndexL( CStifItemParser& aItem ) +TInt CHarvesterPluginTester::TestImageHandleItemL( CStifItemParser& aItem ) { - TInt error = KErrNone; - TPtrC filepath; - TPtrC filename; - TBuf srcPath(_L("c:\\data\\Images\\")); - CImagePlugin* plugin = CImagePlugin::NewL(); + TInt error = KErrNone; + TInt objId; + TInt actionType; + aItem.GetNextInt ( objId ); + aItem.GetNextInt ( actionType ); + CImagePlugin* plugin = CImagePlugin::NewL(); CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( plugin ); plugin->StartPluginL(); - RFs fSession; - User::LeaveIfError( fSession.Connect() ); - CleanupClosePushL( fSession ); - if((aItem.GetNextString(filepath)==KErrNone) && (aItem.GetNextString(filename) == KErrNone)) - { - srcPath.Append( filename ); - RHarvesterClient harvester; - User::LeaveIfError(harvester.Connect()); - harvester.Pause(); - TBool fileExist = BaflUtils::FileExists( fSession, srcPath ); - if(!fileExist) - { - BaflUtils::EnsurePathExistsL( fSession, srcPath );//Create folder - BaflUtils::CopyFile( fSession, filepath, srcPath ); - } - BaflUtils::DeleteFile( fSession, srcPath ); - harvester.Resume(); - harvester.Close(); - plugin->StartHarvestingL( _L(IMAGE_QBASEAPPCLASS) ); - //wait for index to flush - iPluginTester->SetWaitTime( (TTimeIntervalMicroSeconds32)60000000 ); - //wait till image harvesting completes - iPluginTester->iWaitForHarvester->Start(); - TInt count = SearchForTextL(_L("Square"), _L(IMAGE_QBASEAPPCLASS), KNullDesC ); - if(count <= 0) - { - // If the search is not found,then testcase is success - doLog( iLog, error, _L("Error in TestImageHarvestingDeleteIndexL") ); - } - } - else - doLog( iLog, KErrNotFound, _L("Error in TestImageHarvestingDeleteIndexL") ); - CleanupStack::PopAndDestroy(); + TRAPD( err , plugin->HandleMdeItemL(objId, (TCPixActionType)actionType) ); + doLog(iLog,error,_L("Error in TestImageHandleItemL")); delete plugin; delete iPluginTester; iPluginTester = NULL; - return error; + return KErrNone; } -TInt CHarvesterPluginTester::TestAudioMMCEventL( CStifItemParser& aItem ) - { - TInt error(KErrNone); - TInt drive; - TInt mmcstatus; - aItem.GetNextInt ( drive ); - aItem.GetNextInt ( mmcstatus ); - CAudioPlugin* plugin = CAudioPlugin::NewL(); +TInt CHarvesterPluginTester::TestImageSyncDbManagerL( CStifItemParser& /*aItem */) + { + CImagePlugin* plugin = CImagePlugin::NewL(); CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( plugin ); - plugin->StartPluginL(); //Initialize the Plugin - TRAPD( err , plugin->HandleMMCEventL( (TDriveNumber)drive , mmcstatus) ); - //iPluginTester->iWaitForHarvester->Start(); //Start Wait AO and let it complete - doLog(iLog,error,_L("Error in TestAudioMMCEventL")); + plugin->StartPluginL(); + CMDSEntity* entity; + entity = CMDSEntity::NewL(); + entity->Setkey(102); + entity->SetUri(_L("\\image\\image.jpg")); + TDriveNumber drive = TDriveNumber(EDriveC); + entity->SetDrive(drive); + plugin->iDBManager->AddL( entity->Key(),*entity ); + TRAPD( err , plugin->HandleMdeItemL(entity->Key(), ECPixAddAction)); + TRAP( err , plugin->HandleMdeItemL(entity->Key(), ECPixUpdateAction)); + TRAP( err , plugin->HandleMdeItemL(entity->Key(), ECPixRemoveAction)); delete plugin; delete iPluginTester; iPluginTester = NULL; - //End search - return err; + return KErrNone; } - + +TInt CHarvesterPluginTester::TestImageNoIndexerL( CStifItemParser& aItem ) + { + TInt drive; + TInt objId; + aItem.GetNextInt ( drive ); + aItem.GetNextInt ( objId ); + CImagePlugin* plugin = CImagePlugin::NewL(); + CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( plugin ); + plugin->StartPluginL(); + plugin->iIndexerUtil->iIndexer[drive]= NULL; + TRAPD( err , plugin->HandleMdeItemL(objId, ECPixUpdateAction) ); + delete plugin; + delete iPluginTester; + iPluginTester = NULL; + return KErrNone; + } TInt CHarvesterPluginTester::TestVideoMMCEventL( CStifItemParser& aItem ) { TInt error(KErrNone); @@ -2177,8 +2183,11 @@ iLog->Log( KExample ); CEmailPlugin* emailPlugin = CEmailPlugin::NewL(); CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( emailPlugin ); - emailPlugin->StartPluginL(); //Calls Add + emailPlugin->StartPluginL(); + iPluginTester->SetWaitTime( (TTimeIntervalMicroSeconds32)5000000 ); emailPlugin->StartHarvestingL( KEmailAppBasePath ); + emailPlugin->HarvestingCompleted(); + iPluginTester->iWaitForHarvester->Start(); delete emailPlugin; delete iPluginTester; doLog( iLog, KErrNone, KNoErrorString ); @@ -2194,14 +2203,63 @@ // Print to log file iLog->Log( KExample ); CEmailPlugin* emailPlugin = CEmailPlugin::NewL(); - CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( emailPlugin ); + CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( emailPlugin ); + TRAPD(err , emailPlugin->StartPluginL()); CSearchDocument* doc = prepareemaildocument(); - TRAPD(err , emailPlugin->HandleDocumentL( doc , ECPixAddAction)); - iPluginTester->iWaitForHarvester->Start();//Wait here till Harvesting is complete. + TRAP(err , emailPlugin->HandleDocumentL( doc , ECPixAddAction)); + TRAP(err , emailPlugin->HandleDocumentL( doc , ECPixRemoveAction)); + //iPluginTester->iWaitForHarvester->Start();//Wait here till Harvesting is complete. + delete doc; delete emailPlugin; delete iPluginTester; doLog( iLog, err, KNoErrorString ); return err; } +TInt CHarvesterPluginTester::TestEmailBaseappclassL( CStifItemParser& /*aItem*/ ) + { + _LIT( KHarvesterPluginTester, "HarvesterPluginTester: %S" ); + _LIT( KExample, "In TestEmailBaseappclassL" ); + TestModuleIf().Printf( 0, KHarvesterPluginTester, KExample ); + + TDriveNumber drive ( EDriveA ); + _LIT( appcls1 ,"@c:root msg email" ); + _LIT( appcls2 ,"@*:root msg email" ); + _LIT( appcls3 ,"d:root msg email" ); + CEmailPlugin* emailPlugin = CEmailPlugin::NewL(); + CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( emailPlugin ); + TRAPD(err , emailPlugin->StartPluginL()); + TRAP(err, emailPlugin->StartHarvestingL(appcls1)); + delete emailPlugin->iIndexer[EDriveC]; + emailPlugin->iIndexer[EDriveC] = NULL; + TRAP(err, emailPlugin->StartHarvestingL(appcls1)); + TRAP(err, emailPlugin->StartHarvestingL(appcls2)); + TRAP(err, emailPlugin->StartHarvestingL(appcls3)); + delete emailPlugin; + delete iPluginTester; + return err; + } + +TInt CHarvesterPluginTester::TestEmailHandleDocL( CStifItemParser& /*aItem*/ ) + { + _LIT( KHarvesterPluginTester, "HarvesterPluginTester: %S" ); + _LIT( KExample, "In TestEmailHandleDocL" ); + TestModuleIf().Printf( 0, KHarvesterPluginTester, KExample ); + CEmailPlugin* emailPlugin = CEmailPlugin::NewL(); + CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( emailPlugin ); + CSearchDocument* doc = prepareemaildocument(); + TRAPD(err , emailPlugin->StartPluginL()); + TRAP(err, emailPlugin->StartHarvestingL( KEmailAppBasePath )); + delete emailPlugin->iIndexer[EDriveC]; + TRAP(err,emailPlugin->HandleDocumentL(doc,ECPixRemoveAction)); + TRAP(err,emailPlugin->HandleDocumentL(doc,ECPixAddAction)); + emailPlugin->MountL(EDriveC); + TRAP(err,emailPlugin->HandleDocumentL(doc,ECPixAddAction)); + TRAP(err,emailPlugin->HandleDocumentL(doc,ECPixUpdateAction)); + delete doc; + delete emailPlugin; + delete iPluginTester; + return err; + } + // [End of File] - Do not remove diff -r 993ab30e92fc -r 7d8c8d8f5eab onlinesearchproviders/data/providerdatabase.sq Binary file onlinesearchproviders/data/providerdatabase.sq has changed diff -r 993ab30e92fc -r 7d8c8d8f5eab onlinesearchproviders/onlinesearchproviders.pro --- a/onlinesearchproviders/onlinesearchproviders.pro Tue Jul 06 14:17:22 2010 +0300 +++ b/onlinesearchproviders/onlinesearchproviders.pro Wed Aug 18 09:49:49 2010 +0300 @@ -22,5 +22,7 @@ CONFIG += ordered symbian: { - BLD_INF_RULES.prj_exports += "rom/issearch.iby CORE_APP_LAYER_IBY_EXPORT_PATH(issearch.iby)" + BLD_INF_RULES.prj_exports += "rom/issearch.iby CORE_APP_LAYER_IBY_EXPORT_PATH(issearch.iby)" + BLD_INF_RULES.prj_exports += "data/providerdatabase.sq /epoc32/data/z/private/20022F35/providerdatabase.sq" + } \ No newline at end of file diff -r 993ab30e92fc -r 7d8c8d8f5eab rom/cpix_app.iby --- a/rom/cpix_app.iby Tue Jul 06 14:17:22 2010 +0300 +++ b/rom/cpix_app.iby Wed Aug 18 09:49:49 2010 +0300 @@ -38,7 +38,7 @@ ECOM_PLUGIN( cpixfileplugin.dll, cpixfileplugin.rsc) // Bookmark plugin -ECOM_PLUGIN( cpixbookmarksplugin.dll, cpixbookmarksplugin.rsc) +//ECOM_PLUGIN( cpixbookmarksplugin.dll, cpixbookmarksplugin.rsc) //Calender plugin ECOM_PLUGIN( cpixcalendarplugin.dll, cpixcalendarplugin.rsc) diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/Searchapplication/Searchapplication.pro --- a/searchui/Searchapplication/Searchapplication.pro Tue Jul 06 14:17:22 2010 +0300 +++ b/searchui/Searchapplication/Searchapplication.pro Wed Aug 18 09:49:49 2010 +0300 @@ -37,7 +37,7 @@ CONFIG += console CONFIG += hb console mobility -TRANSLATIONS += searchsw.ts +TRANSLATIONS += search.ts nft:DEFINES += NFT DEPENDPATH += . \ diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/Searchapplication/src/main.cpp --- a/searchui/Searchapplication/src/main.cpp Tue Jul 06 14:17:22 2010 +0300 +++ b/searchui/Searchapplication/src/main.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -36,7 +36,7 @@ QTranslator translator; QString lang = QLocale::system().name(); QString path = "Z:/resource/qt/translations/"; - translator.load("searchsw_" + lang, path); + translator.load("search_" + lang, path); app.installTranslator(&translator); QTranslator commonTranslator; diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/bwins/searchindevicehandleru.def --- a/searchui/bwins/searchindevicehandleru.def Tue Jul 06 14:17:22 2010 +0300 +++ b/searchui/bwins/searchindevicehandleru.def Wed Aug 18 09:49:49 2010 +0300 @@ -1,26 +1,29 @@ EXPORTS ??0InDeviceHandler@@QAE@XZ @ 1 NONAME ; InDeviceHandler::InDeviceHandler(void) ?setCategory@InDeviceHandler@@QAEXVQString@@@Z @ 2 NONAME ; void InDeviceHandler::setCategory(class QString) - ?getDocumentAtIndex@InDeviceHandler@@QAEPAVQCPixDocument@@H@Z @ 3 NONAME ; class QCPixDocument * InDeviceHandler::getDocumentAtIndex(int) - ?isPrepared@InDeviceHandler@@QAE_NXZ @ 4 NONAME ; bool InDeviceHandler::isPrepared(void) - ?handleAsyncSearchResult@InDeviceHandler@@IAEXHH@Z @ 5 NONAME ; void InDeviceHandler::handleAsyncSearchResult(int, int) - ?qt_metacast@InDeviceHandler@@UAEPAXPBD@Z @ 6 NONAME ; void * InDeviceHandler::qt_metacast(char const *) - ?cancelLastSearch@InDeviceHandler@@QAEXXZ @ 7 NONAME ; void InDeviceHandler::cancelLastSearch(void) - ?getDocumentAsyncAtIndex@InDeviceHandler@@QAEXH@Z @ 8 NONAME ; void InDeviceHandler::getDocumentAsyncAtIndex(int) - ?metaObject@InDeviceHandler@@UBEPBUQMetaObject@@XZ @ 9 NONAME ; struct QMetaObject const * InDeviceHandler::metaObject(void) const - ??_EInDeviceHandler@@UAE@I@Z @ 10 NONAME ; InDeviceHandler::~InDeviceHandler(unsigned int) - ?qt_metacall@InDeviceHandler@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 11 NONAME ; int InDeviceHandler::qt_metacall(enum QMetaObject::Call, int, void * *) - ?handleSearchResult@InDeviceHandler@@IAEXHH@Z @ 12 NONAME ; void InDeviceHandler::handleSearchResult(int, int) - ?tr@InDeviceHandler@@SA?AVQString@@PBD0H@Z @ 13 NONAME ; class QString InDeviceHandler::tr(char const *, char const *, int) - ??1InDeviceHandler@@UAE@XZ @ 14 NONAME ; InDeviceHandler::~InDeviceHandler(void) - ?trUtf8@InDeviceHandler@@SA?AVQString@@PBD0@Z @ 15 NONAME ; class QString InDeviceHandler::trUtf8(char const *, char const *) - ?getDocumentAsync@InDeviceHandler@@AAEXHPAVQCPixDocument@@@Z @ 16 NONAME ; void InDeviceHandler::getDocumentAsync(int, class QCPixDocument *) - ?tr@InDeviceHandler@@SA?AVQString@@PBD0@Z @ 17 NONAME ; class QString InDeviceHandler::tr(char const *, char const *) - ?trUtf8@InDeviceHandler@@SA?AVQString@@PBD0H@Z @ 18 NONAME ; class QString InDeviceHandler::trUtf8(char const *, char const *, int) - ?getStaticMetaObject@InDeviceHandler@@SAABUQMetaObject@@XZ @ 19 NONAME ; struct QMetaObject const & InDeviceHandler::getStaticMetaObject(void) - ?getSearchResultCount@InDeviceHandler@@QAEHXZ @ 20 NONAME ; int InDeviceHandler::getSearchResultCount(void) - ?searchAsync@InDeviceHandler@@QAEXVQString@@0@Z @ 21 NONAME ; void InDeviceHandler::searchAsync(class QString, class QString) - ?staticMetaObject@InDeviceHandler@@2UQMetaObject@@B @ 22 NONAME ; struct QMetaObject const InDeviceHandler::staticMetaObject - ?getSearchResult@InDeviceHandler@@AAEXHH@Z @ 23 NONAME ; void InDeviceHandler::getSearchResult(int, int) - ?handleDocument@InDeviceHandler@@IAEXHPAVQCPixDocument@@@Z @ 24 NONAME ; void InDeviceHandler::handleDocument(int, class QCPixDocument *) + ?getDocumentAtIndex@InDeviceHandler@@QAEPAVCpixDocument@@H@Z @ 3 NONAME ; class CpixDocument * InDeviceHandler::getDocumentAtIndex(int) + ?getDocumentAsync@InDeviceHandler@@AAEXHPAVCpixDocument@@@Z @ 4 NONAME ; void InDeviceHandler::getDocumentAsync(int, class CpixDocument *) + ?isPrepared@InDeviceHandler@@QAE_NXZ @ 5 NONAME ; bool InDeviceHandler::isPrepared(void) + ?handleAsyncSearchResult@InDeviceHandler@@IAEXHH@Z @ 6 NONAME ; void InDeviceHandler::handleAsyncSearchResult(int, int) + ?qt_metacast@InDeviceHandler@@UAEPAXPBD@Z @ 7 NONAME ; void * InDeviceHandler::qt_metacast(char const *) + ?getBatchDocumentAsyncAtIndex@InDeviceHandler@@QAEXHH@Z @ 8 NONAME ; void InDeviceHandler::getBatchDocumentAsyncAtIndex(int, int) + ?cancelLastSearch@InDeviceHandler@@QAEXXZ @ 9 NONAME ; void InDeviceHandler::cancelLastSearch(void) + ?getDocumentAsyncAtIndex@InDeviceHandler@@QAEXH@Z @ 10 NONAME ; void InDeviceHandler::getDocumentAsyncAtIndex(int) + ?metaObject@InDeviceHandler@@UBEPBUQMetaObject@@XZ @ 11 NONAME ; struct QMetaObject const * InDeviceHandler::metaObject(void) const + ??_EInDeviceHandler@@UAE@I@Z @ 12 NONAME ; InDeviceHandler::~InDeviceHandler(unsigned int) + ?qt_metacall@InDeviceHandler@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 13 NONAME ; int InDeviceHandler::qt_metacall(enum QMetaObject::Call, int, void * *) + ?getBatchDocumentAsync@InDeviceHandler@@AAEXHHPAPAVCpixDocument@@@Z @ 14 NONAME ; void InDeviceHandler::getBatchDocumentAsync(int, int, class CpixDocument * *) + ?handleSearchResult@InDeviceHandler@@IAEXHH@Z @ 15 NONAME ; void InDeviceHandler::handleSearchResult(int, int) + ?tr@InDeviceHandler@@SA?AVQString@@PBD0H@Z @ 16 NONAME ; class QString InDeviceHandler::tr(char const *, char const *, int) + ??1InDeviceHandler@@UAE@XZ @ 17 NONAME ; InDeviceHandler::~InDeviceHandler(void) + ?trUtf8@InDeviceHandler@@SA?AVQString@@PBD0@Z @ 18 NONAME ; class QString InDeviceHandler::trUtf8(char const *, char const *) + ?handleBatchDocument@InDeviceHandler@@IAEXHHPAPAVCpixDocument@@@Z @ 19 NONAME ; void InDeviceHandler::handleBatchDocument(int, int, class CpixDocument * *) + ?tr@InDeviceHandler@@SA?AVQString@@PBD0@Z @ 20 NONAME ; class QString InDeviceHandler::tr(char const *, char const *) + ?trUtf8@InDeviceHandler@@SA?AVQString@@PBD0H@Z @ 21 NONAME ; class QString InDeviceHandler::trUtf8(char const *, char const *, int) + ?getStaticMetaObject@InDeviceHandler@@SAABUQMetaObject@@XZ @ 22 NONAME ; struct QMetaObject const & InDeviceHandler::getStaticMetaObject(void) + ?handleDocument@InDeviceHandler@@IAEXHPAVCpixDocument@@@Z @ 23 NONAME ; void InDeviceHandler::handleDocument(int, class CpixDocument *) + ?getSearchResultCount@InDeviceHandler@@QAEHXZ @ 24 NONAME ; int InDeviceHandler::getSearchResultCount(void) + ?searchAsync@InDeviceHandler@@QAEXVQString@@0@Z @ 25 NONAME ; void InDeviceHandler::searchAsync(class QString, class QString) + ?staticMetaObject@InDeviceHandler@@2UQMetaObject@@B @ 26 NONAME ; struct QMetaObject const InDeviceHandler::staticMetaObject + ?getSearchResult@InDeviceHandler@@AAEXHH@Z @ 27 NONAME ; void InDeviceHandler::getSearchResult(int, int) diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/eabi/searchindevicehandleru.def --- a/searchui/eabi/searchindevicehandleru.def Tue Jul 06 14:17:22 2010 +0300 +++ b/searchui/eabi/searchindevicehandleru.def Wed Aug 18 09:49:49 2010 +0300 @@ -4,23 +4,26 @@ _ZN15InDeviceHandler11qt_metacastEPKc @ 3 NONAME _ZN15InDeviceHandler11searchAsyncE7QStringS0_ @ 4 NONAME _ZN15InDeviceHandler11setCategoryE7QString @ 5 NONAME - _ZN15InDeviceHandler14handleDocumentEiP13QCPixDocument @ 6 NONAME + _ZN15InDeviceHandler14handleDocumentEiP12CpixDocument @ 6 NONAME _ZN15InDeviceHandler15getSearchResultEii @ 7 NONAME _ZN15InDeviceHandler16cancelLastSearchEv @ 8 NONAME - _ZN15InDeviceHandler16getDocumentAsyncEiP13QCPixDocument @ 9 NONAME + _ZN15InDeviceHandler16getDocumentAsyncEiP12CpixDocument @ 9 NONAME _ZN15InDeviceHandler16staticMetaObjectE @ 10 NONAME DATA 16 _ZN15InDeviceHandler18getDocumentAtIndexEi @ 11 NONAME _ZN15InDeviceHandler18handleSearchResultEii @ 12 NONAME _ZN15InDeviceHandler19getStaticMetaObjectEv @ 13 NONAME - _ZN15InDeviceHandler20getSearchResultCountEv @ 14 NONAME - _ZN15InDeviceHandler23getDocumentAsyncAtIndexEi @ 15 NONAME - _ZN15InDeviceHandler23handleAsyncSearchResultEii @ 16 NONAME - _ZN15InDeviceHandlerC1Ev @ 17 NONAME - _ZN15InDeviceHandlerC2Ev @ 18 NONAME - _ZN15InDeviceHandlerD0Ev @ 19 NONAME - _ZN15InDeviceHandlerD1Ev @ 20 NONAME - _ZN15InDeviceHandlerD2Ev @ 21 NONAME - _ZNK15InDeviceHandler10metaObjectEv @ 22 NONAME - _ZTI15InDeviceHandler @ 23 NONAME - _ZTV15InDeviceHandler @ 24 NONAME + _ZN15InDeviceHandler19handleBatchDocumentEiiPP12CpixDocument @ 14 NONAME + _ZN15InDeviceHandler20getSearchResultCountEv @ 15 NONAME + _ZN15InDeviceHandler21getBatchDocumentAsyncEiiPP12CpixDocument @ 16 NONAME + _ZN15InDeviceHandler23getDocumentAsyncAtIndexEi @ 17 NONAME + _ZN15InDeviceHandler23handleAsyncSearchResultEii @ 18 NONAME + _ZN15InDeviceHandler28getBatchDocumentAsyncAtIndexEii @ 19 NONAME + _ZN15InDeviceHandlerC1Ev @ 20 NONAME + _ZN15InDeviceHandlerC2Ev @ 21 NONAME + _ZN15InDeviceHandlerD0Ev @ 22 NONAME + _ZN15InDeviceHandlerD1Ev @ 23 NONAME + _ZN15InDeviceHandlerD2Ev @ 24 NONAME + _ZNK15InDeviceHandler10metaObjectEv @ 25 NONAME + _ZTI15InDeviceHandler @ 26 NONAME + _ZTV15InDeviceHandler @ 27 NONAME diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/inc/Search_global.h --- a/searchui/inc/Search_global.h Tue Jul 06 14:17:22 2010 +0300 +++ b/searchui/inc/Search_global.h Wed Aug 18 09:49:49 2010 +0300 @@ -26,6 +26,8 @@ #include #endif #endif +//settings file +const QString SETTINGS_INI_PATH("C:\\private\\2002c377\\searchsettings.ini"); //#define OST_TRACE_COMPILER_IN_USE //Uncomment to enable performance measurements. #ifdef OST_TRACE_COMPILER_IN_USE diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/indevicehandler/inc/indevicehandler.h --- a/searchui/indevicehandler/inc/indevicehandler.h Tue Jul 06 14:17:22 2010 +0300 +++ b/searchui/indevicehandler/inc/indevicehandler.h Wed Aug 18 09:49:49 2010 +0300 @@ -32,9 +32,8 @@ #define DEFAULT_SEARCH_FIELD "_aggregate" #endif -class QCPixSearcher; -class QCPixDocument; - +class CpixSearcher; +class CpixDocument; SEARCH_CLASS(SearchInDeviceHandlerTest) /** @@ -76,12 +75,18 @@ * Signalled when user requests for the result item * error and result item will be returned */ - void handleDocument(int aError, QCPixDocument* aDoc); + void handleDocument(int aError, CpixDocument* aDoc); + + /** + * Signalled when user requests for the result item in batch + * error and result item will be returned + */ + void handleBatchDocument(int aError, int aCount, CpixDocument** aDoc); private slots: /** - * slot connects to QCPixSearcher to get the status of search results + * slot connects to CpixSearcher to get the status of search results * @since S60 ?S60_version. * @param aError error code. * @param aEstimatedResultCount number of results @@ -90,12 +95,22 @@ void getSearchResult(int aError, int aEstimatedResultCount); /** - * slot connects to QCPixSearcher to get the result item + * slot connects to CpixSearcher to get the result item * @since S60 ?S60_version. * @param aError error code. * @param aDocument result item */ - void getDocumentAsync(int aError, QCPixDocument* aDocument); + void getDocumentAsync(int aError, CpixDocument* aDocument); + + /** + * slot connects to CpixSearcher to get the result item + * @since S60 ?S60_version. + * @param aError error code. + * @param aCount number of result item. + * @param aDocument array of Documents + */ + void getBatchDocumentAsync(int aError, int aCount, + CpixDocument** aDocument); public: @@ -104,7 +119,7 @@ * @since S60 ?S60_version. * @param aIndex index */ - QCPixDocument* getDocumentAtIndex(int aIndex); + CpixDocument* getDocumentAtIndex(int aIndex); /** * returns the result item asynchronously. @@ -113,7 +128,13 @@ */ void getDocumentAsyncAtIndex(int aIndex); - + /** + * returns the result item asynchronously. + * @since S60 ?S60_version. + * @param aIndex index + * @param aCount number of result item + */ + void getBatchDocumentAsyncAtIndex(int aIndex, int aCount); /** * initate the search asynchronously. @@ -156,14 +177,14 @@ * interface for CPix. * Own. */ - QCPixSearcher *mSearchInterface; + CpixSearcher *mSearchInterface; /** * number of results on current search. */ int mSearchResultCount; -SEARCH_FRIEND_CLASS (SearchInDeviceHandlerTest) + SEARCH_FRIEND_CLASS (SearchInDeviceHandlerTest) }; #endif //INDEVICEHANDLER_H diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/indevicehandler/indevicehandler.pro --- a/searchui/indevicehandler/indevicehandler.pro Tue Jul 06 14:17:22 2010 +0300 +++ b/searchui/indevicehandler/indevicehandler.pro Wed Aug 18 09:49:49 2010 +0300 @@ -18,7 +18,7 @@ TARGET = searchindevicehandler - LIBS += -lqcpixsearchclient + LIBS += -lcpixsearch LIBS += -lhbcore DEFINES += BUILD_INDEVICEHANDLER @@ -29,9 +29,6 @@ INCLUDEPATH += ./inc \ ../inc - -#TRANSLATIONS=searchstateprovider.ts - symbian { TARGET.UID2 = 0x20004C45 TARGET.UID3 = 0x2002C37B diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/indevicehandler/src/indevicehandler.cpp --- a/searchui/indevicehandler/src/indevicehandler.cpp Tue Jul 06 14:17:22 2010 +0300 +++ b/searchui/indevicehandler/src/indevicehandler.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -15,8 +15,8 @@ * */ #include "indevicehandler.h" -#include -#include +#include +#include // --------------------------------------------------------------------------- // InDeviceHandler::InDeviceHandler() @@ -34,11 +34,17 @@ { if (mSearchInterface) { + disconnect(mSearchInterface, SIGNAL(handleSearchResults(int,int)), + this, SLOT(getSearchResult(int,int))); + disconnect(mSearchInterface, + SIGNAL(handleDocument(int,CpixDocument*)), this, + SLOT(getDocumentAsync(int,CpixDocument*))); + disconnect(mSearchInterface, + SIGNAL(handleDocument(int,CpixDocument*)), this, + SLOT(getDocumentAsync(int,CpixDocument*))); delete mSearchInterface; - } } - // --------------------------------------------------------------------------- // InDeviceHandler::getSearchResult(int aError, int estimatedResultCount) // aError: error code @@ -47,33 +53,43 @@ // void InDeviceHandler::getSearchResult(int aError, int estimatedResultCount) { - qDebug() << aError << estimatedResultCount; mSearchResultCount = estimatedResultCount; emit handleAsyncSearchResult(aError, estimatedResultCount); } // --------------------------------------------------------------------------- -// InDeviceHandler::getDocumentAsync(int aError, QCPixDocument* aDocument) +// InDeviceHandler::getDocumentAsync(int aError, CpixDocument* aDocument) // aError: error code // aDocument: holding the result item // --------------------------------------------------------------------------- // -void InDeviceHandler::getDocumentAsync(int aError, QCPixDocument* aDocument) +void InDeviceHandler::getDocumentAsync(int aError, CpixDocument* aDocument) { emit handleDocument(aError, aDocument); } // --------------------------------------------------------------------------- +// InDeviceHandler::getBatchDocumentAsync(int aError, CpixDocument* aDocument) +// aError: error code +// aDocument: holding the result item +// --------------------------------------------------------------------------- +// +void InDeviceHandler::getBatchDocumentAsync(int aError, int aCount, + CpixDocument** aDocument) + { + emit handleBatchDocument(aError, aCount, aDocument); + } +// --------------------------------------------------------------------------- // InDeviceHandler::getDocumentAtIndex(int aIndex) // aIndex: item index to be found // --------------------------------------------------------------------------- // -QCPixDocument* InDeviceHandler::getDocumentAtIndex(int aIndex) +CpixDocument* InDeviceHandler::getDocumentAtIndex(int aIndex) { - QCPixDocument* doc = NULL; + CpixDocument* doc = NULL; if (mSearchInterface) { try { - doc = mSearchInterface->getDocument(aIndex); + doc = mSearchInterface->document(aIndex); } catch (...) @@ -85,7 +101,6 @@ return doc; } - // --------------------------------------------------------------------------- // InDeviceHandler::getSearchResultCount() // gets the number of hits @@ -106,7 +121,7 @@ { try { - mSearchInterface->getDocumentAsync(aIndex); + mSearchInterface->documentAsync(aIndex); } catch (...) { @@ -114,7 +129,27 @@ return; } } - + } +// --------------------------------------------------------------------------- +// InDeviceHandler::getBatchDocumentAsyncAtIndex +// aIndex : index of item to be found async +// aCount : number of result items +// --------------------------------------------------------------------------- +// +void InDeviceHandler::getBatchDocumentAsyncAtIndex(int aIndex, int aCount) + { + if (mSearchInterface) + { + try + { + mSearchInterface->batchdocumentAsync(aIndex, aCount); + } + catch (...) + { + // handle the exception + return; + } + } } // --------------------------------------------------------------------------- // InDeviceHandler::searchAsync @@ -148,7 +183,6 @@ void InDeviceHandler::cancelLastSearch() { if (mSearchInterface) - { try { @@ -177,37 +211,23 @@ { QString database("root "); database.append(astring); - mSearchInterface = QCPixSearcher::newInstance(database, + mSearchInterface = CpixSearcher::newInstance(database, DEFAULT_SEARCH_FIELD); } else { - mSearchInterface = QCPixSearcher::newInstance("root", - DEFAULT_SEARCH_FIELD); + mSearchInterface = CpixSearcher::newInstance("root", + DEFAULT_SEARCH_FIELD); } if (mSearchInterface) { - try - { - mSearchInterface->connect(mSearchInterface, - SIGNAL(handleSearchResults(int,int)), this, - SLOT(getSearchResult(int,int))); - } - catch (...) - { - // handle the exception - } - - try - { - mSearchInterface->connect(mSearchInterface, - SIGNAL(handleDocument(int,QCPixDocument*)), this, - SLOT(getDocumentAsync(int,QCPixDocument*))); - } - catch (...) - { - // handle the exception - } + connect(mSearchInterface, SIGNAL(handleSearchResults(int,int)), this, + SLOT(getSearchResult(int,int))); + connect(mSearchInterface, SIGNAL(handleDocument(int,CpixDocument*)), + this, SLOT(getDocumentAsync(int,CpixDocument*))); + connect(mSearchInterface, + SIGNAL(handleBatchDocuments(int,int,CpixDocument**)), this, + SLOT(getBatchDocumentAsync(int,int,CpixDocument**))); } } @@ -222,7 +242,5 @@ { return true; } - return false; - } diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/indevicehandler/tsrc/t_indevicehandler/src/t_indevicehandler.cpp --- a/searchui/indevicehandler/tsrc/t_indevicehandler/src/t_indevicehandler.cpp Tue Jul 06 14:17:22 2010 +0300 +++ b/searchui/indevicehandler/tsrc/t_indevicehandler/src/t_indevicehandler.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -1,7 +1,7 @@ #include "t_indevicehandler.h" #include "indevicehandler.h" #include -#include +#include SearchInDeviceHandlerTest::SearchInDeviceHandlerTest() { } @@ -48,7 +48,7 @@ QTest::qWait(2000); QSignalSpy spy(indevicehandler, - SIGNAL(handleDocument(int, QCPixDocument*))); + SIGNAL(handleDocument(int, CpixDocument*))); indevicehandler->getDocumentAsyncAtIndex(0); QTest::qWait(2000); QCOMPARE(spy.count(), 1); @@ -72,7 +72,7 @@ indevicehandler->searchAsync("jpg*"); QTest::qWait(2000); QSignalSpy spy(indevicehandler, - SIGNAL(handleDocument(int, QCPixDocument*))); + SIGNAL(handleDocument(int, CpixDocument*))); indevicehandler->getDocumentAsyncAtIndex(0); QTest::qWait(2000); QCOMPARE(spy.count(), 1); diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/onlinehandler/tsrc/t_baiduplugin/src/t_baiduplugin.cpp --- a/searchui/onlinehandler/tsrc/t_baiduplugin/src/t_baiduplugin.cpp Tue Jul 06 14:17:22 2010 +0300 +++ b/searchui/onlinehandler/tsrc/t_baiduplugin/src/t_baiduplugin.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -77,7 +77,7 @@ popup->setHeadingWidget(label); HbAction * action = new HbAction(hbTrId("Back"), popup); connect(action, SIGNAL(triggered()), this, SLOT(BackEvent())); - popup->setPrimaryAction(action); + popup->addAction(action); popup->show(); #else QString url("http://www.baidu.com/s?wd="); diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/onlinehandler/tsrc/t_bingplugin/src/t_bingplugin.cpp --- a/searchui/onlinehandler/tsrc/t_bingplugin/src/t_bingplugin.cpp Tue Jul 06 14:17:22 2010 +0300 +++ b/searchui/onlinehandler/tsrc/t_bingplugin/src/t_bingplugin.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -78,7 +78,7 @@ popup->setHeadingWidget(label); HbAction * action = new HbAction(hbTrId("Back"), popup); connect(action, SIGNAL(triggered()), this, SLOT(BackEvent())); - popup->setPrimaryAction(action); + popup->addAction(action); popup->show(); #else QString url("http://www.bing.com/search?q="); diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/onlinehandler/tsrc/t_googleplugin/src/t_googleplugin.cpp --- a/searchui/onlinehandler/tsrc/t_googleplugin/src/t_googleplugin.cpp Tue Jul 06 14:17:22 2010 +0300 +++ b/searchui/onlinehandler/tsrc/t_googleplugin/src/t_googleplugin.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -81,7 +81,7 @@ popup->setHeadingWidget(label); HbAction * action = new HbAction(hbTrId("Back"), popup); connect(action, SIGNAL(triggered()), this, SLOT(BackEvent())); - popup->setPrimaryAction(action); + popup->addAction(action); popup->show(); #else qDebug() << "search:activatePlugin armvs" ; diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/onlinehandler/tsrc/t_onlinehandler/src/t_onlinehandler.cpp --- a/searchui/onlinehandler/tsrc/t_onlinehandler/src/t_onlinehandler.cpp Tue Jul 06 14:17:22 2010 +0300 +++ b/searchui/onlinehandler/tsrc/t_onlinehandler/src/t_onlinehandler.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -54,9 +54,9 @@ { OnlineHandler* onlinetestobj = new OnlineHandler(); onlinetestobj->readSettings(); - QSignalSpy spy(onlinetestobj, SIGNAL(pluginIntialized(bool))); + // QSignalSpy spy(onlinetestobj, SIGNAL(pluginIntialized(bool))); onlinetestobj->initializePlugin(); - QCOMPARE(spy.count(), 1); + // QCOMPARE(spy.count(), 1); delete onlinetestobj; } void SearchOnlineHandlerTest::testactivatePlugin() @@ -118,9 +118,9 @@ OnlineHandler* onlinetestobj = new OnlineHandler(); onlinetestobj->readSettings(); onlinetestobj->initializePlugin(); - QSignalSpy spy(onlinetestobj, SIGNAL(pluginShutdown(bool))); + // QSignalSpy spy(onlinetestobj, SIGNAL(pluginShutdown(bool))); onlinetestobj->unloadPluginandExit(); - QCOMPARE(spy.count(), 1); + //QCOMPARE(spy.count(), 1); delete onlinetestobj; } diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/rom/searchresources.iby --- a/searchui/rom/searchresources.iby Tue Jul 06 14:17:22 2010 +0300 +++ b/searchui/rom/searchresources.iby Wed Aug 18 09:49:49 2010 +0300 @@ -23,7 +23,7 @@ #include //Language resource files -data=DATAZ_\QT_TRANSLATIONS_DIR\searchsw.qm QT_TRANSLATIONS_DIR\searchsw.qm +data=DATAZ_\QT_TRANSLATIONS_DIR\search.qm QT_TRANSLATIONS_DIR\search.qm // Application resource file. data=DATAZ_/resource/apps/Searchapplication.RSC /resource/apps/Searchapplication.RSC diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/runtimeproviders/searchruntimeprovider/inc/searchruntime.h --- a/searchui/runtimeproviders/searchruntimeprovider/inc/searchruntime.h Tue Jul 06 14:17:22 2010 +0300 +++ b/searchui/runtimeproviders/searchruntimeprovider/inc/searchruntime.h Wed Aug 18 09:49:49 2010 +0300 @@ -89,24 +89,11 @@ private: /** - * Creates gui service parts - * @since S60 ?S60_version. - */ - void createGuiServiceParts(); - - /** * Creates states * @since S60 ?S60_version. */ void createStates(); -private: - - /** - * Window to visualize scene - */ - HbMainWindow *mWindow; - SEARCH_FRIEND_CLASS (SearchRuntimeProviderTest) }; diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/runtimeproviders/searchruntimeprovider/src/searchruntime.cpp --- a/searchui/runtimeproviders/searchruntimeprovider/src/searchruntime.cpp Tue Jul 06 14:17:22 2010 +0300 +++ b/searchui/runtimeproviders/searchruntimeprovider/src/searchruntime.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -24,7 +24,6 @@ #include #include #include -#include #define hbApp qobject_cast(qApp) @@ -40,9 +39,8 @@ // --------------------------------------------------------------------------- // SearchRuntime::SearchRuntime(QObject* aParent) : - QStateMachine(aParent), mWindow(0) + QStateMachine(aParent) { - createGuiServiceParts(); createStates(); } @@ -52,8 +50,6 @@ // SearchRuntime::~SearchRuntime() { - delete mWindow; - // delete mStateMachine; } // --------------------------------------------------------------------------- @@ -73,24 +69,12 @@ { emit stopped(); } - -// --------------------------------------------------------------------------- -// SearchRuntime::createGuiServiceParts() -// --------------------------------------------------------------------------- -// -void SearchRuntime::createGuiServiceParts() - { - mWindow = new HbMainWindow(); - mWindow->show(); - } - // --------------------------------------------------------------------------- // SearchRuntime::createStates() // --------------------------------------------------------------------------- // void SearchRuntime::createStates() { - SearchStateProvider stateProvider; QFinalState* finalState = new QFinalState(); @@ -143,13 +127,13 @@ connect(wizardSettingState, SIGNAL(publishSelectedCategory(int,bool)), wizardProgressiveState, SLOT(getSettingCategory(int,bool))); - + connect(wizardSettingState, SIGNAL(publishISProviderIcon(int,HbIcon)), wizardProgressiveState, SLOT(slotISProvidersIcon(int,HbIcon))); connect(wizardProgressiveState, SIGNAL(inDeviceSearchQuery(QString)), wizardOnlineState, SLOT(slotIndeviceQuery(QString))); - + connect(wizardProgressiveState, SIGNAL(launchLink(int,QString)), wizardOnlineState, SLOT(slotlaunchLink(int,QString))); @@ -189,5 +173,4 @@ connect(this, SIGNAL(started()), SLOT(handleStateMachineStarted())); connect(this, SIGNAL(stopped()), SLOT(handleStateMachineStopped())); connect(this, SIGNAL(finished()), SLOT(handleStateMachineStopped())); - } diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/stateproviders/searchstateprovider/inc/searchonlinestate.h --- a/searchui/stateproviders/searchstateprovider/inc/searchonlinestate.h Tue Jul 06 14:17:22 2010 +0300 +++ b/searchui/stateproviders/searchstateprovider/inc/searchonlinestate.h Wed Aug 18 09:49:49 2010 +0300 @@ -21,11 +21,13 @@ #include SEARCH_CLASS( SearchStateProviderTest) -class HbDocumentLoader; +class HbListWidget; class HbView; class HbSearchPanel; class HbMainWindow; class OnlineHandler; +class SearchUiLoader; + /** @ingroup group_searchonlinestate * @brief The state handles wizard activation and interaction. * @@ -78,8 +80,7 @@ * @since S60 ?S60_version. */ void activateSignals(); - - void createui(); + public slots: /** @@ -154,6 +155,11 @@ */ void onlineSearchQuery(QString); + /** + * Signalled when UI is ready on online state + */ + void applicationReady(); + private: HbMainWindow* mMainWindow; /** @@ -169,22 +175,24 @@ HbSearchPanel* mSearchPanel; /** - * HbDocumentLoader instance. + * The List View widget. */ - HbDocumentLoader* mDocumentLoader; + HbListWidget* mListView; /** * OnlineHandler instance. */ OnlineHandler* mInternetHandler; + SearchUiLoader* mUiLoader; + /** * search keyword. */ QString mSearchQuery; bool mSearchReady; bool mIndeviceQueryAvailable; - bool mIsUICreated; + /** * friend class for unit testing */ diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/stateproviders/searchstateprovider/inc/searchprogressivestate.h --- a/searchui/stateproviders/searchstateprovider/inc/searchprogressivestate.h Tue Jul 06 14:17:22 2010 +0300 +++ b/searchui/stateproviders/searchstateprovider/inc/searchprogressivestate.h Wed Aug 18 09:49:49 2010 +0300 @@ -63,16 +63,16 @@ #endif //OST_TRACE_COMPILER_IN_USE class HbMainWindow; class HbView; -class HbDocumentLoader; class HbSearchPanel; class CFbsBitmap; class InDeviceHandler; -class QCPixDocument; +class CpixDocument; class NotesEditorInterface; class EventViewerPluginInterface; class HbListWidget; class HbListWidgetItem; class QPluginLoader; +class SearchUiLoader; SEARCH_CLASS( SearchStateProviderTest) /** @ingroup group_searchstateprovider * @brief The state where progressive search state is shown @@ -144,11 +144,20 @@ */ void constructHandlers(); + InDeviceHandler* constructHandlers(int mDatabase); + /** * setting the categories . * @since S60 ?S60_version. */ void setSelectedCategories(); + + /** + * parse the result documents. + * @since S60 ?S60_version. + */ + void parseDocument(CpixDocument* aDoc); + public slots: /** @@ -165,7 +174,16 @@ * @param aError error code. * @param aDoc result item */ - void onGetDocumentComplete(int aError, QCPixDocument* aDoc); + void onGetDocumentComplete(int aError, CpixDocument* aDoc); + + /** + * slot connects to CSearchHandler to get the result item asynchronously + * @since S60 ?S60_version. + * @param aError error code. + * @param aDoc result item + */ + void onGetBatchDocumentComplete(int aError, int aCount, + CpixDocument** aDoc); /** * slot connects to list view to launch the respective application @@ -205,7 +223,7 @@ /** * slot connects to search state for internet search * @since S60 ?S60_version. - */ + */ void handleOk(const QVariant& var); @@ -220,15 +238,37 @@ * Slot implemented to delete the calenderviewer plugin * @since S60 ?S60_version. */ - void _viewingCompleted(); + /** + * Slot to notify when view is ready + * @since S60 ?S60_version. + */ void viewReady(); - + + /** + * Slot to notify form query update form online state + * @since S60 ?S60_version. + */ void slotOnlineQuery(QString); - + + /** + * Slot to update the online service providers for suggestion links + * @since S60 ?S60_version. + */ void slotISProvidersIcon(int, HbIcon); + /** + * Slot to launch the search result screen with the activity URI + * @since S60 ?S60_version. + */ + void activityRequested(const QString &name); + + /** + * Slot to notify when theme is changed + * @since S60 ?S60_version. + */ + void slotPrepareResultIcons(); private: /** @@ -283,14 +323,14 @@ void LaunchApplicationL(const TUid aUid); /** - * Function to parse the QCPixDocument with the given filter + * Function to parse the CpixDocument with the given filter */ - QString filterDoc(const QCPixDocument* aDoc, const QString& filter); + QString filterDoc(const CpixDocument* aDoc, const QString& filter); /** - * Function to parse the QCPixDocument with the given filters + * Function to parse the CpixDocument with the given filters */ - QStringList filterDoc(const QCPixDocument* aDoc, const QString& filter1, + QStringList filterDoc(const CpixDocument* aDoc, const QString& filter1, const QString& filter2, const QString& filter3 = QString()); /** @@ -312,10 +352,15 @@ * setting state will be activated. */ void switchProToSettingsState(); - + void inDeviceSearchQuery(QString); - void launchLink(int,QString); + void launchLink(int, QString); + + /** + * Signalled when UI is ready on progressive state + */ + void applicationReady(); private: HbMainWindow* mMainWindow; @@ -333,19 +378,11 @@ HbListWidget* mListView; /** - * Document handler to load .docml. - * Own. - */ - HbDocumentLoader* mDocumentLoader; - - /** * The searchpanel widget. * Own. */ HbSearchPanel* mSearchPanel; - - /** * qt interface for CPix engine * Own. @@ -444,9 +481,9 @@ * */ QPluginLoader *mNotespluginLoader; - + QMap mISprovidersIcon; - + bool mOnlineQueryAvailable; private: @@ -467,6 +504,13 @@ * */ QSize mListViewIconSize; + + SearchUiLoader* mUiLoader; + + bool mStateStatus; + + bool mValidateHandlerCreation; + #ifdef OST_TRACE_COMPILER_IN_USE QTime m_totalSearchUiTime; QTime m_categorySearchUiTime; diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/stateproviders/searchstateprovider/inc/searchuiloader.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/searchui/stateproviders/searchstateprovider/inc/searchuiloader.h Wed Aug 18 09:49:49 2010 +0300 @@ -0,0 +1,224 @@ +/* + * 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: Declaration of the Ui Loader . + * + */ +#ifndef SEARCH_CONTROLLER_H +#define SEARCH_CONTROLLER_H + +#include "search_global.h" +#include +#include +#include +class HbDocumentLoader; +class HbView; +class HbListWidget; +class HbSearchPanel; +class TsTaskSettings; +class SearchMainWindow; +class HbShrinkingVkbHost; +SEARCH_CLASS( SearchStateProviderTest) + +class SearchUiLoader : public QObject + { +Q_OBJECT +public: + + /** + * Singleton construtor + * @since S60 ?S60_version. + */ + static SearchUiLoader* instance() + { + static QMutex mutex; + if (!m_instance) + { + mutex.lock(); + m_instanceCounter++; + if (!m_instance) + { + m_instance = new SearchUiLoader; + } + mutex.unlock(); + } + + return m_instance; + } + + /** + * Singleton destructor + * @since S60 ?S60_version. + */ + static void deleteinstance() + { + m_instanceCounter--; + if ((m_instanceCounter <= 0) && (m_instance)) + { + delete m_instance; + m_instance = 0; + } + } +public slots: + + /** + * Slot to send the application to background fake exit + * @since S60 ?S60_version. + */ + void slotsendtobackground(); + + /** + * Slot to open vkb + * @since S60 ?S60_version. + */ + void slotbringvkb(); + +public: + + /** + * Function returns the HbListWidget object + * @param aUid Unique app Id. + */ + HbView* View() + { + return mView; + } + + /** + * Function returns the HbListWidget object + * @param aUid Unique app Id. + */ + HbListWidget* ListWidget() + { + return mListWidget; + } + + /** + * Function returns the HbSearchPanel object + * @param aUid Unique app Id. + */ + HbSearchPanel* SearchPanel() + { + return mSearchPanel; + } +private: + /** + * Constructor. + * @since S60 ?S60_version. + * @param aParent Owner. + */ + SearchUiLoader(); + /** + * Destructor. + * @since S60 ?S60_version. + */ + ~SearchUiLoader(); +private: + + /** + * static instance to make single instance + * Own. + */ + static SearchUiLoader *m_instance; + + /** + * counter for number for instance + * Own. + */ + static int m_instanceCounter; + + /** + * Doucument loader API + * Own. + */ + HbDocumentLoader* mDocumentLoader; + + /** + * Application view + * Own. + */ + HbView* mView; + + /** + * Listwidget to show the search results + * Own. + */ + HbListWidget* mListWidget; + + /** + * searchpanel for query + * Own. + */ + HbSearchPanel* mSearchPanel; + + /** + * to hide for task switcher + * Own. + */ + TsTaskSettings* mClient; + + /** + * application main window + */ + SearchMainWindow* mMainWindow; + + /** + * vkbhost to resize the result screen + * Own. + */ + HbShrinkingVkbHost* mVirtualKeyboard; + + /** + * flag to validate fake exit + * Own. + */ + bool mBringtoForground; +private: + SEARCH_FRIEND_CLASS ( SearchStateProviderTest) + }; + +class SearchMainWindow : public HbMainWindow + { +Q_OBJECT +public: + /** + * Constructor. + * @since S60 ?S60_version. + */ + SearchMainWindow() + { + connect(this, SIGNAL(viewReady()), this, SLOT(slotViewReady())); + } + /** + * Function capture the focusin event + * @param event . + */ + void focusInEvent(QFocusEvent * event) + { + Q_UNUSED(event); + slotViewReady(); + } +public slots: + /** + * Slot to send the application to background fake exit + * @since S60 ?S60_version. + */ + void slotViewReady(); +signals: + /** + * signal to send the notification for vkb + * @since S60 ?S60_version. + */ + void bringvkb(); + }; +#endif //SEARCH_CONTROLLER_H diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/stateproviders/searchstateprovider/inc/settingswidget.h --- a/searchui/stateproviders/searchstateprovider/inc/settingswidget.h Tue Jul 06 14:17:22 2010 +0300 +++ b/searchui/stateproviders/searchstateprovider/inc/settingswidget.h Wed Aug 18 09:49:49 2010 +0300 @@ -112,9 +112,7 @@ */ void initialize(); - - void setSettingsFilePath(); - + void loadIS(); public slots: @@ -139,7 +137,7 @@ void slotproviderDetails(QString, HbIcon, int); void slotdefaultProvider(const int); - + void slotitemSelected(int); signals: /** @@ -157,8 +155,8 @@ * */ void selectedItemCategory(int, bool); - - void ISProvidersIcon(HbIcon,int); + + void ISProvidersIcon(HbIcon, int); private: /** @@ -250,10 +248,9 @@ bool mchangestate; OnlineHandler *mInternetHandler; - // QStringList mServiceProviders; + QMap mServiceProviders; - - QString mSettingFileName; -SEARCH_FRIEND_CLASS (SearchStateProviderTest) + + SEARCH_FRIEND_CLASS (SearchStateProviderTest) }; #endif diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/stateproviders/searchstateprovider/resources/resources.qrc --- a/searchui/stateproviders/searchstateprovider/resources/resources.qrc Tue Jul 06 14:17:22 2010 +0300 +++ b/searchui/stateproviders/searchstateprovider/resources/resources.qrc Wed Aug 18 09:49:49 2010 +0300 @@ -1,6 +1,6 @@ - searchstateprovider.docml - delimeterscreen.docml + searchstateprovider.docml.bin + delimeterscreen.docml.bin diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/stateproviders/searchstateprovider/searchstateprovider.pro --- a/searchui/stateproviders/searchstateprovider/searchstateprovider.pro Tue Jul 06 14:17:22 2010 +0300 +++ b/searchui/stateproviders/searchstateprovider/searchstateprovider.pro Wed Aug 18 09:49:49 2010 +0300 @@ -36,9 +36,12 @@ LIBS += -L$$PWD/../../../bin/debug } + +DOCML += resources/searchstateprovider.docml resources/delimeterscreen.docml + LIBS += -lsearchindevicehandler LIBS += -lxqservice -LIBS += -lqcpixsearchclient +LIBS += -lcpixsearch LIBS += -laknskins LIBS += -lfbscli LIBS += -laknicon @@ -52,6 +55,7 @@ LIBS += -lapgrfx LIBS += -lws32 LIBS += -lavkon +LIBS += -ltstaskmonitorclient.dll coverage:DEFINES += COVERAGE_MEASUREMENT diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/stateproviders/searchstateprovider/src/searchonlinestate.cpp --- a/searchui/stateproviders/searchstateprovider/src/searchonlinestate.cpp Tue Jul 06 14:17:22 2010 +0300 +++ b/searchui/stateproviders/searchstateprovider/src/searchonlinestate.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -17,7 +17,7 @@ #include "searchonlinestate.h" #include "onlinehandler.h" -#include +#include "searchuiloader.h" #include #include #include @@ -30,24 +30,35 @@ #include #include #include +#include #define hbApp qobject_cast(qApp) -const char *SEARCHONLINESTATE_DOCML = ":/xml/searchstateprovider.docml"; -const char *ONLINE_TOC_VIEW = "tocView"; -const char *ONLINE_TUT_SEARCHPANEL_WIDGET = "searchPanel"; // --------------------------------------------------------------------------- // SearchOnlineState::SearchOnlineState // --------------------------------------------------------------------------- // SearchOnlineState::SearchOnlineState(QState *parent) : - QState(parent), mMainWindow(NULL), mView(NULL), mSearchPanel(NULL), - mDocumentLoader(NULL) + QState(parent), mMainWindow(NULL), mView(NULL), mSearchPanel(NULL) { - + mUiLoader = SearchUiLoader::instance(); mInternetHandler = new OnlineHandler(); mSearchReady = true; mIndeviceQueryAvailable = false; - mIsUICreated = false; + + mMainWindow = hbInstance->allMainWindows().at(0); + + mView = mUiLoader->View(); + mListView = mUiLoader->ListWidget(); + mSearchPanel = mUiLoader->SearchPanel(); + if (mSearchPanel) + { + mSearchPanel->setFocus(); + } + if (mView && mMainWindow) + { + mMainWindow->addView(mView); + mMainWindow->setCurrentView(mView); + } //activateSignals(); } // --------------------------------------------------------------------------- @@ -56,44 +67,9 @@ // SearchOnlineState::~SearchOnlineState() { - delete mDocumentLoader; + SearchUiLoader::deleteinstance(); delete mInternetHandler; } -void SearchOnlineState::createui() - { - mMainWindow = hbInstance->allMainWindows().at(0); - mDocumentLoader = new HbDocumentLoader(); - bool ok = false; - mDocumentLoader->load(SEARCHONLINESTATE_DOCML, &ok); - - QGraphicsWidget *widget = mDocumentLoader->findWidget(ONLINE_TOC_VIEW); - Q_ASSERT_X(ok && (widget != 0), "ONLINE_TOC_VIEW", "invalid view"); - - mView = qobject_cast (widget); - if (mView) - { - mView->setTitle(hbTrId("txt_search_title_search")); - } - - mSearchPanel = qobject_cast ( - mDocumentLoader->findWidget(ONLINE_TUT_SEARCHPANEL_WIDGET)); - if (mSearchPanel) - { - mSearchPanel->setSearchOptionsEnabled(true); - - mSearchPanel->setProgressive(false); - - mSearchPanel->setPlaceholderText(hbTrId( - "txt_search_dialog_search_internet")); - - mSearchPanel->setCancelEnabled(false); - } - if (mView && mMainWindow) - { - mMainWindow->addView(mView); - mMainWindow->setCurrentView(mView); - } - } // --------------------------------------------------------------------------- // SearchOnlineState::onEntry // --------------------------------------------------------------------------- @@ -102,12 +78,16 @@ { qDebug() << "search:SearchOnlineState::onEntry"; QState::onEntry(event); - if (!mIsUICreated) + if (mSearchPanel) { - createui(); - mIsUICreated = true; + mSearchPanel->setProgressive(false); + mSearchPanel->setPlaceholderText(hbTrId( + "txt_search_dialog_search_internet")); } - + if (mListView) + { + mListView->setVisible(false); + } activateSignals(); // If this is not the current view, we're getting back from plugin view if (mMainWindow) @@ -243,8 +223,11 @@ // --------------------------------------------------------------------------- void SearchOnlineState::slotIndeviceQuery(QString str) { - mSearchQuery = str; - mIndeviceQueryAvailable = true; + if (mSearchQuery != str) + { + mSearchQuery = str; + mIndeviceQueryAvailable = true; + } } // --------------------------------------------------------------------------- // SearchOnlineState::slotlaunchLink @@ -271,4 +254,5 @@ } } }//PERF_APP_LAUNCH_END("SearchAppplication View is ready"); + emit applicationReady(); } diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/stateproviders/searchstateprovider/src/searchprogressivestate.cpp --- a/searchui/stateproviders/searchstateprovider/src/searchprogressivestate.cpp Tue Jul 06 14:17:22 2010 +0300 +++ b/searchui/stateproviders/searchstateprovider/src/searchprogressivestate.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -16,18 +16,17 @@ */ #include "searchprogressivestate.h" #include "indevicehandler.h" -#include -#include +#include "searchuiloader.h" +#include +#include #include #include #include #include #include #include -#include #include #include -#include #include #include #include @@ -53,80 +52,39 @@ #include #include #include +#include #define hbApp qobject_cast(qApp) -const char *SEARCHSTATEPROVIDER_DOCML = ":/xml/searchstateprovider.docml"; -const char *TOC_VIEW = "tocView"; -const char *TUT_SEARCHPANEL_WIDGET = "searchPanel"; -const char *TUT_LIST_VIEW = "listView"; -const int totalcategories = 10; +const int totalcategories_normalreason = 10; +const int totalcategories_activityreasonreason = 13; +const int intial_iteration = 3; +const int batch_iteration = 20; // --------------------------------------------------------------------------- // SearchProgressiveState::SearchProgressiveState // --------------------------------------------------------------------------- SearchProgressiveState::SearchProgressiveState(QState *parent) : QState(parent), mMainWindow(NULL), mView(NULL), mListView(NULL), - mDocumentLoader(NULL), mSearchHandler(NULL), mNotesEditor(0), - mAiwMgr(0), mRequest(0) + mSearchHandler(NULL), mNotesEditor(0), mAiwMgr(0), mRequest(0) { + mUiLoader = SearchUiLoader::instance(); mMainWindow = hbInstance->allMainWindows().at(0); mAiwMgr = new XQApplicationManager; - mDocumentLoader = new HbDocumentLoader(); - bool ok = false; - mDocumentLoader->load(SEARCHSTATEPROVIDER_DOCML, &ok); - - QGraphicsWidget *widget = mDocumentLoader->findWidget(TOC_VIEW); - Q_ASSERT_X(ok && (widget != 0), "TOC_VIEW", "invalid view"); - - mView = qobject_cast (widget); - if (mView) - { - mView->setTitle(hbTrId("txt_search_title_search")); - } - - mListView = qobject_cast (mDocumentLoader->findWidget( - TUT_LIST_VIEW)); - Q_ASSERT_X(ok && (mListView != 0), "TUT_LIST_VIEW", "invalid viewocML file"); + mView = mUiLoader->View(); + mListView = mUiLoader->ListWidget(); + mSearchPanel = mUiLoader->SearchPanel(); - if (mListView) - { - HbAbstractViewItem *prototype = mListView->itemPrototypes().first(); - HbFrameBackground frame; - frame.setFrameGraphicsName("qtg_fr_list_normal"); - frame.setFrameType(HbFrameDrawer::NinePieces); - prototype->setDefaultFrame(frame); + HbStyle style; + qreal x; + style.parameter("hb-param-graphic-size-primary-large", x); + QSizeF size(x, x); + mListViewIconSize = size.toSize(); - HbListViewItem *prototypeListView = qobject_cast ( - prototype); - prototypeListView->setGraphicsSize(HbListViewItem::LargeIcon); - if (prototypeListView) - { - HbStyle style; - qreal x; - style.parameter("hb-param-graphic-size-primary-large", x); - QSizeF size(x, x); - mListViewIconSize = size.toSize(); - prototypeListView->setTextFormat(Qt::RichText); - } - - HbAbstractItemView::ItemAnimations noCreationAndRemovalAnimations = - HbAbstractItemView::All; - noCreationAndRemovalAnimations ^= HbAbstractItemView::Appear; - noCreationAndRemovalAnimations ^= HbAbstractItemView::Disappear; - mListView->setEnabledAnimations(noCreationAndRemovalAnimations); - } - - mSearchPanel = qobject_cast ( - mDocumentLoader->findWidget(TUT_SEARCHPANEL_WIDGET)); if (mSearchPanel) { - mSearchPanel->setSearchOptionsEnabled(true); - mSearchPanel->setPlaceholderText(hbTrId( "txt_search_dialog_search_device")); - - mSearchPanel->setCancelEnabled(false); mSearchPanel->setFocus(); } @@ -143,24 +101,12 @@ mResultparser = 0; loadSettings = true; - //Icon creation in array - RArray appUid; - appUid.Append(TUid::Uid(0x20022EF9));//contact - appUid.Append(TUid::Uid(0x10207C62));//audio - appUid.Append(TUid::Uid(0x200211FE));//video - appUid.Append(TUid::Uid(0x20000A14));//image - appUid.Append(TUid::Uid(0x2001FE79));//msg - appUid.Append(TUid::Uid(0x200255BA));//email - appUid.Append(TUid::Uid(0x10005901));//calender - appUid.Append(TUid::Uid(0x20029F80));//notes - //appUid.Append(TUid::Uid(0x20022F35));//application - appUid.Append(TUid::Uid(0x10008D39));//bookmark - appUid.Append(TUid::Uid(0x2002BCC0));//files + if (hbApp) + { + connect(hbApp->activityManager(), SIGNAL(activityRequested(QString)), + this, SLOT(activityRequested(QString))); + } - for (int i = 0; i < appUid.Count(); i++) - { - TRAP_IGNORE(mIconArray.append(getAppIconFromAppIdL(appUid[i]))); - } #ifdef OST_TRACE_COMPILER_IN_USE //start() the timers to avoid worrying abt having to start()/restart() later m_categorySearchApiTime.start(); @@ -188,6 +134,13 @@ } mOnlineQueryAvailable = false; + //Prepare the icons,listen of theme change + connect(hbInstance->theme(), SIGNAL(changeFinished()), this, + SLOT(slotPrepareResultIcons())); + slotPrepareResultIcons(); + + // creating the handler if it is not prepared, useful when user try to create before + mValidateHandlerCreation = false; } // --------------------------------------------------------------------------- // SearchProgressiveState::~SearchProgressiveState @@ -198,10 +151,6 @@ { delete mAiwMgr; } - if (mDocumentLoader) - { - delete mDocumentLoader; - } for (int i = 0; i < mSearchHandlerList.count(); i++) { delete mSearchHandlerList.at(i); @@ -211,70 +160,22 @@ mNotespluginLoader->unload(); delete mNotespluginLoader; } + SearchUiLoader::deleteinstance(); } // --------------------------------------------------------------------------- // SearchProgressiveState::constructHandlers // --------------------------------------------------------------------------- void SearchProgressiveState::constructHandlers() { - InDeviceHandler* handler = NULL; - for (int i = 0; i < totalcategories; i++) + int categories = totalcategories_normalreason; + + if (hbApp && hbApp->activateReason() == Hb::ActivationReasonActivity) { - handler = new InDeviceHandler(); - switch (i) - { - case 0: - { - handler->setCategory(""); - break; - } - case 1: - { - handler->setCategory("contact"); - break; - } - case 2: - { - handler->setCategory("media"); - break; - } - case 3: - { - handler->setCategory("msg"); - break; - } - case 4: - { - handler->setCategory("msg email"); - break; - } - case 5: - { - handler->setCategory("calendar"); - break; - } - case 6: - { - handler->setCategory("notes"); - break; - } - case 7: - { - handler->setCategory("applications"); - break; - } - case 8: - { - handler->setCategory("file"); - break; - } - case 9: - { - handler->setCategory("bookmark"); - break; - } - } - mSearchHandlerList.append(handler); + categories = totalcategories_activityreasonreason; + } + for (int i = 0; i < categories; i++) + { + mSearchHandlerList.append(constructHandlers(i)); } } // --------------------------------------------------------------------------- @@ -284,8 +185,19 @@ { // WMS_LOG << "::onEntry"; QState::onEntry(event); + + mStateStatus = true;// used for conditional execution for the slots that are connected as transitions + if (mSearchPanel) + { + mSearchPanel->setPlaceholderText(hbTrId( + "txt_search_dialog_search_device")); + mSearchPanel->setProgressive(true); + } + if (mListView) + { + mListView->setVisible(true); + } activateSignals(); - // If this is not the current view, we're getting back from plugin view if (mMainWindow) { @@ -297,6 +209,7 @@ } if (loadSettings) { + // to get the intial settings form delimeter emit switchProToSettingsState(); loadSettings = false; } @@ -313,6 +226,7 @@ void SearchProgressiveState::onExit(QEvent *event) { QState::onExit(event); + mStateStatus = false; deActivateSignals(); } // --------------------------------------------------------------------------- @@ -326,8 +240,12 @@ SIGNAL(handleAsyncSearchResult(int,int)), this, SLOT(onAsyncSearchComplete(int,int))); connect(mSearchHandlerList.at(i), - SIGNAL(handleDocument(int,QCPixDocument*)), this, - SLOT(onGetDocumentComplete(int,QCPixDocument*))); + SIGNAL(handleDocument(int,CpixDocument*)), this, + SLOT(onGetDocumentComplete(int,CpixDocument*))); + connect(mSearchHandlerList.at(i), + SIGNAL(handleBatchDocument(int,int,CpixDocument**)), this, + SLOT(onGetBatchDocumentComplete(int,int,CpixDocument**))); + } if (mListView) { @@ -341,9 +259,7 @@ connect(mSearchPanel, SIGNAL(searchOptionsClicked()), this, SLOT(setSettings())); } - connect(mMainWindow, SIGNAL(viewReady()), this, SLOT(viewReady())); - } // --------------------------------------------------------------------------- // SearchProgressiveState::deActivateSignals @@ -356,8 +272,11 @@ SIGNAL(handleAsyncSearchResult(int,int)), this, SLOT(onAsyncSearchComplete(int,int))); disconnect(mSearchHandlerList.at(i), - SIGNAL(handleDocument(int,QCPixDocument*)), this, - SLOT(onGetDocumentComplete(int,QCPixDocument*))); + SIGNAL(handleDocument(int,CpixDocument*)), this, + SLOT(onGetDocumentComplete(int,CpixDocument*))); + disconnect(mSearchHandlerList.at(i), + SIGNAL(handleBatchDocument(int,int,CpixDocument**)), this, + SLOT(onGetBatchDocumentComplete(int,int,CpixDocument**))); } if (mListView) { @@ -404,185 +323,56 @@ // SearchProgressiveState::onGetDocumentComplete // --------------------------------------------------------------------------- void SearchProgressiveState::onGetDocumentComplete(int aError, - QCPixDocument* aDoc) + CpixDocument* aDoc) { - PERF_CAT_GETDOC_TIME_ACCUMULATE - if (aDoc == NULL || aError != 0) + if (aError) return; - QStringList liststr; - QString secondrow = aDoc->excerpt(); - QString firstrow; - HbListWidgetItem* listitem = new HbListWidgetItem(); - - if (aDoc->baseAppClass().contains("contact")) - { - QStringList docsList = filterDoc(aDoc, "GivenName", "FamilyName"); - if (docsList.value(0, "").length()) - { - firstrow.append(docsList.at(0)); - } - if (docsList.value(1, "").length()) - { - if (firstrow.length()) - firstrow.append(" "); - firstrow.append(docsList.at(1)); - } - if (firstrow.length() == 0) - { - firstrow = hbTrId("txt_phob_dblist_unnamed"); - } - liststr << firstrow << secondrow; - listitem->setData(mIconArray.at(0), Qt::DecorationRole); - } - else if (aDoc->baseAppClass().contains("audio")) - { - QStringList audioList = filterDoc(aDoc, "Title", "MediaId"); - if (audioList.value(0, "").length()) - { - firstrow.append(audioList.at(0)); - } - if (firstrow.length() == 0) - { - firstrow = hbTrId("txt_mus_dblist_val_unknown4"); - } - liststr << firstrow << secondrow; - listitem->setData(mIconArray.at(1), Qt::DecorationRole); - if (audioList.value(1, "").length()) - { - listitem->setData(audioList.at(1), Qt::UserRole + 2); - } - } - else if (aDoc->baseAppClass().contains("video")) - { - QStringList videoList = filterDoc(aDoc, "Title", "MediaId", "Name"); - if (videoList.value(0, "").length()) - { - firstrow.append(videoList.at(0)); - } - if (firstrow.length() == 0 && videoList.value(2, "").length()) - { - firstrow.append(videoList.at(2)); - } - liststr << firstrow << secondrow; - listitem->setData(mIconArray.at(2), Qt::DecorationRole); - if (videoList.value(1, "").length()) - { - listitem->setData(videoList.at(1), Qt::UserRole + 2); - } - } - else if (aDoc->baseAppClass().contains("image")) - { - QStringList imageList = filterDoc(aDoc, "Name", "MediaId"); - if (imageList.value(0, "").length()) - { - firstrow.append(imageList.at(0)); - } - liststr << firstrow << secondrow; - listitem->setData(mIconArray.at(3), Qt::DecorationRole); - if (imageList.value(1, "").length()) - { - listitem->setData(imageList.at(1), Qt::UserRole + 2); - } - } - else if (aDoc->baseAppClass().contains("msg email")) - { - qDebug() << "searchui:on Get doc email"; - QStringList emailList = filterDoc(aDoc, "Sender", "MailBoxId", - "FolderId"); - - qDebug() << "searchui:recipients" << emailList.at(0) << emailList.at( - 1) << emailList.at(2); - firstrow.append(emailList.at(0)); - listitem->setData(emailList.at(1), Qt::UserRole + 2); - listitem->setData(emailList.at(2), Qt::UserRole + 3); - liststr << firstrow << secondrow; - listitem->setData(mIconArray.at(5), Qt::DecorationRole); - } - else if (aDoc->baseAppClass().contains("msg")) - { - QStringList msgList = filterDoc(aDoc, "Subject", "Body"); - if (msgList.value(0, "").length()) - { - firstrow.append(msgList.at(0)); - } - else - { - if (msgList.value(1, "").length()) - firstrow.append(msgList.at(1)); - } - if (firstrow.length() == 0) - { - firstrow = " ";// space if subject and body are missing - } - liststr << firstrow << secondrow; - listitem->setData(mIconArray.at(4), Qt::DecorationRole); - } - else if (aDoc->baseAppClass().contains("calendar")) - { - firstrow.append(filterDoc(aDoc, "Summary")); - if (firstrow.length() == 0) - { - firstrow = hbTrId("txt_calendar_preview_unnamed"); - } - - liststr << firstrow << secondrow; - listitem->setData(mIconArray.at(6), Qt::DecorationRole); - } - else if (aDoc->baseAppClass().contains("notes")) - { - firstrow.append(filterDoc(aDoc, "Memo")); - if (firstrow.length() == 0) - { - firstrow = hbTrId("txt_notes_dblist_unnamed"); - } - liststr << firstrow << secondrow; - listitem->setData(mIconArray.at(7), Qt::DecorationRole); - } - else if (aDoc->baseAppClass().contains("applications")) - { - firstrow.append(filterDoc(aDoc, "Name")); - liststr << firstrow; - bool ok; - TRAP_IGNORE(listitem->setData(getAppIconFromAppIdL(TUid::Uid(aDoc->docId().toInt( - &ok, 16))), Qt::DecorationRole)); - } - else if (aDoc->baseAppClass().contains("bookmark")) - { - firstrow.append(filterDoc(aDoc, "Name")); - if (firstrow.length() == 0) - { - firstrow = "UnKnown"; - } - liststr << firstrow << secondrow; - listitem->setData(secondrow, Qt::UserRole + 2); - listitem->setData(mIconArray.at(8), Qt::DecorationRole); - } - else if (aDoc->baseAppClass().contains("file")) - { - firstrow.append(filterDoc(aDoc, "Name")); - if (firstrow.length() == 0) - firstrow = aDoc->baseAppClass(); - liststr << firstrow << secondrow; - listitem->setData(mIconArray.at(9), Qt::DecorationRole); - } - listitem->setText(firstrow); - listitem->setSecondaryText(secondrow); - listitem->setData(aDoc->docId(), Qt::UserRole); - listitem->setData(aDoc->baseAppClass(), Qt::UserRole + 1); - mListView->addItem(listitem); - + parseDocument(aDoc); mResultparser++; if (mResultparser < mResultcount) { PERF_CAT_GETDOC_TIME_RESTART - mSearchHandler->getDocumentAsyncAtIndex(mResultparser); + if (mResultparser < intial_iteration) + { + mSearchHandler->getDocumentAsyncAtIndex(mResultparser); + } + else + { + mSearchHandler->getBatchDocumentAsyncAtIndex(mResultparser, + batch_iteration); + } } else { PERF_CAT_GETDOC_ACCUMULATOR_ENDLOG searchOnCategory(mSearchString); } + } +// --------------------------------------------------------------------------- +// SearchProgressiveState::onGetDocumentComplete +// --------------------------------------------------------------------------- +void SearchProgressiveState::onGetBatchDocumentComplete(int aError, + int aCount, CpixDocument** aDoc) + { + if (aError) + return; + for (int i = 0; i < aCount; i++) + { + parseDocument(aDoc[i]); + } delete aDoc; + mResultparser += aCount; + if (mResultparser < mResultcount) + { + PERF_CAT_GETDOC_TIME_RESTART + mSearchHandler->getBatchDocumentAsyncAtIndex(mResultparser, + batch_iteration); + } + else + { + PERF_CAT_GETDOC_ACCUMULATOR_ENDLOG + searchOnCategory(mSearchString); + } } // --------------------------------------------------------------------------- // SearchProgressiveState::getSettingCategory @@ -597,7 +387,8 @@ void SearchProgressiveState::openResultitem(HbListWidgetItem * item) { if (item == NULL) - return;PERF_RESULT_ITEM_LAUNCH_TIME_RESTART + return; + PERF_RESULT_ITEM_LAUNCH_TIME_RESTART QList args; bool t; mRequest = NULL; @@ -605,7 +396,7 @@ { PERF_RESULT_ITEM_FOR_LAUNCHING("contact") mRequest = mAiwMgr->create("com.nokia.services.phonebookservices", - "Fetch", "open(int)", false); + "Fetch", "open(int)", true); int uid = (item->data(Qt::UserRole)).toInt(&t); args << uid; @@ -614,7 +405,7 @@ { PERF_RESULT_ITEM_FOR_LAUNCHING("bookmark") QDesktopServices::openUrl(item->data(Qt::UserRole + 2).toString()); -PERF_RESULT_ITEM_LAUNCH_TIME_ENDLOG ("") + PERF_RESULT_ITEM_LAUNCH_TIME_ENDLOG ("") } else if (item->data(Qt::UserRole + 1).toString().contains("calendar")) @@ -622,10 +413,10 @@ QDir pluginDir = QDir(QString("z:/resource/qt/plugins/calendar")); QPluginLoader *calAgandaViewerPluginLoader = new QPluginLoader( pluginDir.absoluteFilePath(QString( - "agendaeventviewerplugin.qtplugin"))); + "agendaeventviewerplugin.qtplugin"))); calAgandaViewerPluginInstance = qobject_cast< - EventViewerPluginInterface *> ( + EventViewerPluginInterface *> ( calAgandaViewerPluginLoader->instance()); connect(calAgandaViewerPluginInstance, SIGNAL(viewingCompleted()), @@ -638,7 +429,7 @@ else if (item->data(Qt::UserRole + 1).toString().contains("applications")) { PERF_RESULT_ITEM_FOR_LAUNCHING("applications") - TRAP_IGNORE(LaunchApplicationL(TUid::Uid((item->data(Qt::UserRole)).toString().toInt(&t, 16)))); + TRAP_IGNORE(LaunchApplicationL(TUid::Uid((item->data(Qt::UserRole)).toString().toUInt(&t, 16)))); PERF_RESULT_ITEM_LAUNCH_TIME_ENDLOG("") } else if (item->data(Qt::UserRole + 1).toString().contains("file")) @@ -646,7 +437,7 @@ PERF_RESULT_ITEM_FOR_LAUNCHING("file") QString uid = item->data(Qt::UserRole).toString(); QFile file(uid); - mRequest = mAiwMgr->create(file, false); + mRequest = mAiwMgr->create(file, true); args << file.fileName(); } else if ((item->data(Qt::UserRole + 1).toString().contains("video")) @@ -659,14 +450,14 @@ uid.append(':'); uid.append(item->data(Qt::UserRole).toString()); QFile file(uid); - mRequest = mAiwMgr->create(file, false); + mRequest = mAiwMgr->create(file, true); args << file.fileName(); } else if (item->data(Qt::UserRole + 1).toString().contains("notes")) { PERF_RESULT_ITEM_FOR_LAUNCHING("notes") - if(mNotesEditor) + if (mNotesEditor) { mNotesEditor->edit(item->data(Qt::UserRole).toInt()); } @@ -677,23 +468,24 @@ mRequest = mAiwMgr->create("nmail", "com.nokia.symbian.IEmailMessageView", - "viewMessage(QVariant,QVariant,QVariant)", false); + "viewMessage(QVariant,QVariant,QVariant)", true); args << item->data(Qt::UserRole + 2).toULongLong(&t) << item->data( - Qt::UserRole + 3).toULongLong(&t) << item->data(Qt::UserRole).toULongLong(&t); + Qt::UserRole + 3).toULongLong(&t) + << item->data(Qt::UserRole).toULongLong(&t); } else if (item->data(Qt::UserRole + 1).toString().contains("msg")) { PERF_RESULT_ITEM_FOR_LAUNCHING("msg") - mRequest = mAiwMgr->create("com.nokia.services.hbserviceprovider", - "conversationview", "view(int)", false); + mRequest = mAiwMgr->create("messaging", + "com.nokia.symbian.IMessageView", "view(int)", true); int uid = (item->data(Qt::UserRole)).toInt(&t); args << uid; } - else if(item->data(Qt::UserRole + 1).toString().contains("links")) + else if (item->data(Qt::UserRole + 1).toString().contains("links")) { - emit launchLink((item->data(Qt::UserRole)).toInt(&t),mOriginalString); + emit launchLink((item->data(Qt::UserRole)).toInt(&t), mOriginalString); } if (mRequest) { @@ -725,7 +517,7 @@ void SearchProgressiveState::handleOk(const QVariant& var) { Q_UNUSED(var); -PERF_RESULT_ITEM_LAUNCH_TIME_ENDLOG ("") + PERF_RESULT_ITEM_LAUNCH_TIME_ENDLOG ("") } // --------------------------------------------------------------------------- // SearchProgressiveState::handleError @@ -782,7 +574,7 @@ void SearchProgressiveState::searchOnCategory(const QString aKeyword) { #ifdef OST_TRACE_COMPILER_IN_USE - if( mDatabasecount != 0 ) + if (mDatabasecount != 0) {//Search just started. PERF_CAT_UI_ENDLOG } @@ -800,6 +592,18 @@ { mSearchHandler = mSearchHandlerList.at(1); } + else if (mTemplist.at(mDatabasecount).contains("image")) + { + mSearchHandler = mSearchHandlerList.at(10); + } + else if (mTemplist.at(mDatabasecount).contains("audio")) + { + mSearchHandler = mSearchHandlerList.at(11); + } + else if (mTemplist.at(mDatabasecount).contains("video")) + { + mSearchHandler = mSearchHandlerList.at(12); + } else if (mTemplist.at(mDatabasecount).contains("media")) { mSearchHandler = mSearchHandlerList.at(2); @@ -834,7 +638,7 @@ } // mSearchHandler->setCategory(mTemplist.at(mDatabasecount)); mDatabasecount++; - if (mSearchHandler->isPrepared()) + if (mSearchHandler != NULL && mSearchHandler->isPrepared()) { PERF_CAT_API_TIME_RESTART mSearchHandler->searchAsync(aKeyword, "_aggregate"); @@ -863,6 +667,26 @@ { PERF_CAT_TOTAL_TIME_RESTART mOriginalString = aKeyword.trimmed(); + + if (!mValidateHandlerCreation) + { + for (int i = 0; i < mSearchHandlerList.count(); i++) + { + /* ignoring bookmark to getrid of unnecesary check as bookmark support is withdrawn + * keeping perfomance into consideration, otherwise not + */ + if (!mSearchHandlerList.at(i)->isPrepared() && (i != 9)) + { + constructHandlers(i); + mValidateHandlerCreation = false; + } + else + { + mValidateHandlerCreation = true; + } + } + } + for (int i = 0; i < mSearchHandlerList.count(); i++) { mSearchHandlerList.at(i)->cancelLastSearch(); @@ -875,12 +699,9 @@ { mDatabasecount = 0; mLinkindex = 0; - //Prefix query mSearchString = "$prefix(\""; mSearchString += mOriginalString; mSearchString += "\")"; - /*mSearchString = mOriginalString; - mSearchString.append('*');*/ searchOnCategory(mSearchString); } } @@ -899,7 +720,7 @@ // --------------------------------------------------------------------------- void SearchProgressiveState::settingsaction(bool avalue) { - if (avalue) + if (avalue && mStateStatus) { QMapIterator i(mTempSelectedCategory); QMapIterator j(mSelectedCategory); @@ -1046,7 +867,6 @@ CleanupStack::PopAndDestroy(apaMaskedBitmap); } CleanupStack::PopAndDestroy(&apaLsSession); - if (icon.isNull() || !(icon.size().isValid())) icon = HbIcon("qtg_large_application"); return icon; @@ -1059,7 +879,6 @@ { CFbsBitmap *bitamp(0); CFbsBitmap *mask(0); - if (AknIconUtils::IsMifFile(fileName)) { // SVG icon @@ -1072,17 +891,13 @@ AknIconUtils::CreateIconLC(bitamp, mask, fileName, bitmapIndex, maskIndex); } - AknIconUtils::DisableCompression(bitamp); AknIconUtils::SetSize(bitamp, TSize(size.width(), size.height()), EAspectRatioPreservedAndUnusedSpaceRemoved); - AknIconUtils::DisableCompression(mask); AknIconUtils::SetSize(mask, TSize(size.width(), size.height()), EAspectRatioPreservedAndUnusedSpaceRemoved); - fromBitmapAndMaskToPixmapL(bitamp, mask, pixmap); - // bitmap and icon, AknsUtils::CreateIconLC doesn't specify the order CleanupStack::Pop(2); } @@ -1186,7 +1001,7 @@ // --------------------------------------------------------------------------- // SearchProgressiveState::filterDoc // --------------------------------------------------------------------------- -QString SearchProgressiveState::filterDoc(const QCPixDocument* aDoc, +QString SearchProgressiveState::filterDoc(const CpixDocument* aDoc, const QString& filter) { for (int i = 0; i < aDoc->fieldCount(); i++) @@ -1201,7 +1016,7 @@ // --------------------------------------------------------------------------- // SearchProgressiveState::filterDoc // --------------------------------------------------------------------------- -QStringList SearchProgressiveState::filterDoc(const QCPixDocument* aDoc, +QStringList SearchProgressiveState::filterDoc(const CpixDocument* aDoc, const QString& filter1, const QString& filter2, const QString& filter3) { @@ -1318,7 +1133,7 @@ CleanupStack::PopAndDestroy(&appArcSession); } CleanupStack::PopAndDestroy(&wsSession); -PERF_RESULT_ITEM_LAUNCH_TIME_ENDLOG ("") + PERF_RESULT_ITEM_LAUNCH_TIME_ENDLOG ("") } // --------------------------------------------------------------------------- // SearchProgressiveState::_viewingCompleted @@ -1327,7 +1142,7 @@ { if (calAgandaViewerPluginInstance) calAgandaViewerPluginInstance->deleteLater(); -PERF_RESULT_ITEM_LAUNCH_TIME_ENDLOG ("") + PERF_RESULT_ITEM_LAUNCH_TIME_ENDLOG ("") } // --------------------------------------------------------------------------- // SearchProgressiveState::viewReady @@ -1340,17 +1155,383 @@ { QVariantHash params = hbApp->activateParams(); QString searchKey = params.value("query").toString(); + params.remove("query"); + params.remove("activityname"); + QList list = params.values(); + mTemplist.clear(); + for (int i = 0; i < list.count(); i++) + { + QString str = list.at(i).toString(); + if (!str.isNull()) + mTemplist.append(str); + } if (searchKey.length() > 0) mSearchPanel->setCriteria(searchKey); } - }PERF_APP_LAUNCH_END("SearchAppplication View is ready"); + } + PERF_APP_LAUNCH_END("SearchAppplication View is ready"); + emit applicationReady(); } +// --------------------------------------------------------------------------- +// SearchProgressiveState::slotOnlineQuery +// --------------------------------------------------------------------------- void SearchProgressiveState::slotOnlineQuery(QString str) { - mOriginalString = str; - mOnlineQueryAvailable = true; + if (mOriginalString != str) + { + mOriginalString = str; + mOnlineQueryAvailable = true; + } } +// --------------------------------------------------------------------------- +// SearchProgressiveState::slotISProvidersIcon +// --------------------------------------------------------------------------- void SearchProgressiveState::slotISProvidersIcon(int id, HbIcon icon) { mISprovidersIcon.insert(id, icon); } +// --------------------------------------------------------------------------- +// SearchProgressiveState::slotPrepareResultIcons +// --------------------------------------------------------------------------- +void SearchProgressiveState::slotPrepareResultIcons() + { + //Icon creation in array + QStringList icons; + icons << "qtg_large_phonebook" << "qtg_large_tone" << "qtg_large_video" + << "qtg_large_photos" << "qtg_large_message" << "qtg_large_email" + << "qtg_large_calendar" << "qtg_large_notes" + << "qtg_large_web_link" << "qtg_large_text" << "qtg_large_sisx" + << "qtg_large_java" << "qtg_large_flash" << "qtg_large_folder" + << "qtg_large_query"; + mIconArray.clear(); + for (int i = 0; i < icons.count(); i++) + { + HbIcon icon(icons.at(i)); + if (icon.isNull() || !(icon.size().isValid())) + icon = HbIcon("qtg_large_application"); + mIconArray.append(icon); + } + /*QList appUid; + appUid.append(TUid::Uid(0x20022EF9));//contact + appUid.append(TUid::Uid(0x10207C62));//audio + appUid.append(TUid::Uid(0x200211FE));//video + appUid.append(TUid::Uid(0x20000A14));//image + appUid.append(TUid::Uid(0x2001FE79));//msg + appUid.append(TUid::Uid(0x200255BA));//email + appUid.append(TUid::Uid(0x10005901));//calender + appUid.append(TUid::Uid(0x20029F80));//notes + //appUid.Append(TUid::Uid(0x20022F35));//application + appUid.append(TUid::Uid(0x10008D39));//bookmark + appUid.append(TUid::Uid(0x2002BCC0));//files + + for (int i = 0; i < appUid.count(); i++) + { + TRAP_IGNORE(mIconArray.append(getAppIconFromAppIdL(appUid.at(i)))); + }*/ + } +// --------------------------------------------------------------------------- +// SearchProgressiveState::activityRequested +// --------------------------------------------------------------------------- +void SearchProgressiveState::activityRequested(const QString &name) + { + /* when search application is launched in normal and then supporting for activity uri + * for normal search launching "media" is used instead of "media image","media audio","media video" + */ + if (mSearchHandlerList.count() != totalcategories_activityreasonreason) + { + InDeviceHandler* handler = NULL; + handler->setCategory("media image"); + mSearchHandlerList.append(handler); + handler->setCategory("media audio"); + mSearchHandlerList.append(handler); + handler->setCategory("media video"); + mSearchHandlerList.append(handler); + } + if (name == "SearchDeviceQueryView") + { + QVariantHash params = hbApp->activateParams(); + QString searchKey = params.value("query").toString(); + int i = params.count(); + params.remove("query"); + params.remove("activityname"); + QList list = params.values(); + int j = list.count(); + mTemplist.clear(); + for (int i = 0; i < list.count(); i++) + { + QString str = list.at(i).toString(); + if (!str.isNull()) + mTemplist.append(str); + } + if (searchKey.length() > 0) + mSearchPanel->setCriteria(searchKey); + } + } +// --------------------------------------------------------------------------- +// SearchProgressiveState::parseDocument +// --------------------------------------------------------------------------- +void SearchProgressiveState::parseDocument(CpixDocument* aDoc) + { + PERF_CAT_GETDOC_TIME_ACCUMULATE + if (aDoc == NULL) + return; + QString secondrow = aDoc->excerpt(); + QString firstrow; + HbListWidgetItem* listitem = new HbListWidgetItem(); + + if (aDoc->baseAppClass().contains("contact")) + { + QStringList docsList = filterDoc(aDoc, "GivenName", "FamilyName"); + if (docsList.value(0, "").length()) + { + firstrow.append(docsList.at(0)); + } + if (docsList.value(1, "").length()) + { + if (firstrow.length()) + firstrow.append(" "); + firstrow.append(docsList.at(1)); + } + if (firstrow.length() == 0) + { + firstrow = hbTrId("txt_phob_dblist_unnamed"); + } + listitem->setData(mIconArray.at(0), Qt::DecorationRole); + } + else if (aDoc->baseAppClass().contains("audio")) + { + QStringList audioList = filterDoc(aDoc, "Title", "MediaId"); + if (audioList.value(0, "").length()) + { + firstrow.append(audioList.at(0)); + } + if (firstrow.length() == 0) + { + firstrow = hbTrId("txt_mus_dblist_val_unknown4"); + } + listitem->setData(mIconArray.at(1), Qt::DecorationRole); + if (audioList.value(1, "").length()) + { + listitem->setData(audioList.at(1), Qt::UserRole + 2); + } + } + else if (aDoc->baseAppClass().contains("video")) + { + QStringList videoList = filterDoc(aDoc, "Title", "MediaId", "Name"); + if (videoList.value(0, "").length()) + { + firstrow.append(videoList.at(0)); + } + if (firstrow.length() == 0 && videoList.value(2, "").length()) + { + firstrow.append(videoList.at(2)); + } + listitem->setData(mIconArray.at(2), Qt::DecorationRole); + if (videoList.value(1, "").length()) + { + listitem->setData(videoList.at(1), Qt::UserRole + 2); + } + } + else if (aDoc->baseAppClass().contains("image")) + { + QStringList imageList = filterDoc(aDoc, "Name", "MediaId"); + if (imageList.value(0, "").length()) + { + firstrow.append(imageList.at(0)); + } + listitem->setData(mIconArray.at(3), Qt::DecorationRole); + if (imageList.value(1, "").length()) + { + listitem->setData(imageList.at(1), Qt::UserRole + 2); + } + } + else if (aDoc->baseAppClass().contains("msg email")) + { + QStringList emailList = filterDoc(aDoc, "Sender", "MailBoxId", + "FolderId"); + firstrow.append(emailList.at(0)); + listitem->setData(emailList.at(1), Qt::UserRole + 2); + listitem->setData(emailList.at(2), Qt::UserRole + 3); + listitem->setData(mIconArray.at(5), Qt::DecorationRole); + } + else if (aDoc->baseAppClass().contains("msg")) + { + QStringList msgList = filterDoc(aDoc, "Folder", "To", "From"); + if (msgList.value(0).contains("Inbox")) + { + firstrow.append(msgList.at(2)); + } + else + { + if (msgList.value(1, "").length()) + firstrow.append(msgList.at(1)); + } + listitem->setData(mIconArray.at(4), Qt::DecorationRole); + } + else if (aDoc->baseAppClass().contains("calendar")) + { + firstrow.append(filterDoc(aDoc, "Summary")); + if (firstrow.length() == 0) + { + firstrow = hbTrId("txt_calendar_preview_unnamed"); + } + listitem->setData(mIconArray.at(6), Qt::DecorationRole); + } + else if (aDoc->baseAppClass().contains("notes")) + { + firstrow.append(filterDoc(aDoc, "Memo")); + if (firstrow.length() == 0) + { + firstrow = hbTrId("txt_notes_dblist_unnamed"); + } + listitem->setData(mIconArray.at(7), Qt::DecorationRole); + } + else if (aDoc->baseAppClass().contains("applications")) + { + firstrow.append(filterDoc(aDoc, "Name")); + bool ok; + TRAP_IGNORE(listitem->setData(getAppIconFromAppIdL(TUid::Uid(aDoc->docId().toUInt( + &ok, 16))), Qt::DecorationRole)); + } + else if (aDoc->baseAppClass().contains("bookmark")) + { + firstrow.append(filterDoc(aDoc, "Name")); + if (firstrow.length() == 0) + { + firstrow = "UnKnown"; + } + listitem->setData(secondrow, Qt::UserRole + 2); + listitem->setData(mIconArray.at(8), Qt::DecorationRole); + } + else if (aDoc->baseAppClass().contains("file folder")) + { + bool ok; + QStringList fileList = filterDoc(aDoc, "Name", "IsFolder", + "Extension"); + firstrow = fileList.at(0); + if (fileList.at(1).toInt(&ok) == 1) // folder result icon map + + { + listitem->setData(mIconArray.at(13), Qt::DecorationRole); + } + else + { + if (fileList.at(2).contains("sis", Qt::CaseInsensitive) + || fileList.at(1).contains("sisx", Qt::CaseInsensitive)) + { + listitem->setData(mIconArray.at(10), Qt::DecorationRole); + } + else if (fileList.at(2).contains("java", Qt::CaseInsensitive) + || fileList.at(2).contains("jar", Qt::CaseInsensitive) + || fileList.at(2).contains("jad", Qt::CaseInsensitive)) + { + listitem->setData(mIconArray.at(11), Qt::DecorationRole); + } + else if (fileList.at(2).contains("swf", Qt::CaseInsensitive)) + { + listitem->setData(mIconArray.at(12), Qt::DecorationRole); + } + else + { + listitem->setData(mIconArray.at(14), Qt::DecorationRole); + } + } + } + else if (aDoc->baseAppClass().contains("file")) + { + QStringList fileList = filterDoc(aDoc, "Name", "Extension"); + firstrow = fileList.at(0); + if (firstrow.length() == 0) + firstrow = aDoc->baseAppClass(); + if (fileList.at(1).contains("txt", Qt::CaseInsensitive)) + { + listitem->setData(mIconArray.at(9), Qt::DecorationRole); + } + else + { + listitem->setData(mIconArray.at(14), Qt::DecorationRole); + } + } + listitem->setText(firstrow); + listitem->setSecondaryText(secondrow); + listitem->setData(aDoc->docId(), Qt::UserRole); + listitem->setData(aDoc->baseAppClass(), Qt::UserRole + 1); + mListView->addItem(listitem); + + delete aDoc; + } + +InDeviceHandler* SearchProgressiveState::constructHandlers(int mDatabase) + { + InDeviceHandler* handler = NULL; + handler = new InDeviceHandler(); + switch (mDatabase) + { + case 0: + { + handler->setCategory(""); + break; + } + case 1: + { + handler->setCategory("contact"); + break; + } + case 2: + { + handler->setCategory("media"); + break; + } + case 3: + { + handler->setCategory("msg"); + break; + } + case 4: + { + handler->setCategory("msg email"); + break; + } + case 5: + { + handler->setCategory("calendar"); + break; + } + case 6: + { + handler->setCategory("notes"); + break; + } + case 7: + { + handler->setCategory("applications"); + break; + } + case 8: + { + handler->setCategory("file"); + break; + } + case 9: + { + // handler->setCategory("bookmark"); + break; + } + case 10: + { + handler->setCategory("media image"); + break; + } + case 11: + { + handler->setCategory("media audio"); + break; + } + case 12: + { + handler->setCategory("media video"); + break; + } + } + return handler; + } diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/stateproviders/searchstateprovider/src/searchuiloader.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/searchui/stateproviders/searchstateprovider/src/searchuiloader.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -0,0 +1,162 @@ +/* + * 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: Implementation of the uicontroller. + * + */ + +#include "searchuiloader.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +const char *SEARCHSTATEPROVIDER_DOCML = ":/xml/searchstateprovider.docml"; +const char *TOC_VIEW = "tocView"; +const char *TUT_SEARCHPANEL_WIDGET = "searchPanel"; +const char *TUT_LIST_VIEW = "listView"; + +SearchUiLoader *SearchUiLoader::m_instance = 0; +int SearchUiLoader::m_instanceCounter = 0; + +// --------------------------------------------------------------------------- +// SearchUiLoader::SearchUiLoader +// --------------------------------------------------------------------------- +SearchUiLoader::SearchUiLoader() : + mDocumentLoader(NULL), mView(NULL), mListWidget(NULL), + mSearchPanel(NULL), mClient(NULL), mMainWindow(NULL) + { + bool ok = false; + + mDocumentLoader = new HbDocumentLoader(); + + mDocumentLoader->load(SEARCHSTATEPROVIDER_DOCML, &ok); + + QGraphicsWidget *widget = mDocumentLoader->findWidget(TOC_VIEW); + + Q_ASSERT_X(ok && (widget != 0), "TOC_VIEW", "invalid view"); + + mView = qobject_cast (widget); + + if (mView) + { + mView->setTitle(hbTrId("txt_search_title_search")); + } + + mListWidget = qobject_cast (mDocumentLoader->findWidget( + TUT_LIST_VIEW)); + + Q_ASSERT_X(ok && (mListWidget != 0), "TUT_LIST_VIEW", "invalid viewocML file"); + + if (mListWidget) + { + HbAbstractViewItem *prototype = mListWidget->itemPrototypes().first(); + HbFrameBackground frame; + frame.setFrameGraphicsName("qtg_fr_list_normal"); + frame.setFrameType(HbFrameDrawer::NinePieces); + prototype->setDefaultFrame(frame); + HbListViewItem *prototypeListView = qobject_cast ( + prototype); + prototypeListView->setGraphicsSize(HbListViewItem::LargeIcon); + if (prototypeListView) + { + prototypeListView->setTextFormat(Qt::RichText); + } + HbAbstractItemView::ItemAnimations noCreationAndRemovalAnimations = + HbAbstractItemView::All; + noCreationAndRemovalAnimations ^= HbAbstractItemView::Appear; + noCreationAndRemovalAnimations ^= HbAbstractItemView::Disappear; + mListWidget->setEnabledAnimations(noCreationAndRemovalAnimations); + } + + mSearchPanel = qobject_cast ( + mDocumentLoader->findWidget(TUT_SEARCHPANEL_WIDGET)); + if (mSearchPanel) + { + Qt::InputMethodHints hints = mSearchPanel->inputMethodHints(); + hints |= Qt::ImhNoPredictiveText; + mSearchPanel->setInputMethodHints(hints); + mSearchPanel->setSearchOptionsEnabled(true); + mSearchPanel->setCancelEnabled(false); + } + + mMainWindow = new SearchMainWindow(); + connect(mMainWindow, SIGNAL(bringvkb()), this, SLOT(slotbringvkb())); + + HbAction *action = new HbAction(Hb::DoneNaviAction); + connect(action, SIGNAL(triggered()), this, SLOT(slotsendtobackground())); + mView->setNavigationAction(action); + + mVirtualKeyboard = new HbShrinkingVkbHost(mView); + + mBringtoForground = true; + } +// --------------------------------------------------------------------------- +// SearchUiLoader::~SearchUiLoader +// --------------------------------------------------------------------------- +SearchUiLoader::~SearchUiLoader() + { + delete mMainWindow; + delete mDocumentLoader; + delete mClient; + } +// --------------------------------------------------------------------------- +// SearchUiLoader::slotsendtobackground +// --------------------------------------------------------------------------- +void SearchUiLoader::slotsendtobackground() + { + if (!mClient) + mClient = new TsTaskSettings; + mClient->setVisibility(false); + mListWidget->clear(); + mSearchPanel->setCriteria(QString()); + mMainWindow->lower(); + mBringtoForground = true; + } +// --------------------------------------------------------------------------- +// SearchUiLoader::slotbringvkb +// --------------------------------------------------------------------------- +void SearchUiLoader::slotbringvkb() + { + if (mBringtoForground) + { + if (!mClient) + mClient = new TsTaskSettings; + mClient->setVisibility(true); + mSearchPanel->setFocus(); + QInputContext *ic = qApp->inputContext(); + if (ic) + { + mBringtoForground = false; + QEvent *event = new QEvent(QEvent::RequestSoftwareInputPanel); + ic->filterEvent(event); + delete event; + } + } + } +// --------------------------------------------------------------------------- +// SearchMainWindow::slotViewReady +// --------------------------------------------------------------------------- +void SearchMainWindow::slotViewReady() + { + emit bringvkb(); + } diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/stateproviders/searchstateprovider/src/settingswidget.cpp --- a/searchui/stateproviders/searchstateprovider/src/settingswidget.cpp Tue Jul 06 14:17:22 2010 +0300 +++ b/searchui/stateproviders/searchstateprovider/src/settingswidget.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -15,6 +15,7 @@ * */ #include "settingswidget.h" +#include "onlinehandler.h" #include #include #include @@ -38,7 +39,7 @@ #include #include #include -#include "onlinehandler.h" + const char *DELIMETER_DOCML = ":/xml/delimeterscreen.docml"; const char *DIALOG = "dialog"; const char *DATAFORM = "dataForm"; @@ -52,19 +53,16 @@ mModel(NULL), mSelectedScope(0), mSelectedProvider(0), comboBox( NULL), mInternetHandler(NULL) { - setSettingsFilePath(); for (int i = 0; i < 8; i++) { mDeviceMapping.append(false); } - mDeviceCategoryRefList = (QStringList() << "first" << "second" << "third" << "fourth" << "fifth" << "sixth" << "seventh" << "eigth"); mchangestate = true; mInstialize = true; isInternetSelected = false; - storeDefaultSettings(); } //---------------------------------------------------------------------------------------------------------------------------- @@ -84,7 +82,6 @@ { widget = mDocumentLoader->findWidget(DIALOG); Q_ASSERT_X(ok && (widget != 0), "DIALOG", "invalid view"); - popup = qobject_cast (widget); } if (!dataform) @@ -101,7 +98,6 @@ { signalMapper = new QSignalMapper(this); } - createGui(); } //---------------------------------------------------------------------------------------------------------------------------- @@ -237,6 +233,7 @@ connect(mradiolist, SIGNAL(itemSelected(int)), this, SLOT(slotitemSelected(int))); } + setActionVisibility(); } //---------------------------------------------------------------------------------------------------------------------------- //SettingsWidget::preparecategories() @@ -245,15 +242,27 @@ void SettingsWidget::preparecategories() { // read form database - QString mConnectionName("cpixcontentinfo.sq"); - QString mDatabaseName("c:\\Private\\2001f6fb\\cpixcontentinfo.sq"); + + mDeviceListDisplay.clear(); + mCategoryList.clear(); + mDeviceMapping.clear(); + for (int i = 0; i < 8; i++) + { + mDeviceMapping.append(false); + } + mCategoryDbMapping.clear(); + + QString mConnectionName(QString::fromUtf16(KContentInfoFileName().Ptr(), + KContentInfoFileName().Length())); + QString mDatabaseName(QString::fromUtf16(KCIDBPath().Ptr(), + KCIDBPath().Length()) + "\\" + mConnectionName); QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE", mConnectionName); db.setDatabaseName(mDatabaseName); QSqlQuery query(QSqlDatabase::database(mConnectionName)); - QString statement = "SELECT NAME FROM table1"; - + QString statement = QString("SELECT * FROM ") + QString::fromUtf16( + KContentInfoTableName().Ptr(), KContentInfoTableName().Length()); query.prepare(statement); query.exec(); while (query.next()) @@ -268,7 +277,6 @@ { mCategoryDbMapping.insert(category_name, true); } - qDebug() << "string db= " << category_name; } db.close(); @@ -284,8 +292,6 @@ mCategoryDbMapping.insert("Bookmarks", true); mCategoryDbMapping.insert("Files", true); */ - // mCategoryDbMapping.insert("email", true); // to remove once email starts working - mDeviceListDisplay.append(hbTrId("txt_search_list_select_all")); mDeviceMapping.insert(0, true); @@ -294,46 +300,39 @@ mDeviceMapping.insert(1, true); mDeviceListDisplay.append(hbTrId("txt_search_list_contatcs")); } - if (mCategoryDbMapping.value("Audios") || mCategoryDbMapping.value( "Images") || mCategoryDbMapping.value("Videos")) { mDeviceListDisplay.append(hbTrId("txt_search_list_media")); mDeviceMapping.insert(2, true); } - if (mCategoryDbMapping.value("Messages") || mCategoryDbMapping.value( "email")) { mDeviceListDisplay.append(hbTrId("txt_search_list_messagemail")); mDeviceMapping.insert(3, true); } - if (mCategoryDbMapping.value("Calendar") || mCategoryDbMapping.value( "Notes")) { mDeviceListDisplay.append(hbTrId("txt_search_list_calendarnotes")); mDeviceMapping.insert(4, true); } - if (mCategoryDbMapping.value("Applications")) { mDeviceListDisplay.append(hbTrId("txt_search_list_applications")); mDeviceMapping.insert(5, true); } - if (mCategoryDbMapping.value("Bookmarks")) { mDeviceListDisplay.append(hbTrId("txt_search_list_bookmarks")); mDeviceMapping.insert(6, true); } - if (mCategoryDbMapping.value("Files")) { mDeviceListDisplay.append(hbTrId("txt_search_list_all_other_files")); mDeviceMapping.insert(7, true); } - // internetCategoryList = (QStringList() << "Google" << "Bing" << "Yahoo"); if (mServiceProviders.count()) { @@ -345,7 +344,6 @@ mCategoryList = (QStringList() << hbTrId("txt_search_list_device")); } } - //---------------------------------------------------------------------------------------------------------------------------- //SettingsWidget::~SettingsWidget() // @@ -353,17 +351,13 @@ SettingsWidget::~SettingsWidget() { delete signalMapper; - //delete popup; - //delete dataform; delete mModel; - //delete mradiolist; mDeviceCheckBoxList.clear(); mInternetCheckBoxList.clear(); mModelItemList.clear(); mActions.clear(); delete mDocumentLoader; delete mInternetHandler; - //delete popup; } //---------------------------------------------------------------------------------------------------------------------------- //SettingsWidget::launchSettingWidget() @@ -376,6 +370,17 @@ initialize(); mInstialize = false; } + if (mDeviceListDisplay.count() != 7) + { + preparecategories(); + q_currentIndexChanged(mSelectedScope); + QDir dir; + dir.remove(SETTINGS_INI_PATH); + storeDefaultSettings(); + } + // refresh the screen to top + QModelIndex index = mModel->index(0, 0); + dataform->scrollTo(index); comboBox->setCurrentIndex(mSelectedScope); loadDeviceSettings(); setActionVisibility(); @@ -393,18 +398,21 @@ if (mDeviceCheckBoxList.at(i)->checkState() == Qt::Checked) { noItemSelected = false; + break; } } if (!isInternetSelected) { - for (int i = 0; i < mActions.count(); i++) - popup->removeAction(mActions.at(i)); - popup->addActions(mActions); + mActions.at(0)->setVisible(true); if (noItemSelected) { - popup->removeAction(mActions.at(0)); + mActions.at(0)->setVisible(false); } } + else + { + mActions.at(0)->setVisible(true); + } } //---------------------------------------------------------------------------------------------------------------------------- //SettingsWidget::itemChecked( int selectedIndex) @@ -489,7 +497,7 @@ void SettingsWidget::storeSettingsToiniFile() { - QSettings appSettings(mSettingFileName, QSettings::IniFormat); + QSettings appSettings(SETTINGS_INI_PATH, QSettings::IniFormat); isInternetSelected ? (mSelectedScope = 1) : (mSelectedScope = 0); appSettings.setValue("selectedcategory", mSelectedScope); appSettings.setValue("devicecount", mDeviceCategoryRefList.count()); @@ -517,10 +525,8 @@ appSettings.setValue(mDeviceCategoryRefList.at(i), 0); emit selectedItemCategory(i, false); } - } } - } //---------------------------------------------------------------------------------------------------------------------------- //void SettingsWidget::loadBaseSettings() @@ -528,7 +534,7 @@ //---------------------------------------------------------------------------------------------------------------------------- void SettingsWidget::loadBaseSettings() { - QSettings appSettings(mSettingFileName, QSettings::IniFormat); + QSettings appSettings(SETTINGS_INI_PATH, QSettings::IniFormat); mSelectedScope = appSettings.value("selectedcategory", 0).toInt(); mSelectedScope ? (isInternetSelected = true) : (isInternetSelected = false); @@ -540,7 +546,7 @@ //---------------------------------------------------------------------------------------------------------------------------- void SettingsWidget::loadDeviceSettings() { - QSettings appSettings(mSettingFileName, QSettings::IniFormat); + QSettings appSettings(SETTINGS_INI_PATH, QSettings::IniFormat); int value; if (!isInternetSelected) { @@ -549,7 +555,6 @@ { value = appSettings.value(mDeviceCategoryRefList.at(i), 1).toInt(); - if (mDeviceMapping.count() && mDeviceCheckBoxList.count() && mDeviceMapping.at(i)) { @@ -566,7 +571,6 @@ value ? (emit selectedItemCategory(i, true)) : (emit selectedItemCategory(i, false)); - } } } @@ -579,14 +583,13 @@ loadBaseSettings(); return isInternetSelected; } - //---------------------------------------------------------------------------------------------------------------------------- //void SettingsWidget::storeDefaultSettings() // //---------------------------------------------------------------------------------------------------------------------------- void SettingsWidget::storeDefaultSettings() { - QSettings appSettings(mSettingFileName, QSettings::IniFormat); + QSettings appSettings(SETTINGS_INI_PATH, QSettings::IniFormat); if (!appSettings.contains("selectedcategory")) // change the settings for the first time only { mSelectedScope = 0; @@ -596,15 +599,27 @@ appSettings.setValue(mDeviceCategoryRefList.at(i), 1); } } +//---------------------------------------------------------------------------------------------------------------------------- +//void SettingsWidget::slotproviderDetails() +// +//---------------------------------------------------------------------------------------------------------------------------- void SettingsWidget::slotproviderDetails(QString name, HbIcon icon, int id) { mServiceProviders.insert(id, name); emit ISProvidersIcon(icon, id); } +//---------------------------------------------------------------------------------------------------------------------------- +//void SettingsWidget::slotdefaultProvider() +// +//---------------------------------------------------------------------------------------------------------------------------- void SettingsWidget::slotdefaultProvider(const int value) { mSelectedProvider = value; } +//---------------------------------------------------------------------------------------------------------------------------- +//void SettingsWidget::slotitemSelected() +// +//---------------------------------------------------------------------------------------------------------------------------- void SettingsWidget::slotitemSelected(int value) { QMapIterator i(mServiceProviders); @@ -620,11 +635,10 @@ selectedindex++; } } -void SettingsWidget::setSettingsFilePath() - { - mSettingFileName.append(QDir::currentPath()); - mSettingFileName.append(QString("/searchsettings.ini")); - } +//---------------------------------------------------------------------------------------------------------------------------- +//void SettingsWidget::loadIS() +// +//---------------------------------------------------------------------------------------------------------------------------- void SettingsWidget::loadIS() { if (!mInternetHandler) diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/stateproviders/searchstateprovider/tsrc/t_searchactivity/inc/t_searchactivity.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/searchui/stateproviders/searchstateprovider/tsrc/t_searchactivity/inc/t_searchactivity.h Wed Aug 18 09:49:49 2010 +0300 @@ -0,0 +1,56 @@ +/* + * 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 SEARCHTESTACTIVITY_H_ +#define SEARCHTESTACTIVITY_H_ + +#include +#include +#include +#include +#include +class HbCheckBox; +class SearchTestActivity : public HbWidget + { +Q_OBJECT +public: + SearchTestActivity(QGraphicsItem *parent = 0); + ~SearchTestActivity(); + +private: + + QGraphicsLinearLayout *mColumn1Layout; + QGraphicsLinearLayout *mColumn2Layout; + + QGraphicsLinearLayout *mCheckBoxLayout; + QGraphicsLinearLayout *mButtonLayout; + + QGraphicsLinearLayout *mMainLayout; + + HbLineEdit *mLineEdit; + HbPushButton *mIndevice; + HbPushButton *mOnline; + + QObject *mActivityManager; + QList mselectioncheckbox; + +private slots: + void launchDeviceApp(); + void launchInternetApp(); + + }; + +#endif /* SEARCHTESTACTIVITY_H_*/ diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/stateproviders/searchstateprovider/tsrc/t_searchactivity/src/main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/searchui/stateproviders/searchstateprovider/tsrc/t_searchactivity/src/main.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -0,0 +1,33 @@ +/* +* 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: +* +*/ +#include +#include +#include "t_searchactivity.h" + + + + +int main(int argc, char **argv) +{ + HbApplication app(argc, argv); + SearchTestActivity* lw = new SearchTestActivity(); + HbMainWindow mainWindow; + mainWindow.addView( lw ); + mainWindow.show(); + + return app.exec(); +} diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/stateproviders/searchstateprovider/tsrc/t_searchactivity/src/t_searchactivity.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/searchui/stateproviders/searchstateprovider/tsrc/t_searchactivity/src/t_searchactivity.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -0,0 +1,198 @@ +/* + * 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: + * + */ +#include "t_searchactivity.h" +#include +#include +#include +QTM_USE_NAMESPACE + +const QString KAppUid = "0x2002C377"; + +SearchTestActivity::SearchTestActivity(QGraphicsItem *parent) : + HbWidget(parent) + { + + QServiceManager serviceManager; + mActivityManager = serviceManager.loadInterface( + "com.nokia.qt.activities.ActivityManager"); + //mActivityManager->run + if (!mActivityManager) + { + qFatal( + "Cannot initialize critical com.nokia.qt.activities.ActivityManager service."); + } + + mColumn1Layout = new QGraphicsLinearLayout(Qt::Vertical); + mColumn2Layout = new QGraphicsLinearLayout(Qt::Vertical); + mButtonLayout = new QGraphicsLinearLayout(Qt::Horizontal); + mMainLayout = new QGraphicsLinearLayout(Qt::Vertical); + mCheckBoxLayout = new QGraphicsLinearLayout(Qt::Horizontal); + + HbCheckBox* check1 = new HbCheckBox(this); + check1->setText("contact"); + HbCheckBox* check2 = new HbCheckBox(this); + check2->setText("media"); + HbCheckBox* check3 = new HbCheckBox(this); + check3->setText("calendar"); + HbCheckBox* check4 = new HbCheckBox(this); + check4->setText("notes"); + HbCheckBox* check5 = new HbCheckBox(this); + check5->setText("image"); + HbCheckBox* check6 = new HbCheckBox(this); + check6->setText("audio"); + HbCheckBox* check7 = new HbCheckBox(this); + check7->setText("video"); + HbCheckBox* check8 = new HbCheckBox(this); + check8->setText("bookmark"); + HbCheckBox* check9 = new HbCheckBox(this); + check9->setText("msg"); + HbCheckBox* check10 = new HbCheckBox(this); + check10->setText("file"); + HbCheckBox* check11 = new HbCheckBox(this); + check11->setText("applications"); + HbCheckBox* check12 = new HbCheckBox(this); + check12->setText("email"); + + mColumn1Layout->addItem(check1); + mColumn1Layout->addItem(check2); + mColumn1Layout->addItem(check3); + mColumn1Layout->addItem(check4); + mColumn1Layout->addItem(check5); + mColumn1Layout->addItem(check6); + + mColumn2Layout->addItem(check7); + mColumn2Layout->addItem(check8); + mColumn2Layout->addItem(check9); + mColumn2Layout->addItem(check10); + mColumn2Layout->addItem(check11); + mColumn2Layout->addItem(check12); + + mCheckBoxLayout->addItem(mColumn1Layout); + mCheckBoxLayout->addItem(mColumn2Layout); + + + mIndevice = new HbPushButton("InDevice"); + mIndevice->setMaximumHeight(50); + mOnline = new HbPushButton("Online"); + mOnline->setMaximumHeight(50); + + mButtonLayout->addItem(mIndevice); + mButtonLayout->addItem(mOnline); + + + mLineEdit = new HbLineEdit(""); + mLineEdit->setPlaceholderText("Search Query"); + + + + mMainLayout->addItem(mCheckBoxLayout); + mMainLayout->addItem(mLineEdit); + mMainLayout->addItem(mButtonLayout); + + + + connect(mIndevice, SIGNAL(released()), this, SLOT(launchDeviceApp())); + connect(mOnline, SIGNAL(released()), this, + SLOT(launchInternetApp())); + + setLayout(mMainLayout); + + mselectioncheckbox.append(check1); + mselectioncheckbox.append(check2); + mselectioncheckbox.append(check3); + mselectioncheckbox.append(check4); + mselectioncheckbox.append(check5); + mselectioncheckbox.append(check6); + mselectioncheckbox.append(check7); + mselectioncheckbox.append(check8); + mselectioncheckbox.append(check9); + mselectioncheckbox.append(check10); + mselectioncheckbox.append(check11); + mselectioncheckbox.append(check12); + } + +SearchTestActivity::~SearchTestActivity() + { + delete mMainLayout; + delete mActivityManager; + } + +void SearchTestActivity::launchDeviceApp() + { + QUrl url; + url.setScheme("appto"); + url.setHost(KAppUid); + url.addQueryItem("activityname", "SearchDeviceQueryView"); + url.addQueryItem("query",mLineEdit->text()); + /* + * QString str = "a"; + * url.addQueryItem("query", str); + */ + + for (int i = 0; i < mselectioncheckbox.count(); i++) + { + if (mselectioncheckbox.at(i)->isChecked()) + { + QString str = mselectioncheckbox.at(i)->text(); + url.addQueryItem(str, str); + } + } + QString debugString = url.toString(); + bool ok = QMetaObject::invokeMethod(mActivityManager, "launchActivity", + Q_ARG(QUrl, url)); + if (ok) + { + //mResultLabel->setPlainText("ok"); + } + else + { + //mResultLabel->setPlainText("fail"); + } + } + +void SearchTestActivity::launchInternetApp() + { + QUrl url; + url.setScheme("appto"); + url.setHost(KAppUid); + url.addQueryItem("activityname", "SearchWebQueryView"); + url.addQueryItem("query", mLineEdit->text()); + /*QString str = "a"; + url.addQueryItem("query", str);*/ + + for (int i = 0; i < mselectioncheckbox.count(); i++) + { + if (mselectioncheckbox.at(i)->isChecked()) + { + QString str = mselectioncheckbox.at(i)->text(); + url.addQueryItem(str, str); + } + } + QString debugString = url.toString(); + bool ok = QMetaObject::invokeMethod(mActivityManager, "launchActivity", + Q_ARG(QUrl, url)); + if (ok) + { + //mResultLabel->setPlainText("ok"); + } + else + { + //mResultLabel->setPlainText("fail"); + } + + } + diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/stateproviders/searchstateprovider/tsrc/t_searchactivity/t_searchactivity.pri --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/searchui/stateproviders/searchstateprovider/tsrc/t_searchactivity/t_searchactivity.pri Wed Aug 18 09:49:49 2010 +0300 @@ -0,0 +1,20 @@ +# +# 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: +# +#Header files +HEADERS += ./inc/*.h + +#Source files +SOURCES += ./src/*.cpp \ No newline at end of file diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/stateproviders/searchstateprovider/tsrc/t_searchactivity/t_searchactivity.pro --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/searchui/stateproviders/searchstateprovider/tsrc/t_searchactivity/t_searchactivity.pro Wed Aug 18 09:49:49 2010 +0300 @@ -0,0 +1,35 @@ +# +# 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: Search stateprovider unit test project file +# + +TEMPLATE = app + +CONFIG += hb console mobility + +MOBILITY = serviceframework + +symbian { +CONFIG += symbian_test +TARGET.UID2 = 0x100039CE + +TARGET.CAPABILITY = ALL -TCB -DRM +TARGET.EPOCSTACKSIZE = 0x14000 // 80kB +TARGET.EPOCHEAPSIZE = 0x20000 0x800000 // 128kB - 16MB +INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE +INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE +} + +include(t_searchactivity.pri) + diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/inc/t_searchstateprovider.h --- a/searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/inc/t_searchstateprovider.h Tue Jul 06 14:17:22 2010 +0300 +++ b/searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/inc/t_searchstateprovider.h Wed Aug 18 09:49:49 2010 +0300 @@ -57,7 +57,7 @@ void testopenResultitem(); void testgetSettingCategory(); void testsetSettings(); - void teststartNewSearch(); + void teststartNewSearch(); void testsettingsaction(); void testcancelSearch(); void testhandleOkError(); @@ -103,15 +103,26 @@ void testcreateGui(); void testpreparecategories(); void testq_currentIndexChanged(); - void selectedItemCategory(); - /* void testOnWizardAddedSignalledNoWizardInCS(); - void testProgressUpdated(); - void testWizardSelected(); + /** + * t_searchonlinestate.cpp */ + void teststartOnlineSearch(); + void testonlinesetSettings(); + void testonlinecancelSearch(); + void testslotbackEventTriggered(); + void testslotIndeviceQuery(); + void testslotlaunchLink(); + void testslotviewReady(); + + /** + * t_searchstateprovider.cpp + * unit test code for uiloader + */ + void testcreatenanddelete(); + void testslotsendtobackground(); private: - /** * Helper method testing construction of state * @@ -121,10 +132,9 @@ * @return True if state was created successfully, false otherwise. * @since S60 ?S60_version. */ - bool verifyStateCreation(const QString& uri); - - HbMainWindow* mainWindow(); - + bool verifyStateCreation(const QString& uri); + + HbMainWindow *mainWindow(); private: HbMainWindow *mMainWindow; diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_searchonlinestate.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_searchonlinestate.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -0,0 +1,65 @@ +#include "t_searchstateprovider.h" +#include "searchonlinestate.h" + +void SearchStateProviderTest::teststartOnlineSearch() + { + SearchOnlineState* onlinestate = new SearchOnlineState(); + QEvent *event = new QEvent(QEvent::None); + onlinestate->onEntry(event); + onlinestate->startOnlineSearch("query"); + delete onlinestate; + } +void SearchStateProviderTest::testonlinesetSettings() + { + SearchOnlineState* onlinestate = new SearchOnlineState(); + QEvent *event = new QEvent(QEvent::None); + onlinestate->onEntry(event); + onlinestate->mSearchQuery = "query"; + QSignalSpy spy(onlinestate, SIGNAL(onlineSearchQuery(QString))); + onlinestate->setSettings(); + QCOMPARE(spy.count(), 1); + QSignalSpy spy1(onlinestate, SIGNAL(switchOnlineToSettingsState())); + onlinestate->setSettings(); + QCOMPARE(spy1.count(), 1); + delete onlinestate; + } +void SearchStateProviderTest::testonlinecancelSearch() + { + SearchOnlineState* onlinestate = new SearchOnlineState(); + QEvent *event = new QEvent(QEvent::None); + onlinestate->onEntry(event); + onlinestate->cancelSearch(); + delete onlinestate; + } +void SearchStateProviderTest::testslotbackEventTriggered() + { + SearchOnlineState* onlinestate = new SearchOnlineState(); + QEvent *event = new QEvent(QEvent::None); + onlinestate->onEntry(event); + onlinestate->slotbackEventTriggered(); + delete onlinestate; + } +void SearchStateProviderTest::testslotIndeviceQuery() + { + SearchOnlineState* onlinestate = new SearchOnlineState(); + QEvent *event = new QEvent(QEvent::None); + onlinestate->onEntry(event); + onlinestate->slotIndeviceQuery("query"); + delete onlinestate; + } +void SearchStateProviderTest::testslotlaunchLink() + { + SearchOnlineState* onlinestate = new SearchOnlineState(); + QEvent *event = new QEvent(QEvent::None); + onlinestate->onEntry(event); + onlinestate->slotlaunchLink(1,"Query"); + delete onlinestate; + } +void SearchStateProviderTest::testslotviewReady() + { + SearchOnlineState* onlinestate = new SearchOnlineState(); + QEvent *event = new QEvent(QEvent::None); + onlinestate->onEntry(event); + onlinestate->slotviewReady(); + delete onlinestate; + } diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_searchprogressivestate.cpp --- a/searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_searchprogressivestate.cpp Tue Jul 06 14:17:22 2010 +0300 +++ b/searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_searchprogressivestate.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -14,6 +14,7 @@ #include #include #include +#include // --------------------------------------------------------------------------- // --------------------------------------------------------------------------- @@ -27,8 +28,7 @@ QVERIFY(progressiveState != NULL); QVERIFY(progressiveState->mView); - QVERIFY(progressiveState->mListView); - QVERIFY(progressiveState->mDocumentLoader); + QVERIFY(progressiveState->mListView); QVERIFY(progressiveState->mSearchPanel); //QVERIFY(progressiveState->mSearchHandler); @@ -109,9 +109,11 @@ progressiveState->mSearchHandler = progressiveState->mSearchHandlerList.at(2); - - progressiveState->mSearchHandler->searchAsync("jpg*", "_aggregate"); - QTest::qWait(2000); + //progressiveState->mSearchHandler->searchAsync("$prefix(\\jpg\\", "_aggregate"); + //progressiveState->mSearchHandler->searchAsync("$prefix(\"jpg\")", "_aggregate"); + progressiveState->onAsyncSearchComplete(-1,0); + progressiveState->onAsyncSearchComplete(0,0); + progressiveState->onAsyncSearchComplete(0,10); QVERIFY(progressiveState->mResultcount); delete progressiveState; @@ -216,7 +218,7 @@ SearchProgressiveState* progressiveState = new SearchProgressiveState(); QEvent *event = new QEvent(QEvent::None); progressiveState->onEntry(event); - QSignalSpy spy(progressiveState, SIGNAL(settingsState())); + QSignalSpy spy(progressiveState, SIGNAL(switchProToSettingsState())); progressiveState->setSettings(); QCOMPARE(spy.count(), 1); delete progressiveState; @@ -326,7 +328,11 @@ { SearchProgressiveState* progressiveState = new SearchProgressiveState(); QEvent *event = new QEvent(QEvent::None); - progressiveState->onEntry(event); + progressiveState->onEntry(event); + + + //progressiveState->mISprovidersIcon.insert(1,icon1); + progressiveState->mISprovidersIcon.insert(1, progressiveState->mIconArray.at(1)); progressiveState->createSuggestionLink(); QCOMPARE(progressiveState->mListView->count(), 1); delete progressiveState; diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_searchsettingsstate.cpp --- a/searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_searchsettingsstate.cpp Tue Jul 06 14:17:22 2010 +0300 +++ b/searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_searchsettingsstate.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -42,7 +42,7 @@ { SearchSettingsState* settingsState = new SearchSettingsState(); - QSignalSpy spy(settingsState, SIGNAL(backEventTriggered())); + QSignalSpy spy(settingsState, SIGNAL(clickstatus(bool))); settingsState->handleBackEvent(true); QCOMPARE(spy.count(), 1); @@ -74,7 +74,7 @@ { SearchSettingsState* settingsState = new SearchSettingsState(); QSignalSpy spy(settingsState, - SIGNAL(customizeGoButton(bool))); + SIGNAL(switchToProState())); settingsState->isInternetOn(); diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_searchstateprovider.cpp --- a/searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_searchstateprovider.cpp Tue Jul 06 14:17:22 2010 +0300 +++ b/searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_searchstateprovider.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -18,10 +18,11 @@ #include "t_searchstateprovider.h" //#include "searchruntimeprovider.h" #include "searchstateprovider.h" - +#include "searchuiloader.h" #include #include - +#include +#include #include #include #include @@ -115,6 +116,22 @@ QVERIFY(verifyStateCreation("search.nokia.com/state/wizardsettingstate")); // delete wind; } +void SearchStateProviderTest::testcreatenanddelete() + { + SearchUiLoader* uiloader = SearchUiLoader::instance(); + QVERIFY(uiloader->View()); + QVERIFY(uiloader->ListWidget()); + QVERIFY(uiloader->SearchPanel()); + uiloader->deleteLater(); + } +void SearchStateProviderTest::testslotsendtobackground() + { + SearchUiLoader* uiloader = SearchUiLoader::instance(); + uiloader->slotsendtobackground(); + QCOMPARE(uiloader->mListWidget->count(),0); + QCOMPARE(uiloader->mSearchPanel->criteria(),QString()); + uiloader->deleteLater(); + } // --------------------------------------------------------------------------- // --------------------------------------------------------------------------- // diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_settingswidget.cpp --- a/searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_settingswidget.cpp Tue Jul 06 14:17:22 2010 +0300 +++ b/searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_settingswidget.cpp Wed Aug 18 09:49:49 2010 +0300 @@ -142,7 +142,7 @@ void SearchStateProviderTest::teststoreDefaultSettings() { QDir dir; - bool ret = dir.remove("search.ini"); + bool ret = dir.remove(SETTINGS_INI_PATH); SettingsWidget* settingswizard = new SettingsWidget(); settingswizard->initialize(); diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/t_searchstateprovider.pro --- a/searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/t_searchstateprovider.pro Tue Jul 06 14:17:22 2010 +0300 +++ b/searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/t_searchstateprovider.pro Wed Aug 18 09:49:49 2010 +0300 @@ -35,7 +35,7 @@ LIBS += -lsearchindevicehandler LIBS += -lxqservice -LIBS += -lqcpixsearchclient +LIBS += -lcpixsearch LIBS += -laknskins LIBS += -lfbscli LIBS += -laknicon @@ -48,6 +48,7 @@ LIBS += -lapgrfx LIBS += -lws32 LIBS += -lavkon +LIBS += -ltstaskmonitorclient.dll CONFIG += qtestlib \ symbian_test \ diff -r 993ab30e92fc -r 7d8c8d8f5eab searchui/stateproviders/searchstateprovider/tsrc/tsrc.pro --- a/searchui/stateproviders/searchstateprovider/tsrc/tsrc.pro Tue Jul 06 14:17:22 2010 +0300 +++ b/searchui/stateproviders/searchstateprovider/tsrc/tsrc.pro Wed Aug 18 09:49:49 2010 +0300 @@ -16,6 +16,7 @@ TEMPLATE = subdirs -SUBDIRS = t_searchstateprovider +SUBDIRS = t_searchstateprovider \ + t_searchactivity CONFIG += ordered \ No newline at end of file