telepathy: Don't keep a ref to the CDTpContact in CDTpAvatarUpdate
[qtcontacts-tracker:contactsd.git] / plugins / telepathy / cdtpavatarupdate.h
1 /*********************************************************************************
2  ** This file is part of QtContacts tracker storage plugin
3  **
4  ** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
5  **
6  ** Contact:  Nokia Corporation (info@qt.nokia.com)
7  **
8  ** GNU Lesser General Public License Usage
9  ** This file may be used under the terms of the GNU Lesser General Public License
10  ** version 2.1 as published by the Free Software Foundation and appearing in the
11  ** file LICENSE.LGPL included in the packaging of this file.  Please review the
12  ** following information to ensure the GNU Lesser General Public License version
13  ** 2.1 requirements will be met:
14  ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
15  **
16  ** In addition, as a special exception, Nokia gives you certain additional rights.
17  ** These rights are described in the Nokia Qt LGPL Exception version 1.1, included
18  ** in the file LGPL_EXCEPTION.txt in this package.
19  **
20  ** Other Usage
21  ** Alternatively, this file may be used in accordance with the terms and
22  ** conditions contained in a signed written agreement between you and Nokia.
23  *********************************************************************************/
24
25
26 #ifndef CDTPAVATARREQUEST_H
27 #define CDTPAVATARREQUEST_H
28
29 #include "cdtpstorage.h"
30
31 class CDTpAvatarUpdate : public QObject
32 {
33     Q_OBJECT
34
35 public:
36     static const QString Large;
37     static const QString Square;
38
39     explicit CDTpAvatarUpdate(QNetworkReply *networkReply,
40                               CDTpContact *contactWrapper,
41                               const QString &avatarType,
42                               QObject *parent = 0);
43
44     virtual ~CDTpAvatarUpdate();
45
46     const QString & avatarPath() const { return mAvatarPath; }
47
48 signals:
49     void finished();
50
51 private slots:
52     void onRequestFinished();
53
54 private:
55     void setNetworkReply(QNetworkReply *networkReply);
56     QString writeAvatarFile(QFile &avatarFile);
57
58 private:
59     QPointer<QNetworkReply> mNetworkReply;
60     QPointer<CDTpContact> mContactWrapper;
61     const QString mAvatarType;
62     const QDir mCacheDir;
63     QString mAvatarPath;
64 };
65
66 #endif // CDTPAVATARREQUEST_H