X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=interfaces%2Fsrc%2Fappframework.cpp;h=7420642a3dd7dbd78f1384edbf5958da67bee829;hb=09f2f0036f122e49aa49e6c446d723850192a725;hp=afd61145c20d95f74c96bd5ab2260a767ff57763;hpb=5a040cf1e77872dd567f6ffba50ed79fc27d5822;p=staging%2FHomeScreen.git diff --git a/interfaces/src/appframework.cpp b/interfaces/src/appframework.cpp index afd6114..7420642 100644 --- a/interfaces/src/appframework.cpp +++ b/interfaces/src/appframework.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2016 Mentor Graphics Development (Deutschland) GmbH + * Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,56 +16,152 @@ #include "include/appframework.hpp" -AppInfo::AppInfo(QObject *parent) : - QObject(parent) +#include + +class AppInfo::Private : public QSharedData +{ +public: + Private(); + Private(const Private &other); + + QString id; + QString version; + int width; + int height; + QString name; + QString description; + QString shortname; + QString author; + QString iconPath; +}; + +AppInfo::Private::Private() + : width(-1) + , height(-1) { } -AppInfo::AppInfo(const AppInfo &other) : - QObject(other.parent()), - name(other.getName()), - iconPath(other.getIconPath()), - description(other.getDescription()) +AppInfo::Private::Private(const Private &other) + : QSharedData(other) + , id(other.id) + , version(other.version) + , width(other.width) + , height(other.height) + , name(other.name) + , description(other.description) + , shortname(other.shortname) + , author(other.author) + , iconPath(other.iconPath) { } -AppInfo& AppInfo::operator=(const AppInfo &other) +AppInfo::AppInfo() + : d(new Private) { - setParent(other.parent()); - name = other.getName(); - iconPath = other.getIconPath(); - description = other.getDescription(); +} - return *this; +AppInfo::AppInfo(const AppInfo &other) + : d(other.d) +{ } AppInfo::~AppInfo() { } -void AppInfo::registerMetaType() +AppInfo &AppInfo::operator =(const AppInfo &other) +{ + d = other.d; + return *this; +} + +QString AppInfo::id() const +{ + return d->id; +} + +QString AppInfo::version() const +{ + return d->version; +} + +int AppInfo::width() const +{ + return d->width; +} + +int AppInfo::height() const +{ + return d->height; +} + +QString AppInfo::name() const +{ + return d->name; +} + +QString AppInfo::description() const { - qRegisterMetaType("AppInfo"); - qDBusRegisterMetaType(); + return d->description; } +QString AppInfo::shortname() const +{ + return d->shortname; +} -// Marshall the MyStructure data into a D-Bus argument -QDBusArgument &operator<<(QDBusArgument &argument, const AppInfo &appInfo) +QString AppInfo::author() const +{ + return d->author; +} + +QString AppInfo::iconPath() const +{ + return d->iconPath; +} + +void AppInfo::read(const QJsonObject &json) +{ + d->id = json["id"].toString(); + d->version = json["version"].toString(); + d->width = json["width"].toInt(); + d->height = json["height"].toInt(); + d->name = json["name"].toString(); + d->description = json["description"].toString(); + d->shortname = json["shortname"].toString(); + d->author = json["author"].toString(); + d->iconPath = json["iconPath"].toString(); +} + +QDBusArgument &operator <<(QDBusArgument &argument, const AppInfo &appInfo) { argument.beginStructure(); - argument << appInfo.name << appInfo.iconPath << appInfo.description; + argument << appInfo.d->id; + argument << appInfo.d->version; + argument << appInfo.d->width; + argument << appInfo.d->height; + argument << appInfo.d->name; + argument << appInfo.d->description; + argument << appInfo.d->shortname; + argument << appInfo.d->author; + argument << appInfo.d->iconPath; argument.endStructure(); - qDebug("appInfo.name:<< %s", appInfo.name.toStdString().c_str()); + return argument; } -// Retrieve the MyStructure data from the D-Bus argument -const QDBusArgument &operator>>(const QDBusArgument &argument, AppInfo &appInfo) +const QDBusArgument &operator >>(const QDBusArgument &argument, AppInfo &appInfo) { argument.beginStructure(); - argument >> appInfo.name >> appInfo.iconPath >> appInfo.description; + argument >> appInfo.d->id; + argument >> appInfo.d->version; + argument >> appInfo.d->width; + argument >> appInfo.d->height; + argument >> appInfo.d->name; + argument >> appInfo.d->description; + argument >> appInfo.d->shortname; + argument >> appInfo.d->author; + argument >> appInfo.d->iconPath; argument.endStructure(); - qDebug("appInfo.name:>> %s", appInfo.name.toStdString().c_str()); return argument; }