# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1283449503 -10800 # Node ID 3ab5c078b490b9ebfacfaa41c78bfcfb41ca2752 # Parent e0aa398e681067f431bfa7d7a9ace5897034e8aa Revision: 201033 Kit: 201035 diff -r e0aa398e6810 -r 3ab5c078b490 activityfw/activityserviceplugin/activityserviceplugin.pro --- a/activityfw/activityserviceplugin/activityserviceplugin.pro Wed Aug 18 10:05:49 2010 +0300 +++ b/activityfw/activityserviceplugin/activityserviceplugin.pro Thu Sep 02 20:45:03 2010 +0300 @@ -97,7 +97,7 @@ #export xml with old name (remove after next release) BLD_INF_RULES.prj_exports += "data/afservice.xml z:/resource/activity/activityserviceplugin.xml" - BLD_INF_RULES.prj_exports += "data/afservice.xml $$QT_PLUGINS_BASE_DIR/activityserviceplugin.xml" + BLD_INF_RULES.prj_exports += "data/afservice.xml c:/resource/activity/activityserviceplugin.xml" # we want to export few classes, use standard .def block instead of the one generated by plugin defBlock = \ diff -r e0aa398e6810 -r 3ab5c078b490 activityfw/activityserviceplugin/eabi/afserviceu.def --- a/activityfw/activityserviceplugin/eabi/afserviceu.def Wed Aug 18 10:05:49 2010 +0300 +++ b/activityfw/activityserviceplugin/eabi/afserviceu.def Thu Sep 02 20:45:03 2010 +0300 @@ -31,4 +31,6 @@ _ZTI17AfActivityStorage @ 30 NONAME _ZTV12AfActivation @ 31 NONAME _ZTV17AfActivityStorage @ 32 NONAME + _ZTI8CAfEntry @ 33 NONAME + _ZTV8CAfEntry @ 34 NONAME diff -r e0aa398e6810 -r 3ab5c078b490 activityfw/activityserviceplugin/s60/src/afserializer.cpp --- a/activityfw/activityserviceplugin/s60/src/afserializer.cpp Wed Aug 18 10:05:49 2010 +0300 +++ b/activityfw/activityserviceplugin/s60/src/afserializer.cpp Thu Sep 02 20:45:03 2010 +0300 @@ -14,8 +14,8 @@ * Description: * */ +#include "afserializer.h" #include -#include "afserializer.h" // ----------------------------------------------------------------------------- // // ----------------------------------------------------------------------------- @@ -45,6 +45,6 @@ src.Length()) ); QDataStream stream(&buffer, QIODevice::ReadOnly); - QT_TRYCATCH_LEAVING(stream >> dst); + stream >> dst; return dst; } diff -r e0aa398e6810 -r 3ab5c078b490 activityfw/activityserviceplugin/symbianinstaller/symbianinstaller.pro --- a/activityfw/activityserviceplugin/symbianinstaller/symbianinstaller.pro Wed Aug 18 10:05:49 2010 +0300 +++ b/activityfw/activityserviceplugin/symbianinstaller/symbianinstaller.pro Thu Sep 02 20:45:03 2010 +0300 @@ -24,7 +24,7 @@ plugin.path = $$QT_PLUGINS_BASE_DIR installer.pkg_postrules += "\"$${EPOCROOT}epoc32/release/$(PLATFORM)/$(TARGET)/activityserviceinstaller.exe\" \ - - \"!:\sys\bin\activityserviceinstaller.exe\",FR,RB,RW" + - \"!:\\sys\\bin\\activityserviceinstaller.exe\",FR,RB,RW" DEPLOYMENT += plugin installer } diff -r e0aa398e6810 -r 3ab5c078b490 activityfw/storage/client/bwins/afstorageclientu.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/activityfw/storage/client/bwins/afstorageclientu.def Thu Sep 02 20:45:03 2010 +0300 @@ -0,0 +1,17 @@ +EXPORTS + ?launchActivity@CAfStorageClient@@QAEHABVCAfEntry@@@Z @ 1 NONAME ; int CAfStorageClient::launchActivity(class CAfEntry const &) + ?updateActivity@CAfStorageClient@@QAEHABVCAfEntry@@H@Z @ 2 NONAME ; int CAfStorageClient::updateActivity(class CAfEntry const &, int) + ?saveActivity@CAfStorageClient@@QAEHABVCAfEntry@@H@Z @ 3 NONAME ; int CAfStorageClient::saveActivity(class CAfEntry const &, int) + ?addActivity@CAfStorageClient@@QAEHABVCAfEntry@@H@Z @ 4 NONAME ; int CAfStorageClient::addActivity(class CAfEntry const &, int) + ??1CAfStorageClient@@UAE@XZ @ 5 NONAME ; CAfStorageClient::~CAfStorageClient(void) + ?notifyDataChange@CAfStorageClient@@QAEHXZ @ 6 NONAME ; int CAfStorageClient::notifyDataChange(void) + ?waitActivity@CAfStorageClient@@QAEHXZ @ 7 NONAME ; int CAfStorageClient::waitActivity(void) + ?applicationActivities@CAfStorageClient@@QAEHAAV?$RPointerArray@VCAfEntry@@@@ABVCAfEntry@@@Z @ 8 NONAME ; int CAfStorageClient::applicationActivities(class RPointerArray &, class CAfEntry const &) + ?NewL@CAfStorageClient@@SAPAV1@AAVMAfAsyncRequestObserver@@@Z @ 9 NONAME ; class CAfStorageClient * CAfStorageClient::NewL(class MAfAsyncRequestObserver &) + ?NewLC@CAfStorageClient@@SAPAV1@AAVMAfAsyncRequestObserver@@@Z @ 10 NONAME ; class CAfStorageClient * CAfStorageClient::NewLC(class MAfAsyncRequestObserver &) + ?getThumbnail@CAfStorageClient@@QAEHABVTSize@@ABVTDesC16@@PAX@Z @ 11 NONAME ; int CAfStorageClient::getThumbnail(class TSize const &, class TDesC16 const &, void *) + ?removeActivity@CAfStorageClient@@QAEHABVCAfEntry@@@Z @ 12 NONAME ; int CAfStorageClient::removeActivity(class CAfEntry const &) + ?removeApplicationActivities@CAfStorageClient@@QAEHABVCAfEntry@@@Z @ 13 NONAME ; int CAfStorageClient::removeApplicationActivities(class CAfEntry const &) + ?activities@CAfStorageClient@@QAEHAAV?$RPointerArray@VCAfEntry@@@@@Z @ 14 NONAME ; int CAfStorageClient::activities(class RPointerArray &) + ?activityData@CAfStorageClient@@QAEHAAPAVCAfEntry@@ABV2@@Z @ 15 NONAME ; int CAfStorageClient::activityData(class CAfEntry * &, class CAfEntry const &) + diff -r e0aa398e6810 -r 3ab5c078b490 activityfw/storage/client/eabi/afstorageclientu.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/activityfw/storage/client/eabi/afstorageclientu.def Thu Sep 02 20:45:03 2010 +0300 @@ -0,0 +1,29 @@ +EXPORTS + _ZN16CAfStorageClient10activitiesER13RPointerArrayI8CAfEntryE @ 1 NONAME + _ZN16CAfStorageClient11addActivityERK8CAfEntryi @ 2 NONAME + _ZN16CAfStorageClient12activityDataERP8CAfEntryRKS0_ @ 3 NONAME + _ZN16CAfStorageClient12getThumbnailERK5TSizeRK7TDesC16Pv @ 4 NONAME + _ZN16CAfStorageClient12saveActivityERK8CAfEntryi @ 5 NONAME + _ZN16CAfStorageClient12waitActivityEv @ 6 NONAME + _ZN16CAfStorageClient14launchActivityERK8CAfEntry @ 7 NONAME + _ZN16CAfStorageClient14removeActivityERK8CAfEntry @ 8 NONAME + _ZN16CAfStorageClient14updateActivityERK8CAfEntryi @ 9 NONAME + _ZN16CAfStorageClient16notifyDataChangeEv @ 10 NONAME + _ZN16CAfStorageClient21applicationActivitiesER13RPointerArrayI8CAfEntryERKS1_ @ 11 NONAME + _ZN16CAfStorageClient27removeApplicationActivitiesERK8CAfEntry @ 12 NONAME + _ZN16CAfStorageClient4NewLER23MAfAsyncRequestObserver @ 13 NONAME + _ZN16CAfStorageClient5NewLCER23MAfAsyncRequestObserver @ 14 NONAME + _ZN16CAfStorageClientD0Ev @ 15 NONAME + _ZN16CAfStorageClientD1Ev @ 16 NONAME + _ZN16CAfStorageClientD2Ev @ 17 NONAME + _ZTI22CAfAsyncRequestPrivate @ 18 NONAME + _ZTI23CAfStorageClientPrivate @ 19 NONAME + _ZTI26CAfThumbnailRequestPrivate @ 20 NONAME + _ZTI30RAfStorageClientImplementation @ 21 NONAME + _ZTI8CAfEntry @ 22 NONAME + _ZTV22CAfAsyncRequestPrivate @ 23 NONAME + _ZTV23CAfStorageClientPrivate @ 24 NONAME + _ZTV26CAfThumbnailRequestPrivate @ 25 NONAME + _ZTV30RAfStorageClientImplementation @ 26 NONAME + _ZTV8CAfEntry @ 27 NONAME + diff -r e0aa398e6810 -r 3ab5c078b490 activityfw/storage/client/group/client.mmp --- a/activityfw/storage/client/group/client.mmp Wed Aug 18 10:05:49 2010 +0300 +++ b/activityfw/storage/client/group/client.mmp Thu Sep 02 20:45:03 2010 +0300 @@ -38,7 +38,6 @@ STATICLIBRARY afstoragecommon.lib CAPABILITY ALL -TCB -EXPORTUNFROZEN #ifdef ENABLE_ABIV2_MODE DEBUGGABLE_UDEBONLY diff -r e0aa398e6810 -r 3ab5c078b490 activityfw/storage/server/group/server.mmp --- a/activityfw/storage/server/group/server.mmp Wed Aug 18 10:05:49 2010 +0300 +++ b/activityfw/storage/server/group/server.mmp Thu Sep 02 20:45:03 2010 +0300 @@ -39,6 +39,7 @@ SOURCE afapplicationscollection.cpp SOURCE afapplicationsstorage.cpp SOURCE afapplicationsengine.cpp +SOURCE afdatabasecleaner.cpp LIBRARY euser.lib LIBRARY estor.lib diff -r e0aa398e6810 -r 3ab5c078b490 activityfw/storage/server/inc/afdatabasecleaner.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/activityfw/storage/server/inc/afdatabasecleaner.h Thu Sep 02 20:45:03 2010 +0300 @@ -0,0 +1,54 @@ +/* +* 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 AFDATABASECLEANER_H +#define AFDATABASECLEANER_H + +#include +#include + +class CAfDatabaseCleaner : public CActive +{ + +private: + enum CleanupStep { + Initial, + Continuation, + }; + +public: + CAfDatabaseCleaner(RDbStoreDatabase &database); + ~CAfDatabaseCleaner(); + + void StartCleanup(); + +private: // from CActive + void RunL(); + void DoCancel(); + TInt RunError(TInt aError); + +private: + void CompleteSelf(TInt completionCode); + +private: + RDbStoreDatabase &mDatabase; + RDbIncremental mIncrementalInterface; + TInt mStep; + CleanupStep mCleanupStep; + +}; + +#endif // AFDATABASECLEANER_H diff -r e0aa398e6810 -r 3ab5c078b490 activityfw/storage/server/inc/afstorage.h --- a/activityfw/storage/server/inc/afstorage.h Wed Aug 18 10:05:49 2010 +0300 +++ b/activityfw/storage/server/inc/afstorage.h Thu Sep 02 20:45:03 2010 +0300 @@ -25,6 +25,8 @@ #include // CFileStore & CPermanentFileStore #include "afentry.h" +class CAfDatabaseCleaner; + class CAfStorage : public CBase { public: @@ -109,10 +111,15 @@ void InternalizeDataL(CAfEntry &dst, RDbRowSet& src, TInt offset) const; +public: + TBool InterruptCleanup(); + void RequestCleanup(); + private: RFs& mFsSession; RDbStoreDatabase mActDb;/* For database operations */ CFileStore* mFileStore; /* For creating and opening database files */ + CAfDatabaseCleaner *mDatabaseCleaner; }; #endif //AFSTORAGE_H diff -r e0aa398e6810 -r 3ab5c078b490 activityfw/storage/server/src/afdatabasecleaner.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/activityfw/storage/server/src/afdatabasecleaner.cpp Thu Sep 02 20:45:03 2010 +0300 @@ -0,0 +1,83 @@ +/* +* 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 "afdatabasecleaner.h" + +CAfDatabaseCleaner::~CAfDatabaseCleaner() +{ + Cancel(); +} + +CAfDatabaseCleaner::CAfDatabaseCleaner(RDbStoreDatabase &database) : CActive(EPriorityIdle), mDatabase(database), mCleanupStep(Initial) +{ + CActiveScheduler::Add(this); +} + +void CAfDatabaseCleaner::StartCleanup() +{ + if (!IsActive()) { + mCleanupStep = Initial; + SetActive(); + CompleteSelf(KErrNone); + } +} + +void CAfDatabaseCleaner::RunL() +{ + if (KErrNone == iStatus.Int()) { + switch (mCleanupStep) { + case Initial: + { + User::LeaveIfError(mIncrementalInterface.Compact(mDatabase, mStep)); + mCleanupStep = Continuation; + SetActive(); + CompleteSelf(KErrNone); + break; + } + case Continuation: + { + User::LeaveIfError(mIncrementalInterface.Next(mStep)); + if (mStep != 0) { + SetActive(); + CompleteSelf(KErrNone); + } else { + mIncrementalInterface.Close(); + } + break; + } + default: + User::Leave(KErrArgument); + } + } +} + +void CAfDatabaseCleaner::DoCancel() +{ + mIncrementalInterface.Close(); +} + +void CAfDatabaseCleaner::CompleteSelf(TInt completionCode) +{ + TRequestStatus* status = &iStatus; + User::RequestComplete(status, completionCode); +} + +TInt CAfDatabaseCleaner::RunError(TInt /*aError*/) +{ + mIncrementalInterface.Close(); + return KErrNone; +} diff -r e0aa398e6810 -r 3ab5c078b490 activityfw/storage/server/src/afobservertask.cpp --- a/activityfw/storage/server/src/afobservertask.cpp Wed Aug 18 10:05:49 2010 +0300 +++ b/activityfw/storage/server/src/afobservertask.cpp Thu Sep 02 20:45:03 2010 +0300 @@ -116,6 +116,7 @@ } else if(NotifyChange == mMsg.Function() && (AddActivity == msg.Function() || UpdateActivity == msg.Function() || + SaveActivity == msg.Function() || RemoveActivity == msg.Function() || RemoveApplicationActivities == msg.Function())){ mMsg.Complete(KErrNone); diff -r e0aa398e6810 -r 3ab5c078b490 activityfw/storage/server/src/afsession.cpp --- a/activityfw/storage/server/src/afsession.cpp Wed Aug 18 10:05:49 2010 +0300 +++ b/activityfw/storage/server/src/afsession.cpp Thu Sep 02 20:45:03 2010 +0300 @@ -97,14 +97,22 @@ case SaveActivity: case RemoveActivity: case RemoveApplicationActivities: + { + mStorage.InterruptCleanup(); AfStorageSyncTask::ExecuteL(mTasksStorage, mStorage, message); + mStorage.RequestCleanup(); break; + } case ApplicationActivity: case Activities: case ApplicationActivities: + { + TBool cleanupInterrupted = mStorage.InterruptCleanup(); CAfStorageAsyncTask::ExecuteLD(*this, mStorage, message); + if (cleanupInterrupted) mStorage.RequestCleanup(); break; + } case WaitActivity: case NotifyChange: diff -r e0aa398e6810 -r 3ab5c078b490 activityfw/storage/server/src/afstorage.cpp --- a/activityfw/storage/server/src/afstorage.cpp Wed Aug 18 10:05:49 2010 +0300 +++ b/activityfw/storage/server/src/afstorage.cpp Thu Sep 02 20:45:03 2010 +0300 @@ -19,6 +19,7 @@ #include #include +#include "afdatabasecleaner.h" #include "afqueries.h" #include "afentry.h" @@ -49,6 +50,7 @@ */ CAfStorage::~CAfStorage() { + delete mDatabaseCleaner; mActDb.Close(); delete mFileStore; } @@ -83,7 +85,10 @@ BaflUtils::FileExists(mFsSession, path) ? OpenDbL(path) : CreateDbL(path); CleanupStack::PopAndDestroy(&path); + mDatabaseCleaner = new (ELeave) CAfDatabaseCleaner(mActDb); + DeleteNonPersistentActivitiesL(); + RequestCleanup(); } // ----------------------------------------------------------------------------- @@ -659,3 +664,27 @@ CleanupStack::PopAndDestroy(md5); return buf; } + +// ----------------------------------------------------------------------------- +/** + * Cancel ongoing cleanup if one is in progress. + * @return ETrue if the database cleanup was in progress, EFalse otherwise + */ +TBool CAfStorage::InterruptCleanup() +{ + if (mDatabaseCleaner->IsActive()) { + mDatabaseCleaner->Cancel(); + return ETrue; + } else { + return EFalse; + } +} + +// ----------------------------------------------------------------------------- +/** + * Start database cleanup + */ +void CAfStorage::RequestCleanup() +{ + mDatabaseCleaner->StartCleanup(); +} diff -r e0aa398e6810 -r 3ab5c078b490 activityfw/storage/server/src/afstoragesynctask.cpp --- a/activityfw/storage/server/src/afstoragesynctask.cpp Wed Aug 18 10:05:49 2010 +0300 +++ b/activityfw/storage/server/src/afstoragesynctask.cpp Thu Sep 02 20:45:03 2010 +0300 @@ -130,24 +130,39 @@ TPckgBuf bitmapHdl(0); CAfEntry *entry = CAfEntry::NewLC(msg); msg.ReadL(1, bitmapHdl); - - RBuf thumbnailPath; - CleanupClosePushL(thumbnailPath); - DeleteActivityScreenshotL(dataStorage, - entry->ApplicationId(), - entry->ActivityId()); + + TInt hdl = bitmapHdl(); + if (0 >= hdl) { + User::Leave(KErrCorrupt); + } + CFbsBitmap *bitmap = new (ELeave) CFbsBitmap; + CleanupStack::PushL(bitmap); + User::LeaveIfError(bitmap->Duplicate(hdl)); - dataStorage.ThumbnailPathL(thumbnailPath, - dataStorage.Fs(), - entry->ApplicationId(), - entry->ActivityId(), - entry->Flags() & CAfEntry::Persistent); - CreateThumbnailL(thumbnailPath, bitmapHdl()); //all data is retrieved. compleate message to improve response time msg.Complete(KErrNone); - TRAP_IGNORE(entry->SetImageSrcL(thumbnailPath); - dataStorage.SaveActivityL(*entry);) - CleanupStack::PopAndDestroy(&thumbnailPath); + + // trap all other leaving methods to prevent completing message in ServiceError + TRAP_IGNORE( + RBuf thumbnailPath; + CleanupClosePushL(thumbnailPath); + DeleteActivityScreenshotL(dataStorage, + entry->ApplicationId(), + entry->ActivityId()); + + dataStorage.ThumbnailPathL(thumbnailPath, + dataStorage.Fs(), + entry->ApplicationId(), + entry->ActivityId(), + entry->Flags() & CAfEntry::Persistent); + + User::LeaveIfError(bitmap->Save(thumbnailPath)); + + entry->SetImageSrcL(thumbnailPath); + dataStorage.SaveActivityL(*entry); + CleanupStack::PopAndDestroy(&thumbnailPath); + ) + CleanupStack::PopAndDestroy(bitmap); CleanupStack::PopAndDestroy(entry); } diff -r e0aa398e6810 -r 3ab5c078b490 activityfw/tsutils/group/tsutils.mmp --- a/activityfw/tsutils/group/tsutils.mmp Wed Aug 18 10:05:49 2010 +0300 +++ b/activityfw/tsutils/group/tsutils.mmp Thu Sep 02 20:45:03 2010 +0300 @@ -38,7 +38,6 @@ LIBRARY ws32.lib LIBRARY apgrfx.lib -//EXPORTUNFROZEN #ifdef ENABLE_ABIV2_MODE DEBUGGABLE_UDEBONLY diff -r e0aa398e6810 -r 3ab5c078b490 activityfw/tsutils/src/tswindowgroupsmonitor.cpp --- a/activityfw/tsutils/src/tswindowgroupsmonitor.cpp Wed Aug 18 10:05:49 2010 +0300 +++ b/activityfw/tsutils/src/tswindowgroupsmonitor.cpp Thu Sep 02 20:45:03 2010 +0300 @@ -84,7 +84,7 @@ EXPORT_C void CTsWindowGroupsMonitor::SubscribeL(MTsWindowGroupsObserver &observer) { const TInt offset(mObservers.Find(&observer)); - KErrNotFound == offset ? mObservers.AppendL(&observer) : + KErrNotFound == offset ? mObservers.InsertL(&observer, 0) : User::Leave(KErrAlreadyExists); } @@ -168,7 +168,7 @@ CleanupClosePushL(wgInfo); switch(event.Type()) { case EEventWindowGroupListChanged: - User::LeaveIfError(mResources.WsSession().WindowGroupList(&wgInfo)); + User::LeaveIfError(mResources.WsSession().WindowGroupList(0, &wgInfo)); observer.HandleWindowGroupChanged(mResources, wgInfo.Array()); break; } diff -r e0aa398e6810 -r 3ab5c078b490 common.pri --- a/common.pri Wed Aug 18 10:05:49 2010 +0300 +++ b/common.pri Thu Sep 02 20:45:03 2010 +0300 @@ -143,6 +143,4 @@ symbian { SYMBIAN_PLATFORMS = WINSCW ARMV5 -# ONLY FOR DEVELOPMENT! REMOVE THIS BEFORE EACH HS_Domain RELEASE! -MMP_RULES += EXPORTUNFROZEN } diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/caclient/bwins/caclientu.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contentstorage/caclient/bwins/caclientu.def Thu Sep 02 20:45:03 2010 +0300 @@ -0,0 +1,200 @@ +EXPORTS + ?prependEntriesToGroup@CaService@@QBE_NHABV?$QList@H@@@Z @ 1 NONAME ; bool CaService::prependEntriesToGroup(int, class QList const &) const + ?entry@CaItemModel@@QBE?AV?$QSharedPointer@VCaEntry@@@@ABVQModelIndex@@@Z @ 2 NONAME ; class QSharedPointer CaItemModel::entry(class QModelIndex const &) const + ?getIconSize@CaItemModel@@QBE?AVQSizeF@@XZ @ 3 NONAME ; class QSizeF CaItemModel::getIconSize(void) const + ?tr@CaService@@SA?AVQString@@PBD0@Z @ 4 NONAME ; class QString CaService::tr(char const *, char const *) + ?setSort@CaQuery@@QAEXW4SortAttribute@@W4SortOrder@Qt@@@Z @ 5 NONAME ; void CaQuery::setSort(enum SortAttribute, enum Qt::SortOrder) + ??4CaEntry@@QAEAAV0@ABV0@@Z @ 6 NONAME ; class CaEntry & CaEntry::operator=(class CaEntry const &) + ??1CaNotifier@@UAE@XZ @ 7 NONAME ; CaNotifier::~CaNotifier(void) + ??0CaClientNotifierProxy@@QAE@PAVQObject@@@Z @ 8 NONAME ; CaClientNotifierProxy::CaClientNotifierProxy(class QObject *) + ?flags@CaEntry@@QBE?AV?$QFlags@W4EntryFlag@@@@XZ @ 9 NONAME ; class QFlags CaEntry::flags(void) const + ?tr@CaNotifier@@SA?AVQString@@PBD0H@Z @ 10 NONAME ; class QString CaNotifier::tr(char const *, char const *, int) + ?setParentId@CaNotifierFilter@@QAEXH@Z @ 11 NONAME ; void CaNotifierFilter::setParentId(int) + ?getParentId@CaNotifierFilter@@QBEHXZ @ 12 NONAME ; int CaNotifierFilter::getParentId(void) const + ?getEntryIds@CaService@@QBE?AV?$QList@H@@ABVCaQuery@@@Z @ 13 NONAME ; class QList CaService::getEntryIds(class CaQuery const &) const + ?tr@CaItemModel@@SA?AVQString@@PBD0@Z @ 14 NONAME ; class QString CaItemModel::tr(char const *, char const *) + ?isLocalized@CaEntry@@ABE_NW4LocalizationType@@@Z @ 15 NONAME ; bool CaEntry::isLocalized(enum LocalizationType) const + ?getStaticMetaObject@CaNotifier@@SAABUQMetaObject@@XZ @ 16 NONAME ; struct QMetaObject const & CaNotifier::getStaticMetaObject(void) + ?entryChanged@CaService@@IAEXHW4ChangeType@@@Z @ 17 NONAME ; void CaService::entryChanged(int, enum ChangeType) + ?setDescription@CaEntry@@QAEXABVQString@@_N@Z @ 18 NONAME ; void CaEntry::setDescription(class QString const &, bool) + ??0CaQuery@@QAE@XZ @ 19 NONAME ; CaQuery::CaQuery(void) + ?setIconSize@CaItemModel@@QAEXABVQSizeF@@@Z @ 20 NONAME ; void CaItemModel::setIconSize(class QSizeF const &) + ?flagsOff@CaQuery@@QBE?AV?$QFlags@W4EntryFlag@@@@XZ @ 21 NONAME ; class QFlags CaQuery::flagsOff(void) const + ?skinId@CaIconDescription@@QBE?AVQString@@XZ @ 22 NONAME ; class QString CaIconDescription::skinId(void) const + ?setParentId@CaQuery@@QAEXH@Z @ 23 NONAME ; void CaQuery::setParentId(int) + ?removeEntriesFromGroup@CaService@@QBE_NABVCaEntry@@ABV?$QList@V?$QSharedPointer@VCaEntry@@@@@@@Z @ 24 NONAME ; bool CaService::removeEntriesFromGroup(class CaEntry const &, class QList > const &) const + ?qt_metacall@CaClientNotifierProxy@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 25 NONAME ; int CaClientNotifierProxy::qt_metacall(enum QMetaObject::Call, int, void * *) + ??_ECaItemModel@@UAE@I@Z @ 26 NONAME ; CaItemModel::~CaItemModel(unsigned int) + ?setSecondLineVisibility@CaItemModel@@QAEX_N@Z @ 27 NONAME ; void CaItemModel::setSecondLineVisibility(bool) + ?secondLineVisibility@CaItemModel@@QBE_NXZ @ 28 NONAME ; bool CaItemModel::secondLineVisibility(void) const + ?instance@CaService@@SA?AV?$QSharedPointer@VCaService@@@@XZ @ 29 NONAME ; class QSharedPointer CaService::instance(void) + ??1CaIconDescription@@QAE@XZ @ 30 NONAME ; CaIconDescription::~CaIconDescription(void) + ??_ECaNotifier@@UAE@I@Z @ 31 NONAME ; CaNotifier::~CaNotifier(unsigned int) + ?removeEntriesFromGroup@CaService@@QBE_NHABV?$QList@H@@@Z @ 32 NONAME ; bool CaService::removeEntriesFromGroup(int, class QList const &) const + ?appendEntriesToGroup@CaService@@QBE_NHABV?$QList@H@@@Z @ 33 NONAME ; bool CaService::appendEntriesToGroup(int, class QList const &) const + ?createNotifier@CaService@@QBEPAVCaNotifier@@ABVCaNotifierFilter@@@Z @ 34 NONAME ; class CaNotifier * CaService::createNotifier(class CaNotifierFilter const &) const + ?setSkinId@CaIconDescription@@QAEXABVQString@@@Z @ 35 NONAME ; void CaIconDescription::setSkinId(class QString const &) + ?metaObject@CaClientNotifierProxy@@UBEPBUQMetaObject@@XZ @ 36 NONAME ; struct QMetaObject const * CaClientNotifierProxy::metaObject(void) const + ?m_instance@CaService@@0V?$QWeakPointer@VCaService@@@@A @ 37 NONAME ; class QWeakPointer CaService::m_instance + ?getEntryRole@CaNotifierFilter@@QBE?AV?$QFlags@W4EntryRole@@@@XZ @ 38 NONAME ; class QFlags CaNotifierFilter::getEntryRole(void) const + ?root@CaItemModel@@QBE?AVQModelIndex@@XZ @ 39 NONAME ; class QModelIndex CaItemModel::root(void) const + ?prependEntryToGroup@CaService@@QBE_NABVCaEntry@@0@Z @ 40 NONAME ; bool CaService::prependEntryToGroup(class CaEntry const &, class CaEntry const &) const + ??1CaQuery@@QAE@XZ @ 41 NONAME ; CaQuery::~CaQuery(void) + ?setCount@CaQuery@@QAEXI@Z @ 42 NONAME ; void CaQuery::setCount(unsigned int) + ?id@CaIconDescription@@QBEHXZ @ 43 NONAME ; int CaIconDescription::id(void) const + ?getEntries@CaService@@QBE?AV?$QList@V?$QSharedPointer@VCaEntry@@@@@@ABVCaQuery@@@Z @ 44 NONAME ; class QList > CaService::getEntries(class CaQuery const &) const + ?trUtf8@CaNotifier@@SA?AVQString@@PBD0@Z @ 45 NONAME ; class QString CaNotifier::trUtf8(char const *, char const *) + ??0CaNotifier@@QAE@PAVCaNotifierPrivate@@@Z @ 46 NONAME ; CaNotifier::CaNotifier(class CaNotifierPrivate *) + ?trUtf8@CaNotifier@@SA?AVQString@@PBD0H@Z @ 47 NONAME ; class QString CaNotifier::trUtf8(char const *, char const *, int) + ?getStaticMetaObject@CaItemModel@@SAABUQMetaObject@@XZ @ 48 NONAME ; struct QMetaObject const & CaItemModel::getStaticMetaObject(void) + ?trUtf8@CaItemModel@@SA?AVQString@@PBD0@Z @ 49 NONAME ; class QString CaItemModel::trUtf8(char const *, char const *) + ?newSession@CaClientNotifierProxy@@AAEPAVRCaClientNotifierSession@@AAH@Z @ 50 NONAME ; class RCaClientNotifierSession * CaClientNotifierProxy::newSession(int &) + ?entryChanged@CaNotifier@@IAEXABVCaEntry@@W4ChangeType@@@Z @ 51 NONAME ; void CaNotifier::entryChanged(class CaEntry const &, enum ChangeType) + ?attribute@CaEntry@@QBE?AVQString@@ABV2@@Z @ 52 NONAME ; class QString CaEntry::attribute(class QString const &) const + ?metaObject@CaService@@UBEPBUQMetaObject@@XZ @ 53 NONAME ; struct QMetaObject const * CaService::metaObject(void) const + ?entryChanged@CaNotifier@@IAEXHW4ChangeType@@@Z @ 54 NONAME ; void CaNotifier::entryChanged(int, enum ChangeType) + ?getStaticMetaObject@CaClientNotifierProxy@@SAABUQMetaObject@@XZ @ 55 NONAME ; struct QMetaObject const & CaClientNotifierProxy::getStaticMetaObject(void) + ?registerNotifier@CaClientNotifierProxy@@QAEHPBVCaNotifierFilter@@W4NotifierType@CaNotifierPrivate@@PBVIDataObserver@@@Z @ 56 NONAME ; int CaClientNotifierProxy::registerNotifier(class CaNotifierFilter const *, enum CaNotifierPrivate::NotifierType, class IDataObserver const *) + ??_ECaClientNotifierProxy@@UAE@I@Z @ 57 NONAME ; CaClientNotifierProxy::~CaClientNotifierProxy(unsigned int) + ??0CaNotifierFilter@@QAE@XZ @ 58 NONAME ; CaNotifierFilter::CaNotifierFilter(void) + ?childId@CaQuery@@QBEHXZ @ 59 NONAME ; int CaQuery::childId(void) const + ?removeEntries@CaService@@QBE_NABV?$QList@H@@@Z @ 60 NONAME ; bool CaService::removeEntries(class QList const &) const + ?entryTouched@CaNotifier@@IAEXH@Z @ 61 NONAME ; void CaNotifier::entryTouched(int) + ?customSort@CaService@@QBE_NHAAV?$QList@H@@@Z @ 62 NONAME ; bool CaService::customSort(int, class QList &) const + ?groupContentChanged@CaNotifier@@IAEXH@Z @ 63 NONAME ; void CaNotifier::groupContentChanged(int) + ?tr@CaNotifier@@SA?AVQString@@PBD0@Z @ 64 NONAME ; class QString CaNotifier::tr(char const *, char const *) + ?setChildId@CaQuery@@QAEXH@Z @ 65 NONAME ; void CaQuery::setChildId(int) + ?findSession@CaClientNotifierProxy@@AAEPAVRCaClientNotifierSession@@XZ @ 66 NONAME ; class RCaClientNotifierSession * CaClientNotifierProxy::findSession(void) + ??1CaItemModel@@UAE@XZ @ 67 NONAME ; CaItemModel::~CaItemModel(void) + ?attributes@CaEntry@@QBE?AV?$QMap@VQString@@V1@@@XZ @ 68 NONAME ; class QMap CaEntry::attributes(void) const + ?connectNotify@CaNotifier@@MAEXPBD@Z @ 69 NONAME ; void CaNotifier::connectNotify(char const *) + ?setEntryRole@CaNotifierFilter@@QAEXV?$QFlags@W4EntryRole@@@@@Z @ 70 NONAME ; void CaNotifierFilter::setEntryRole(class QFlags) + ??1CaClientNotifierProxy@@UAE@XZ @ 71 NONAME ; CaClientNotifierProxy::~CaClientNotifierProxy(void) + ?staticMetaObject@CaItemModel@@2UQMetaObject@@B @ 72 NONAME ; struct QMetaObject const CaItemModel::staticMetaObject + ?role@CaEntry@@QBE?AW4EntryRole@@XZ @ 73 NONAME ; enum EntryRole CaEntry::role(void) const + ?qt_metacast@CaNotifier@@UAEPAXPBD@Z @ 74 NONAME ; void * CaNotifier::qt_metacast(char const *) + ?text@CaEntry@@QBE?AVQString@@XZ @ 75 NONAME ; class QString CaEntry::text(void) const + ?tr@CaClientNotifierProxy@@SA?AVQString@@PBD0@Z @ 76 NONAME ; class QString CaClientNotifierProxy::tr(char const *, char const *) + ?getUninstallingEntriesIds@CaItemModel@@QAE?AV?$QList@H@@H@Z @ 77 NONAME ; class QList CaItemModel::getUninstallingEntriesIds(int) + ?columnCount@CaItemModel@@UBEHABVQModelIndex@@@Z @ 78 NONAME ; int CaItemModel::columnCount(class QModelIndex const &) const + ?entryChanged@CaService@@IAEXABVCaEntry@@W4ChangeType@@@Z @ 79 NONAME ; void CaService::entryChanged(class CaEntry const &, enum ChangeType) + ?scrollTo@CaItemModel@@IAEXHW4ScrollHint@QAbstractItemView@@@Z @ 80 NONAME ; void CaItemModel::scrollTo(int, enum QAbstractItemView::ScrollHint) + ??0CaIconDescription@@QAE@XZ @ 81 NONAME ; CaIconDescription::CaIconDescription(void) + ?attribute@CaQuery@@QBE?AVQString@@ABV2@@Z @ 82 NONAME ; class QString CaQuery::attribute(class QString const &) const + ?staticMetaObject@CaClientNotifierProxy@@2UQMetaObject@@B @ 83 NONAME ; struct QMetaObject const CaClientNotifierProxy::staticMetaObject + ??_ECaNotifierFilter@@UAE@I@Z @ 84 NONAME ; CaNotifierFilter::~CaNotifierFilter(unsigned int) + ?trUtf8@CaClientNotifierProxy@@SA?AVQString@@PBD0@Z @ 85 NONAME ; class QString CaClientNotifierProxy::trUtf8(char const *, char const *) + ?getStaticMetaObject@CaService@@SAABUQMetaObject@@XZ @ 86 NONAME ; struct QMetaObject const & CaService::getStaticMetaObject(void) + ?touch@CaService@@QBE_NABVCaEntry@@@Z @ 87 NONAME ; bool CaService::touch(class CaEntry const &) const + ?getEntries@CaService@@QBE?AV?$QList@V?$QSharedPointer@VCaEntry@@@@@@ABV?$QList@H@@@Z @ 88 NONAME ; class QList > CaService::getEntries(class QList const &) const + ??0CaNotifierFilter@@QAE@ABV0@@Z @ 89 NONAME ; CaNotifierFilter::CaNotifierFilter(class CaNotifierFilter const &) + ?getTypeNames@CaNotifierFilter@@QBE?AVQStringList@@XZ @ 90 NONAME ; class QStringList CaNotifierFilter::getTypeNames(void) const + ?entryTouched@CaService@@IAEXH@Z @ 91 NONAME ; void CaService::entryTouched(int) + ?disconnectNotify@CaNotifier@@MAEXPBD@Z @ 92 NONAME ; void CaNotifier::disconnectNotify(char const *) + ?removeEntryFromGroup@CaService@@QBE_NABVCaEntry@@0@Z @ 93 NONAME ; bool CaService::removeEntryFromGroup(class CaEntry const &, class CaEntry const &) const + ?setId@CaIconDescription@@AAEXH@Z @ 94 NONAME ; void CaIconDescription::setId(int) + ?setFilename@CaIconDescription@@QAEXABVQString@@@Z @ 95 NONAME ; void CaIconDescription::setFilename(class QString const &) + ?setEntryTypeName@CaEntry@@QAEXABVQString@@@Z @ 96 NONAME ; void CaEntry::setEntryTypeName(class QString const &) + ??4CaQuery@@QAEAAV0@ABV0@@Z @ 97 NONAME ; class CaQuery & CaQuery::operator=(class CaQuery const &) + ??1CaNotifierFilter@@UAE@XZ @ 98 NONAME ; CaNotifierFilter::~CaNotifierFilter(void) + ?entryTypeName@CaEntry@@QBE?AVQString@@XZ @ 99 NONAME ; class QString CaEntry::entryTypeName(void) const + ?trUtf8@CaService@@SA?AVQString@@PBD0@Z @ 100 NONAME ; class QString CaService::trUtf8(char const *, char const *) + ?groupContentChanged@CaService@@IAEXH@Z @ 101 NONAME ; void CaService::groupContentChanged(int) + ?connectSessions@CaClientNotifierProxy@@QAEXXZ @ 102 NONAME ; void CaClientNotifierProxy::connectSessions(void) + ?insertEntriesIntoGroup@CaService@@QBE_NABVCaEntry@@ABV?$QList@V?$QSharedPointer@VCaEntry@@@@@@H@Z @ 103 NONAME ; bool CaService::insertEntriesIntoGroup(class CaEntry const &, class QList > const &, int) const + ??4CaIconDescription@@QAEAAV0@ABV0@@Z @ 104 NONAME ; class CaIconDescription & CaIconDescription::operator=(class CaIconDescription const &) + ?count@CaQuery@@QBEIXZ @ 105 NONAME ; unsigned int CaQuery::count(void) const + ?appendEntriesToGroup@CaService@@QBE_NABVCaEntry@@ABV?$QList@V?$QSharedPointer@VCaEntry@@@@@@@Z @ 106 NONAME ; bool CaService::appendEntriesToGroup(class CaEntry const &, class QList > const &) const + ?id@CaEntry@@QBEHXZ @ 107 NONAME ; int CaEntry::id(void) const + ?removeEntries@CaService@@QBE_NABV?$QList@V?$QSharedPointer@VCaEntry@@@@@@@Z @ 108 NONAME ; bool CaService::removeEntries(class QList > const &) const + ?updateModel@CaItemModel@@QAEXXZ @ 109 NONAME ; void CaItemModel::updateModel(void) + ?setFlags@CaEntry@@QAEXV?$QFlags@W4EntryFlag@@@@@Z @ 110 NONAME ; void CaEntry::setFlags(class QFlags) + ?insertEntryIntoGroup@CaService@@QBE_NHHH@Z @ 111 NONAME ; bool CaService::insertEntryIntoGroup(int, int, int) const + ?qt_metacast@CaService@@UAEPAXPBD@Z @ 112 NONAME ; void * CaService::qt_metacast(char const *) + ?setFlagsOn@CaItemModel@@QAEXABV?$QFlags@W4EntryFlag@@@@@Z @ 113 NONAME ; void CaItemModel::setFlagsOn(class QFlags const &) + ??0CaQuery@@QAE@ABV0@@Z @ 114 NONAME ; CaQuery::CaQuery(class CaQuery const &) + ?iconDescription@CaEntry@@QBE?AVCaIconDescription@@XZ @ 115 NONAME ; class CaIconDescription CaEntry::iconDescription(void) const + ?trUtf8@CaService@@SA?AVQString@@PBD0H@Z @ 116 NONAME ; class QString CaService::trUtf8(char const *, char const *, int) + ?createEntry@CaService@@QBE?AV?$QSharedPointer@VCaEntry@@@@ABVCaEntry@@@Z @ 117 NONAME ; class QSharedPointer CaService::createEntry(class CaEntry const &) const + ??0CaNotifierFilter@@QAE@ABVCaQuery@@@Z @ 118 NONAME ; CaNotifierFilter::CaNotifierFilter(class CaQuery const &) + ?setEntryTypeNames@CaQuery@@QAEXABVQStringList@@@Z @ 119 NONAME ; void CaQuery::setEntryTypeNames(class QStringList const &) + ?updateProgress@CaItemModel@@QAEXHH@Z @ 120 NONAME ; void CaItemModel::updateProgress(int, int) + ?qt_metacall@CaItemModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 121 NONAME ; int CaItemModel::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setText@CaEntry@@QAEXABVQString@@_N@Z @ 122 NONAME ; void CaEntry::setText(class QString const &, bool) + ?removeAttribute@CaQuery@@QAEXABVQString@@@Z @ 123 NONAME ; void CaQuery::removeAttribute(class QString const &) + ?insertEntryIntoGroup@CaService@@QBE_NABVCaEntry@@0H@Z @ 124 NONAME ; bool CaService::insertEntryIntoGroup(class CaEntry const &, class CaEntry const &, int) const + ?setApplicationId@CaIconDescription@@QAEXABVQString@@@Z @ 125 NONAME ; void CaIconDescription::setApplicationId(class QString const &) + ?appendEntryToGroup@CaService@@QBE_NABVCaEntry@@0@Z @ 126 NONAME ; bool CaService::appendEntryToGroup(class CaEntry const &, class CaEntry const &) const + ?executeCommand@CaService@@QBEHHABVQString@@@Z @ 127 NONAME ; int CaService::executeCommand(int, class QString const &) const + ?setAttribute@CaQuery@@QAEXABVQString@@0@Z @ 128 NONAME ; void CaQuery::setAttribute(class QString const &, class QString const &) + ?attributes@CaQuery@@QBE?AV?$QMap@VQString@@V1@@@XZ @ 129 NONAME ; class QMap CaQuery::attributes(void) const + ?updateEntry@CaService@@QBE_NABVCaEntry@@@Z @ 130 NONAME ; bool CaService::updateEntry(class CaEntry const &) const + ?setAttribute@CaEntry@@QAEXABVQString@@0@Z @ 131 NONAME ; void CaEntry::setAttribute(class QString const &, class QString const &) + ?unregisterNotifier@CaClientNotifierProxy@@QAEXABVCaNotifierFilter@@W4NotifierType@CaNotifierPrivate@@@Z @ 132 NONAME ; void CaClientNotifierProxy::unregisterNotifier(class CaNotifierFilter const &, enum CaNotifierPrivate::NotifierType) + ?setParentId@CaItemModel@@QAEXH@Z @ 133 NONAME ; void CaItemModel::setParentId(int) + ?countChange@CaItemModel@@IAEXXZ @ 134 NONAME ; void CaItemModel::countChange(void) + ?metaObject@CaItemModel@@UBEPBUQMetaObject@@XZ @ 135 NONAME ; struct QMetaObject const * CaItemModel::metaObject(void) const + ?makeIcon@CaEntry@@QBE?AVHbIcon@@ABVQSizeF@@@Z @ 136 NONAME ; class HbIcon CaEntry::makeIcon(class QSizeF const &) const + ?tr@CaItemModel@@SA?AVQString@@PBD0H@Z @ 137 NONAME ; class QString CaItemModel::tr(char const *, char const *, int) + ?setFlagsOff@CaQuery@@QAEXABV?$QFlags@W4EntryFlag@@@@@Z @ 138 NONAME ; void CaQuery::setFlagsOff(class QFlags const &) + ?getEntry@CaService@@QBE?AV?$QSharedPointer@VCaEntry@@@@H@Z @ 139 NONAME ; class QSharedPointer CaService::getEntry(int) const + ??0CaEntry@@QAE@ABV0@@Z @ 140 NONAME ; CaEntry::CaEntry(class CaEntry const &) + ?rowCount@CaItemModel@@UBEHABVQModelIndex@@@Z @ 141 NONAME ; int CaItemModel::rowCount(class QModelIndex const &) const + ?clear@CaQuery@@QAEXXZ @ 142 NONAME ; void CaQuery::clear(void) + ?prependEntryToGroup@CaService@@QBE_NHH@Z @ 143 NONAME ; bool CaService::prependEntryToGroup(int, int) const + ?qt_metacast@CaClientNotifierProxy@@UAEPAXPBD@Z @ 144 NONAME ; void * CaClientNotifierProxy::qt_metacast(char const *) + ?getEntryIcon@CaMenuIconUtility@@SA?AVHbIcon@@ABVCaEntry@@ABVQSizeF@@@Z @ 145 NONAME ; class HbIcon CaMenuIconUtility::getEntryIcon(class CaEntry const &, class QSizeF const &) + ?tr@CaService@@SA?AVQString@@PBD0H@Z @ 146 NONAME ; class QString CaService::tr(char const *, char const *, int) + ?entryRoles@CaQuery@@QBE?AV?$QFlags@W4EntryRole@@@@XZ @ 147 NONAME ; class QFlags CaQuery::entryRoles(void) const + ?qt_metacall@CaService@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 148 NONAME ; int CaService::qt_metacall(enum QMetaObject::Call, int, void * *) + ??4CaNotifierFilter@@QAEAAV0@ABV0@@Z @ 149 NONAME ; class CaNotifierFilter & CaNotifierFilter::operator=(class CaNotifierFilter const &) + ??0CaItemModel@@QAE@ABVCaQuery@@PAVQObject@@@Z @ 150 NONAME ; CaItemModel::CaItemModel(class CaQuery const &, class QObject *) + ?setFlagsOff@CaItemModel@@QAEXABV?$QFlags@W4EntryFlag@@@@@Z @ 151 NONAME ; void CaItemModel::setFlagsOff(class QFlags const &) + ?getSort@CaQuery@@QBEXAAW4SortAttribute@@AAW4SortOrder@Qt@@@Z @ 152 NONAME ; void CaQuery::getSort(enum SortAttribute &, enum Qt::SortOrder &) const + ?parentId@CaQuery@@QBEHXZ @ 153 NONAME ; int CaQuery::parentId(void) const + ?setEntryRoles@CaQuery@@QAEXV?$QFlags@W4EntryRole@@@@@Z @ 154 NONAME ; void CaQuery::setEntryRoles(class QFlags) + ??_ECaEntry@@UAE@I@Z @ 155 NONAME ; CaEntry::~CaEntry(unsigned int) + ??0CaService@@AAE@PAVQObject@@@Z @ 156 NONAME ; CaService::CaService(class QObject *) + ??1CaService@@EAE@XZ @ 157 NONAME ; CaService::~CaService(void) + ?flagsOn@CaQuery@@QBE?AV?$QFlags@W4EntryFlag@@@@XZ @ 158 NONAME ; class QFlags CaQuery::flagsOn(void) const + ?description@CaEntry@@QBE?AVQString@@XZ @ 159 NONAME ; class QString CaEntry::description(void) const + ?metaObject@CaNotifier@@UBEPBUQMetaObject@@XZ @ 160 NONAME ; struct QMetaObject const * CaNotifier::metaObject(void) const + ?data@CaItemModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 161 NONAME ; class QVariant CaItemModel::data(class QModelIndex const &, int) const + ??0CaIconDescription@@QAE@ABV0@@Z @ 162 NONAME ; CaIconDescription::CaIconDescription(class CaIconDescription const &) + ?staticMetaObject@CaService@@2UQMetaObject@@B @ 163 NONAME ; struct QMetaObject const CaService::staticMetaObject + ?removeEntry@CaService@@QBE_NH@Z @ 164 NONAME ; bool CaService::removeEntry(int) const + ?addEntryTypeName@CaQuery@@QAEXABVQString@@@Z @ 165 NONAME ; void CaQuery::addEntryTypeName(class QString const &) + ?isAutoUpdate@CaItemModel@@QBE_NXZ @ 166 NONAME ; bool CaItemModel::isAutoUpdate(void) const + ??1CaEntry@@UAE@XZ @ 167 NONAME ; CaEntry::~CaEntry(void) + ?prependEntriesToGroup@CaService@@QBE_NABVCaEntry@@ABV?$QList@V?$QSharedPointer@VCaEntry@@@@@@@Z @ 168 NONAME ; bool CaService::prependEntriesToGroup(class CaEntry const &, class QList > const &) const + ?qt_metacall@CaNotifier@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 169 NONAME ; int CaNotifier::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setSort@CaItemModel@@QAEXW4SortAttribute@@W4SortOrder@Qt@@@Z @ 170 NONAME ; void CaItemModel::setSort(enum SortAttribute, enum Qt::SortOrder) + ?removeEntry@CaService@@QBE_NABVCaEntry@@@Z @ 171 NONAME ; bool CaService::removeEntry(class CaEntry const &) const + ?setId@CaEntry@@AAEXH@Z @ 172 NONAME ; void CaEntry::setId(int) + ?staticMetaObject@CaNotifier@@2UQMetaObject@@B @ 173 NONAME ; struct QMetaObject const CaNotifier::staticMetaObject + ?applicationId@CaIconDescription@@QBE?AVQString@@XZ @ 174 NONAME ; class QString CaIconDescription::applicationId(void) const + ?getIds@CaNotifierFilter@@QBE?AV?$QList@H@@XZ @ 175 NONAME ; class QList CaNotifierFilter::getIds(void) const + ?setIds@CaNotifierFilter@@QAEXABV?$QList@H@@@Z @ 176 NONAME ; void CaNotifierFilter::setIds(class QList const &) + ??0CaEntry@@QAE@W4EntryRole@@@Z @ 177 NONAME ; CaEntry::CaEntry(enum EntryRole) + ?executeCommand@CaService@@QBEHABVCaEntry@@ABVQString@@@Z @ 178 NONAME ; int CaService::executeCommand(class CaEntry const &, class QString const &) const + ?qt_metacast@CaItemModel@@UAEPAXPBD@Z @ 179 NONAME ; void * CaItemModel::qt_metacast(char const *) + ?trUtf8@CaClientNotifierProxy@@SA?AVQString@@PBD0H@Z @ 180 NONAME ; class QString CaClientNotifierProxy::trUtf8(char const *, char const *, int) + ?lastError@CaService@@QBE?AW4ErrorCode@@XZ @ 181 NONAME ; enum ErrorCode CaService::lastError(void) const + ?insertEntriesIntoGroup@CaService@@QBE_NHABV?$QList@H@@H@Z @ 182 NONAME ; bool CaService::insertEntriesIntoGroup(int, class QList const &, int) const + ?getApplicationIcon@CaMenuIconUtility@@SA?AVHbIcon@@HABVQSizeF@@@Z @ 183 NONAME ; class HbIcon CaMenuIconUtility::getApplicationIcon(int, class QSizeF const &) + ?trUtf8@CaItemModel@@SA?AVQString@@PBD0H@Z @ 184 NONAME ; class QString CaItemModel::trUtf8(char const *, char const *, int) + ?setFlagsOn@CaQuery@@QAEXABV?$QFlags@W4EntryFlag@@@@@Z @ 185 NONAME ; void CaQuery::setFlagsOn(class QFlags const &) + ?parent@CaItemModel@@UBE?AVQModelIndex@@ABV2@@Z @ 186 NONAME ; class QModelIndex CaItemModel::parent(class QModelIndex const &) const + ?empty@CaItemModel@@IAEX_N@Z @ 187 NONAME ; void CaItemModel::empty(bool) + ?filename@CaIconDescription@@QBE?AVQString@@XZ @ 188 NONAME ; class QString CaIconDescription::filename(void) const + ?setIconDescription@CaEntry@@QAEXABVCaIconDescription@@@Z @ 189 NONAME ; void CaEntry::setIconDescription(class CaIconDescription const &) + ?appendEntryToGroup@CaService@@QBE_NHH@Z @ 190 NONAME ; bool CaService::appendEntryToGroup(int, int) const + ?setTypeNames@CaNotifierFilter@@QAEXABVQStringList@@@Z @ 191 NONAME ; void CaNotifierFilter::setTypeNames(class QStringList const &) + ?entryTypeNames@CaQuery@@QBE?AVQStringList@@XZ @ 192 NONAME ; class QStringList CaQuery::entryTypeNames(void) const + ?findSession@CaClientNotifierProxy@@ABEHABVCaNotifierFilter@@W4TNotifierType@CCaInnerNotifierFilter@@@Z @ 193 NONAME ; int CaClientNotifierProxy::findSession(class CaNotifierFilter const &, enum CCaInnerNotifierFilter::TNotifierType) const + ?tr@CaClientNotifierProxy@@SA?AVQString@@PBD0H@Z @ 194 NONAME ; class QString CaClientNotifierProxy::tr(char const *, char const *, int) + ?setAutoUpdate@CaItemModel@@QAEX_N@Z @ 195 NONAME ; void CaItemModel::setAutoUpdate(bool) + ??_ECaService@@UAE@I@Z @ 196 NONAME ; CaService::~CaService(unsigned int) + ?removeEntryFromGroup@CaService@@QBE_NHH@Z @ 197 NONAME ; bool CaService::removeEntryFromGroup(int, int) const + ?index@CaItemModel@@UBE?AVQModelIndex@@HHABV2@@Z @ 198 NONAME ; class QModelIndex CaItemModel::index(int, int, class QModelIndex const &) const + diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/caclient/eabi/caclientu.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contentstorage/caclient/eabi/caclientu.def Thu Sep 02 20:45:03 2010 +0300 @@ -0,0 +1,217 @@ +EXPORTS + _ZN10CaNotifier11qt_metacallEN11QMetaObject4CallEiPPv @ 1 NONAME + _ZN10CaNotifier11qt_metacastEPKc @ 2 NONAME + _ZN10CaNotifier12entryChangedERK7CaEntry10ChangeType @ 3 NONAME + _ZN10CaNotifier12entryChangedEi10ChangeType @ 4 NONAME + _ZN10CaNotifier12entryTouchedEi @ 5 NONAME + _ZN10CaNotifier13connectNotifyEPKc @ 6 NONAME + _ZN10CaNotifier16disconnectNotifyEPKc @ 7 NONAME + _ZN10CaNotifier16staticMetaObjectE @ 8 NONAME DATA 16 + _ZN10CaNotifier19getStaticMetaObjectEv @ 9 NONAME + _ZN10CaNotifier19groupContentChangedEi @ 10 NONAME + _ZN10CaNotifierC1EP17CaNotifierPrivate @ 11 NONAME + _ZN10CaNotifierC2EP17CaNotifierPrivate @ 12 NONAME + _ZN10CaNotifierD0Ev @ 13 NONAME + _ZN10CaNotifierD1Ev @ 14 NONAME + _ZN10CaNotifierD2Ev @ 15 NONAME + _ZN11CaItemModel10setFlagsOnERK6QFlagsI9EntryFlagE @ 16 NONAME + _ZN11CaItemModel11countChangeEv @ 17 NONAME + _ZN11CaItemModel11qt_metacallEN11QMetaObject4CallEiPPv @ 18 NONAME + _ZN11CaItemModel11qt_metacastEPKc @ 19 NONAME + _ZN11CaItemModel11setFlagsOffERK6QFlagsI9EntryFlagE @ 20 NONAME + _ZN11CaItemModel11setIconSizeERK6QSizeF @ 21 NONAME + _ZN11CaItemModel11setParentIdEi @ 22 NONAME + _ZN11CaItemModel11updateModelEv @ 23 NONAME + _ZN11CaItemModel13setAutoUpdateEb @ 24 NONAME + _ZN11CaItemModel14updateProgressEii @ 25 NONAME + _ZN11CaItemModel16staticMetaObjectE @ 26 NONAME DATA 16 + _ZN11CaItemModel19getStaticMetaObjectEv @ 27 NONAME + _ZN11CaItemModel23setSecondLineVisibilityEb @ 28 NONAME + _ZN11CaItemModel25getUninstallingEntriesIdsEi @ 29 NONAME + _ZN11CaItemModel5emptyEb @ 30 NONAME + _ZN11CaItemModel7setSortE13SortAttributeN2Qt9SortOrderE @ 31 NONAME + _ZN11CaItemModel8scrollToEiN17QAbstractItemView10ScrollHintE @ 32 NONAME + _ZN11CaItemModelC1ERK7CaQueryP7QObject @ 33 NONAME + _ZN11CaItemModelC2ERK7CaQueryP7QObject @ 34 NONAME + _ZN11CaItemModelD0Ev @ 35 NONAME + _ZN11CaItemModelD1Ev @ 36 NONAME + _ZN11CaItemModelD2Ev @ 37 NONAME + _ZN16CaNotifierFilter11setParentIdEi @ 38 NONAME + _ZN16CaNotifierFilter12setEntryRoleE6QFlagsI9EntryRoleE @ 39 NONAME + _ZN16CaNotifierFilter12setTypeNamesERK11QStringList @ 40 NONAME + _ZN16CaNotifierFilter6setIdsERK5QListIiE @ 41 NONAME + _ZN16CaNotifierFilterC1ERK7CaQuery @ 42 NONAME + _ZN16CaNotifierFilterC1ERKS_ @ 43 NONAME + _ZN16CaNotifierFilterC1Ev @ 44 NONAME + _ZN16CaNotifierFilterC2ERK7CaQuery @ 45 NONAME + _ZN16CaNotifierFilterC2ERKS_ @ 46 NONAME + _ZN16CaNotifierFilterC2Ev @ 47 NONAME + _ZN16CaNotifierFilterD0Ev @ 48 NONAME + _ZN16CaNotifierFilterD1Ev @ 49 NONAME + _ZN16CaNotifierFilterD2Ev @ 50 NONAME + _ZN16CaNotifierFilteraSERKS_ @ 51 NONAME + _ZN17CaIconDescription11setFilenameERK7QString @ 52 NONAME + _ZN17CaIconDescription16setApplicationIdERK7QString @ 53 NONAME + _ZN17CaIconDescription5setIdEi @ 54 NONAME + _ZN17CaIconDescription9setSkinIdERK7QString @ 55 NONAME + _ZN17CaIconDescriptionC1ERKS_ @ 56 NONAME + _ZN17CaIconDescriptionC1Ev @ 57 NONAME + _ZN17CaIconDescriptionC2ERKS_ @ 58 NONAME + _ZN17CaIconDescriptionC2Ev @ 59 NONAME + _ZN17CaIconDescriptionD1Ev @ 60 NONAME + _ZN17CaIconDescriptionD2Ev @ 61 NONAME + _ZN17CaIconDescriptionaSERKS_ @ 62 NONAME + _ZN17CaMenuIconUtility12getEntryIconERK7CaEntryRK6QSizeF @ 63 NONAME + _ZN17CaMenuIconUtility18getApplicationIconEiRK6QSizeF @ 64 NONAME + _ZN21CaClientNotifierProxy10newSessionERi @ 65 NONAME + _ZN21CaClientNotifierProxy11findSessionEv @ 66 NONAME + _ZN21CaClientNotifierProxy11qt_metacallEN11QMetaObject4CallEiPPv @ 67 NONAME + _ZN21CaClientNotifierProxy11qt_metacastEPKc @ 68 NONAME + _ZN21CaClientNotifierProxy15connectSessionsEv @ 69 NONAME + _ZN21CaClientNotifierProxy16registerNotifierEPK16CaNotifierFilterN17CaNotifierPrivate12NotifierTypeEPK13IDataObserver @ 70 NONAME + _ZN21CaClientNotifierProxy16staticMetaObjectE @ 71 NONAME DATA 16 + _ZN21CaClientNotifierProxy18unregisterNotifierERK16CaNotifierFilterN17CaNotifierPrivate12NotifierTypeE @ 72 NONAME + _ZN21CaClientNotifierProxy19getStaticMetaObjectEv @ 73 NONAME + _ZN21CaClientNotifierProxyC1EP7QObject @ 74 NONAME + _ZN21CaClientNotifierProxyC2EP7QObject @ 75 NONAME + _ZN21CaClientNotifierProxyD0Ev @ 76 NONAME + _ZN21CaClientNotifierProxyD1Ev @ 77 NONAME + _ZN21CaClientNotifierProxyD2Ev @ 78 NONAME + _ZN7CaEntry12setAttributeERK7QStringS2_ @ 79 NONAME + _ZN7CaEntry14setDescriptionERK7QStringb @ 80 NONAME + _ZN7CaEntry16setEntryTypeNameERK7QString @ 81 NONAME + _ZN7CaEntry18setIconDescriptionERK17CaIconDescription @ 82 NONAME + _ZN7CaEntry5setIdEi @ 83 NONAME + _ZN7CaEntry7setTextERK7QStringb @ 84 NONAME + _ZN7CaEntry8setFlagsE6QFlagsI9EntryFlagE @ 85 NONAME + _ZN7CaEntryC1E9EntryRole @ 86 NONAME + _ZN7CaEntryC1ERKS_ @ 87 NONAME + _ZN7CaEntryC2E9EntryRole @ 88 NONAME + _ZN7CaEntryC2ERKS_ @ 89 NONAME + _ZN7CaEntryD0Ev @ 90 NONAME + _ZN7CaEntryD1Ev @ 91 NONAME + _ZN7CaEntryD2Ev @ 92 NONAME + _ZN7CaEntryaSERKS_ @ 93 NONAME + _ZN7CaQuery10setChildIdEi @ 94 NONAME + _ZN7CaQuery10setFlagsOnERK6QFlagsI9EntryFlagE @ 95 NONAME + _ZN7CaQuery11setFlagsOffERK6QFlagsI9EntryFlagE @ 96 NONAME + _ZN7CaQuery11setParentIdEi @ 97 NONAME + _ZN7CaQuery12setAttributeERK7QStringS2_ @ 98 NONAME + _ZN7CaQuery13setEntryRolesE6QFlagsI9EntryRoleE @ 99 NONAME + _ZN7CaQuery15removeAttributeERK7QString @ 100 NONAME + _ZN7CaQuery16addEntryTypeNameERK7QString @ 101 NONAME + _ZN7CaQuery17setEntryTypeNamesERK11QStringList @ 102 NONAME + _ZN7CaQuery5clearEv @ 103 NONAME + _ZN7CaQuery7setSortE13SortAttributeN2Qt9SortOrderE @ 104 NONAME + _ZN7CaQuery8setCountEj @ 105 NONAME + _ZN7CaQueryC1ERKS_ @ 106 NONAME + _ZN7CaQueryC1Ev @ 107 NONAME + _ZN7CaQueryC2ERKS_ @ 108 NONAME + _ZN7CaQueryC2Ev @ 109 NONAME + _ZN7CaQueryD1Ev @ 110 NONAME + _ZN7CaQueryD2Ev @ 111 NONAME + _ZN7CaQueryaSERKS_ @ 112 NONAME + _ZN9CaService10m_instanceE @ 113 NONAME DATA 8 + _ZN9CaService11qt_metacallEN11QMetaObject4CallEiPPv @ 114 NONAME + _ZN9CaService11qt_metacastEPKc @ 115 NONAME + _ZN9CaService12entryChangedERK7CaEntry10ChangeType @ 116 NONAME + _ZN9CaService12entryChangedEi10ChangeType @ 117 NONAME + _ZN9CaService12entryTouchedEi @ 118 NONAME + _ZN9CaService16staticMetaObjectE @ 119 NONAME DATA 16 + _ZN9CaService19getStaticMetaObjectEv @ 120 NONAME + _ZN9CaService19groupContentChangedEi @ 121 NONAME + _ZN9CaService8instanceEv @ 122 NONAME + _ZN9CaServiceC1EP7QObject @ 123 NONAME + _ZN9CaServiceC2EP7QObject @ 124 NONAME + _ZN9CaServiceD0Ev @ 125 NONAME + _ZN9CaServiceD1Ev @ 126 NONAME + _ZN9CaServiceD2Ev @ 127 NONAME + _ZNK10CaNotifier10metaObjectEv @ 128 NONAME + _ZNK11CaItemModel10metaObjectEv @ 129 NONAME + _ZNK11CaItemModel11columnCountERK11QModelIndex @ 130 NONAME + _ZNK11CaItemModel11getIconSizeEv @ 131 NONAME + _ZNK11CaItemModel12isAutoUpdateEv @ 132 NONAME + _ZNK11CaItemModel20secondLineVisibilityEv @ 133 NONAME + _ZNK11CaItemModel4dataERK11QModelIndexi @ 134 NONAME + _ZNK11CaItemModel4rootEv @ 135 NONAME + _ZNK11CaItemModel5entryERK11QModelIndex @ 136 NONAME + _ZNK11CaItemModel5indexEiiRK11QModelIndex @ 137 NONAME + _ZNK11CaItemModel6parentERK11QModelIndex @ 138 NONAME + _ZNK11CaItemModel8rowCountERK11QModelIndex @ 139 NONAME + _ZNK16CaNotifierFilter11getParentIdEv @ 140 NONAME + _ZNK16CaNotifierFilter12getEntryRoleEv @ 141 NONAME + _ZNK16CaNotifierFilter12getTypeNamesEv @ 142 NONAME + _ZNK16CaNotifierFilter6getIdsEv @ 143 NONAME + _ZNK17CaIconDescription13applicationIdEv @ 144 NONAME + _ZNK17CaIconDescription2idEv @ 145 NONAME + _ZNK17CaIconDescription6skinIdEv @ 146 NONAME + _ZNK17CaIconDescription8filenameEv @ 147 NONAME + _ZNK21CaClientNotifierProxy10metaObjectEv @ 148 NONAME + _ZNK21CaClientNotifierProxy11findSessionERK16CaNotifierFilterN22CCaInnerNotifierFilter13TNotifierTypeE @ 149 NONAME + _ZNK7CaEntry10attributesEv @ 150 NONAME + _ZNK7CaEntry11descriptionEv @ 151 NONAME + _ZNK7CaEntry11isLocalizedE16LocalizationType @ 152 NONAME + _ZNK7CaEntry13entryTypeNameEv @ 153 NONAME + _ZNK7CaEntry15iconDescriptionEv @ 154 NONAME + _ZNK7CaEntry2idEv @ 155 NONAME + _ZNK7CaEntry4roleEv @ 156 NONAME + _ZNK7CaEntry4textEv @ 157 NONAME + _ZNK7CaEntry5flagsEv @ 158 NONAME + _ZNK7CaEntry8makeIconERK6QSizeF @ 159 NONAME + _ZNK7CaEntry9attributeERK7QString @ 160 NONAME + _ZNK7CaQuery10attributesEv @ 161 NONAME + _ZNK7CaQuery10entryRolesEv @ 162 NONAME + _ZNK7CaQuery14entryTypeNamesEv @ 163 NONAME + _ZNK7CaQuery5countEv @ 164 NONAME + _ZNK7CaQuery7childIdEv @ 165 NONAME + _ZNK7CaQuery7flagsOnEv @ 166 NONAME + _ZNK7CaQuery7getSortER13SortAttributeRN2Qt9SortOrderE @ 167 NONAME + _ZNK7CaQuery8flagsOffEv @ 168 NONAME + _ZNK7CaQuery8parentIdEv @ 169 NONAME + _ZNK7CaQuery9attributeERK7QString @ 170 NONAME + _ZNK9CaService10customSortEiR5QListIiE @ 171 NONAME + _ZNK9CaService10getEntriesERK5QListIiE @ 172 NONAME + _ZNK9CaService10getEntriesERK7CaQuery @ 173 NONAME + _ZNK9CaService10metaObjectEv @ 174 NONAME + _ZNK9CaService11createEntryERK7CaEntry @ 175 NONAME + _ZNK9CaService11getEntryIdsERK7CaQuery @ 176 NONAME + _ZNK9CaService11removeEntryERK7CaEntry @ 177 NONAME + _ZNK9CaService11removeEntryEi @ 178 NONAME + _ZNK9CaService11updateEntryERK7CaEntry @ 179 NONAME + _ZNK9CaService13removeEntriesERK5QListI14QSharedPointerI7CaEntryEE @ 180 NONAME + _ZNK9CaService13removeEntriesERK5QListIiE @ 181 NONAME + _ZNK9CaService14createNotifierERK16CaNotifierFilter @ 182 NONAME + _ZNK9CaService14executeCommandERK7CaEntryRK7QString @ 183 NONAME + _ZNK9CaService14executeCommandEiRK7QString @ 184 NONAME + _ZNK9CaService18appendEntryToGroupERK7CaEntryS2_ @ 185 NONAME + _ZNK9CaService18appendEntryToGroupEii @ 186 NONAME + _ZNK9CaService19prependEntryToGroupERK7CaEntryS2_ @ 187 NONAME + _ZNK9CaService19prependEntryToGroupEii @ 188 NONAME + _ZNK9CaService20appendEntriesToGroupERK7CaEntryRK5QListI14QSharedPointerIS0_EE @ 189 NONAME + _ZNK9CaService20appendEntriesToGroupEiRK5QListIiE @ 190 NONAME + _ZNK9CaService20insertEntryIntoGroupERK7CaEntryS2_i @ 191 NONAME + _ZNK9CaService20insertEntryIntoGroupEiii @ 192 NONAME + _ZNK9CaService20removeEntryFromGroupERK7CaEntryS2_ @ 193 NONAME + _ZNK9CaService20removeEntryFromGroupEii @ 194 NONAME + _ZNK9CaService21prependEntriesToGroupERK7CaEntryRK5QListI14QSharedPointerIS0_EE @ 195 NONAME + _ZNK9CaService21prependEntriesToGroupEiRK5QListIiE @ 196 NONAME + _ZNK9CaService22insertEntriesIntoGroupERK7CaEntryRK5QListI14QSharedPointerIS0_EEi @ 197 NONAME + _ZNK9CaService22insertEntriesIntoGroupEiRK5QListIiEi @ 198 NONAME + _ZNK9CaService22removeEntriesFromGroupERK7CaEntryRK5QListI14QSharedPointerIS0_EE @ 199 NONAME + _ZNK9CaService22removeEntriesFromGroupEiRK5QListIiE @ 200 NONAME + _ZNK9CaService5touchERK7CaEntry @ 201 NONAME + _ZNK9CaService8getEntryEi @ 202 NONAME + _ZNK9CaService9lastErrorEv @ 203 NONAME + _ZTI10CaNotifier @ 204 NONAME + _ZTI11CaItemModel @ 205 NONAME + _ZTI16CaNotifierFilter @ 206 NONAME + _ZTI21CaClientNotifierProxy @ 207 NONAME + _ZTI7CaEntry @ 208 NONAME + _ZTI9CaService @ 209 NONAME + _ZTV10CaNotifier @ 210 NONAME + _ZTV11CaItemModel @ 211 NONAME + _ZTV16CaNotifierFilter @ 212 NONAME + _ZTV21CaClientNotifierProxy @ 213 NONAME + _ZTV7CaEntry @ 214 NONAME + _ZTV9CaService @ 215 NONAME + diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/caclient/inc/caentry_p.h --- a/contentstorage/caclient/inc/caentry_p.h Wed Aug 18 10:05:49 2010 +0300 +++ b/contentstorage/caclient/inc/caentry_p.h Thu Sep 02 20:45:03 2010 +0300 @@ -61,7 +61,7 @@ QString attribute(const QString &name) const; void setAttribute(const QString &name, const QString &value); - HbIcon makeIcon(const QSize &size) const; + HbIcon makeIcon(const QSizeF &size) const; EntryRole role() const; void setRole(const EntryRole &role); diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/caclient/inc/cahandler.h --- a/contentstorage/caclient/inc/cahandler.h Wed Aug 18 10:05:49 2010 +0300 +++ b/contentstorage/caclient/inc/cahandler.h Thu Sep 02 20:45:03 2010 +0300 @@ -24,7 +24,7 @@ class QString; class CaEntry; -class CaHandler // move this header to caclient/inc +class CaHandler { public: virtual ~CaHandler() {} diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/caclient/inc/caiconcache.h --- a/contentstorage/caclient/inc/caiconcache.h Wed Aug 18 10:05:49 2010 +0300 +++ b/contentstorage/caclient/inc/caiconcache.h Thu Sep 02 20:45:03 2010 +0300 @@ -36,15 +36,14 @@ public: static CaIconCache *cache(); - bool exist(const CaEntry &entry, const QSize &size); - HbIcon icon(const CaEntry &entry, const QSize &size); - void insert(const CaEntry &entry, const QSize &size, const HbIcon &icon); + HbIcon icon(const CaEntry &entry, const QSizeF &size); + void insert(const CaEntry &entry, const QSizeF &size, const HbIcon &icon); private: explicit CaIconCache(QObject *parent = 0); ~CaIconCache(); - QString key(const CaEntry &entry, const QSize &size = QSize()); + QString key(const CaEntry &entry, const QSizeF &size = QSizeF()); private slots: diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/caclient/inc/caitemmodel_p.h --- a/contentstorage/caclient/inc/caitemmodel_p.h Wed Aug 18 10:05:49 2010 +0300 +++ b/contentstorage/caclient/inc/caitemmodel_p.h Thu Sep 02 20:45:03 2010 +0300 @@ -52,8 +52,8 @@ void setAutoUpdate(bool autoUpdate); void setSort(SortAttribute sortAttribute, Qt::SortOrder sortOrder = Qt::AscendingOrder); - void setIconSize(const QSize &size); - QSize getIconSize() const; + void setIconSize(const QSizeF &size); + QSizeF getIconSize() const; QModelIndex root(); QSharedPointer entry(const QModelIndex &modelIndex) const; void setSecondLineVisibility(bool secondLineVisibility); @@ -106,7 +106,7 @@ QSharedPointer mService; CaItemModelList mEntries; CaNotifier *mNotifier;//own - QSize mSize; + QSizeF mSize; bool mSecondLineVisibility; }; diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/caclient/s60/inc/camenuiconmifutility.h --- a/contentstorage/caclient/s60/inc/camenuiconmifutility.h Wed Aug 18 10:05:49 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -/* - * 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 MENUICONMIFUTILITY_H -#define MENUICONMIFUTILITY_H - -// INCLUDES - -// CLASS DECLARATION -#include - -/** - * CaMenuIconMifUtility - * - */ -class CaMenuIconMifUtility -{ -public: - - /** - * Create pixmap from filename - * @param fileName icon filename. - * @param icon size. - * @param pixmap to fill. - * @return void. - */ - static void GetPixmapByFilenameL(TDesC& fileName, const QSize &size, - QPixmap& pixmap); -}; - -#endif // MENUICONMIFUTILITY_H diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/caclient/s60/src/camenuiconmifutility.cpp --- a/contentstorage/caclient/s60/src/camenuiconmifutility.cpp Wed Aug 18 10:05:49 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -/* - * Copyright (c)2008 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: ?Description - * - */ - -#include -#include -#include -#include -#include // avkon -#include // fbsbitmap - -#include "cabitmapadapter.h" -#include "camenuiconmifutility.h" - - -void CaMenuIconMifUtility::GetPixmapByFilenameL(TDesC& fileName, - const QSize &size, QPixmap& pixmap) -{ - CFbsBitmap *bitamp(0); - CFbsBitmap *mask(0); - - TInt bitmapIndex = 0; - TInt maskIndex = 1; - // it will change bitmap ids if it is mif (checking inside) - AknIconUtils::ValidateLogicalAppIconId( fileName, - bitmapIndex, maskIndex ); - AknIconUtils::CreateIconLC( bitamp, mask, fileName, - bitmapIndex, maskIndex ); - - if (AknIconUtils::IsMifFile(fileName)) { - AknIconUtils::DisableCompression(bitamp); - AknIconUtils::SetSize(bitamp, TSize(size.width(), size.height()), - EAspectRatioPreservedAndUnusedSpaceRemoved); - - CaBitmapAdapter::fromBitmapAndMaskToPixmapL(bitamp, mask, pixmap); - } else { - CaBitmapAdapter::fromBitmapAndMaskToPixmapL(bitamp, mask, pixmap); - pixmap.scaled(size); - } - - // bitmap and icon, AknsUtils::CreateIconLC doesn't specify the order - CleanupStack::Pop(2); -} diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/caclient/s60/src/camenuiconutility.cpp --- a/contentstorage/caclient/s60/src/camenuiconutility.cpp Wed Aug 18 10:05:49 2010 +0300 +++ b/contentstorage/caclient/s60/src/camenuiconutility.cpp Thu Sep 02 20:45:03 2010 +0300 @@ -29,22 +29,22 @@ #include #include + #include "camenuiconutility.h" -#include "camenuiconmifutility.h" #include "cabitmapadapter.h" #include "caentry.h" #include "caquery.h" #include "caservice.h" #include "cadef.h" -const QString appUidAttributeName("application:uid"); +const char appUidAttributeName[] = "application:uid"; /*! Get icon from entry. \param entry const reference to CaEntry. \retval icon. */ -LOCAL_C HbIcon getIconFromEntry(const CaEntry& entry) +LOCAL_C HbIcon getIconFromEntry(const CaEntry& entry, const QSizeF &size) { HbIcon icon; QString skinId(entry.iconDescription().skinId()); @@ -56,6 +56,11 @@ QString fileName(entry.iconDescription().filename()); if (!fileName.isEmpty()) { icon = HbIcon(fileName); + if (fileName.contains(QChar('.')) + && !icon.isNull() && icon.size().isValid()) { + icon.setSize(size); + icon = HbIcon(QIcon(icon.pixmap())); + } } } return icon; @@ -67,7 +72,7 @@ \param sie const reference to icon size. \retval icon. */ -LOCAL_C HbIcon getIconFromApparcL(int uidValue, const QSize &size) +LOCAL_C HbIcon getIconFromApparcL(int uidValue, const QSizeF &size) { HbIcon icon; @@ -103,7 +108,8 @@ CaBitmapAdapter::fromBitmapAndMaskToPixmapL(apaMaskedBitmap, apaMaskedBitmap->Mask(), pixmap); - pixmap = pixmap.scaled(size, Qt::KeepAspectRatioByExpanding); + pixmap = pixmap.scaled(size.toSize(), + Qt::KeepAspectRatioByExpanding); icon = HbIcon(QIcon(pixmap)); } else { HBufC* fileNameFromApparc = NULL; @@ -112,11 +118,13 @@ if (err2 == KErrNone) { QString fileName = XQConversions::s60DescToQString( fileNameFromApparc->Des()); - if (fileName.contains(QString(".mif")) || fileName.contains(QString(".mbm"))) { - - TPtr ptr(fileNameFromApparc->Des()); - CaMenuIconMifUtility::GetPixmapByFilenameL(ptr,size,pixmap); - icon = HbIcon(QIcon(pixmap)); + if (fileName.endsWith(QLatin1String(".mif"), + Qt::CaseInsensitive) || + fileName.endsWith(QLatin1String(".mbm"), + Qt::CaseInsensitive)) { + icon = HbIcon(QIcon(fileName)); + // Icon should be valid. + icon.setSize(QSizeF(0.0, 0.0)); } else { icon = HbIcon(fileName); } @@ -189,7 +197,7 @@ \retval icon. */ HbIcon CaMenuIconUtility::getApplicationIcon(int uid, - const QSize &size) + const QSizeF &size) { HbIcon icon; CaEntry entry; @@ -205,10 +213,10 @@ \retval icon. */ HbIcon CaMenuIconUtility::getEntryIcon(const CaEntry& entry, - const QSize &size) + const QSizeF &size) { HbIcon icon; - icon = getIconFromEntry(entry); + icon = getIconFromEntry(entry, size); if (icon.isNull() || !(icon.size().isValid())) { QString uidString(entry.attribute(appUidAttributeName)); @@ -234,3 +242,4 @@ } return icon; } + diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/caclient/src/caentry.cpp --- a/contentstorage/caclient/src/caentry.cpp Wed Aug 18 10:05:49 2010 +0300 +++ b/contentstorage/caclient/src/caentry.cpp Thu Sep 02 20:45:03 2010 +0300 @@ -418,10 +418,10 @@ icon.size() == iconSize; \endcode */ -HbIcon CaEntry::makeIcon(const QSize &size) const +HbIcon CaEntry::makeIcon(const QSizeF &size) const { CACLIENTTEST_FUNC_ENTRY("CaEntry::makeIcon"); - HbIcon icon = CaIconCache::cache()->icon(*this,size); + HbIcon icon = CaIconCache::cache()->icon(*this, size); if (icon.isNull()) { icon = m_d->makeIcon(size); CaIconCache::cache()->insert(*this, size, icon); @@ -645,7 +645,7 @@ \param size icon size to display \retval created icon (HbIcon). */ -HbIcon CaEntryPrivate::makeIcon(const QSize &size) const +HbIcon CaEntryPrivate::makeIcon(const QSizeF &size) const { return CaMenuIconUtility::getEntryIcon(*m_q, size); } diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/caclient/src/caiconcache.cpp --- a/contentstorage/caclient/src/caiconcache.cpp Wed Aug 18 10:05:49 2010 +0300 +++ b/contentstorage/caclient/src/caiconcache.cpp Thu Sep 02 20:45:03 2010 +0300 @@ -90,22 +90,6 @@ } /*! - Checks if icon is already cached - \param entry an entry - \param size size of an icon - \retval true if icon exist in cache - - */ -bool CaIconCache::exist(const CaEntry &entry, const QSize &size) -{ - CACLIENTTEST_FUNC_ENTRY("CaIconCache::exist"); - bool result(false); - result = mCache.contains(key(entry,size)); - CACLIENTTEST_FUNC_EXIT("CaIconCache::exist"); - return result; -} - -/*! Returns an icon from a cache \param entry an entry \param size size of an icon @@ -113,7 +97,7 @@ */ -HbIcon CaIconCache::icon(const CaEntry &entry, const QSize &size) +HbIcon CaIconCache::icon(const CaEntry &entry, const QSizeF &size) { CACLIENTTEST_FUNC_ENTRY("CaIconCache::icon"); HbIcon result; @@ -131,7 +115,7 @@ \param icon icon to be cached */ -void CaIconCache::insert(const CaEntry &entry, const QSize &size, +void CaIconCache::insert(const CaEntry &entry, const QSizeF &size, const HbIcon &icon) { CACLIENTTEST_FUNC_ENTRY("CaIconCache::insert"); @@ -166,7 +150,7 @@ \return key */ -QString CaIconCache::key(const CaEntry &entry, const QSize &size) +QString CaIconCache::key(const CaEntry &entry, const QSizeF &size) { QString key; if (!entry.iconDescription().filename().isEmpty()) { @@ -179,9 +163,9 @@ } if (size.isValid()) { key.append(separator); - key.append(size.height()); + key += QString::number(size.height()); key.append(separator); - key.append(size.width()); + key += QString::number(size.width()); } return key; } diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/caclient/src/caitemmodel.cpp --- a/contentstorage/caclient/src/caitemmodel.cpp Wed Aug 18 10:05:49 2010 +0300 +++ b/contentstorage/caclient/src/caitemmodel.cpp Thu Sep 02 20:45:03 2010 +0300 @@ -25,7 +25,7 @@ #include "caclienttest_global.h" // Constants -const QSize defaultIconSize(30, 30); +const QSizeF defaultIconSize(30, 30); // ======== MEMBER FUNCTIONS ======== @@ -283,7 +283,7 @@ \endcode */ -void CaItemModel::setIconSize(const QSize &size) +void CaItemModel::setIconSize(const QSizeF &size) { m_d->setIconSize(size); } @@ -292,7 +292,7 @@ Method for getting icon size \param size icon size to display */ -QSize CaItemModel::getIconSize() const +QSizeF CaItemModel::getIconSize() const { return m_d->getIconSize(); } @@ -541,7 +541,7 @@ Method for setting icon size \param size icon size to display */ -void CaItemModelPrivate::setIconSize(const QSize &size) +void CaItemModelPrivate::setIconSize(const QSizeF &size) { if (mSize == size) return; @@ -554,7 +554,7 @@ Method for getting icon size \retval icon size to display */ -QSize CaItemModelPrivate::getIconSize() const +QSizeF CaItemModelPrivate::getIconSize() const { return mSize; } @@ -708,6 +708,7 @@ CaQuery* query = new CaQuery(mQuery); QString compId(QString().setNum(componentId)); query->setAttribute(QString("component_id"), compId); + query->setFlagsOn(RemovableEntryFlag | VisibleEntryFlag); QList ids = mService->getEntryIds(*query); delete query; return ids; diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/caclient/src/caservice.cpp --- a/contentstorage/caclient/src/caservice.cpp Wed Aug 18 10:05:49 2010 +0300 +++ b/contentstorage/caclient/src/caservice.cpp Thu Sep 02 20:45:03 2010 +0300 @@ -19,6 +19,7 @@ #include #include #include +#include #include "caservice.h" #include "caservice_p.h" @@ -107,6 +108,9 @@ service = QSharedPointer(new CaService); m_instance = service.toWeakRef(); + + const QString iconEnginesPluginPath("resource/iconengines/plugins"); + QCoreApplication::addLibraryPath(iconEnginesPluginPath); } return service; } diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/caclient/stub/inc/caobjectadapter.h --- a/contentstorage/caclient/stub/inc/caobjectadapter.h Wed Aug 18 10:05:49 2010 +0300 +++ b/contentstorage/caclient/stub/inc/caobjectadapter.h Thu Sep 02 20:45:03 2010 +0300 @@ -32,7 +32,7 @@ { public: - static HbIcon makeIcon(const CaEntry &entry, const QSize &size); + static HbIcon makeIcon(const CaEntry &entry, const QSizeF &size); static void setId(CaEntry &entry, int id); diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/caclient/stub/src/camenuiconutility.cpp --- a/contentstorage/caclient/stub/src/camenuiconutility.cpp Wed Aug 18 10:05:49 2010 +0300 +++ b/contentstorage/caclient/stub/src/camenuiconutility.cpp Thu Sep 02 20:45:03 2010 +0300 @@ -30,8 +30,9 @@ \retval icon. */ HbIcon CaMenuIconUtility::getApplicationIcon(int uid, - const QSize &size) + const QSizeF &size) { + Q_UNUSED(size); HbIcon icon; return icon; } @@ -43,7 +44,7 @@ \retval icon. */ HbIcon CaMenuIconUtility::getEntryIcon(const CaEntry& entry, - const QSize &size) + const QSizeF &size) { HbIcon icon; QString filename(entry.iconDescription().filename()); diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/caclient/stub/src/caobjectadapter.cpp --- a/contentstorage/caclient/stub/src/caobjectadapter.cpp Wed Aug 18 10:05:49 2010 +0300 +++ b/contentstorage/caclient/stub/src/caobjectadapter.cpp Thu Sep 02 20:45:03 2010 +0300 @@ -27,11 +27,12 @@ /*! * Create an icon. * \param entry a CaEntry instance. - * \param size a size of the icon + * \param size Currently ignored. * \retval a HbIcon instance. */ -HbIcon CaObjectAdapter::makeIcon(const CaEntry &entry, const QSize &size) +HbIcon CaObjectAdapter::makeIcon(const CaEntry &entry, const QSizeF &size) { + Q_UNUSED(size); HbIcon icon; QString filename(entry.iconDescription().filename()); if (!filename.isEmpty()) { diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/camificonengine/camificonengine.pri --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contentstorage/camificonengine/camificonengine.pri Thu Sep 02 20:45:03 2010 +0300 @@ -0,0 +1,19 @@ +# +# 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: +# + +HEADERS += ./inc/*.h +SOURCES += ./src/*.cpp + diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/camificonengine/camificonengine.pro --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contentstorage/camificonengine/camificonengine.pro Thu Sep 02 20:45:03 2010 +0300 @@ -0,0 +1,60 @@ +# +# 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: +# + +TEMPLATE = lib +TARGET = camificon + +PLUGIN_SUBDIR = /resource/qt/plugins/iconengines + +include (../../common.pri) + +QTDIR_build:DESTDIR = $$QT_BUILD_TREE/plugins/iconengines +target.path += $$[PLUGIN_SUBDIR] +INSTALLS += target + +CONFIG += qt plugin + +TARGET = $$qtLibraryTarget($$TARGET) + +symbian: { + TARGET.EPOCALLOWDLLDATA=1 + TARGET.CAPABILITY = All -Tcb + TARGET = $${TARGET}$${QT_LIBINFIX} + load(armcc_warnings) + + # load the environment specific feature definitions + exists($${EPOCROOT}epoc32/tools/qt/mkspecs/features/environment.prf) { + load($${EPOCROOT}epoc32/tools/qt/mkspecs/features/environment.prf) + } + LIBS += -laknicon +} + +symbian: plugin { # copy qtstub and manifest + + pluginstub.sources = $${TARGET}.dll + pluginstub.path = $$PLUGIN_SUBDIR + + DEPLOYMENT += pluginstub + + qtplugins.path = $$PLUGIN_SUBDIR + qtplugins.sources += qmakepluginstubs/$${TARGET}.qtplugin + + for(qtplugin, qtplugins.sources):BLD_INF_RULES.prj_exports += "./$$qtplugin z:$$qtplugins.path/$$basename(qtplugin)" +} + +symbian:TARGET.UID3=0x2002DCF8 + +include(camificonengine.pri) \ No newline at end of file diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/camificonengine/inc/cambmiconengine.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contentstorage/camificonengine/inc/cambmiconengine.h Thu Sep 02 20:45:03 2010 +0300 @@ -0,0 +1,64 @@ +/* + * 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: cambmiconengine.h + * + */ + +#ifndef HSMBMICONENGINE_H +#define HSMBMICONENGINE_H + +#include +#include +#include + +class CaMbmIconEngine : public QIconEngineV2 +{ +public: + CaMbmIconEngine(); + CaMbmIconEngine(const CaMbmIconEngine &other); + ~CaMbmIconEngine(); + void paint(QPainter *painter, const QRect &rect, + QIcon::Mode mode, QIcon::State state); + + QSize actualSize(const QSize &size, + QIcon::Mode mode, + QIcon::State state); + + QPixmap pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state); + + void addPixmap(const QPixmap &pixmap, + QIcon::Mode mode, + QIcon::State state); + + void addFile(const QString &fileName, + const QSize &size, + QIcon::Mode mode, + QIcon::State state); + + QString key() const; + QIconEngineV2 *clone() const; + +private: + QString pmcKey(const QSize &size); + void getPixmapFromBitmap(const QSize &size, QPixmap& pixmap); + void cacheBitmapL(); + +private: + QString mMbmFilename; + QCache mCache; + CFbsBitmap *mBitmapCached; + CFbsBitmap *mMaskBitmapCached; +}; + +#endif // HSMBMICONENGINE_H diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/camificonengine/inc/camificonengine.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contentstorage/camificonengine/inc/camificonengine.h Thu Sep 02 20:45:03 2010 +0300 @@ -0,0 +1,64 @@ +/* + * 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: camificonengine.h + * + */ + +#ifndef CAMIFICONENGINE_H +#define CAMIFICONENGINE_H + +#include +#include +#include + +class CaMifIconEngine : public QIconEngineV2 +{ +public: + CaMifIconEngine(); + CaMifIconEngine(const CaMifIconEngine &other); + ~CaMifIconEngine(); + void paint(QPainter *painter, const QRect &rect, + QIcon::Mode mode, QIcon::State state); + + QSize actualSize(const QSize &size, + QIcon::Mode mode, + QIcon::State state); + + QPixmap pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state); + + void addPixmap(const QPixmap &pixmap, + QIcon::Mode mode, + QIcon::State state); + + void addFile(const QString &fileName, + const QSize &size, + QIcon::Mode mode, + QIcon::State state); + + QString key() const; + QIconEngineV2 *clone() const; + +private: + QString pmcKey(const QSize &size); + void getPixmapFromBitmap(const QSize &size, QPixmap& pixmap); + void cacheBitmapL(); + +private: + QString mMifFilename; + QCache mCache; + CFbsBitmap *mBitmapCached; + CFbsBitmap *mMaskBitmapCached; +}; + +#endif // CAMIFICONENGINE_H diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/camificonengine/src/cambmiconengine.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contentstorage/camificonengine/src/cambmiconengine.cpp Thu Sep 02 20:45:03 2010 +0300 @@ -0,0 +1,186 @@ +/* + * 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: cambmiconengine.cpp + * + */ + +#include +#include +#include +#include + +#include // avkon +#include // fbsbitmap + +#include "cambmiconengine.h" + +const int cacheSize = 4; + +inline QString CaMbmIconEngine::pmcKey(const QSize &size) +{ + return QString::number((size.width()<<11)|size.height(), 16); +} + +CaMbmIconEngine::CaMbmIconEngine() + : QIconEngineV2(), + mMbmFilename(), + mCache(cacheSize), + mBitmapCached(0), + mMaskBitmapCached(0) +{ +} + +CaMbmIconEngine::CaMbmIconEngine(const CaMbmIconEngine &other) : + QIconEngineV2(other), + mMbmFilename(other.mMbmFilename), + mCache(cacheSize), + mBitmapCached(0), + mMaskBitmapCached(0) +{ +} + +CaMbmIconEngine::~CaMbmIconEngine() +{ + mCache.clear(); + delete mBitmapCached; + delete mMaskBitmapCached; +} + +void CaMbmIconEngine::cacheBitmapL() +{ + CFbsBitmap *bitmap(0); + CFbsBitmap *maskBitmap(0); + + TInt bitmapIndex = 0; + TInt maskIndex = 1; + TPtrC16 filename( + reinterpret_cast(mMbmFilename.utf16())); + AknIconUtils::CreateIconLC( bitmap, maskBitmap, filename, + bitmapIndex, maskIndex ); + mBitmapCached = bitmap; + mMaskBitmapCached = maskBitmap; + // bitmap and icon, AknsUtils::CreateIconLC doesn't specify the order + CleanupStack::Pop(2); +} +void CaMbmIconEngine::getPixmapFromBitmap(const QSize &size, QPixmap& pixmap) +{ + if (!mBitmapCached || !mMaskBitmapCached) { + TRAP_IGNORE(cacheBitmapL()); + } + if (mBitmapCached && mMaskBitmapCached) { + CFbsBitmap *bitmap = mBitmapCached; + CFbsBitmap *maskBitmap = mMaskBitmapCached; + + pixmap = pixmap.fromSymbianCFbsBitmap(bitmap); + QPixmap mask; + mask = mask.fromSymbianCFbsBitmap(maskBitmap); + pixmap.setAlphaChannel(mask); + pixmap = pixmap.scaled(size, Qt::KeepAspectRatioByExpanding); + } +} + +QSize CaMbmIconEngine::actualSize(const QSize &size, + QIcon::Mode mode, + QIcon::State state) +{ + Q_UNUSED(mode); + Q_UNUSED(state); + QString key(pmcKey(size)); + qDebug() << "pmckey: " << key; + QSize realSize; + + if (mCache.contains(key)) { + realSize = size; + } else { + QPixmap pixmap; + TPtrC16 filename( + reinterpret_cast(mMbmFilename.utf16())); + getPixmapFromBitmap(size, pixmap); + if (!pixmap.isNull()) { + QPixmap *cachedPixmap = new QPixmap(pixmap); + if (mCache.insert(key, cachedPixmap)) { + realSize = size; + // mCache has taken ownership of cachedPixmap. + qDebug() << "pmckey INSERT"; + } + } + } + return realSize; +} + +QPixmap CaMbmIconEngine::pixmap(const QSize &size, + QIcon::Mode mode, + QIcon::State state) +{ + Q_UNUSED(mode); + Q_UNUSED(state); + QPixmap pixmap; + actualSize(size, mode, state); + QString key = pmcKey(size); + if (mCache.contains(key)) { + pixmap = *mCache[key]; + } + return pixmap; +} + +void CaMbmIconEngine::addPixmap(const QPixmap &pixmap, + QIcon::Mode mode, + QIcon::State state) +{ + Q_UNUSED(pixmap); + Q_UNUSED(mode); + Q_UNUSED(state); +} + +void CaMbmIconEngine::addFile(const QString &fileName, + const QSize &size, + QIcon::Mode mode, + QIcon::State state) +{ + Q_UNUSED(size); + Q_UNUSED(mode); + Q_UNUSED(state); + if (mMbmFilename.isEmpty() && !fileName.isEmpty()) { + + QString abs = fileName; + if (fileName.at(0) != QLatin1Char(':')) { + abs = QFileInfo(fileName).absoluteFilePath(); + } + if (abs.endsWith(QLatin1String(".mbm"), Qt::CaseInsensitive)) + { + mMbmFilename = abs; + mMbmFilename.replace('/', '\\'); + TRAP_IGNORE(cacheBitmapL()); + } + } +} + +void CaMbmIconEngine::paint(QPainter *painter, const QRect &rect, + QIcon::Mode mode, QIcon::State state) +{ + painter->drawPixmap(rect, pixmap(rect.size(), mode, state)); +} + +QString CaMbmIconEngine::key() const +{ + return QLatin1String("mbm"); +} + +QIconEngineV2 *CaMbmIconEngine::clone() const +{ + return new CaMbmIconEngine(*this); +} + + + diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/camificonengine/src/camificonengine.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contentstorage/camificonengine/src/camificonengine.cpp Thu Sep 02 20:45:03 2010 +0300 @@ -0,0 +1,192 @@ +/* + * 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: camificonengine.cpp + * + */ + +#include +#include +#include +#include + +#include // avkon +#include // fbsbitmap + +#include "camificonengine.h" + +const int cacheSize = 4; + +inline QString CaMifIconEngine::pmcKey(const QSize &size) +{ + return QString::number((size.width()<<11)|size.height(), 16); +} + +CaMifIconEngine::CaMifIconEngine() + : QIconEngineV2(), + mMifFilename(), + mCache(cacheSize), + mBitmapCached(0), + mMaskBitmapCached(0) +{ +} + +CaMifIconEngine::CaMifIconEngine(const CaMifIconEngine &other) : + QIconEngineV2(other), + mMifFilename(other.mMifFilename), + mCache(cacheSize), + mBitmapCached(0), + mMaskBitmapCached(0) +{ +} + +CaMifIconEngine::~CaMifIconEngine() +{ + mCache.clear(); + delete mBitmapCached; + delete mMaskBitmapCached; +} + +void CaMifIconEngine::cacheBitmapL() +{ + CFbsBitmap *bitmap(0); + CFbsBitmap *maskBitmap(0); + + TInt bitmapIndex = 0; + TInt maskIndex = 1; + TPtrC16 filename( + reinterpret_cast(mMifFilename.utf16())); + // it will change bitmap ids if it is mif (checking inside) + AknIconUtils::ValidateLogicalAppIconId( filename, + bitmapIndex, maskIndex ); + AknIconUtils::CreateIconLC( bitmap, maskBitmap, filename, + bitmapIndex, maskIndex ); + mBitmapCached = bitmap; + mMaskBitmapCached = maskBitmap; + // bitmap and icon, AknsUtils::CreateIconLC doesn't specify the order + CleanupStack::Pop(2); +} +void CaMifIconEngine::getPixmapFromBitmap(const QSize &size, QPixmap& pixmap) +{ + if (!mBitmapCached || !mMaskBitmapCached) { + TRAP_IGNORE(cacheBitmapL()); + } + if (mBitmapCached && mMaskBitmapCached) { + CFbsBitmap *bitmap = mBitmapCached; + CFbsBitmap *maskBitmap = mMaskBitmapCached; + AknIconUtils::SetSize(bitmap, TSize(size.width(), size.height()), + EAspectRatioPreservedAndUnusedSpaceRemoved); + + pixmap = pixmap.fromSymbianCFbsBitmap(bitmap); + QPixmap mask; + mask = mask.fromSymbianCFbsBitmap(maskBitmap); + pixmap.setAlphaChannel(mask); + } +} + +QSize CaMifIconEngine::actualSize(const QSize &size, + QIcon::Mode mode, + QIcon::State state) +{ + Q_UNUSED(mode); + Q_UNUSED(state); + QString key(pmcKey(size)); + qDebug() << "pmckey: " << key; + QSize realSize; + + if (mCache.contains(key)) { + realSize = size; + } else { + QPixmap pixmap; + TPtrC16 filename( + reinterpret_cast(mMifFilename.utf16())); + getPixmapFromBitmap(size, pixmap); + if (!pixmap.isNull()) { + QPixmap *cachedPixmap = new QPixmap(pixmap); + if (mCache.insert(key, cachedPixmap)) { + realSize = size; + // mCache has taken ownership of cachedPixmap. + qDebug() << "pmckey INSERT"; + } + } + } + return realSize; +} + +QPixmap CaMifIconEngine::pixmap(const QSize &size, + QIcon::Mode mode, + QIcon::State state) +{ + Q_UNUSED(mode); + Q_UNUSED(state); + QPixmap pixmap; + actualSize(size, mode, state); + QString key = pmcKey(size); + if (mCache.contains(key)) { + pixmap = *mCache[key]; + } + return pixmap; +} + +void CaMifIconEngine::addPixmap(const QPixmap &pixmap, + QIcon::Mode mode, + QIcon::State state) +{ + Q_UNUSED(pixmap); + Q_UNUSED(mode); + Q_UNUSED(state); +} + +void CaMifIconEngine::addFile(const QString &fileName, + const QSize &size, + QIcon::Mode mode, + QIcon::State state) +{ + Q_UNUSED(size); + Q_UNUSED(mode); + Q_UNUSED(state); + // Mif file name is recorded only the first time "addFile" function + // is invoked (from QIcon constructor). + if (mMifFilename.isEmpty() && !fileName.isEmpty()) { + + QString abs = fileName; + if (fileName.at(0) != QLatin1Char(':')) { + abs = QFileInfo(fileName).absoluteFilePath(); + } + if (abs.endsWith(QLatin1String(".mif"), Qt::CaseInsensitive)) + { + mMifFilename = abs; + mMifFilename.replace('/', '\\'); + TRAP_IGNORE(cacheBitmapL()); + } + } +} + +void CaMifIconEngine::paint(QPainter *painter, const QRect &rect, + QIcon::Mode mode, QIcon::State state) +{ + painter->drawPixmap(rect, pixmap(rect.size(), mode, state)); +} + +QString CaMifIconEngine::key() const +{ + return QLatin1String("mif"); +} + +QIconEngineV2 *CaMifIconEngine::clone() const +{ + return new CaMifIconEngine(*this); +} + + + diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/camificonengine/src/main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contentstorage/camificonengine/src/main.cpp Thu Sep 02 20:45:03 2010 +0300 @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2008 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: main.cpp + * + */ + +#include +#include +#include + +#include "camificonengine.h" +#include "cambmiconengine.h" + +QT_BEGIN_NAMESPACE + +class CaMifIconPlugin : public QIconEnginePluginV2 +{ +public: + QStringList keys() const; + QIconEngineV2 *create(const QString &filename = QString()); +}; + +QStringList CaMifIconPlugin::keys() const +{ + return QStringList() << QLatin1String("mif") << QLatin1String("mbm"); +} + +QIconEngineV2 *CaMifIconPlugin::create(const QString &file) +{ + QIconEngineV2 *engine(0); + if (file.endsWith(QLatin1String(".mif"), Qt::CaseInsensitive)) { + engine = new CaMifIconEngine; + } else if (file.endsWith(QLatin1String(".mbm"), Qt::CaseInsensitive)) { + engine = new CaMbmIconEngine; + } + return engine; +} + +#ifdef COVERAGE_MEASUREMENT +#pragma CTC SKIP +#endif //COVERAGE_MEASUREMENT (QT macro) + +Q_EXPORT_STATIC_PLUGIN(CaMifIconPlugin) +Q_EXPORT_PLUGIN2(camificon, CaMifIconPlugin) + +#ifdef COVERAGE_MEASUREMENT +#pragma CTC ENDSKIP +#endif //COVERAGE_MEASUREMENT + +QT_END_NAMESPACE + + diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/casoftwareregistry/bwins/casoftwareregistryu.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contentstorage/casoftwareregistry/bwins/casoftwareregistryu.def Thu Sep 02 20:45:03 2010 +0300 @@ -0,0 +1,36 @@ +EXPORTS + ?componentInstallValue@CaSoftwareRegistry@@SA?AVQString@@XZ @ 1 NONAME ; class QString CaSoftwareRegistry::componentInstallValue(void) + ??1CaSoftwareRegistry@@EAE@XZ @ 2 NONAME ; CaSoftwareRegistry::~CaSoftwareRegistry(void) + ?componentTimeKey@CaSoftwareRegistry@@SA?AVQString@@XZ @ 3 NONAME ; class QString CaSoftwareRegistry::componentTimeKey(void) + ?componentHiddenValue@CaSoftwareRegistry@@SA?AVQString@@XZ @ 4 NONAME ; class QString CaSoftwareRegistry::componentHiddenValue(void) + ?m_instance@CaSoftwareRegistry@@0V?$QWeakPointer@VCaSoftwareRegistry@@@@A @ 5 NONAME ; class QWeakPointer CaSoftwareRegistry::m_instance + ?staticMetaObject@CaSoftwareRegistry@@2UQMetaObject@@B @ 6 NONAME ; struct QMetaObject const CaSoftwareRegistry::staticMetaObject + ?componentVendorKey@CaSoftwareRegistry@@SA?AVQString@@XZ @ 7 NONAME ; class QString CaSoftwareRegistry::componentVendorKey(void) + ?NewL@CCaProgresScanner@@SAPAV1@PAVIUninstallObserver@@@Z @ 8 NONAME ; class CCaProgresScanner * CCaProgresScanner::NewL(class IUninstallObserver *) + ?qt_metacall@CaSoftwareRegistry@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 9 NONAME ; int CaSoftwareRegistry::qt_metacall(enum QMetaObject::Call, int, void * *) + ?componentOperationTypeKey@CaSoftwareRegistry@@SA?AVQString@@XZ @ 10 NONAME ; class QString CaSoftwareRegistry::componentOperationTypeKey(void) + ?metaObject@CaSoftwareRegistry@@UBEPBUQMetaObject@@XZ @ 11 NONAME ; struct QMetaObject const * CaSoftwareRegistry::metaObject(void) const + ?tr@CaSoftwareRegistry@@SA?AVQString@@PBD0H@Z @ 12 NONAME ; class QString CaSoftwareRegistry::tr(char const *, char const *, int) + ?tr@CaSoftwareRegistry@@SA?AVQString@@PBD0@Z @ 13 NONAME ; class QString CaSoftwareRegistry::tr(char const *, char const *) + ?componentTypeKey@CaSoftwareRegistry@@SA?AVQString@@XZ @ 14 NONAME ; class QString CaSoftwareRegistry::componentTypeKey(void) + ?getStaticMetaObject@CaSoftwareRegistry@@SAABUQMetaObject@@XZ @ 15 NONAME ; struct QMetaObject const & CaSoftwareRegistry::getStaticMetaObject(void) + ?componentDriveInfoKey@CaSoftwareRegistry@@SA?AVQString@@XZ @ 16 NONAME ; class QString CaSoftwareRegistry::componentDriveInfoKey(void) + ??_ECaSoftwareRegistry@@UAE@I@Z @ 17 NONAME ; CaSoftwareRegistry::~CaSoftwareRegistry(unsigned int) + ?componentUninstallValue@CaSoftwareRegistry@@SA?AVQString@@XZ @ 18 NONAME ; class QString CaSoftwareRegistry::componentUninstallValue(void) + ?createUninstallNotifier@CaSoftwareRegistry@@QBEPAVCaUninstallNotifier@@XZ @ 19 NONAME ; class CaUninstallNotifier * CaSoftwareRegistry::createUninstallNotifier(void) const + ?entryDetails@CaSoftwareRegistry@@QBE?AV?$QHash@VQString@@V1@@@H@Z @ 20 NONAME ; class QHash CaSoftwareRegistry::entryDetails(int) const + ?componentSizeKey@CaSoftwareRegistry@@SA?AVQString@@XZ @ 21 NONAME ; class QString CaSoftwareRegistry::componentSizeKey(void) + ??0CaSoftwareRegistry@@AAE@PAVQObject@@@Z @ 22 NONAME ; CaSoftwareRegistry::CaSoftwareRegistry(class QObject *) + ?getApplicationsUids@CaSoftwareRegistry@@QAE_NHAAVQStringList@@@Z @ 23 NONAME ; bool CaSoftwareRegistry::getApplicationsUids(int, class QStringList &) + ?componentNameKey@CaSoftwareRegistry@@SA?AVQString@@XZ @ 24 NONAME ; class QString CaSoftwareRegistry::componentNameKey(void) + ?trUtf8@CaSoftwareRegistry@@SA?AVQString@@PBD0@Z @ 25 NONAME ; class QString CaSoftwareRegistry::trUtf8(char const *, char const *) + ?componentProtectionDomainKey@CaSoftwareRegistry@@SA?AVQString@@XZ @ 26 NONAME ; class QString CaSoftwareRegistry::componentProtectionDomainKey(void) + ?trUtf8@CaSoftwareRegistry@@SA?AVQString@@PBD0H@Z @ 27 NONAME ; class QString CaSoftwareRegistry::trUtf8(char const *, char const *, int) + ?getUninstallDetails@CaSoftwareRegistry@@QAE_NHAAVQString@@AAVQStringList@@0@Z @ 28 NONAME ; bool CaSoftwareRegistry::getUninstallDetails(int, class QString &, class QStringList &, class QString &) + ?create@CaSoftwareRegistry@@SA?AV?$QSharedPointer@VCaSoftwareRegistry@@@@XZ @ 29 NONAME ; class QSharedPointer CaSoftwareRegistry::create(void) + ?componentUpgradeValue@CaSoftwareRegistry@@SA?AVQString@@XZ @ 30 NONAME ; class QString CaSoftwareRegistry::componentUpgradeValue(void) + ?componentDescriptionKey@CaSoftwareRegistry@@SA?AVQString@@XZ @ 31 NONAME ; class QString CaSoftwareRegistry::componentDescriptionKey(void) + ?componentVersionKey@CaSoftwareRegistry@@SA?AVQString@@XZ @ 32 NONAME ; class QString CaSoftwareRegistry::componentVersionKey(void) + ?retrieveLogEntries@CaSoftwareRegistry@@QBE?AV?$QList@V?$QHash@VQString@@V1@@@@@XZ @ 33 NONAME ; class QList > CaSoftwareRegistry::retrieveLogEntries(void) const + ?qt_metacast@CaSoftwareRegistry@@UAEPAXPBD@Z @ 34 NONAME ; void * CaSoftwareRegistry::qt_metacast(char const *) + diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/casoftwareregistry/eabi/casoftwareregistryu.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contentstorage/casoftwareregistry/eabi/casoftwareregistryu.def Thu Sep 02 20:45:03 2010 +0300 @@ -0,0 +1,36 @@ +EXPORTS + _ZN17CCaProgresScanner4NewLEP18IUninstallObserver @ 1 NONAME + _ZN18CaSoftwareRegistry10m_instanceE @ 2 NONAME DATA 8 + _ZN18CaSoftwareRegistry11qt_metacallEN11QMetaObject4CallEiPPv @ 3 NONAME + _ZN18CaSoftwareRegistry11qt_metacastEPKc @ 4 NONAME + _ZN18CaSoftwareRegistry16componentNameKeyEv @ 5 NONAME + _ZN18CaSoftwareRegistry16componentSizeKeyEv @ 6 NONAME + _ZN18CaSoftwareRegistry16componentTimeKeyEv @ 7 NONAME + _ZN18CaSoftwareRegistry16componentTypeKeyEv @ 8 NONAME + _ZN18CaSoftwareRegistry16staticMetaObjectE @ 9 NONAME DATA 16 + _ZN18CaSoftwareRegistry18componentVendorKeyEv @ 10 NONAME + _ZN18CaSoftwareRegistry19componentVersionKeyEv @ 11 NONAME + _ZN18CaSoftwareRegistry19getApplicationsUidsEiR11QStringList @ 12 NONAME + _ZN18CaSoftwareRegistry19getStaticMetaObjectEv @ 13 NONAME + _ZN18CaSoftwareRegistry19getUninstallDetailsEiR7QStringR11QStringListS1_ @ 14 NONAME + _ZN18CaSoftwareRegistry20componentHiddenValueEv @ 15 NONAME + _ZN18CaSoftwareRegistry21componentDriveInfoKeyEv @ 16 NONAME + _ZN18CaSoftwareRegistry21componentInstallValueEv @ 17 NONAME + _ZN18CaSoftwareRegistry21componentUpgradeValueEv @ 18 NONAME + _ZN18CaSoftwareRegistry23componentDescriptionKeyEv @ 19 NONAME + _ZN18CaSoftwareRegistry23componentUninstallValueEv @ 20 NONAME + _ZN18CaSoftwareRegistry25componentOperationTypeKeyEv @ 21 NONAME + _ZN18CaSoftwareRegistry28componentProtectionDomainKeyEv @ 22 NONAME + _ZN18CaSoftwareRegistry6createEv @ 23 NONAME + _ZN18CaSoftwareRegistryC1EP7QObject @ 24 NONAME + _ZN18CaSoftwareRegistryC2EP7QObject @ 25 NONAME + _ZN18CaSoftwareRegistryD0Ev @ 26 NONAME + _ZN18CaSoftwareRegistryD1Ev @ 27 NONAME + _ZN18CaSoftwareRegistryD2Ev @ 28 NONAME + _ZNK18CaSoftwareRegistry10metaObjectEv @ 29 NONAME + _ZNK18CaSoftwareRegistry12entryDetailsEi @ 30 NONAME + _ZNK18CaSoftwareRegistry18retrieveLogEntriesEv @ 31 NONAME + _ZNK18CaSoftwareRegistry23createUninstallNotifierEv @ 32 NONAME + _ZTI18CaSoftwareRegistry @ 33 NONAME + _ZTV18CaSoftwareRegistry @ 34 NONAME + diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/casoftwareregistry/s60/src/caprogresscanner.cpp --- a/contentstorage/casoftwareregistry/s60/src/caprogresscanner.cpp Wed Aug 18 10:05:49 2010 +0300 +++ b/contentstorage/casoftwareregistry/s60/src/caprogresscanner.cpp Thu Sep 02 20:45:03 2010 +0300 @@ -115,7 +115,8 @@ { if( aProgressData.Phase() == EUninstalling ) { - iObserver->progressChange( iComponentId, aProgressData.CurrentProgess() ); + TInt progress = (aProgressData.CurrentProgess()*100)/aProgressData.Total(); + iObserver->progressChange( iComponentId, progress ); } else { diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/casrv/calocalizerscanner/bwins/calocalizerscanneru.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contentstorage/casrv/calocalizerscanner/bwins/calocalizerscanneru.def Thu Sep 02 20:45:03 2010 +0300 @@ -0,0 +1,3 @@ +EXPORTS + ?ImplementationGroupProxy@@YAPBUTImplementationProxy@@AAH@Z @ 1 NONAME ; struct TImplementationProxy const * ImplementationGroupProxy(int &) + diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/casrv/calocalizerscanner/calocalizerscanner.pro --- a/contentstorage/casrv/calocalizerscanner/calocalizerscanner.pro Wed Aug 18 10:05:49 2010 +0300 +++ b/contentstorage/casrv/calocalizerscanner/calocalizerscanner.pro Thu Sep 02 20:45:03 2010 +0300 @@ -33,7 +33,6 @@ TEMPLATE = lib TARGET.UID2 = 0x10009D8D TARGET.UID3 = 0x20028708 - TARGET.EXPORTUNFROZEN = 1 TARGET.CAPABILITY = ALL \ -TCB TARGET.VENDORID = VID_DEFAULT diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/casrv/calocalizerscanner/eabi/calocalizerscanneru.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contentstorage/casrv/calocalizerscanner/eabi/calocalizerscanneru.def Thu Sep 02 20:45:03 2010 +0300 @@ -0,0 +1,3 @@ +EXPORTS + _Z24ImplementationGroupProxyRi @ 1 NONAME + diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/casrv/causifscanner/src/causifscanner.cpp --- a/contentstorage/casrv/causifscanner/src/causifscanner.cpp Wed Aug 18 10:05:49 2010 +0300 +++ b/contentstorage/casrv/causifscanner/src/causifscanner.cpp Thu Sep 02 20:45:03 2010 +0300 @@ -194,12 +194,39 @@ for( TInt i(0); i < resultUsifArray.Count(); i++ ) { - if( PackageExists( entries, resultUsifArray[i] ) == KErrNotFound ) + TInt entryIndex = PackageExists( entries, resultUsifArray[i]); + // entry is not present in CaStorage + if( entryIndex == KErrNotFound ) { CCaInnerEntry *caEntry = CCaInnerEntry::NewLC(); CreateCaEntryFromEntryL( resultUsifArray[i], caEntry ); + // in case we rebuild our db mark as missing + if( !(iSoftwareRegistry.IsComponentPresentL( + resultUsifArray[i]->ComponentId())) ) + { + caEntry->SetFlags( caEntry->GetFlags() | EMissing ); + } iStorageProxy.AddL( caEntry ); CleanupStack::PopAndDestroy( caEntry ); + } + // found in the CaStorage, mark is as missing + else if( !(iSoftwareRegistry.IsComponentPresentL( + resultUsifArray[i]->ComponentId() )) ) + { + if( !( entries[entryIndex]->GetFlags() & EMissing ) ) + { + entries[entryIndex]->SetFlags( + ( entries[entryIndex]->GetFlags() | EMissing ) ); + iStorageProxy.AddL( + entries[entryIndex], EFalse, EItemDisappeared ); + } + } + // found in the storage remove missing flag as this is Present in scr + else if (entries[entryIndex]->GetFlags() & EMissing) + { + entries[entryIndex]->SetFlags( + entries[entryIndex]->GetFlags() & ~EMissing ); + iStorageProxy.AddL( entries[entryIndex]); } } @@ -268,15 +295,8 @@ while( CComponentEntry* entry = scrView.NextComponentL() ) { CleanupStack::PushL( entry ); - if( iSoftwareRegistry.IsComponentPresentL( entry->ComponentId() ) ) - { - aArray.AppendL( entry ); - CleanupStack::Pop( entry ); - } - else - { - CleanupStack::PopAndDestroy( entry ); - } + aArray.AppendL( entry ); + CleanupStack::Pop( entry ); } CleanupStack::PopAndDestroy( &scrView ); CleanupStack::PopAndDestroy( filter ); @@ -325,8 +345,7 @@ //for each usif entry check if entry has to be removed for( TInt k( 0 ); k < aUsifArray.Count(); k++ ) { - if( aUsifArray[k]->ComponentId() == uint - && iSoftwareRegistry.IsComponentPresentL( uint ) ) + if( aUsifArray[k]->ComponentId() == uint) { delete aCaArray[i]; aCaArray.Remove( i ); diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/casrv/cawidgetscanner/src/cawidgetscannerparser.cpp --- a/contentstorage/casrv/cawidgetscanner/src/cawidgetscannerparser.cpp Wed Aug 18 10:05:49 2010 +0300 +++ b/contentstorage/casrv/cawidgetscanner/src/cawidgetscannerparser.cpp Thu Sep 02 20:45:03 2010 +0300 @@ -638,10 +638,12 @@ const TDesC& aPackageUid, CCaWidgetDescription* aWidgetDescriptor, TChar& aDrive ) { - aWidgetDescriptor->SetIconUriL( - *GetThemableGraphicsNameLC(aElement, aPackageUid, aDrive ) ); + HBufC *const graphicsName = + GetThemableGraphicsNameLC(aElement, aPackageUid, aDrive ); + + aWidgetDescriptor->SetIconUriL( *graphicsName ); - CleanupStack::PopAndDestroy( ); + CleanupStack::PopAndDestroy( graphicsName ); } // ---------------------------------------------------------------------------- @@ -654,10 +656,12 @@ CCaWidgetDescription* aWidgetDescriptor, TChar& aDrive ) { - aWidgetDescriptor->SetPreviewImageNameL( - *GetThemableGraphicsNameLC(aElement, aPackageUid, aDrive ) ); + HBufC *const graphicsName = + GetThemableGraphicsNameLC(aElement, aPackageUid, aDrive ); - CleanupStack::PopAndDestroy(); + aWidgetDescriptor->SetPreviewImageNameL( *graphicsName ); + + CleanupStack::PopAndDestroy( graphicsName ); } // ---------------------------------------------------------------------------- @@ -731,47 +735,42 @@ { RBuf graphicsName; graphicsName.CleanupClosePushL(); - HBufC* result; + + RBuf elementText; + elementText.CleanupClosePushL(); + + elementText.Assign( + CnvUtfConverter::ConvertToUnicodeFromUtf8L( aElement.Text() ) ); + + if ( TParsePtrC(elementText).Ext() != KNullDesC ) + { + HBufC* const manifestDirectoryPath( + GetManifestDirectoryPathLC( aPackageUid, aDrive ) ); + + graphicsName.CreateL( manifestDirectoryPath->Length() + + elementText.Length() ); + graphicsName.Append( *manifestDirectoryPath ); + + CleanupStack::PopAndDestroy( manifestDirectoryPath ); + } + else + { + graphicsName.CreateL( elementText.Length() ); + } + + graphicsName.Append( elementText ); - if ( aElement.Text() != KNullDesC8 ) - { - RBuf elementText; - elementText.CleanupClosePushL(); - - elementText.Assign( - CnvUtfConverter::ConvertToUnicodeFromUtf8L( aElement.Text() ) ); - - if ( TParsePtrC(elementText).Ext() != KNullDesC ) - { - HBufC* const manifestDirectoryPath( - GetManifestDirectoryPathLC( aPackageUid, aDrive ) ); - - graphicsName.CreateL( manifestDirectoryPath->Length() + - elementText.Length() ); - graphicsName.Append( *manifestDirectoryPath ); - - CleanupStack::PopAndDestroy( manifestDirectoryPath ); - } - else - { - graphicsName.CreateL( elementText.Length() ); - } - - graphicsName.Append( elementText ); - result = HBufC::NewL( graphicsName.Length() ) ; - *result = graphicsName; - - CleanupStack::PopAndDestroy( &elementText ); - } - else - { - result = HBufC::NewL( 1 ) ; - } - CleanupStack::PopAndDestroy( &graphicsName ); - CleanupStack::PushL( result ); - - return result; + CleanupStack::PopAndDestroy( &elementText ); + + HBufC *result = HBufC::NewL( graphicsName.Length() ) ; + *result = graphicsName; + + CleanupStack::PopAndDestroy( &graphicsName ); + + CleanupStack::PushL( result ); + + return result; } diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/castorage/bwins/castorageu.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contentstorage/castorage/bwins/castorageu.def Thu Sep 02 20:45:03 2010 +0300 @@ -0,0 +1,3 @@ +EXPORTS + ?NewDatabaseL@CaStorageFactory@@SAPAVCCaStorage@@XZ @ 1 NONAME ; class CCaStorage * CaStorageFactory::NewDatabaseL(void) + diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/castorage/data/castorage.db Binary file contentstorage/castorage/data/castorage.db has changed diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/castorage/eabi/castorageu.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contentstorage/castorage/eabi/castorageu.def Thu Sep 02 20:45:03 2010 +0300 @@ -0,0 +1,3 @@ +EXPORTS + _ZN16CaStorageFactory12NewDatabaseLEv @ 1 NONAME + diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/castorage/group/castorage.mmp --- a/contentstorage/castorage/group/castorage.mmp Wed Aug 18 10:05:49 2010 +0300 +++ b/contentstorage/castorage/group/castorage.mmp Thu Sep 02 20:45:03 2010 +0300 @@ -44,6 +44,3 @@ DEBUGLIBRARY flogger.lib -EXPORTUNFROZEN - - diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/contentstorage.pro --- a/contentstorage/contentstorage.pro Wed Aug 18 10:05:49 2010 +0300 +++ b/contentstorage/contentstorage.pro Thu Sep 02 20:45:03 2010 +0300 @@ -21,6 +21,7 @@ SUBDIRS += group SUBDIRS += casrv/calocalizerscanner SUBDIRS += cahandler +SUBDIRS += camificonengine } SUBDIRS += caclient SUBDIRS += casoftwareregistry diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/extsrc/casathandler.cpp --- a/contentstorage/extsrc/casathandler.cpp Wed Aug 18 10:05:49 2010 +0300 +++ b/contentstorage/extsrc/casathandler.cpp Thu Sep 02 20:45:03 2010 +0300 @@ -49,7 +49,7 @@ } // ----------------------------------------------------------------------------- -// Destructor +// LoadIconL // ----------------------------------------------------------------------------- EXPORT_C CAknIcon* CCaSatHandler::LoadIconL() { @@ -63,9 +63,9 @@ iSatIcon.GetIconInfoL( TUint8( iconId ), iIconEf ); CleanupClosePushL( iIconEf ); CFbsBitmap* bitmap = GetBitmapL( iIconEf ); - if( !bitmap ) + if( bitmap ) { - CFbsBitmap* mask( NULL ); + CFbsBitmap* mask( new (ELeave) CFbsBitmap ); CleanupStack::PushL( mask ); icon->SetBitmap( bitmap ); diff -r e0aa398e6810 -r 3ab5c078b490 contentstorage/srvinc/cabackupnotifier.h --- a/contentstorage/srvinc/cabackupnotifier.h Wed Aug 18 10:05:49 2010 +0300 +++ b/contentstorage/srvinc/cabackupnotifier.h Thu Sep 02 20:45:03 2010 +0300 @@ -19,6 +19,7 @@ #define CABACKUPNOTIFIER_H #include +#include "caclient_global.h" class CCaStorageProxy; @@ -39,10 +40,10 @@ @released @publishedAll */ - { - ECaBackup = 1, - ECaRestore = 2 - }; + { + ECaBackup = 1, + ECaRestore = 2 + }; public: @@ -101,6 +102,8 @@ */ TInt iLastState; + CA_CLIENT_TEST_FRIEND_CLASS(TestCaClient) + }; #endif /* CABACKUPNOTIFIER_H */ diff -r e0aa398e6810 -r 3ab5c078b490 homescreensrv_plat/contentstorage_api/caclient_global.h --- a/homescreensrv_plat/contentstorage_api/caclient_global.h Wed Aug 18 10:05:49 2010 +0300 +++ b/homescreensrv_plat/contentstorage_api/caclient_global.h Thu Sep 02 20:45:03 2010 +0300 @@ -18,7 +18,6 @@ #ifndef CACLIENT_GLOBAL_H #define CACLIENT_GLOBAL_H -#include #ifdef CACLIENT_LIB #define CACLIENT_EXPORT Q_DECL_EXPORT diff -r e0aa398e6810 -r 3ab5c078b490 homescreensrv_plat/contentstorage_api/cadefs.h --- a/homescreensrv_plat/contentstorage_api/cadefs.h Wed Aug 18 10:05:49 2010 +0300 +++ b/homescreensrv_plat/contentstorage_api/cadefs.h Thu Sep 02 20:45:03 2010 +0300 @@ -77,8 +77,8 @@ UnknownErrorCode }; -static const QString caCmdOpen("open"); -static const QString caCmdRemove("remove"); +const char caCmdOpen[] = "open"; +const char caCmdRemove[] = "remove"; #ifndef QT_NO_DEBUG_OUTPUT # define USE_QDEBUG_IF(predicate) if (!predicate) {} else qDebug() diff -r e0aa398e6810 -r 3ab5c078b490 homescreensrv_plat/contentstorage_api/caentry.h --- a/homescreensrv_plat/contentstorage_api/caentry.h Wed Aug 18 10:05:49 2010 +0300 +++ b/homescreensrv_plat/contentstorage_api/caentry.h Thu Sep 02 20:45:03 2010 +0300 @@ -66,7 +66,7 @@ QString attribute(const QString &name) const; void setAttribute(const QString &name, const QString &value); - HbIcon makeIcon(const QSize &size = QSize(70, 70)) const; + HbIcon makeIcon(const QSizeF &size = QSizeF(70.0, 70.0)) const; EntryRole role() const; diff -r e0aa398e6810 -r 3ab5c078b490 homescreensrv_plat/contentstorage_api/caitemmodel.h --- a/homescreensrv_plat/contentstorage_api/caitemmodel.h Wed Aug 18 10:05:49 2010 +0300 +++ b/homescreensrv_plat/contentstorage_api/caitemmodel.h Thu Sep 02 20:45:03 2010 +0300 @@ -72,8 +72,8 @@ bool isAutoUpdate() const; void setSort(SortAttribute sortAttribute, Qt::SortOrder sortOrder = Qt::AscendingOrder); - void setIconSize(const QSize &size); - QSize getIconSize() const; + void setIconSize(const QSizeF &size); + QSizeF getIconSize() const; void updateModel(); void setParentId(int parentId); void setFlagsOn(const EntryFlags &onFlags); diff -r e0aa398e6810 -r 3ab5c078b490 homescreensrv_plat/contentstorage_api/camenuiconutility.h --- a/homescreensrv_plat/contentstorage_api/camenuiconutility.h Wed Aug 18 10:05:49 2010 +0300 +++ b/homescreensrv_plat/contentstorage_api/camenuiconutility.h Thu Sep 02 20:45:03 2010 +0300 @@ -28,10 +28,10 @@ { public: static HbIcon getApplicationIcon(int uid, - const QSize &size = QSize(50,80)); + const QSizeF &size = QSizeF(50,80)); static HbIcon getEntryIcon(const CaEntry& entry, - const QSize &size = QSize(50,80)); + const QSizeF &size = QSizeF(50,80)); }; #endif // __CAMENUICONUTILITY_H__ diff -r e0aa398e6810 -r 3ab5c078b490 homescreensrv_plat/taskswitcher_api/taskswitcher_api.pri --- a/homescreensrv_plat/taskswitcher_api/taskswitcher_api.pri Wed Aug 18 10:05:49 2010 +0300 +++ b/homescreensrv_plat/taskswitcher_api/taskswitcher_api.pri Thu Sep 02 20:45:03 2010 +0300 @@ -17,3 +17,9 @@ PLATFORM_HEADERS += taskswitcher_api/tstasksettings.h \ taskswitcher_api/tstaskmonitor_global.h \ taskswitcher_api/tspropertydefs.h \ + +symbian { + crml.sources = taskswitcher_api/tsdevicedialog.qcrml + crml.path = /resource/qt/crml + DEPLOYMENT += crml +} diff -r e0aa398e6810 -r 3ab5c078b490 homescreensrv_plat/taskswitcher_api/tsdevicedialog.qcrml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/homescreensrv_plat/taskswitcher_api/tsdevicedialog.qcrml Thu Sep 02 20:45:03 2010 +0300 @@ -0,0 +1,5 @@ + + + + + diff -r e0aa398e6810 -r 3ab5c078b490 homescreensrv_plat/taskswitcher_api/tspropertydefs.h --- a/homescreensrv_plat/taskswitcher_api/tspropertydefs.h Wed Aug 18 10:05:49 2010 +0300 +++ b/homescreensrv_plat/taskswitcher_api/tspropertydefs.h Thu Sep 02 20:45:03 2010 +0300 @@ -22,9 +22,11 @@ #if defined(__SYMBIAN32__) || defined(SYMBIAN) const TUid KCategory = {0x20022fc5}; const TUint KVisibilityKey = 0x2002677F; + const TUint KDismissRequestKey = 0x20026781; #endif const char KTsPath[] = "/TaskSwitcher"; const char KVisibilityPath[] = "Visibility"; + const char KDismissRequestPath[] = "DismissRequest"; } diff -r e0aa398e6810 -r 3ab5c078b490 hsappkeyhandler/src/hsappkeyplugin.cpp --- a/hsappkeyhandler/src/hsappkeyplugin.cpp Wed Aug 18 10:05:49 2010 +0300 +++ b/hsappkeyhandler/src/hsappkeyplugin.cpp Thu Sep 02 20:45:03 2010 +0300 @@ -89,9 +89,8 @@ // // --------------------------------------------------------------------------- // -TKeyResponse CHsAppKeyPlugin::HandleKeyEventL( const TKeyEvent& aKeyEvent , - TEventCode /*aType*/ - ) +TKeyResponse CHsAppKeyPlugin::HandleKeyEventL(const TKeyEvent &aKeyEvent, + TEventCode /*aType*/) { TKeyResponse retVal(EKeyWasNotConsumed); if (aKeyEvent.iCode == EKeyApplication0) { @@ -102,7 +101,7 @@ HandleShortPressL(); retVal = EKeyWasConsumed; } - iSecondEvent =!iSecondEvent; + iSecondEvent = !iSecondEvent; } return retVal; } @@ -136,23 +135,39 @@ // void CHsAppKeyPlugin::HandleShortPressL() { - RApaLsSession apaLsSession; - CleanupClosePushL(apaLsSession); - User::LeaveIfError(apaLsSession.Connect()); - CAfActivityLauncher *activityEnabler = - CAfActivityLauncher::NewLC(apaLsSession, - iEikEnv->WsSession()); - TInt state(0); - RProperty::Get(KHsCategoryUid, KHsCategoryStateKey, state); - if (state == EHomeScreenIdleState) { - activityEnabler->launchActivityL(KAppLibActivactionUri); + TInt value(0); + RProperty::Get(TsProperty::KCategory, TsProperty::KVisibilityKey, value); + if (value) { + // when Task Switcher dialog is visible, Appkey is used to dismiss it + + // @todo: remove notification through property when SharedDialog flag + // is implemented in Orbit. + if (!mDialog) { + // dismiss dialog launched from HomeScreen + User::LeaveIfError(RProperty::Set(TsProperty::KCategory, TsProperty::KDismissRequestKey, 1)); + } else { + // dismiss dialog launched by this plugin + delete mDialog; + mDialog = 0; + } } else { - activityEnabler->launchActivityL(KHsActivactionUri); - } - CleanupStack::PopAndDestroy(activityEnabler); - CleanupStack::PopAndDestroy(&apaLsSession); - delete mDialog; - mDialog =0; + // when there is no Task Switcher dialog, Appkey is used to switch between Applib and HomeScreen + RApaLsSession apaLsSession; + CleanupClosePushL(apaLsSession); + User::LeaveIfError(apaLsSession.Connect()); + CAfActivityLauncher *activityEnabler = + CAfActivityLauncher::NewLC(apaLsSession, + iEikEnv->WsSession()); + TInt state(0); + RProperty::Get(KHsCategoryUid, KHsCategoryStateKey, state); + if (state == EHomeScreenIdleState) { + activityEnabler->launchActivityL(KAppLibActivactionUri); + } else { + activityEnabler->launchActivityL(KHsActivactionUri); + } + CleanupStack::PopAndDestroy(activityEnabler); + CleanupStack::PopAndDestroy(&apaLsSession); + } } // --------------------------------------------------------------------------- @@ -166,15 +181,14 @@ RProperty::Get( TsProperty::KCategory, TsProperty::KVisibilityKey, value ); - if(!value){ - mDialog = CHbDeviceDialogSymbian::NewL(); - + if(!value) { + mDialog = CHbDeviceDialogSymbian::NewL(); CHbSymbianVariantMap* params = CHbSymbianVariantMap::NewL(); - if(KErrNone != mDialog->Show(KTsPluginName,*params,this)) { - delete mDialog; - mDialog = 0; + if(KErrNone != mDialog->Show(KTsPluginName,*params,this)) { + delete mDialog; + mDialog = 0; } - delete params; + delete params; } } } diff -r e0aa398e6810 -r 3ab5c078b490 hswidgetmodel/bwins/hswidgetmodelu.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hswidgetmodel/bwins/hswidgetmodelu.def Thu Sep 02 20:45:03 2010 +0300 @@ -0,0 +1,71 @@ +EXPORTS + ?mouseDoubleClickEvent@HsWidget@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 1 NONAME ; void HsWidget::mouseDoubleClickEvent(class QGraphicsSceneMouseEvent *) + ?qt_metacall@HsWidgetProviderManifest@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 2 NONAME ; int HsWidgetProviderManifest::qt_metacall(enum QMetaObject::Call, int, void * *) + ?mouseReleaseEvent@HsWidget@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 3 NONAME ; void HsWidget::mouseReleaseEvent(class QGraphicsSceneMouseEvent *) + ??1HsPluginUnloader@@UAE@XZ @ 4 NONAME ; HsPluginUnloader::~HsPluginUnloader(void) + ?setFaulted@HsWidget@@IAEXXZ @ 5 NONAME ; void HsWidget::setFaulted(void) + ?faulted@HsWidget@@IAEXXZ @ 6 NONAME ; void HsWidget::faulted(void) + ?tr@HsPluginUnloader@@SA?AVQString@@PBD0@Z @ 7 NONAME ; class QString HsPluginUnloader::tr(char const *, char const *) + ?getStaticMetaObject@HsPluginUnloader@@SAABUQMetaObject@@XZ @ 8 NONAME ; struct QMetaObject const & HsPluginUnloader::getStaticMetaObject(void) + ?onResume@HsWidget@@MAE?AW4ResumeResult@1@XZ @ 9 NONAME ; enum HsWidget::ResumeResult HsWidget::onResume(void) + ?trUtf8@HsWidgetProviderManifest@@SA?AVQString@@PBD0H@Z @ 10 NONAME ; class QString HsWidgetProviderManifest::trUtf8(char const *, char const *, int) + ?qt_metacast@HsWidget@@UAEPAXPBD@Z @ 11 NONAME ; void * HsWidget::qt_metacast(char const *) + ?trUtf8@HsPluginUnloader@@SA?AVQString@@PBD0H@Z @ 12 NONAME ; class QString HsPluginUnloader::trUtf8(char const *, char const *, int) + ?mousePressEvent@HsWidget@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 13 NONAME ; void HsWidget::mousePressEvent(class QGraphicsSceneMouseEvent *) + ?getStaticMetaObject@HsWidgetFactory@@SAABUQMetaObject@@XZ @ 14 NONAME ; struct QMetaObject const & HsWidgetFactory::getStaticMetaObject(void) + ?qt_metacast@HsPluginUnloader@@UAEPAXPBD@Z @ 15 NONAME ; void * HsPluginUnloader::qt_metacast(char const *) + ?staticMetaObject@HsPluginUnloader@@2UQMetaObject@@B @ 16 NONAME ; struct QMetaObject const HsPluginUnloader::staticMetaObject + ?stopped@HsWidget@@IAEXXZ @ 17 NONAME ; void HsWidget::stopped(void) + ?metaObject@HsWidgetFactory@@UBEPBUQMetaObject@@XZ @ 18 NONAME ; struct QMetaObject const * HsWidgetFactory::metaObject(void) const + ?metaObject@HsWidget@@UBEPBUQMetaObject@@XZ @ 19 NONAME ; struct QMetaObject const * HsWidget::metaObject(void) const + ??0HsWidgetProviderManifest@@QAE@PAVQObject@@@Z @ 20 NONAME ; HsWidgetProviderManifest::HsWidgetProviderManifest(class QObject *) + ?resume@HsWidget@@QAEXXZ @ 21 NONAME ; void HsWidget::resume(void) + ?qt_metacast@HsWidgetFactory@@UAEPAXPBD@Z @ 22 NONAME ; void * HsWidgetFactory::qt_metacast(char const *) + ?start@HsWidget@@QAEXXZ @ 23 NONAME ; void HsWidget::start(void) + ?setFaulting@HsWidget@@IAEXXZ @ 24 NONAME ; void HsWidget::setFaulting(void) + ?widgets@HsWidgetProviderManifest@@QBE?AV?$QList@VHsWidgetToken@@@@XZ @ 25 NONAME ; class QList HsWidgetProviderManifest::widgets(void) const + ?tr@HsWidgetProviderManifest@@SA?AVQString@@PBD0H@Z @ 26 NONAME ; class QString HsWidgetProviderManifest::tr(char const *, char const *, int) + ??_EHsWidget@@UAE@I@Z @ 27 NONAME ; HsWidget::~HsWidget(unsigned int) + ?widgetPreferenceService@HsWidget@@QBEPAVIHsWidgetPreferenceService@@XZ @ 28 NONAME ; class IHsWidgetPreferenceService * HsWidget::widgetPreferenceService(void) const + ?createWidget@HsWidgetFactory@@QAEPAVHsWidget@@ABVHsWidgetToken@@@Z @ 29 NONAME ; class HsWidget * HsWidgetFactory::createWidget(class HsWidgetToken const &) + ?trUtf8@HsPluginUnloader@@SA?AVQString@@PBD0@Z @ 30 NONAME ; class QString HsPluginUnloader::trUtf8(char const *, char const *) + ?staticMetaObject@HsWidgetFactory@@2UQMetaObject@@B @ 31 NONAME ; struct QMetaObject const HsWidgetFactory::staticMetaObject + ?setFinished@HsWidget@@IAEXXZ @ 32 NONAME ; void HsWidget::setFinished(void) + ??_EHsWidgetFactory@@UAE@I@Z @ 33 NONAME ; HsWidgetFactory::~HsWidgetFactory(unsigned int) + ??_EHsWidgetProviderManifest@@UAE@I@Z @ 34 NONAME ; HsWidgetProviderManifest::~HsWidgetProviderManifest(unsigned int) + ??1HsWidgetProviderManifest@@UAE@XZ @ 35 NONAME ; HsWidgetProviderManifest::~HsWidgetProviderManifest(void) + ??1HsWidget@@UAE@XZ @ 36 NONAME ; HsWidget::~HsWidget(void) + ?tr@HsWidgetFactory@@SA?AVQString@@PBD0H@Z @ 37 NONAME ; class QString HsWidgetFactory::tr(char const *, char const *, int) + ?trUtf8@HsWidget@@SA?AVQString@@PBD0H@Z @ 38 NONAME ; class QString HsWidget::trUtf8(char const *, char const *, int) + ??0HsWidget@@QAE@PAVQGraphicsItem@@V?$QFlags@W4WindowType@Qt@@@@@Z @ 39 NONAME ; HsWidget::HsWidget(class QGraphicsItem *, class QFlags) + ?suspend@HsWidget@@QAEXXZ @ 40 NONAME ; void HsWidget::suspend(void) + ?staticMetaObject@HsWidgetProviderManifest@@2UQMetaObject@@B @ 41 NONAME ; struct QMetaObject const HsWidgetProviderManifest::staticMetaObject + ??_EHsPluginUnloader@@UAE@I@Z @ 42 NONAME ; HsPluginUnloader::~HsPluginUnloader(unsigned int) + ?tr@HsWidget@@SA?AVQString@@PBD0H@Z @ 43 NONAME ; class QString HsWidget::tr(char const *, char const *, int) + ?trUtf8@HsWidgetProviderManifest@@SA?AVQString@@PBD0@Z @ 44 NONAME ; class QString HsWidgetProviderManifest::trUtf8(char const *, char const *) + ?loadOnQuery@HsWidgetProviderManifest@@QBE_NXZ @ 45 NONAME ; bool HsWidgetProviderManifest::loadOnQuery(void) const + ?staticMetaObject@HsWidget@@2UQMetaObject@@B @ 46 NONAME ; struct QMetaObject const HsWidget::staticMetaObject + ?qt_metacast@HsWidgetProviderManifest@@UAEPAXPBD@Z @ 47 NONAME ; void * HsWidgetProviderManifest::qt_metacast(char const *) + ?mouseMoveEvent@HsWidget@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 48 NONAME ; void HsWidget::mouseMoveEvent(class QGraphicsSceneMouseEvent *) + ?succeeded@HsWidget@@IAEXXZ @ 49 NONAME ; void HsWidget::succeeded(void) + ?qt_metacall@HsWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 50 NONAME ; int HsWidget::qt_metacall(enum QMetaObject::Call, int, void * *) + ?onSuspend@HsWidget@@MAE?AW4SuspendResult@1@XZ @ 51 NONAME ; enum HsWidget::SuspendResult HsWidget::onSuspend(void) + ??0HsPluginUnloader@@QAE@PAVQPluginLoader@@PAVQObject@@@Z @ 52 NONAME ; HsPluginUnloader::HsPluginUnloader(class QPluginLoader *, class QObject *) + ?qt_metacall@HsWidgetFactory@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 53 NONAME ; int HsWidgetFactory::qt_metacall(enum QMetaObject::Call, int, void * *) + ?loadFromXml@HsWidgetProviderManifest@@QAE_NABVQString@@@Z @ 54 NONAME ; bool HsWidgetProviderManifest::loadFromXml(class QString const &) + ?trUtf8@HsWidget@@SA?AVQString@@PBD0@Z @ 55 NONAME ; class QString HsWidget::trUtf8(char const *, char const *) + ??0HsWidgetFactory@@QAE@PAVQObject@@@Z @ 56 NONAME ; HsWidgetFactory::HsWidgetFactory(class QObject *) + ?trUtf8@HsWidgetFactory@@SA?AVQString@@PBD0H@Z @ 57 NONAME ; class QString HsWidgetFactory::trUtf8(char const *, char const *, int) + ?tr@HsPluginUnloader@@SA?AVQString@@PBD0H@Z @ 58 NONAME ; class QString HsPluginUnloader::tr(char const *, char const *, int) + ?stop@HsWidget@@QAEXXZ @ 59 NONAME ; void HsWidget::stop(void) + ?trUtf8@HsWidgetFactory@@SA?AVQString@@PBD0@Z @ 60 NONAME ; class QString HsWidgetFactory::trUtf8(char const *, char const *) + ?tr@HsWidgetProviderManifest@@SA?AVQString@@PBD0@Z @ 61 NONAME ; class QString HsWidgetProviderManifest::tr(char const *, char const *) + ?getStaticMetaObject@HsWidgetProviderManifest@@SAABUQMetaObject@@XZ @ 62 NONAME ; struct QMetaObject const & HsWidgetProviderManifest::getStaticMetaObject(void) + ??1HsWidgetFactory@@UAE@XZ @ 63 NONAME ; HsWidgetFactory::~HsWidgetFactory(void) + ?tr@HsWidgetFactory@@SA?AVQString@@PBD0@Z @ 64 NONAME ; class QString HsWidgetFactory::tr(char const *, char const *) + ?qt_metacall@HsPluginUnloader@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 65 NONAME ; int HsPluginUnloader::qt_metacall(enum QMetaObject::Call, int, void * *) + ?metaObject@HsPluginUnloader@@UBEPBUQMetaObject@@XZ @ 66 NONAME ; struct QMetaObject const * HsPluginUnloader::metaObject(void) const + ?tr@HsWidget@@SA?AVQString@@PBD0@Z @ 67 NONAME ; class QString HsWidget::tr(char const *, char const *) + ?getStaticMetaObject@HsWidget@@SAABUQMetaObject@@XZ @ 68 NONAME ; struct QMetaObject const & HsWidget::getStaticMetaObject(void) + ?metaObject@HsWidgetProviderManifest@@UBEPBUQMetaObject@@XZ @ 69 NONAME ; struct QMetaObject const * HsWidgetProviderManifest::metaObject(void) const + diff -r e0aa398e6810 -r 3ab5c078b490 hswidgetmodel/eabi/hswidgetmodelu.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hswidgetmodel/eabi/hswidgetmodelu.def Thu Sep 02 20:45:03 2010 +0300 @@ -0,0 +1,70 @@ +EXPORTS + _ZN15HsWidgetFactory11qt_metacallEN11QMetaObject4CallEiPPv @ 1 NONAME + _ZN15HsWidgetFactory11qt_metacastEPKc @ 2 NONAME + _ZN15HsWidgetFactory12createWidgetERK13HsWidgetToken @ 3 NONAME + _ZN15HsWidgetFactory16staticMetaObjectE @ 4 NONAME DATA 16 + _ZN15HsWidgetFactory19getStaticMetaObjectEv @ 5 NONAME + _ZN15HsWidgetFactoryC1EP7QObject @ 6 NONAME + _ZN15HsWidgetFactoryC2EP7QObject @ 7 NONAME + _ZN15HsWidgetFactoryD0Ev @ 8 NONAME + _ZN15HsWidgetFactoryD1Ev @ 9 NONAME + _ZN15HsWidgetFactoryD2Ev @ 10 NONAME + _ZN16HsPluginUnloader11qt_metacallEN11QMetaObject4CallEiPPv @ 11 NONAME + _ZN16HsPluginUnloader11qt_metacastEPKc @ 12 NONAME + _ZN16HsPluginUnloader16staticMetaObjectE @ 13 NONAME DATA 16 + _ZN16HsPluginUnloader19getStaticMetaObjectEv @ 14 NONAME + _ZN16HsPluginUnloaderC1EP13QPluginLoaderP7QObject @ 15 NONAME + _ZN16HsPluginUnloaderC2EP13QPluginLoaderP7QObject @ 16 NONAME + _ZN16HsPluginUnloaderD0Ev @ 17 NONAME + _ZN16HsPluginUnloaderD1Ev @ 18 NONAME + _ZN16HsPluginUnloaderD2Ev @ 19 NONAME + _ZN24HsWidgetProviderManifest11loadFromXmlERK7QString @ 20 NONAME + _ZN24HsWidgetProviderManifest11qt_metacallEN11QMetaObject4CallEiPPv @ 21 NONAME + _ZN24HsWidgetProviderManifest11qt_metacastEPKc @ 22 NONAME + _ZN24HsWidgetProviderManifest16staticMetaObjectE @ 23 NONAME DATA 16 + _ZN24HsWidgetProviderManifest19getStaticMetaObjectEv @ 24 NONAME + _ZN24HsWidgetProviderManifestC1EP7QObject @ 25 NONAME + _ZN24HsWidgetProviderManifestC2EP7QObject @ 26 NONAME + _ZN24HsWidgetProviderManifestD0Ev @ 27 NONAME + _ZN24HsWidgetProviderManifestD1Ev @ 28 NONAME + _ZN24HsWidgetProviderManifestD2Ev @ 29 NONAME + _ZN8HsWidget10setFaultedEv @ 30 NONAME + _ZN8HsWidget11qt_metacallEN11QMetaObject4CallEiPPv @ 31 NONAME + _ZN8HsWidget11qt_metacastEPKc @ 32 NONAME + _ZN8HsWidget11setFaultingEv @ 33 NONAME + _ZN8HsWidget11setFinishedEv @ 34 NONAME + _ZN8HsWidget16staticMetaObjectE @ 35 NONAME DATA 16 + _ZN8HsWidget19getStaticMetaObjectEv @ 36 NONAME + _ZN8HsWidget4stopEv @ 37 NONAME + _ZN8HsWidget5startEv @ 38 NONAME + _ZN8HsWidget6resumeEv @ 39 NONAME + _ZN8HsWidget7faultedEv @ 40 NONAME + _ZN8HsWidget7stoppedEv @ 41 NONAME + _ZN8HsWidget7suspendEv @ 42 NONAME + _ZN8HsWidget8onResumeEv @ 43 NONAME + _ZN8HsWidget9onSuspendEv @ 44 NONAME + _ZN8HsWidget9succeededEv @ 45 NONAME + _ZN8HsWidgetC2EP13QGraphicsItem6QFlagsIN2Qt10WindowTypeEE @ 46 NONAME + _ZN8HsWidgetD0Ev @ 47 NONAME + _ZN8HsWidgetD1Ev @ 48 NONAME + _ZN8HsWidgetD2Ev @ 49 NONAME + _ZNK15HsWidgetFactory10metaObjectEv @ 50 NONAME + _ZNK16HsPluginUnloader10metaObjectEv @ 51 NONAME + _ZNK24HsWidgetProviderManifest10metaObjectEv @ 52 NONAME + _ZNK24HsWidgetProviderManifest11loadOnQueryEv @ 53 NONAME + _ZNK24HsWidgetProviderManifest7widgetsEv @ 54 NONAME + _ZNK8HsWidget10metaObjectEv @ 55 NONAME + _ZNK8HsWidget23widgetPreferenceServiceEv @ 56 NONAME + _ZTI15HsWidgetFactory @ 57 NONAME + _ZTI16HsPluginUnloader @ 58 NONAME + _ZTI24HsWidgetProviderManifest @ 59 NONAME + _ZTI8HsWidget @ 60 NONAME + _ZTV15HsWidgetFactory @ 61 NONAME + _ZTV16HsPluginUnloader @ 62 NONAME + _ZTV24HsWidgetProviderManifest @ 63 NONAME + _ZTV8HsWidget @ 64 NONAME + _ZThn16_N8HsWidgetD0Ev @ 65 NONAME + _ZThn16_N8HsWidgetD1Ev @ 66 NONAME + _ZThn8_N8HsWidgetD0Ev @ 67 NONAME + _ZThn8_N8HsWidgetD1Ev @ 68 NONAME + diff -r e0aa398e6810 -r 3ab5c078b490 rom/homescreensrv_core.iby --- a/rom/homescreensrv_core.iby Wed Aug 18 10:05:49 2010 +0300 +++ b/rom/homescreensrv_core.iby Thu Sep 02 20:45:03 2010 +0300 @@ -34,6 +34,9 @@ data=\epoc32\data\z\resource\qt\plugins\commandhandler\caurlhandlerplugin.qtplugin resource\qt\plugins\commandhandler\caurlhandlerplugin.qtplugin data=\epoc32\data\z\resource\qt\plugins\commandhandler\caurlhandlerplugin.xml resource\qt\plugins\commandhandler\caurlhandlerplugin.xml +file=ABI_DIR\BUILD_DIR\camificon.dll SHARED_LIB_DIR\camificon.dll +data=\epoc32\data\z\resource\qt\plugins\iconengines\camificon.qtplugin resource\qt\plugins\iconengines\camificon.qtplugin + file=ABI_DIR\BUILD_DIR\caclient.dll SHARED_LIB_DIR\caclient.dll file=ABI_DIR\BUILD_DIR\cautils.dll SHARED_LIB_DIR\cautils.dll file=ABI_DIR\BUILD_DIR\camenu.dll SHARED_LIB_DIR\camenu.dll diff -r e0aa398e6810 -r 3ab5c078b490 sis/homescreensrv.pkg --- a/sis/homescreensrv.pkg Wed Aug 18 10:05:49 2010 +0300 +++ b/sis/homescreensrv.pkg Thu Sep 02 20:45:03 2010 +0300 @@ -131,8 +131,9 @@ "/epoc32/release/armv5/urel/calocalizerscanner.dll" - "c:/sys/bin/calocalizerscanner.dll" "/epoc32/data/z/resource/plugins/calocalizerscanner.rsc"-"c:/resource/plugins/calocalizerscanner.rsc" "/epoc32/release/armv5/urel/causifscanner.dll" - "c:/sys/bin/causifscanner.dll" -"/epoc32/data/z/resource/plugins/causifscanner.rsc"-"c:/resource/plugins/causifscanner.rsc" - +"/epoc32/data/z/resource/plugins/causifscanner.rsc" - "c:/resource/plugins/causifscanner.rsc" +"/epoc32/release/armv5/urel/camificon.dll" - "c:/sys/bin/camificon.dll" +"/epoc32/data/z/resource/qt/plugins/iconengines/camificon.qtplugin" - "c:/resource/qt/plugins/iconengines/camificon.qtplugin" "/epoc32/release/armv5/urel/camenuserver.exe" - "c:/sys/bin/camenuserver.exe" "/epoc32/release/armv5/urel/caextendedmenu.dll" - "c:/sys/bin/caextendedmenu.dll" diff -r e0aa398e6810 -r 3ab5c078b490 tsdevicedialog/tsdevicedialogplugin/inc/tsactivitymodelitem.h --- a/tsdevicedialog/tsdevicedialogplugin/inc/tsactivitymodelitem.h Wed Aug 18 10:05:49 2010 +0300 +++ b/tsdevicedialog/tsdevicedialogplugin/inc/tsactivitymodelitem.h Thu Sep 02 20:45:03 2010 +0300 @@ -18,10 +18,13 @@ #ifndef TSACTIVITYMODELITEM_H #define TSACTIVITYMODELITEM_H -#include -#include +#include +#include #include "tsmodelitem.h" + +class QAbstractListModel; + /*! Implements model item which represents Activity entry */ diff -r e0aa398e6810 -r 3ab5c078b490 tsdevicedialog/tsdevicedialogplugin/inc/tsdevicedialogcontainer.h --- a/tsdevicedialog/tsdevicedialogplugin/inc/tsdevicedialogcontainer.h Wed Aug 18 10:05:49 2010 +0300 +++ b/tsdevicedialog/tsdevicedialogplugin/inc/tsdevicedialogcontainer.h Thu Sep 02 20:45:03 2010 +0300 @@ -19,7 +19,8 @@ #include #include -#include +#include +#include #include "tsdocumentloader.h" @@ -52,10 +53,12 @@ private slots: void notifyDialogClosed(); void switchViewOnModelChange(); + void handleDismissRequest(); private: TsDocumentLoader mLoader; QValueSpacePublisher mVisibilityPublisher; + QValueSpaceSubscriber mDismissRequestSubscriber; Q_DISABLE_COPY(TsDeviceDialogContainer) }; diff -r e0aa398e6810 -r 3ab5c078b490 tsdevicedialog/tsdevicedialogplugin/inc/tsdevicedialogplugin.h --- a/tsdevicedialog/tsdevicedialogplugin/inc/tsdevicedialogplugin.h Wed Aug 18 10:05:49 2010 +0300 +++ b/tsdevicedialog/tsdevicedialogplugin/inc/tsdevicedialogplugin.h Thu Sep 02 20:45:03 2010 +0300 @@ -18,15 +18,15 @@ #ifndef TSDEVICEDIALOGPLUGIN_H #define TSDEVICEDIALOGPLUGIN_H -#include -#include #include -#include -#include + +#include #include "tsdocumentloader.h" +class QAbstractListModel; class TsTaskMonitor; + class TsDeviceDialogPlugin : public HbDeviceDialogPlugin { Q_OBJECT diff -r e0aa398e6810 -r 3ab5c078b490 tsdevicedialog/tsdevicedialogplugin/inc/tsdocumentloader.h --- a/tsdevicedialog/tsdevicedialogplugin/inc/tsdocumentloader.h Wed Aug 18 10:05:49 2010 +0300 +++ b/tsdevicedialog/tsdevicedialogplugin/inc/tsdocumentloader.h Thu Sep 02 20:45:03 2010 +0300 @@ -18,7 +18,7 @@ #ifndef TSDOCUMENTLOADER_H #define TSDOCUMENTLOADER_H -#include +#include class TsDocumentLoader : public HbDocumentLoader { diff -r e0aa398e6810 -r 3ab5c078b490 tsdevicedialog/tsdevicedialogplugin/inc/tsentrymodelitem.h --- a/tsdevicedialog/tsdevicedialogplugin/inc/tsentrymodelitem.h Wed Aug 18 10:05:49 2010 +0300 +++ b/tsdevicedialog/tsdevicedialogplugin/inc/tsentrymodelitem.h Thu Sep 02 20:45:03 2010 +0300 @@ -17,10 +17,10 @@ #ifndef TSENTRYMODELITEM_H #define TSENTRYMODELITEM_H + #include "tsmodelitem.h" -#include -#include +#include class TsTask; diff -r e0aa398e6810 -r 3ab5c078b490 tsdevicedialog/tsdevicedialogplugin/inc/tsmodel.h --- a/tsdevicedialog/tsdevicedialogplugin/inc/tsmodel.h Wed Aug 18 10:05:49 2010 +0300 +++ b/tsdevicedialog/tsdevicedialogplugin/inc/tsmodel.h Thu Sep 02 20:45:03 2010 +0300 @@ -18,16 +18,17 @@ #ifndef TSMODEL_H #define TSMODEL_H -#include +#include #include #include #include + #include + #ifdef Q_OS_SYMBIAN #include #endif -class TsTaskMonitor; class CaNotifier; class TsModelItem; @@ -45,11 +46,23 @@ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; int maxRowCount()const; + // from QAbstractModel + virtual bool insertRows(int row, int count, TsModelItem* item, + const QModelIndex & parent = QModelIndex()); + virtual bool removeRows(int row, int count, + const QModelIndex & parent = QModelIndex()); + + + bool moveRows(int oldPosition, int newPosition, + const QModelIndex & parent = QModelIndex()); + bool updateRows(int row, TsModelItem* item); + void fullUpdate(); public slots: void openApplication(const QModelIndex &index); void closeApplication(const QModelIndex &index); - void updateModel(); + void updateApplications(); + void updateActivities(); void entryChanged(TsModelItem *); private: TsModelItem *entry(const QModelIndex &index) const; diff -r e0aa398e6810 -r 3ab5c078b490 tsdevicedialog/tsdevicedialogplugin/inc/tsmodelitem.h --- a/tsdevicedialog/tsdevicedialogplugin/inc/tsmodelitem.h Wed Aug 18 10:05:49 2010 +0300 +++ b/tsdevicedialog/tsdevicedialogplugin/inc/tsmodelitem.h Thu Sep 02 20:45:03 2010 +0300 @@ -14,11 +14,12 @@ * Description: tsmodelitem.h * */ - #ifndef TSMODELITEM_H #define TSMODELITEM_H + +#include #include -#include + /*! Abstract class which define model item for taskswitcher */ diff -r e0aa398e6810 -r 3ab5c078b490 tsdevicedialog/tsdevicedialogplugin/inc/tsnoitemslabel.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tsdevicedialog/tsdevicedialogplugin/inc/tsnoitemslabel.h Thu Sep 02 20:45:03 2010 +0300 @@ -0,0 +1,34 @@ +/* +* 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 TSNOITEMSLABEL_H +#define TSNOITEMSLABEL_H + +#include + +class TsNoItemsLabel : public HbLabel +{ + Q_OBJECT + +public: + explicit TsNoItemsLabel(QGraphicsItem *parent = 0); + +private: + Q_DISABLE_COPY(TsNoItemsLabel) + +}; + +#endif //TSNOITEMSLABEL_H diff -r e0aa398e6810 -r 3ab5c078b490 tsdevicedialog/tsdevicedialogplugin/inc/tstasksgrid.h --- a/tsdevicedialog/tsdevicedialogplugin/inc/tstasksgrid.h Wed Aug 18 10:05:49 2010 +0300 +++ b/tsdevicedialog/tsdevicedialogplugin/inc/tstasksgrid.h Thu Sep 02 20:45:03 2010 +0300 @@ -17,7 +17,7 @@ #ifndef TSTASKSGRID_H #define TSTASKSGRID_H -#include +#include class TsTasksGrid : public HbGridView { diff -r e0aa398e6810 -r 3ab5c078b490 tsdevicedialog/tsdevicedialogplugin/inc/tstasksgriditem.h --- a/tsdevicedialog/tsdevicedialogplugin/inc/tstasksgriditem.h Wed Aug 18 10:05:49 2010 +0300 +++ b/tsdevicedialog/tsdevicedialogplugin/inc/tstasksgriditem.h Thu Sep 02 20:45:03 2010 +0300 @@ -17,7 +17,7 @@ #ifndef TSTASKSGRIDITEM_H #define TSTASKSGRIDITEM_H -#include +#include class HbTextItem; class HbIconItem; diff -r e0aa398e6810 -r 3ab5c078b490 tsdevicedialog/tsdevicedialogplugin/resource/layout.docml --- a/tsdevicedialog/tsdevicedialogplugin/resource/layout.docml Wed Aug 18 10:05:49 2010 +0300 +++ b/tsdevicedialog/tsdevicedialogplugin/resource/layout.docml Thu Sep 02 20:45:03 2010 +0300 @@ -13,12 +13,23 @@ - - - + + + + + + + + + + + + + + - + diff -r e0aa398e6810 -r 3ab5c078b490 tsdevicedialog/tsdevicedialogplugin/resource/tsdevicedialog.qcrml --- a/tsdevicedialog/tsdevicedialogplugin/resource/tsdevicedialog.qcrml Wed Aug 18 10:05:49 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ - - - - diff -r e0aa398e6810 -r 3ab5c078b490 tsdevicedialog/tsdevicedialogplugin/resource/tstasksgriditem.css --- a/tsdevicedialog/tsdevicedialogplugin/resource/tstasksgriditem.css Wed Aug 18 10:05:49 2010 +0300 +++ b/tsdevicedialog/tsdevicedialogplugin/resource/tstasksgriditem.css Thu Sep 02 20:45:03 2010 +0300 @@ -34,9 +34,13 @@ max-height: var(hb-param-graphic-size-primary-small); } +TsTasksGridItem::screenshot { + alignment: center; +} + TsTasksGridItem::activeLabel { text-align: center; - color: var(qtc_default_main_pane_normal); + color: var(qtc_multimedia_trans_normal); text-height: var(hb-param-text-height-tiny); font-variant: secondary; diff -r e0aa398e6810 -r 3ab5c078b490 tsdevicedialog/tsdevicedialogplugin/src/tsactivitymodelitem.cpp --- a/tsdevicedialog/tsdevicedialogplugin/src/tsactivitymodelitem.cpp Wed Aug 18 10:05:49 2010 +0300 +++ b/tsdevicedialog/tsdevicedialogplugin/src/tsactivitymodelitem.cpp Thu Sep 02 20:45:03 2010 +0300 @@ -14,10 +14,14 @@ * Description: tsactivitymodelitem.cpp * */ -#include +#include "tsactivitymodelitem.h" + +#include + +#include + #include -#include "tsactivitymodelitem.h" #include "tsdataroles.h" /*! diff -r e0aa398e6810 -r 3ab5c078b490 tsdevicedialog/tsdevicedialogplugin/src/tsdevicedialogcontainer.cpp --- a/tsdevicedialog/tsdevicedialogplugin/src/tsdevicedialogcontainer.cpp Wed Aug 18 10:05:49 2010 +0300 +++ b/tsdevicedialog/tsdevicedialogplugin/src/tsdevicedialogcontainer.cpp Thu Sep 02 20:45:03 2010 +0300 @@ -15,13 +15,16 @@ * */ +#include "tsdevicedialogcontainer.h" + #include + #include #include #include + #include -#include "tsdevicedialogcontainer.h" #include "tstasksgrid.h" #include "tstasksgriditem.h" @@ -33,7 +36,8 @@ QObject *parent) : QObject(parent), - mVisibilityPublisher(TsProperty::KTsPath) + mVisibilityPublisher(TsProperty::KTsPath), + mDismissRequestSubscriber(QString("%1/%2").arg(TsProperty::KTsPath).arg(TsProperty::KDismissRequestPath)) { bool ok(true); mLoader.load(KDocmlPath, &ok); @@ -91,6 +95,11 @@ mVisibilityPublisher.setValue(TsProperty::KVisibilityPath, static_cast(true)); mVisibilityPublisher.sync(); + + connect(&mDismissRequestSubscriber, + SIGNAL(contentsChanged()), + this, + SLOT(handleDismissRequest())); } TsDeviceDialogContainer::~TsDeviceDialogContainer() @@ -152,16 +161,23 @@ { TsTasksGrid *grid = qobject_cast(mLoader.findWidget("taskgrid")); - HbLabel *noItemsLabel = - qobject_cast(mLoader.findWidget("noitemslabel")); + HbWidget *noItemsWidget = + qobject_cast(mLoader.findWidget("noitemswidget")); Q_ASSERT(grid); - Q_ASSERT(noItemsLabel); + Q_ASSERT(noItemsWidget); if (grid->model()->rowCount()) { - noItemsLabel->hide(); + noItemsWidget->hide(); grid->show(); } else { - noItemsLabel->show(); + noItemsWidget->show(); grid->hide(); } } + +void TsDeviceDialogContainer::handleDismissRequest() +{ + if (mDismissRequestSubscriber.value().toBool()) { + emit deviceDialogClosed(); + } +} diff -r e0aa398e6810 -r 3ab5c078b490 tsdevicedialog/tsdevicedialogplugin/src/tsdevicedialogplugin.cpp --- a/tsdevicedialog/tsdevicedialogplugin/src/tsdevicedialogplugin.cpp Wed Aug 18 10:05:49 2010 +0300 +++ b/tsdevicedialog/tsdevicedialogplugin/src/tsdevicedialogplugin.cpp Thu Sep 02 20:45:03 2010 +0300 @@ -15,21 +15,29 @@ * */ +#include "tsdevicedialogplugin.h" + #include #include #include #include -#include -#include + +#include +#include + +#include #include -#include "tsdevicedialogplugin.h" +#include + #include "tsdevicedialogcontainer.h" #include "tstasksgrid.h" #include "tstasksgriditem.h" #include "tsdocumentloader.h" #include "tsmodel.h" +QTM_USE_NAMESPACE + /*! \class TsDeviceDialogPlugin \ingroup group_tsdevicedialogplugin @@ -113,15 +121,12 @@ } // lazy loading of model - if (0 == mModel) { + if (!mModel) { mStorage = new TsTaskMonitor(this); - if (0 == mStorage) { - return 0; // provider of running application list is critical - } - QtMobility::QServiceManager serviceManager; + QServiceManager serviceManager; QObject *activityManager(serviceManager.loadInterface(KActivityManaged)); - if (0 != activityManager) { + if (activityManager) { activityManager->setParent(this); //make it autodestructed } else { activityManager = this; //activity plugin is not present. provide invalid instance because its not critical functionality. @@ -129,7 +134,15 @@ } mModel = new TsModel(*mStorage, *activityManager); } + + // ensure the dismiss request property is set to false + + QValueSpacePublisher dismissRequestPublisher(TsProperty::KTsPath); + dismissRequestPublisher.setValue(TsProperty::KDismissRequestPath, static_cast(false)); + dismissRequestPublisher.sync(); + + // create device dialog dialogInterface = new TsDeviceDialogContainer(mModel); } return dialogInterface; diff -r e0aa398e6810 -r 3ab5c078b490 tsdevicedialog/tsdevicedialogplugin/src/tsdocumentloader.cpp --- a/tsdevicedialog/tsdevicedialogplugin/src/tsdocumentloader.cpp Wed Aug 18 10:05:49 2010 +0300 +++ b/tsdevicedialog/tsdevicedialogplugin/src/tsdocumentloader.cpp Thu Sep 02 20:45:03 2010 +0300 @@ -18,6 +18,7 @@ #include "tsdocumentloader.h" #include "tstasksgrid.h" #include "tstasksgriditem.h" +#include "tsnoitemslabel.h" /*! \class TsDocumentLoader @@ -38,6 +39,10 @@ QObject *object = new TsTasksGridItem(); object->setObjectName(name); return object; + } else if (type == TsNoItemsLabel::staticMetaObject.className()) { + QObject *object = new TsNoItemsLabel(); + object->setObjectName(name); + return object; } return HbDocumentLoader::createObject(type, name); diff -r e0aa398e6810 -r 3ab5c078b490 tsdevicedialog/tsdevicedialogplugin/src/tsentrymodelitem.cpp --- a/tsdevicedialog/tsdevicedialogplugin/src/tsentrymodelitem.cpp Wed Aug 18 10:05:49 2010 +0300 +++ b/tsdevicedialog/tsdevicedialogplugin/src/tsentrymodelitem.cpp Thu Sep 02 20:45:03 2010 +0300 @@ -15,10 +15,12 @@ * */ -#include +#include "tsentrymodelitem.h" + #include -#include "tsentrymodelitem.h" +#include + #include "tsdataroles.h" /*! diff -r e0aa398e6810 -r 3ab5c078b490 tsdevicedialog/tsdevicedialogplugin/src/tsmodel.cpp --- a/tsdevicedialog/tsdevicedialogplugin/src/tsmodel.cpp Wed Aug 18 10:05:49 2010 +0300 +++ b/tsdevicedialog/tsdevicedialogplugin/src/tsmodel.cpp Thu Sep 02 20:45:03 2010 +0300 @@ -14,9 +14,13 @@ * Description: tsmodel.cpp * */ +#include "tsmodel.h" + +#include +#include + #include -#include -#include + #include #ifdef Q_OS_SYMBIAN @@ -27,11 +31,11 @@ const int ItemsLimit = 0x00000001; #endif -#include "tsmodel.h" #include "tsmodelitem.h" #include "tsentrymodelitem.h" #include "tsactivitymodelitem.h" #include "tsdataroles.h" +#include "tstaskchangeinfo.h" const int maxItems(10); /*! @@ -69,15 +73,16 @@ iAppArcSession.Connect(); #endif - connect(&activitySrv, - SIGNAL(dataChanged()), - this, - SLOT(updateModel())); - connect(&applicationSrv, - SIGNAL(taskListChanged()), - this, - SLOT(updateModel())); - updateModel(); + connect(&activitySrv, + SIGNAL(dataChanged()), + this, + SLOT(updateActivities())); + connect(&applicationSrv, + SIGNAL(taskListChanged()), + this, + SLOT(updateApplications())); + + fullUpdate(); } /*! @@ -102,6 +107,42 @@ return mEntries.count(); } +bool TsModel::insertRows(int row, int count, TsModelItem* item, const QModelIndex & parent) +{ + beginInsertRows(parent, row, row+count-1); + mEntries.insert(row, item); + endInsertRows(); + return true; +} + +bool TsModel::removeRows(int row, int count, const QModelIndex & parent) +{ + beginRemoveRows(parent, row, row + count - 1); + mEntries.removeAt(row); + endRemoveRows(); + return true; +} + + +bool TsModel::moveRows(int oldPosition, int newPosition, const QModelIndex & parent) +{ + beginMoveRows(parent, oldPosition, oldPosition, parent, newPosition); + mEntries.move(oldPosition, newPosition); + endMoveRows(); + return true; +} + + +bool TsModel::updateRows(int row, TsModelItem* item) +{ + TsModelItem *oldItem = mEntries.at(row); + mEntries[row] = item; + delete oldItem; + + emit dataChanged(index(row),index(row)); + return true; +} + /*! Returns appropiate model's data \param index model index @@ -150,10 +191,61 @@ /*! Updates model with fresh entries */ -void TsModel::updateModel() +void TsModel::updateApplications() { - //clear current data - beginResetModel(); + RDebug::Printf( "TsModel::updateApps \n"); + RDebug::Printf(" from %d \n: ",this); + QList changes(mApplicationService.changeList()); + + if(changes.count() == 0) + { + //no applications - only activities on list + return; + } + //check 1st item whether we have cancel change - if so reset model + if (changes[0].first.changeType() == TsTaskChangeInfo::EChangeCancel) { + fullUpdate(); + return; + } + for (int iter(0); iter < changes.count(); iter++) { + switch (changes[iter].first.changeType()) { + case TsTaskChangeInfo::EChangeDelete : + removeRows(changes[iter].first.oldOffset(), 1); + break; + case TsTaskChangeInfo::EChangeInsert : + insertRows(changes[iter].first.newOffset(), 1, + new TsEntryModelItem(changes[iter].second)); + break; + case TsTaskChangeInfo::EChangeMove : + moveRows(changes[iter].first.oldOffset(), changes[iter].first.newOffset()); + break; + case TsTaskChangeInfo::EChangeUpdate : + updateRows(changes[iter].first.oldOffset(), + new TsEntryModelItem(changes[iter].second)); + break; + default: + break; + } + } + + //because delete entries are at end of changelist - iterate backwards + +} + +/*! + Updates model with fresh entries +*/ +void TsModel::updateActivities() +{ + //as for now we need full update when activities change + fullUpdate(); +} + +/*! + reset model using full application and activities lists +*/ +void TsModel::fullUpdate() +{ qDeleteAll(mEntries); mEntries.clear(); getApplications(); @@ -167,10 +259,17 @@ */ void TsModel::getApplications() { - //get running applications - QList< QSharedPointer > tasks(mApplicationService.taskList()); - foreach (QSharedPointer taskData, tasks) { - mEntries.append(new TsEntryModelItem(taskData)); + RDebug::Printf( "CTsTaskMonitorClientImpl::RunL \n"); + //get all running applications and append to entries list + TsModelItem *entry(0); + QList< TsTaskChange> tasks(mApplicationService.changeList(true)); + foreach (TsTaskChange taskData, tasks) { + if (!taskData.second.isNull()) { + entry = new TsEntryModelItem(taskData.second); + if (entry) { + mEntries.append(entry); + } + } } } diff -r e0aa398e6810 -r 3ab5c078b490 tsdevicedialog/tsdevicedialogplugin/src/tsnoitemslabel.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tsdevicedialog/tsdevicedialogplugin/src/tsnoitemslabel.cpp Thu Sep 02 20:45:03 2010 +0300 @@ -0,0 +1,31 @@ +/* +* 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 "tsnoitemslabel.h" + +#include + +/*! + \class TsTasksGridItem + \ingroup group_tsdevicedialogplugin + \brief Item that should be presented in grid. +*/ + +TsNoItemsLabel::TsNoItemsLabel(QGraphicsItem *parent) : HbLabel(parent) +{ + HbFrameDrawer *drawer = new HbFrameDrawer(QLatin1String("qtg_fr_multimedia_trans"), HbFrameDrawer::NinePieces); + setBackgroundItem(new HbFrameItem(drawer)); +} diff -r e0aa398e6810 -r 3ab5c078b490 tsdevicedialog/tsdevicedialogplugin/src/tstasksgriditem.cpp --- a/tsdevicedialog/tsdevicedialogplugin/src/tstasksgriditem.cpp Wed Aug 18 10:05:49 2010 +0300 +++ b/tsdevicedialog/tsdevicedialogplugin/src/tstasksgriditem.cpp Thu Sep 02 20:45:03 2010 +0300 @@ -14,6 +14,8 @@ * Description: * */ +#include "tstasksgriditem.h" + #include #include #include @@ -21,7 +23,6 @@ #include #include -#include "tstasksgriditem.h" #include "tsdataroles.h" /*! @@ -30,7 +31,6 @@ \brief Item that should be presented in grid. */ - TsTasksGridItem::TsTasksGridItem() : HbAbstractViewItem(), diff -r e0aa398e6810 -r 3ab5c078b490 tsdevicedialog/tsdevicedialogplugin/tsdevicedialogplugin.pro --- a/tsdevicedialog/tsdevicedialogplugin/tsdevicedialogplugin.pro Wed Aug 18 10:05:49 2010 +0300 +++ b/tsdevicedialog/tsdevicedialogplugin/tsdevicedialogplugin.pro Thu Sep 02 20:45:03 2010 +0300 @@ -30,6 +30,7 @@ inc/tstasksgriditem.h \ inc/tsdocumentloader.h \ inc/tsdataroles.h \ + inc/tsnoitemslabel.h \ SOURCES += src/tsdevicedialogcontainer.cpp \ src/tsdevicedialogplugin.cpp \ @@ -39,6 +40,7 @@ src/tstasksgrid.cpp \ src/tstasksgriditem.cpp \ src/tsdocumentloader.cpp \ + src/tsnoitemslabel.cpp \ INCLUDEPATH += . \ ./inc \ @@ -55,16 +57,10 @@ TARGET.UID3 = 0x2002677F pluginstub.sources = tsdevicedialogplugin.dll pluginstub.path = /resource/plugins/devicedialogs + DEPLOYMENT += pluginstub LIBS += -lxqsettingsmanager -lapparc -lapgrfx - # ugly hack - - crml.sources = ./resource/*.qcrml - crml.path = /resource/qt/crml - - DEPLOYMENT += pluginstub crml - BLD_INF_RULES.prj_exports += \ "$${LITERAL_HASH}include " \ "conf/tsdevicedialog.confml APP_LAYER_CONFML(tsdevicedialog.confml)" \