author | hgs |
Mon, 27 Sep 2010 15:13:20 +0530 | |
changeset 69 | 45459746d5e8 |
parent 58 | 383b67fbdb11 |
child 71 | 27f2d7aec52a |
permissions | -rw-r--r-- |
23
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1 |
/* |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2 |
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
3 |
* All rights reserved. |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
4 |
* This component and the accompanying materials are made available |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
5 |
* under the terms of "Eclipse Public License v1.0" |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
6 |
* which accompanies this distribution, and is available |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
7 |
* at the URL "http://www.eclipse.org/legal/epl-v10.html". |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
8 |
* |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
9 |
* Initial Contributors: |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
10 |
* Nokia Corporation - initial contribution. |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
11 |
* |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
12 |
* Contributors: |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
13 |
* |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
14 |
* Description: ?Description |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
15 |
* |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
16 |
*/ |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
17 |
|
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
18 |
|
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
19 |
|
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
20 |
#ifndef GLXMEDIAMODEL_H |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
21 |
#define GLXMEDIAMODEL_H |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
22 |
|
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
23 |
#include <QAbstractItemModel> |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
24 |
#include <glxuistd.h> |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
25 |
#include <QDateTime> |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
26 |
#include <glxexternalinterfacedefs.h> |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
27 |
//forward declarations |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
28 |
|
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
29 |
#ifdef BUILD_MEDIAMODEL |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
30 |
#define GLX_MEDIAMODEL_EXPORT Q_DECL_EXPORT |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
31 |
#else |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
32 |
#define GLX_MEDIAMODEL_EXPORT Q_DECL_IMPORT |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
33 |
#endif |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
34 |
|
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
35 |
class HbIcon; |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
36 |
class GlxModelParm; |
40 | 37 |
class GlxMLWrapper; |
45 | 38 |
class GlxDRMUtilityWrapper; |
23
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
39 |
#include <QCache> |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
40 |
#include <QVector> |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
41 |
|
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
42 |
class GLX_MEDIAMODEL_EXPORT GlxMediaModel : public QAbstractItemModel |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
43 |
{ |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
44 |
Q_OBJECT |
69 | 45 |
friend class TestGlxMediaModel; |
46 |
||
23
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
47 |
public : |
54 | 48 |
/** |
49 |
* Constructor |
|
50 |
* @param - model parm struct collectionID, depth, filter, context mode etc |
|
51 |
*/ |
|
52 |
GlxMediaModel( GlxModelParm & modelParm ); |
|
23
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
53 |
|
54 | 54 |
/** |
55 |
* Destructor |
|
56 |
*/ |
|
57 |
~GlxMediaModel(); |
|
58 |
||
59 |
/** |
|
60 |
* rowCount() - return the number of rows in the model. |
|
61 |
* @param - parent model index, not used |
|
62 |
*/ |
|
63 |
int rowCount( const QModelIndex &parent = QModelIndex() ) const; |
|
64 |
||
65 |
/** |
|
66 |
* columnCount() - return 1 |
|
67 |
* @param - parent model index, not used |
|
68 |
*/ |
|
69 |
int columnCount( const QModelIndex &parent = QModelIndex() ) const; |
|
70 |
||
71 |
/** |
|
72 |
* parent() - return the model index of the child. |
|
73 |
* It always return invalid model index since no there is no parent |
|
74 |
*/ |
|
75 |
QModelIndex parent( const QModelIndex &child ) const; |
|
76 |
||
69 | 77 |
QVariant itemImageData( const QModelIndex &index, int role ) const; |
78 |
QVariant collectionProperty( int role ) const; |
|
79 |
QVariant itemProperty( const QModelIndex &index, int role ) const; |
|
80 |
||
54 | 81 |
/** |
82 |
* data() - return the data of corresponding role. |
|
83 |
* @param - model index of interested item. |
|
84 |
* @param - role of corresponding data. |
|
85 |
*/ |
|
86 |
QVariant data( const QModelIndex &index, int role ) const; |
|
87 |
||
88 |
/** |
|
89 |
* setData() - to set the data for corresponding item and role. |
|
90 |
* @param - model index of interested item. |
|
91 |
* @param - data of the item |
|
92 |
* @param - role of corresponding data. |
|
93 |
*/ |
|
94 |
bool setData ( const QModelIndex & index, const QVariant & value, int role = Qt::EditRole ); |
|
95 |
||
96 |
/** |
|
97 |
* index - create a new model index for an item. |
|
98 |
* @param - row index of the item. |
|
99 |
* @param - column index of the item, it is always one. |
|
100 |
*/ |
|
101 |
QModelIndex index( int row, int column, const QModelIndex &parent = QModelIndex() ) const; |
|
102 |
||
103 |
||
42 | 104 |
signals : |
54 | 105 |
/** |
106 |
* albumTitleAvailable() - emit this signal when album title is available. |
|
107 |
* @parma - album title |
|
108 |
*/ |
|
109 |
void albumTitleAvailable( QString aTitle ); |
|
110 |
||
111 |
/** |
|
112 |
* populated() - emit this signal once medialist is populated |
|
113 |
*/ |
|
42 | 114 |
void populated(); |
54 | 115 |
|
116 |
/** |
|
117 |
* thumbnailPopulated() - emit the signal once some initial page of thumbnail are loaded |
|
118 |
* into cache. |
|
119 |
*/ |
|
120 |
void thumbnailPopulated(); |
|
121 |
||
122 |
/** |
|
123 |
* iconAvailable() - emit the signal to update the icon in the cache. |
|
124 |
* @param - item index |
|
125 |
* @param - HbIcon |
|
126 |
* @param - media list context type |
|
127 |
*/ |
|
128 |
void iconAvailable( int itemIndex, HbIcon* itemIcon, GlxTBContextType tbContextType ) const; |
|
129 |
||
130 |
/** |
|
131 |
* updateDetailsView() - emit the signal to update the details view |
|
132 |
*/ |
|
133 |
void updateDetailsView(); |
|
42 | 134 |
|
23
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
135 |
private: |
54 | 136 |
/** |
137 |
* GetGridIconItem() - To fetch the grid size thumbnail |
|
138 |
* @param - item index |
|
139 |
* @param - media list context type |
|
140 |
* @return - return the hbicon of the item |
|
141 |
*/ |
|
142 |
HbIcon* GetGridIconItem( int itemIndex, GlxTBContextType tbContextType ) const; |
|
143 |
||
144 |
/** |
|
145 |
* GetFsIconItem() - To fetch the full screen size thumbnail |
|
146 |
* @param - item index |
|
147 |
* @param - media list context type |
|
148 |
* @return - return the hbicon of the item |
|
149 |
*/ |
|
69 | 150 |
HbIcon* GetFsIconItem( int itemIndex, GlxTBContextType tbContextType )const; |
151 |
||
152 |
HbIcon gridToFullscreenIcon( HbIcon * icon, int itemIndex ) const; |
|
153 |
||
154 |
HbIcon getFullScreenIcon( int itemIndex ) const; |
|
155 |
||
156 |
QImage getFullScreenImage( int itemIndex ) const; |
|
54 | 157 |
|
158 |
/** |
|
159 |
* setContextMode() - for setting the attribute context mode will be used mainly for |
|
160 |
* retreiving thumbnail of different sizes. |
|
161 |
*/ |
|
162 |
void setContextMode( GlxContextMode contextMode ); |
|
163 |
||
164 |
/** |
|
165 |
*removeContextMode() - Removes the context |
|
44 | 166 |
*/ |
54 | 167 |
void removeContextMode( GlxContextMode contextMode ); |
168 |
||
169 |
/** |
|
170 |
* setFocusIndex() - To set the focus index in medialist |
|
171 |
* @param - selected item index( focus index ) |
|
172 |
*/ |
|
173 |
void setFocusIndex( const QModelIndex &index ); |
|
174 |
||
175 |
/** |
|
176 |
* getFocusIndex() - Retrun the focus index from the medialist. |
|
177 |
* @return - focus index. |
|
178 |
*/ |
|
23
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
179 |
QModelIndex getFocusIndex() const; |
54 | 180 |
|
181 |
/** |
|
182 |
* setSelectedIndex() - To make the item as seleted in media list to perform some coomand. |
|
183 |
* @param - selected item index |
|
184 |
*/ |
|
185 |
void setSelectedIndex( const QModelIndex &index ); |
|
23
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
186 |
|
54 | 187 |
/** |
188 |
* getCorruptDefaultIcon() - IT will return the corrupt icon if item is corrupted else return the |
|
189 |
* default item. |
|
190 |
* @param - item index |
|
191 |
*/ |
|
192 |
HbIcon *getCorruptDefaultIcon ( const QModelIndex &index ) const; |
|
193 |
||
194 |
/** |
|
195 |
* thumbnailPopulatedCheck() - To check the some initial page of item is loaded into cache or not |
|
196 |
* @param - loaded thumbnail image index in cache. |
|
197 |
*/ |
|
198 |
void thumbnailPopulatedCheck( int index ); |
|
199 |
||
23
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
200 |
public slots: |
54 | 201 |
/** |
202 |
* itemUpdated() - call back fuction, when thumbnail is added into cache. |
|
203 |
* It remove the icon from the local cache and emit the signal of data change. |
|
204 |
* @param - item index |
|
205 |
* @param - media list context type |
|
206 |
*/ |
|
207 |
void itemUpdated( int mlIndex, GlxTBContextType tbContextType ); |
|
208 |
||
209 |
/** |
|
210 |
* itemsAdded() - call back function when new items are added into collection. |
|
211 |
* @param - start index of the newly added item |
|
212 |
* @param - end endex of the newlyadd item |
|
213 |
*/ |
|
214 |
void itemsAdded( int startIndex, int endIndex ); |
|
215 |
||
216 |
/** |
|
217 |
* itemsRemoved() - call back function when some item are removed from the collection. |
|
218 |
* @param - start index of the remove items |
|
219 |
* @param - end endex of the remove items |
|
220 |
*/ |
|
221 |
void itemsRemoved( int startIndex, int endIndex ); |
|
222 |
||
223 |
/** |
|
224 |
* itemCorrupted() - call back function, when a item is corrupted. |
|
225 |
* @param - index of the corrupt item |
|
226 |
*/ |
|
227 |
void itemCorrupted( int itemIndex ); |
|
228 |
||
229 |
/** |
|
230 |
* albumTitleUpdated() - call back function, when a album collection title is available. |
|
231 |
* @param - title of the album. |
|
232 |
*/ |
|
233 |
void albumTitleUpdated( QString aTitle ); |
|
234 |
||
235 |
/** |
|
236 |
* modelpopulated() - callback function, when meida list item is populated. |
|
237 |
* It set the visual window index and emit the signal to view about it. |
|
238 |
*/ |
|
42 | 239 |
void modelpopulated(); |
54 | 240 |
|
241 |
/** |
|
242 |
* updateDetailItems() - Emits signal to update the details view |
|
44 | 243 |
*/ |
244 |
void updateDetailItems(); |
|
23
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
245 |
|
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
246 |
private slots: |
54 | 247 |
/** |
248 |
* updateItemIcon() - update the icon into local cache. |
|
249 |
* @param - item index |
|
250 |
* @param - HbIcon |
|
251 |
* @param - media list context type |
|
252 |
*/ |
|
253 |
void updateItemIcon( int itemIndex, HbIcon* itemIcon, GlxTBContextType tbContextType ); |
|
50 | 254 |
|
23
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
255 |
private: |
69 | 256 |
GlxMLWrapper* mMLWrapper; |
257 |
QCache<int, HbIcon> itemIconCache; |
|
258 |
QCache<int, HbIcon> itemFsIconCache; |
|
259 |
HbIcon* m_DefaultIcon; |
|
260 |
HbIcon* m_CorruptIcon; |
|
261 |
GlxContextMode mContextMode; |
|
262 |
int mFocusIndex; |
|
263 |
int mSubState; |
|
264 |
GlxDRMUtilityWrapper* mDRMUtilityWrapper; |
|
265 |
int mTempVisibleWindowIndex; |
|
266 |
bool thumbnailPopulatedFlag; |
|
267 |
bool mPaintPage; |
|
23
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
268 |
}; |
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
269 |
|
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
270 |
|
74c9f037fd5d
Revision: 201007
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
271 |
#endif /* GLXMEDIAMODEL_H_ */ |