From 337319e30026b0bae453dc7363f27469fa2ab526 Mon Sep 17 00:00:00 2001 From: "Bocklage, Jens" Date: Fri, 11 Nov 2016 10:49:52 +0100 Subject: [PATCH] Add org.agl.homescreen function renderSurfaceToAreaAllowed. This function can be used to request, if it is allowed to render a surface in a layout area in preparation of the real renderSurfaceToArea command. This call will not change anything, it is only a request. Signed-off-by: Bocklage, Jens --- HomeScreen/src/homescreencontrolinterface.cpp | 12 +++++++++--- HomeScreen/src/homescreencontrolinterface.h | 7 ++++--- HomeScreen/src/layouthandler.cpp | 11 +++++++++-- HomeScreen/src/layouthandler.h | 3 ++- HomeScreen/src/mainwindow.cpp | 4 ++-- SampleHomeScreenInterfaceApp/src/sampleclass.cpp | 5 +++++ SampleHomeScreenInterfaceApp/src/sampleclass.hpp | 1 + interfaces/homescreen.xml | 14 ++++++++++++++ libhomescreen/include/libhomescreen.hpp | 3 ++- libhomescreen/src/libhomescreen.cpp | 21 +++++++++++++++++++++ 10 files changed, 69 insertions(+), 12 deletions(-) diff --git a/HomeScreen/src/homescreencontrolinterface.cpp b/HomeScreen/src/homescreencontrolinterface.cpp index 71e4a2c..faf4b99 100644 --- a/HomeScreen/src/homescreencontrolinterface.cpp +++ b/HomeScreen/src/homescreencontrolinterface.cpp @@ -54,10 +54,16 @@ void HomeScreenControlInterface::hardKeyPressed(int key) } } -void HomeScreenControlInterface::renderSurfaceToArea(int surfaceId, const QRect &renderArea) +void HomeScreenControlInterface::renderSurfaceToArea(int surfaceId, int layoutArea) { - qDebug("requestSurfaceIdToFullScreen %d", surfaceId); - newRequestRenderSurfaceToArea(surfaceId, renderArea); + qDebug("renderSurfaceToArea %d %d", surfaceId, layoutArea); + newRequestRenderSurfaceToArea(surfaceId, layoutArea); +} + +bool HomeScreenControlInterface::renderSurfaceToAreaAllowed(int surfaceId, int layoutArea) +{ + qDebug("renderSurfaceToAreaAllowed %d %d", surfaceId, layoutArea); + return renderSurfaceToAreaAllowed(surfaceId, layoutArea); } void HomeScreenControlInterface::requestSurfaceIdToFullScreen(int surfaceId) diff --git a/HomeScreen/src/homescreencontrolinterface.h b/HomeScreen/src/homescreencontrolinterface.h index 27cf4e8..b202dc9 100644 --- a/HomeScreen/src/homescreencontrolinterface.h +++ b/HomeScreen/src/homescreencontrolinterface.h @@ -19,7 +19,8 @@ signals: QList newRequestGetAllSurfacesOfProcess(int pid); int newRequestGetSurfaceStatus(int surfaceId); - void newRequestRenderSurfaceToArea(int surfaceId, const QRect &renderArea); + void newRequestRenderSurfaceToArea(int surfaceId, int layoutArea); + bool newRequestRenderSurfaceToAreaAllowed(int surfaceId, int layoutArea); void newRequestSurfaceIdToFullScreen(int surfaceId); //from homescreen_adapter.h @@ -27,9 +28,9 @@ public Q_SLOTS: // METHODS QList getAllSurfacesOfProcess(int pid); int getSurfaceStatus(int surfaceId); void hardKeyPressed(int key); - void renderSurfaceToArea(int surfaceId, const QRect &renderArea); + void renderSurfaceToArea(int surfaceId, int layoutArea); + bool renderSurfaceToAreaAllowed(int surfaceId, int layoutArea); void requestSurfaceIdToFullScreen(int surfaceId); - private: HomescreenAdaptor *mp_homeScreenAdaptor; org::agl::appframework *mp_dBusAppFrameworkProxy; diff --git a/HomeScreen/src/layouthandler.cpp b/HomeScreen/src/layouthandler.cpp index 80f6cd1..58743d0 100644 --- a/HomeScreen/src/layouthandler.cpp +++ b/HomeScreen/src/layouthandler.cpp @@ -234,9 +234,16 @@ int LayoutHandler::requestGetSurfaceStatus(int surfaceId) return result; } -void LayoutHandler::requestRenderSurfaceToArea(int surfaceId, const QRect &renderArea) +void LayoutHandler::requestRenderSurfaceToArea(int surfaceId, int layoutArea) { - qDebug("requestRenderSurfaceToArea %d %d,%d,%d,%d", surfaceId, renderArea.x(), renderArea.y(), renderArea.width(), renderArea.height()); + qDebug("requestRenderSurfaceToArea %d %d", surfaceId, layoutArea); +} + +bool LayoutHandler::requestRenderSurfaceToAreaAllowed(int surfaceId, int layoutArea) +{ + qDebug("requestRenderSurfaceToAreaAllowed %d %d", surfaceId, layoutArea); + bool result = true; + return result; } void LayoutHandler::requestSurfaceIdToFullScreen(int surfaceId) diff --git a/HomeScreen/src/layouthandler.h b/HomeScreen/src/layouthandler.h index 7487be5..e51930b 100644 --- a/HomeScreen/src/layouthandler.h +++ b/HomeScreen/src/layouthandler.h @@ -25,7 +25,8 @@ private: public slots: QList requestGetAllSurfacesOfProcess(int pid); int requestGetSurfaceStatus(int surfaceId); - void requestRenderSurfaceToArea(int surfaceId, const QRect &renderArea); + void requestRenderSurfaceToArea(int surfaceId, int layoutArea); + bool requestRenderSurfaceToAreaAllowed(int surfaceId, int layoutArea); void requestSurfaceIdToFullScreen(int surfaceId); void setLayoutByName(QString layoutName); diff --git a/HomeScreen/src/mainwindow.cpp b/HomeScreen/src/mainwindow.cpp index e1a8371..82336ca 100644 --- a/HomeScreen/src/mainwindow.cpp +++ b/HomeScreen/src/mainwindow.cpp @@ -105,8 +105,8 @@ MainWindow::MainWindow(QWidget *parent) : QObject::connect(mp_homeScreenControlInterface, SIGNAL(newRequestGetAllSurfacesOfProcess(int)), mp_layoutHandler, SLOT(requestGetAllSurfacesOfProcess(int))); QObject::connect(mp_homeScreenControlInterface, SIGNAL(newRequestGetSurfaceStatus(int)), mp_layoutHandler, SLOT(requestGetSurfaceStatus(int))); QObject::connect(mp_homeScreenControlInterface, SIGNAL(newRequestsToBeVisibleApp(int)), mp_layoutHandler, SLOT(makeMeVisible(int))); - QObject::connect(mp_homeScreenControlInterface, SIGNAL(newRequestSurfaceIdToFullScreen(int)), mp_layoutHandler, SLOT(requestSurfaceIdToFullScreen(int))); - QObject::connect(mp_homeScreenControlInterface, SIGNAL(newRequestRenderSurfaceToArea(int, QRect)), mp_layoutHandler, SLOT(requestRenderSurfaceToArea(int,QRect))); + QObject::connect(mp_homeScreenControlInterface, SIGNAL(newRequestRenderSurfaceToArea(int, int)), mp_layoutHandler, SLOT(requestRenderSurfaceToArea(int,int))); + QObject::connect(mp_homeScreenControlInterface, SIGNAL(newRequestRenderSurfaceToAreaAllowed(int, int)), mp_layoutHandler, SLOT(requestRenderSurfaceToAreaAllowed(int,int))); QObject::connect(mp_homeScreenControlInterface, SIGNAL(newRequestSurfaceIdToFullScreen(int)), mp_layoutHandler, SLOT(requestSurfaceIdToFullScreen(int))); QObject::connect(mp_popupWidget, SIGNAL(comboBoxResult(QString)), mp_layoutHandler, SLOT(setLayoutByName(QString))); diff --git a/SampleHomeScreenInterfaceApp/src/sampleclass.cpp b/SampleHomeScreenInterfaceApp/src/sampleclass.cpp index bc39af9..86b5943 100644 --- a/SampleHomeScreenInterfaceApp/src/sampleclass.cpp +++ b/SampleHomeScreenInterfaceApp/src/sampleclass.cpp @@ -31,6 +31,11 @@ void SampleClass::renderSurfaceToArea(int surfaceId, int layoutArea) mp_libHomeScreen->renderSurfaceToArea(surfaceId, layoutArea); } +bool SampleClass::renderSurfaceToAreaAllowed(int surfaceId, int layoutArea) +{ + return mp_libHomeScreen->renderSurfaceToAreaAllowed(surfaceId, layoutArea); +} + void SampleClass::requestSurfaceIdToFullScreen(int surfaceId) { mp_libHomeScreen->requestSurfaceIdToFullScreen(surfaceId); diff --git a/SampleHomeScreenInterfaceApp/src/sampleclass.hpp b/SampleHomeScreenInterfaceApp/src/sampleclass.hpp index 9293843..3e80117 100644 --- a/SampleHomeScreenInterfaceApp/src/sampleclass.hpp +++ b/SampleHomeScreenInterfaceApp/src/sampleclass.hpp @@ -14,6 +14,7 @@ public: int getSurfaceStatus(int surfaceId); void hardKeyPressed(int key); void renderSurfaceToArea(int surfaceId, int layoutArea); + bool renderSurfaceToAreaAllowed(int surfaceId, int layoutArea); void requestSurfaceIdToFullScreen(int surfaceId); private: diff --git a/interfaces/homescreen.xml b/interfaces/homescreen.xml index 999b0e9..95e84a6 100644 --- a/interfaces/homescreen.xml +++ b/interfaces/homescreen.xml @@ -63,6 +63,20 @@ + + + + + +