taskswitcher/server/src/tsrunningappmodel.cpp
changeset 124 e36b2f4799c0
parent 121 0b3699f6c654
child 125 26079c1bb561
equal deleted inserted replaced
121:0b3699f6c654 124:e36b2f4799c0
    13 *
    13 *
    14 * Description:
    14 * Description:
    15 *
    15 *
    16 */
    16 */
    17 
    17 
    18 #include "tsrunningappmodel.h"
       
    19 
       
    20 #include <AknDef.h>
    18 #include <AknDef.h>
    21 #include <apgwgnam.h>
    19 #include <apgwgnam.h>
    22 #include <apgtask.h>
    20 #include <apgtask.h>
       
    21 
       
    22 #include "tsrunningappmodel.h"
       
    23 
       
    24 #include "tsrunningappstorage.h"
    23 
    25 
    24 #include "tsdatalist.h"
    26 #include "tsdatalist.h"
    25 #include "tsmodelobserver.h"
    27 #include "tsmodelobserver.h"
    26 #include "tsscreenshotprovider.h"
    28 #include "tsscreenshotprovider.h"
    27 
    29 
    28 CTsRunningAppModel *CTsRunningAppModel::NewL( MTsResourceManager& aResources, 
    30 CTsRunningAppModel *CTsRunningAppModel::NewL( MTsResourceManager& aResources, 
    29                                               MTsWindowGroupsMonitor& aMonitor )
    31                                               MTsWindowGroupsMonitor& aMonitor,
       
    32                                               TsEnv& aEnv )
    30     {
    33     {
    31     CTsRunningAppModel *self = CTsRunningAppModel::NewLC( aResources, aMonitor );
    34     CTsRunningAppModel *self = CTsRunningAppModel::NewLC( aResources, aMonitor, aEnv );
    32     CleanupStack::Pop( self );
    35     CleanupStack::Pop( self );
    33     return self;
    36     return self;
    34     }
    37     }
    35 
    38 
    36 CTsRunningAppModel *CTsRunningAppModel::NewLC( MTsResourceManager& aResources, 
    39 CTsRunningAppModel *CTsRunningAppModel::NewLC( MTsResourceManager& aResources, 
    37                                                MTsWindowGroupsMonitor& aMonitor )
    40                                                MTsWindowGroupsMonitor& aMonitor,
       
    41                                                TsEnv& aEnv )
    38     {
    42     {
    39     CTsRunningAppModel *self = new (ELeave) CTsRunningAppModel( aResources );
    43     CTsRunningAppModel *self = new (ELeave) CTsRunningAppModel( aResources );
    40     CleanupStack::PushL( self );
    44     CleanupStack::PushL( self );
    41     self->ConstructL( aResources, aMonitor );
    45     self->ConstructL( aResources, aMonitor, aEnv );
    42     return self;
    46     return self;
    43     }
    47     }
    44 
    48 
    45 CTsRunningAppModel::~CTsRunningAppModel()
    49 CTsRunningAppModel::~CTsRunningAppModel()
    46     {
    50     {
    53     iResources( aResources )
    57     iResources( aResources )
    54     {
    58     {
    55     }
    59     }
    56 
    60 
    57 void CTsRunningAppModel::ConstructL( MTsResourceManager& aResources, 
    61 void CTsRunningAppModel::ConstructL( MTsResourceManager& aResources, 
    58                                      MTsWindowGroupsMonitor& aMonitor )
    62                                      MTsWindowGroupsMonitor& aMonitor,
       
    63                                      TsEnv& aEnv)
    59     {
    64     {
    60     iDataList = CTsDataList::NewL( aResources, aMonitor, *this );
    65     iDataList = CTsDataList::NewL( aResources, aMonitor, *this, aEnv );
    61     iScreenshotProvider = CTsScreenshotProvider::NewL( *iDataList );
    66     iScreenshotProvider = CTsScreenshotProvider::NewL(*iDataList, aMonitor );
    62 
    67     
    63     RArray<RWsSession::TWindowGroupChainInfo> wgList;
    68     RArray<RWsSession::TWindowGroupChainInfo> wgList;
    64     CleanupClosePushL( wgList );
    69     CleanupClosePushL( wgList );
    65     User::LeaveIfError( aResources.WsSession().WindowGroupList( 0, &wgList ) );
    70     User::LeaveIfError( aResources.WsSession().WindowGroupList( 0, &wgList ) );
    66     iDataList->HandleWindowGroupChanged( aResources, wgList.Array() );
    71     CTsRunningAppStorage* storage = CTsRunningAppStorage::NewLC();
       
    72     storage->HandleWindowGroupChanged(aResources, wgList.Array());
       
    73     iDataList->HandleWindowGroupChanged( aResources, *storage );
       
    74     CleanupStack::PopAndDestroy(storage);
    67     CleanupStack::PopAndDestroy( &wgList );
    75     CleanupStack::PopAndDestroy( &wgList );
    68     }
    76     }
    69 
    77 
    70 // --------------------------------------------------------------------------
    78 // --------------------------------------------------------------------------
    71 // MHsDataObserver interface implementation
    79 // MHsDataObserver interface implementation
   146 TBool CTsRunningAppModel::IsClosableL( TInt aOffset ) const
   154 TBool CTsRunningAppModel::IsClosableL( TInt aOffset ) const
   147     {
   155     {
   148     return iDataList->Data()[aOffset]->CloseableApp();
   156     return iDataList->Data()[aOffset]->CloseableApp();
   149     }
   157     }
   150 
   158 
       
   159 TBool CTsRunningAppModel::IsMandatoryL( TInt /*aOffset*/ ) const
       
   160     {
       
   161     return ETrue;
       
   162     }
       
   163 
   151 TBool CTsRunningAppModel::CloseL( TTsModelItemKey aKey ) const
   164 TBool CTsRunningAppModel::CloseL( TTsModelItemKey aKey ) const
   152     {
   165     {
   153     TApaTask task( iResources.WsSession() );
   166     TApaTask task( iResources.WsSession() );
   154     task.SetWgId( aKey.Key() );
   167     task.SetWgId( aKey.Key() );
   155     task.EndTask();
   168     task.EndTask();