From dd8c90f87463d370c3076e13b7c6cc0e27c0d2f5 Mon Sep 17 00:00:00 2001 From: "Bocklage, Jens" Date: Tue, 8 Nov 2016 19:46:21 +0100 Subject: -Make the SampleNav app yellow. -Preparation for the new ApplicationFramework binding. The App Framework provides more information. --Adding afm D-Bus-interface introspection --Updating the AppInfo datatype to hold the new data: The application info consists of: string id; string version; int width; int height; string name; string description; string shortname; string author; string iconPath; -When pressing the AppLauncher Button or the Settings Button, the app layer is hidden. --Therefore, shideLayer and showLayer is introduced in the WindowManager API -If an application does not create its surface instantly, the HomeScreen retries to show the surface related to the pid. -New WindowManager function deleteLayoutById -Implement the complete HomeScreen API in the libhomescreen Signed-off-by: Bocklage, Jens --- interfaces/appframework.xml | 49 +++++++++++++++++++++----- interfaces/include/afm_user_daemon.hpp | 21 ++++++++++++ interfaces/include/appframework.hpp | 40 +++++++++------------ interfaces/include/windowmanager.hpp | 1 + interfaces/interfaces.pro | 1 + interfaces/src/appframework.cpp | 63 +++++++++++++++++----------------- interfaces/windowmanager.xml | 33 ++++++++++++++++++ 7 files changed, 145 insertions(+), 63 deletions(-) create mode 100644 interfaces/include/afm_user_daemon.hpp (limited to 'interfaces') diff --git a/interfaces/appframework.xml b/interfaces/appframework.xml index 1324386..e2c088e 100644 --- a/interfaces/appframework.xml +++ b/interfaces/appframework.xml @@ -13,14 +13,45 @@ See the License for the specific language governing permissions and limitations under the License. --> - - - - - - - - - + + + + + + + + + + + + + diff --git a/interfaces/include/afm_user_daemon.hpp b/interfaces/include/afm_user_daemon.hpp new file mode 100644 index 0000000..256292b --- /dev/null +++ b/interfaces/include/afm_user_daemon.hpp @@ -0,0 +1,21 @@ +/* + * Copyright (C) 2016 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef AFM_USER_DAEMON_HPP +#define AFM_USER_DAEMON_HPP + + +#endif // AFM_USER_DAEMON_HPP diff --git a/interfaces/include/appframework.hpp b/interfaces/include/appframework.hpp index d95cd9d..d4abefb 100644 --- a/interfaces/include/appframework.hpp +++ b/interfaces/include/appframework.hpp @@ -17,38 +17,32 @@ #ifndef APPFRAMEWORK_HPP #define APPFRAMEWORK_HPP -#include #include -#include -class AppInfo : public QObject +class AppInfo { - Q_OBJECT public: - explicit AppInfo(QObject *parent = 0); - AppInfo(const AppInfo &other); - AppInfo& operator=(const AppInfo &other); - ~AppInfo(); + AppInfo(); + virtual ~AppInfo(); - //register Message with the Qt type system - static void registerMetaType(); - - friend QDBusArgument &operator<<(QDBusArgument &argument, const AppInfo &appInfo); - friend const QDBusArgument &operator>>(const QDBusArgument &argument, AppInfo &appInfo); - - 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;} - -private: + QString id; + QString version; + int width; + int height; QString name; - QString iconPath; QString description; + QString shortname; + QString author; + QString iconPath; + + void read(const QJsonObject &json); + + friend QDBusArgument &operator <<(QDBusArgument &argument, const AppInfo &mAppInfo); + friend const QDBusArgument &operator >>(const QDBusArgument &argument, AppInfo &mAppInfo); }; + Q_DECLARE_METATYPE(AppInfo) +Q_DECLARE_METATYPE(QList) #endif // APPFRAMEWORK_HPP diff --git a/interfaces/include/windowmanager.hpp b/interfaces/include/windowmanager.hpp index 45c7c6e..ebab2d7 100644 --- a/interfaces/include/windowmanager.hpp +++ b/interfaces/include/windowmanager.hpp @@ -24,6 +24,7 @@ #define WINDOWMANAGER_ERROR_NAME_ALREADY_DEFINED 2 #define WINDOWMANAGER_ERROR_ID_NOT_FOUND 3 #define WINDOWMANAGER_ERROR_NAME_NOT_FOUND 4 +#define WINDOWMANAGER_ERROR_ID_IN_USE 5 class SimplePoint { diff --git a/interfaces/interfaces.pro b/interfaces/interfaces.pro index bd3fa39..1dad460 100644 --- a/interfaces/interfaces.pro +++ b/interfaces/interfaces.pro @@ -28,6 +28,7 @@ SOURCES += src/appframework.cpp \ XMLSOURCES = \ appframework.xml \ + afm_user_daemon.xml \ daynightmode.xml \ homescreen.xml \ inputevent.xml \ diff --git a/interfaces/src/appframework.cpp b/interfaces/src/appframework.cpp index afd6114..40515d5 100644 --- a/interfaces/src/appframework.cpp +++ b/interfaces/src/appframework.cpp @@ -16,56 +16,57 @@ #include "include/appframework.hpp" -AppInfo::AppInfo(QObject *parent) : - QObject(parent) -{ -} - -AppInfo::AppInfo(const AppInfo &other) : - QObject(other.parent()), - name(other.getName()), - iconPath(other.getIconPath()), - description(other.getDescription()) -{ -} -AppInfo& AppInfo::operator=(const AppInfo &other) +AppInfo::AppInfo() { - setParent(other.parent()); - name = other.getName(); - iconPath = other.getIconPath(); - description = other.getDescription(); - - return *this; } AppInfo::~AppInfo() { } -void AppInfo::registerMetaType() +void AppInfo::read(const QJsonObject &json) { - qRegisterMetaType("AppInfo"); - qDBusRegisterMetaType(); + id = json["id"].toString(); + version = json["id"].toString(); + width = json["id"].toInt(); + height = json["id"].toInt(); + name = json["id"].toString(); + description = json["id"].toString(); + shortname = json["id"].toString(); + author = json["id"].toString(); + iconPath = json["id"].toString(); } - -// Marshall the MyStructure data into a D-Bus argument -QDBusArgument &operator<<(QDBusArgument &argument, const AppInfo &appInfo) +QDBusArgument &operator <<(QDBusArgument &argument, const AppInfo &mAppInfo) { argument.beginStructure(); - argument << appInfo.name << appInfo.iconPath << appInfo.description; + argument << mAppInfo.id; + argument << mAppInfo.version; + argument << mAppInfo.width; + argument << mAppInfo.height; + argument << mAppInfo.name; + argument << mAppInfo.description; + argument << mAppInfo.shortname; + argument << mAppInfo.author; + argument << mAppInfo.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 &mAppInfo) { argument.beginStructure(); - argument >> appInfo.name >> appInfo.iconPath >> appInfo.description; + argument >> mAppInfo.id; + argument >> mAppInfo.version; + argument >> mAppInfo.width; + argument >> mAppInfo.height; + argument >> mAppInfo.name; + argument >> mAppInfo.description; + argument >> mAppInfo.shortname; + argument >> mAppInfo.author; + argument >> mAppInfo.iconPath; argument.endStructure(); - qDebug("appInfo.name:>> %s", appInfo.name.toStdString().c_str()); return argument; } diff --git a/interfaces/windowmanager.xml b/interfaces/windowmanager.xml index c15ca2c..a4be58f 100644 --- a/interfaces/windowmanager.xml +++ b/interfaces/windowmanager.xml @@ -39,6 +39,18 @@ + + + + + + + + + + + + + -- cgit