Initial drop of the GCS code.
[meego-garage:garage-client-services.git] / src / category.h
1 #ifndef CATEGORY_H
2 #define CATEGORY_H
3
4 #include <QObject>
5 #include "application.h"
6
7 namespace MeeGoGarage{
8 class Category : public QObject
9 {
10 Q_OBJECT
11
12 public:
13     const QString& getName () const;
14     int getApplicationCount () const;
15     QList<Application*> *getApplicationList () const;
16     void requestApplicationList();
17     bool isApplicationListReady();
18
19     //Search in the category
20     void requestSearchApplication (QString keyword);
21     bool cancelSearchApplications ();
22
23     //Dump functions for debugging
24     void dumpApplicationList();
25
26     friend class Catalog;
27 signals:
28     void applicationListReady(Category*);
29     void searchApplicationsReady(Category*, QString&, QList<Application*>*);
30
31 public slots:
32     void applicationListDownloaded();
33
34 private:
35     QString categoryName;
36     QList<Application*> *applicationList;
37     bool applicationListIsReady;
38
39     //Put following function as private and only for friend class to use.
40     Category(QString name, QObject *parent = 0);
41     void setName (const QString& name);
42     void addApplication (Application *application);
43 };
44 } //MeeGoGarage namespace
45
46 #endif // CATEGORY_H