2
* Copyright (C) 2012 Canonical, Ltd.
5
* Guenter Schwann <guenter.schwann@canonical.com>
7
* This program is free software; you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License as published by
9
* the Free Software Foundation; version 3.
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
16
* You should have received a copy of the GNU General Public License
17
* along with this program. If not, see <http://www.gnu.org/licenses/>.
20
#ifndef PEOPLEPREVIEWDATA_H
21
#define PEOPLEPREVIEWDATA_H
29
#include <UnityCore/PeoplePreview.h>
31
#include <sigc++/connection.h>
36
* \brief The PeoplePhoneData class stores the data for one phone number
38
class PeoplePhoneData : public QObject
41
Q_PROPERTY(QString type READ type NOTIFY typeChanged)
42
Q_PROPERTY(QString location READ location NOTIFY locationChanged)
43
Q_PROPERTY(QString number READ number NOTIFY numberChanged)
47
void locationChanged();
51
explicit PeoplePhoneData(QObject *parent = 0) : QObject(parent) {}
52
QString type() const { return m_type; }
53
QString location() const { return m_location; }
54
QString number() const { return m_number; }
60
friend class PeoplePreviewData;
64
* \brief The PeopleAddressData class stores the data for one single post/email address
66
class PeopleAddressData : public QObject
69
Q_PROPERTY(QString type READ type NOTIFY typeChanged)
70
Q_PROPERTY(QString address READ address NOTIFY addressChanged)
71
Q_PROPERTY(QString poBox READ poBox NOTIFY poBoxChanged)
72
Q_PROPERTY(QString extension READ extension NOTIFY extensionChanged)
73
Q_PROPERTY(QString street READ street NOTIFY streetChanged)
74
Q_PROPERTY(QString locality READ locality NOTIFY localityChanged)
75
Q_PROPERTY(QString region READ region NOTIFY regionChanged)
76
Q_PROPERTY(QString postalCode READ postalCode NOTIFY postalCodeChanged)
77
Q_PROPERTY(QString country READ country NOTIFY countryChanged)
78
Q_PROPERTY(QString addressFormat READ addressFormat NOTIFY addressFormatChanged)
82
void addressChanged();
84
void extensionChanged();
86
void localityChanged();
88
void postalCodeChanged();
89
void countryChanged();
90
void addressFormatChanged();
93
explicit PeopleAddressData(QObject *parent = 0) : QObject(parent) {}
94
QString type() const { return m_type; }
95
QString address() const { return m_address; }
96
QString poBox() const { return m_poBox; }
97
QString extension() const { return m_extension; }
98
QString street() const { return m_street; }
99
QString locality() const { return m_locality; }
100
QString region() const { return m_region; }
101
QString postalCode() const { return m_postalCode; }
102
QString country() const { return m_country; }
103
QString addressFormat() const { return m_addressFormat; }
113
QString m_postalCode;
115
QString m_addressFormat;
116
friend class PeoplePreviewData;
120
* \brief The PeopleIMData class stores the data for one single post/email address
122
class PeopleIMData : public QObject
125
Q_PROPERTY(QString protocol READ protocol NOTIFY protocolChanged)
126
Q_PROPERTY(QString address READ address NOTIFY addressChanged)
129
void protocolChanged();
130
void addressChanged();
133
explicit PeopleIMData(QObject *parent = 0) : QObject(parent) {}
134
QString protocol() const { return m_protocol; }
135
QString address() const { return m_address; }
140
friend class PeoplePreviewData;
145
* \brief The PeoplePreviewData class providing information for one person
147
class PeoplePreviewData : public QObject
151
// These properties need to be set from QML
152
Q_PROPERTY(Lens* lens READ lens WRITE setLens NOTIFY lensChanged)
153
Q_PROPERTY(QString uri READ uri WRITE setUri NOTIFY uriChanged)
154
// Read only properties containing general Preview information
155
Q_PROPERTY(bool ready READ ready NOTIFY readyChanged)
156
Q_PROPERTY(QString renderName READ renderName NOTIFY renderNameChanged)
157
Q_PROPERTY(QString title READ title NOTIFY titleChanged)
158
Q_PROPERTY(QString subTitle READ subTitle NOTIFY subTitleChanged)
159
Q_PROPERTY(QString description READ description NOTIFY descriptionChanged)
160
Q_PROPERTY(QString imageSource READ imageSource NOTIFY imageSourceChanged)
161
// Read only properties containing PeoplePreview specific information
162
Q_PROPERTY(QString displayName READ displayName NOTIFY displayNameChanged)
163
Q_PROPERTY(QQmlListProperty<PeopleAddressData> emailAddresses READ emailAddresses NOTIFY emailAddressesChanged)
164
Q_PROPERTY(QQmlListProperty<PeoplePhoneData> phoneNumbers READ phoneNumbers NOTIFY phoneNumbersChanged)
165
Q_PROPERTY(QQmlListProperty<PeopleIMData> imAccounts READ imAccounts NOTIFY imAccountsChanged)
166
Q_PROPERTY(QString status READ status NOTIFY statusChanged)
167
Q_PROPERTY(QString statusTime READ statusTime NOTIFY statusTimeChanged)
168
Q_PROPERTY(QString statusService READ statusService NOTIFY statusServiceChanged)
169
Q_PROPERTY(QString statusServiceIcon READ statusServiceIcon NOTIFY statusServiceIconChanged)
170
Q_PROPERTY(QString statusPostUri READ statusPostUri NOTIFY statusPostUriChanged)
171
Q_PROPERTY(QQmlListProperty<PeopleAddressData> addresses READ addresses NOTIFY addressesChanged)
172
Q_PROPERTY(QString avatar READ avatar NOTIFY avatarChanged)
175
PeoplePreviewData(QObject *parent = 0);
176
~PeoplePreviewData();
178
void setUnityPeoplePreview(const unity::dash::Preview::Ptr& preview);
179
void setLens(Lens *lens);
180
void setUri(const QString &uri);
185
QString renderName() const;
186
QString title() const;
187
QString subTitle() const;
188
QString description() const;
189
QString imageSource() const;
190
QString displayName() const;
191
QQmlListProperty<PeoplePhoneData> phoneNumbers();
192
QQmlListProperty<PeopleAddressData> emailAddresses();
193
QQmlListProperty<PeopleIMData> imAccounts();
194
QString status() const;
195
QString statusTime() const;
196
QString statusService() const;
197
QString statusServiceIcon() const;
198
QString statusPostUri() const;
199
QQmlListProperty<PeopleAddressData> addresses();
200
QString avatar() const;
202
QList<PeoplePhoneData*> &phoneNumberList() { return m_phoneList; }
203
QList<PeopleAddressData*> &emailAddressesList() { return m_emailList; }
204
QList<PeopleIMData*> &imAccountsList() { return m_imList; }
205
QList<PeopleAddressData*> &addressesList() { return m_addressList; }
211
void renderNameChanged();
213
void subTitleChanged();
214
void descriptionChanged();
215
void imageSourceChanged();
216
void displayNameChanged();
217
void phoneNumbersChanged();
218
void emailAddressesChanged();
219
void imAccountsChanged();
220
void statusChanged();
221
void statusTimeChanged();
222
void statusServiceChanged();
223
void statusServiceIconChanged();
224
void statusPostUriChanged();
225
void addressesChanged();
226
void avatarChanged();
230
void setReady(const bool &ready);
231
void getPeoplePreview();
232
void setUnityPreview(std::string const& uri, unity::dash::Preview::Ptr const& preview);
235
void getEmailAddresses();
236
void getImAccounts();
240
sigc::connection m_lensConnection;
243
unity::dash::PeoplePreview::Ptr m_unityPreview;
245
QList<PeoplePhoneData*> m_phoneList;
246
QList<PeopleAddressData*> m_addressList;
247
QList<PeopleIMData*> m_imList;
248
QList<PeopleAddressData*> m_emailList;
251
#endif // PEOPLEPREVIEWDATA_H