#ifndef APPFRAMEWORK_HPP
#define APPFRAMEWORK_HPP
-#include <QObject>
-#include <QtDBus>
-#include <QString>
+#include <QtCore/QSharedDataPointer>
+#include <QtDBus/QDBusArgument>
-class AppInfo : public QObject
+class AppInfo
{
- Q_OBJECT
+ Q_GADGET
+ Q_PROPERTY(QString id READ id)
+ Q_PROPERTY(QString version READ version)
+ Q_PROPERTY(int width READ width)
+ Q_PROPERTY(int height READ height)
+ Q_PROPERTY(QString name READ name)
+ Q_PROPERTY(QString description READ description)
+ Q_PROPERTY(QString shortname READ shortname)
+ Q_PROPERTY(QString author READ author)
+ Q_PROPERTY(QString iconPath READ iconPath)
public:
- explicit AppInfo(QObject *parent = 0);
+ AppInfo();
AppInfo(const AppInfo &other);
- AppInfo& operator=(const AppInfo &other);
- ~AppInfo();
+ virtual ~AppInfo();
+ AppInfo &operator =(const AppInfo &other);
+ void swap(AppInfo &other) { qSwap(d, other.d); }
- //register Message with the Qt type system
- static void registerMetaType();
+ QString id() const;
+ QString version() const;
+ int width() const;
+ int height() const;
+ QString name() const;
+ QString description() const;
+ QString shortname() const;
+ QString author() const;
+ QString iconPath() const;
- friend QDBusArgument &operator<<(QDBusArgument &argument, const AppInfo &appInfo);
- friend const QDBusArgument &operator>>(const QDBusArgument &argument, AppInfo &appInfo);
+ void read(const QJsonObject &json);
- void setName(const QString name) {this->name = name;}
- QString getName() const {return name;}
- void setIconPath(const QString iconPath) {this->iconPath = iconPath;}
- QString getIconPath() const {return iconPath;}
- void setDescription(const QString description) {this->description = description;}
- QString getDescription() const {return description;}
+ friend QDBusArgument &operator <<(QDBusArgument &argument, const AppInfo &appInfo);
+ friend const QDBusArgument &operator >>(const QDBusArgument &argument, AppInfo &appInfo);
private:
- QString name;
- QString iconPath;
- QString description;
+ class Private;
+ QSharedDataPointer<Private> d;
};
+Q_DECLARE_SHARED(AppInfo)
Q_DECLARE_METATYPE(AppInfo)
+Q_DECLARE_METATYPE(QList<AppInfo>)
#endif // APPFRAMEWORK_HPP