From fe3d069d19d4c11c9d905da1d4412a77295a438d Mon Sep 17 00:00:00 2001 From: wang_zhiqiang Date: Thu, 6 Dec 2018 17:03:23 +0800 Subject: modify onscreen qml file directory --- app/eventhandler.cpp | 10 ++++--- doc/parts/showOnscreen.svg | 74 ++++++++++++++++++++++++++++++++++++++++++++++ doc/readme.md | 12 ++++---- sample/app/main.qml | 2 +- 4 files changed, 88 insertions(+), 10 deletions(-) create mode 100644 doc/parts/showOnscreen.svg diff --git a/app/eventhandler.cpp b/app/eventhandler.cpp index 39db933..d76fcbe 100644 --- a/app/eventhandler.cpp +++ b/app/eventhandler.cpp @@ -37,6 +37,7 @@ const char _button_press_mode[] = "buttonPressMode"; const char _button_press_state[] = "buttonPressState"; const char _drawing_name[] = "drawing_name"; const char _application_id[] = "application_id"; +const char _onscreen_directory[] = "/usr/lib/qt5/qml/AGL/OnScreen/"; void* EventHandler::myThis = 0; @@ -89,8 +90,9 @@ void EventHandler::init(int port, const char *token) return; } - QFileInfo file_info(file); - if(!file_info.isFile() || !QString(file).contains(QString(_suffix), Qt::CaseSensitive)) { + QString qml_file = QString(_onscreen_directory) + file; + QFileInfo file_info(qml_file); + if(!file_info.isFile() || !qml_file.contains(QString(_suffix), Qt::CaseSensitive)) { HMI_DEBUG(APP_ID, "received qml file error! file=%s.", file); return; } @@ -116,10 +118,10 @@ void EventHandler::init(int port, const char *token) m_dspreq = QString(replyto); if(m_req.contains(m_dspreq)) { - m_req[m_dspreq] = qMakePair(QString(file), QString(data)); + m_req[m_dspreq] = qMakePair(qml_file, QString(data)); } else - m_req.insert(QString(m_dspreq), qMakePair(QString(file), QString(data))); + m_req.insert(QString(m_dspreq), qMakePair(qml_file, QString(data))); if(area == nullptr) this->activateWindow(ROLE_NAME); diff --git a/doc/parts/showOnscreen.svg b/doc/parts/showOnscreen.svg new file mode 100644 index 0000000..9a0447e --- /dev/null +++ b/doc/parts/showOnscreen.svg @@ -0,0 +1,74 @@ +show/hide onscreen phaseuseruserhomescreen-servicehomescreen-serviceAppApponscreenapponscreenappwindowmanagerwindowmanagershow onscreenthe operation request onscreenshowWindow(){"application_id":"onscreenapp","parameter":{"area":"display area", "file":"qml file path liked appid/xxx.qml","data":{"the datas to onscreen qml"}}}push showWindow event{"application_id":"onscreenapp","parameter":{"area":"display area", "file":"qml file path liked appid/xxx.qml","data":{"the datas to onscreen qml"},"replyto":"caller application id"}}get and save parametersactivateWindow("onscreeapp", "display area")alt[can show]push syncDraw eventendDraw("onscreeapp")load and display qml fileqml path "/usr/lib/qt5/qml/AGL/OnScreen/appid/xxx.qml"[can't show]do nothinghide onscreentap onscreen's buttonreplyShowWindow(){"application_id":"the application id who called onscreenapp","parameter": {"buttonName": "VOLUME_UP", "buttonPressMode": "shortPress", "buttonPressState": "release"}}push replyShowWindow eventcall reply functionhideWindow("onscreenapp")push hideWindow event{"application_id":"request hideWindow application id"}deactivateWindow("onscreenapp");hide window \ No newline at end of file diff --git a/doc/readme.md b/doc/readme.md index 0b6ba93..025dfa3 100644 --- a/doc/readme.md +++ b/doc/readme.md @@ -4,10 +4,12 @@ usage of onscreenapp ## dependence -Onscreenapp depend on libhomescreen add agl-service-homescreen as below: -- libhomescreen must have 'showWindow/hideWindow/replyShowWindow' event - and 'showWindow/hideWindow/replyShowWindow' interface. -- agl-service-homescreen must have 'showWindow/hideWindow/replyShowWindow' verbs. +- Onscreenapp depend on libhomescreen add agl-service-homescreen as below: + - libhomescreen must have 'showWindow/hideWindow/replyShowWindow' event + and 'showWindow/hideWindow/replyShowWindow' interface. + - agl-service-homescreen must have 'showWindow/hideWindow/replyShowWindow' verbs. + +- Application need to deploy their onscreen qml file to "/usr/lib/qt5/qml/AGL/OnScreen/appid/" folder. ## sequence @@ -26,7 +28,7 @@ onstestapp is a sample to use onscreenapp. ### onstestapp usage -Before start onstestapp you must copy all files in "qml" folder to "$HOME/app-data/OnScreen/onstestapp/" on your board(R-car M3 etc.), +Before start onstestapp you must copy all files in "qml" folder to "/usr/lib/qt5/qml/AGL/OnScreen/onstestapp/" on your board(R-car M3 etc.), then do as below: 1. start onstestapp in launcher diff --git a/sample/app/main.qml b/sample/app/main.qml index 5a70102..3225dcd 100644 --- a/sample/app/main.qml +++ b/sample/app/main.qml @@ -12,7 +12,7 @@ ApplicationWindow { height: 1487 property string onsId: qsTr("onscreenapp") - property string pri_path: qsTr("/home/0/app-data/OnScreen/onstestapp/") + property string pri_path: qsTr("onstestapp/") property string filepath: pri_path + qsTr("vics.qml") property string msgdata: "" property string postmsg: "" -- cgit 1.2.3-korg