homescreenapp/serviceproviders/hsmenuserviceprovider/inc/hsmenuitemmodel.h
branchRCL_3
changeset 82 5f0182e07bfb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/homescreenapp/serviceproviders/hsmenuserviceprovider/inc/hsmenuitemmodel.h	Tue Aug 31 15:06:34 2010 +0300
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: hsmenuitemmodel.h
+ *
+ */
+
+#ifndef HSMENUITEMMODEL_H
+#define HSMENUITEMMODEL_H
+
+// System includes
+#include <caquery.h>
+#include <caitemmodel.h>
+#include <HbIcon>
+
+// User includes
+#include "hsmenuservice_global.h"
+#include "hsmenuservice.h"
+
+class CaUninstallNotifier;
+class HsIconsIdleLoader;
+// Class declaration
+class MENUSERVICE_EXPORT HsMenuItemModel: public CaItemModel
+{
+HS_SERVICE_TEST_FRIEND_CLASS(MenuServiceTest)
+Q_OBJECT
+public:
+
+    // Data types
+    enum IconSize {
+        SmallIconSize,
+        BigIconSize
+    };
+
+    // Function declarations
+    explicit HsMenuItemModel(const CaQuery &query,
+                             QObject *parent = 0);
+    ~HsMenuItemModel();
+    void setSort(Hs::HsSortAttribute sortAttribute);
+    virtual QVariant data(const QModelIndex &index,
+                          int role = Qt::DisplayRole) const;
+    bool newIconNeeded(const QModelIndex &index) const;
+    void preloadIcons();
+private slots:
+    void uninstallChange(int componentId, int valueOfProgress);
+    
+private:
+    HsIconsIdleLoader* mIconsIdleLoader;
+    CaUninstallNotifier* mUninstallNotifier;//not own
+    int mComponentId;
+    QList<int> mIds;
+};
+
+#endif // HSMENUITEMMODEL_H