diff -r d721605b30d0 -r 89165693e770 taskswitcher/contextengine/tsfswserver/engine/src/tsfswidgetlist.cpp --- a/taskswitcher/contextengine/tsfswserver/engine/src/tsfswidgetlist.cpp Mon Jun 21 15:27:11 2010 +0300 +++ b/taskswitcher/contextengine/tsfswserver/engine/src/tsfswidgetlist.cpp Thu Jul 15 18:25:29 2010 +0300 @@ -26,7 +26,20 @@ // CTsFsWidgetList* CTsFsWidgetList::NewL() { - return new (ELeave) CTsFsWidgetList; + CTsFsWidgetList* self = new (ELeave) CTsFsWidgetList(); + CleanupStack::PushL (self ); + self->ConstructL ( ); + CleanupStack::Pop ( self ); + return self; + } + +// -------------------------------------------------------------------------- +// CTsFsWidgetList::CTsFsWidgetList +// -------------------------------------------------------------------------- +// +void CTsFsWidgetList::ConstructL() + { + User::LeaveIfError( iWidgetRegistryClientSession.Connect() ); } // -------------------------------------------------------------------------- @@ -36,7 +49,7 @@ CTsFsWidgetList::CTsFsWidgetList() { } - + // -------------------------------------------------------------------------- // CTsFsWidgetList::~CTsFsWidgetList // -------------------------------------------------------------------------- @@ -45,16 +58,7 @@ { ResetArrayOfWidgetInfo( iRunningWidgets ); iRunningWidgets.Reset(); - } - -// -------------------------------------------------------------------------- -// CTsFsWidgetList::CleanupConnect -// -------------------------------------------------------------------------- -// -void CTsFsWidgetList::CleanupConnect( TAny* aThis ) - { - CTsFsWidgetList* self = static_cast( aThis ); - self->iWidgetRegistryClientSession.Disconnect(); + iWidgetRegistryClientSession.Disconnect(); } // -------------------------------------------------------------------------- @@ -65,17 +69,13 @@ { ResetArrayOfWidgetInfo( iRunningWidgets ); iRunningWidgets.Reset(); - User::LeaveIfError( iWidgetRegistryClientSession.Connect() ); - CleanupStack::PushL( TCleanupItem( CleanupConnect, this) ); - iWidgetRegistryClientSession.RunningWidgetsL(iRunningWidgets); + iWidgetRegistryClientSession.RunningWidgetsL(iRunningWidgets); //modify useless file size information with mode flag for ( TInt i(iRunningWidgets.Count() - 1); 0 <= i; --i ) { iRunningWidgets[i]->iFileSize = iWidgetRegistryClientSession.IsWidgetInFullView(iRunningWidgets[i]->iUid); } - CleanupStack::Pop(); // clean WidgetRegistryClientSession item - iWidgetRegistryClientSession.Disconnect(); } // --------------------------------------------------------------------------