summaryrefslogtreecommitdiffstats
path: root/plugins/contacts/symbian/contactsmodel/cntmodel/src/cntimagesutility.cpp
blob: 74686a97025d2ebc7b5c1d0a6a49ce67112412a5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
/*
* Copyright (C) 2012 Digia Plc 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 "cntimagerescaler.h"
#include <cntimagesutility.h>

EXPORT_C CContactImagesUtility* CContactImagesUtility::NewL()
{
    CContactImagesUtility* self = new (ELeave) CContactImagesUtility();
    CleanupStack::PushL(self);
    self->ConstructL();
    CleanupStack::Pop(self);
    return self;
}

EXPORT_C CContactImagesUtility::~CContactImagesUtility()
{
    Cancel();  
    delete iRescaler;
}

EXPORT_C void CContactImagesUtility::ScaleAndStoreImage(MContactImageUtilityObserver* aObserver, const TDesC& aSrcPath)
{
    ASSERT(aObserver);
    iObserver = aObserver;
    iRescaler->ScaleAndStoreImage( &iStatus, aSrcPath );
    SetActive();
}

EXPORT_C void CContactImagesUtility::EnsureImageRemoved(const TDesC& aImagePath)
    {
    iRescaler->EnsureImageRemoved(aImagePath);
    }

void CContactImagesUtility::DoCancel()
{
    iRescaler->Cancel();
}

void CContactImagesUtility::RunL()
{
    TPath destPath = iRescaler->DestinationPath();
    iObserver->UtilityOperationComplete(destPath, iStatus.Int());
}

TInt CContactImagesUtility::RunError(TInt /*aError*/)
{
    // RunL does not have any leaving function
    return KErrNone;
}

CContactImagesUtility::CContactImagesUtility() : CActive(EPriorityStandard)
{
}

void CContactImagesUtility::ConstructL()
{
    iRescaler = CImageRescaler::NewL();
    
    CActiveScheduler::Add( this );
}

// End of File