phonebookui/pbkcommonui/inc/cntcollectionlistmodel.h
changeset 47 7cbcb2896f0e
parent 46 efe85016a067
child 50 77bc263e1626
--- a/phonebookui/pbkcommonui/inc/cntcollectionlistmodel.h	Wed Jun 23 18:02:44 2010 +0300
+++ b/phonebookui/pbkcommonui/inc/cntcollectionlistmodel.h	Tue Jul 06 14:05:47 2010 +0300
@@ -18,13 +18,19 @@
 #ifndef CNTCOLLECTIONLISTMODEL_H
 #define CNTCOLLECTIONLISTMODEL_H
 
+#include <QAbstractListModel>
 #include <QSharedData>
-#include <QAbstractListModel>
 #include <qmobilityglobal.h>
-#include <cntuigroupsupplier.h>
+#include <cntviewparams.h>
+#include <hbicon.h>
 #include <xqsettingsmanager.h>
 
+class CntCollectionListModelWorker;
+class CntCollectionListModelData;
+class CntCollectionItem;
+
 class CntExtensionManager;
+class CntExtensionGroupCallback;
 
 QTM_BEGIN_NAMESPACE
 class QContactManager;
@@ -32,17 +38,6 @@
 
 QTM_USE_NAMESPACE
 
-class CntCollectionListData : public QSharedData
-{
-public:
-    CntCollectionListData() { }
-    ~CntCollectionListData() { }
-
-public:
-    QList<QVariantList> mDataList;
-    QMap<int, CntUiGroupSupplier*> mExtensions; // row, plugin
-};
-
 class CntCollectionListModel : public QAbstractListModel
 {
     Q_OBJECT
@@ -51,34 +46,38 @@
     CntCollectionListModel(QContactManager *manager, CntExtensionManager &extensionManager, QObject *parent = 0);
     ~CntCollectionListModel();
     
+public: // from QAbstractItemModel
+    QVariant data(const QModelIndex& index, int role) const;
+    int rowCount(const QModelIndex& parent = QModelIndex()) const;
+    bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex());
+    
 public:
-    QVariant data(const QModelIndex &index, int role) const;
-    int rowCount(const QModelIndex &parent = QModelIndex()) const;
-    bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex());
     void removeGroup(int localId);
     bool isExtensionGroup(const QModelIndex &index);
     CntViewParameters extensionGroupActivated(int row);
     void extensionGroupLongPressed(int row, const QPointF& coords, CntExtensionGroupCallback* interface);
     
-#ifdef PBK_UNIT_TEST
-public:
-#else
 private:
-#endif
     void doConstruct();
     void initializeStaticGroups();
     void initializeExtensions();
     void initializeUserGroups();
     
+    QVariant displayRoleData(const CntCollectionItem& item) const;
+    QVariant decorationRoleData(const CntCollectionItem& item) const;
+    
+    bool validateRowIndex(const int index) const;
+    
+private slots:
+    void informationUpdated(int row, const QString& secondRowText, int memberCount);
+    void onIconReady(const QPixmap& pixmap, void *data, int id, int error);
+    
 private:
-    CntExtensionManager&                       mExtensionManager;
-    QSharedDataPointer<CntCollectionListData>  mDataPointer;
-    QContactManager                           *mContactManager;
-    XQSettingsManager                          mSettings;
-    int                                        mFavoriteGroupId;
+    QSharedDataPointer<CntCollectionListModelData>  d;
+    CntCollectionListModelWorker                   *mThread;
+    XQSettingsManager                               mSettings;
     
+    friend class TestCntCollectionListModel;
 };
 
 #endif // CNTCOLLECTIONLISTMODEL_H
-
-// EOF