|
1 /* |
|
2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: |
|
15 * |
|
16 */ |
|
17 |
|
18 |
|
19 |
|
20 #include "nmuiengineheaders.h" |
|
21 |
|
22 /*! |
|
23 \class NmMessageListModelItem |
|
24 \brief The NmMessageListModelItem class represents data for NmMessageListModel. |
|
25 @alpha |
|
26 |
|
27 The NmMessageListModelItem class provides an item that is |
|
28 used by NmMessageListModel and its' data |
|
29 method to get all information needed for one list row for a widget by calling the method once. |
|
30 */ |
|
31 |
|
32 class NmMessageListModelItemPrivate |
|
33 { |
|
34 public: |
|
35 // mEnvelope is not created here to avoid unnecessary create/delete operations, |
|
36 // usual use case is setEnvelope |
|
37 NmMessageListModelItemPrivate() |
|
38 :mEnvelope(NULL), |
|
39 mType(NmMessageListModelItem::NmMessageItemMessage), |
|
40 mExpanded(false) {} |
|
41 virtual ~NmMessageListModelItemPrivate(){ delete mEnvelope; } |
|
42 NmMessageEnvelope *mEnvelope; |
|
43 QString mDivider; |
|
44 NmMessageListModelItem::NmMessageItemType mType; |
|
45 bool mExpanded; |
|
46 }; |
|
47 |
|
48 |
|
49 /*! |
|
50 Constructor. |
|
51 */ |
|
52 NmMessageListModelItem::NmMessageListModelItem() |
|
53 { |
|
54 d = new NmMessageListModelItemPrivate(); |
|
55 } |
|
56 |
|
57 |
|
58 /*! |
|
59 Destructor. |
|
60 */ |
|
61 NmMessageListModelItem::~NmMessageListModelItem() |
|
62 { |
|
63 delete d; |
|
64 } |
|
65 |
|
66 /*! |
|
67 Sets message envelope to list model item. Makes own copy from envelope. |
|
68 */ |
|
69 void NmMessageListModelItem::setEnvelope(const NmMessageEnvelope &envelope) |
|
70 { |
|
71 delete d->mEnvelope; |
|
72 d->mEnvelope = new NmMessageEnvelope(envelope); |
|
73 emitDataChanged(); |
|
74 } |
|
75 |
|
76 /*! |
|
77 Sets message envelope pointer to list model item. Takes envelope ownership. |
|
78 */ |
|
79 void NmMessageListModelItem::setEnvelope(NmMessageEnvelope *envelope) |
|
80 { |
|
81 if (envelope) { |
|
82 delete d->mEnvelope; |
|
83 d->mEnvelope = envelope; |
|
84 emitDataChanged(); |
|
85 } |
|
86 } |
|
87 |
|
88 /*! |
|
89 Returns const reference to envelope data |
|
90 */ |
|
91 const NmMessageEnvelope &NmMessageListModelItem::envelope() const |
|
92 { |
|
93 if (!d->mEnvelope) { |
|
94 d->mEnvelope = new NmMessageEnvelope(); |
|
95 } |
|
96 return *(d->mEnvelope); |
|
97 } |
|
98 |
|
99 /*! |
|
100 Returns pointer to envelope data, ownership of envelope object is not transferred. Do not |
|
101 delete or null envelope object |
|
102 */ |
|
103 NmMessageEnvelope *NmMessageListModelItem::envelopePtr() |
|
104 { |
|
105 if (!d->mEnvelope) { |
|
106 d->mEnvelope = new NmMessageEnvelope(); |
|
107 } |
|
108 return d->mEnvelope; |
|
109 } |
|
110 |
|
111 /*! |
|
112 Returns item type, list item can be divider or message |
|
113 */ |
|
114 NmMessageListModelItem::NmMessageItemType NmMessageListModelItem::itemType() const |
|
115 { |
|
116 return d->mType; |
|
117 } |
|
118 |
|
119 /*! |
|
120 Sets item type |
|
121 */ |
|
122 void NmMessageListModelItem::setItemType(NmMessageListModelItem::NmMessageItemType type) |
|
123 { |
|
124 d->mType = type; |
|
125 } |
|
126 |
|
127 /*! |
|
128 Title divider accessor |
|
129 */ |
|
130 QString NmMessageListModelItem::titleDivider() const |
|
131 { |
|
132 return d->mDivider; |
|
133 } |
|
134 |
|
135 /*! |
|
136 Set Title divider. |
|
137 */ |
|
138 void NmMessageListModelItem::setTitleDivider(const QString ÷r) |
|
139 { |
|
140 d->mDivider = divider; |
|
141 } |
|
142 |
|
143 /*! |
|
144 Returns boolean is divider expanded |
|
145 */ |
|
146 bool NmMessageListModelItem::expanded() const |
|
147 { |
|
148 return d->mExpanded; |
|
149 } |
|
150 |
|
151 /*! |
|
152 Sets item expanded |
|
153 */ |
|
154 void NmMessageListModelItem::setExpanded(bool expanded) |
|
155 { |
|
156 d->mExpanded = expanded; |
|
157 } |
|
158 |
|
159 /* |
|
160 Emits data changed signal |
|
161 */ |
|
162 void NmMessageListModelItem::callEmitDataChanged() |
|
163 { |
|
164 emitDataChanged(); |
|
165 } |