From 0446271eb6ce5f2f24662031ce55fcf6ee500ba4 Mon Sep 17 00:00:00 2001 From: Robert Griebl Date: Mon, 19 Oct 2015 13:48:23 +0200 Subject: Initial commit of Pelagicore's Neptune-UI with squashed history. Change-Id: I36747394458e3528f38ed9c078334c260f22d53b Reviewed-by: Lars Knoll --- sysui/Cloud/CloudPage.qml | 49 ++++++++++ sysui/Cloud/Settings/SettingsScreen.qml | 65 +++++++++++++ sysui/Cloud/Store/AppGridItemDelegate.qml | 103 ++++++++++++++++++++ sysui/Cloud/Store/AppGridView.qml | 60 ++++++++++++ sysui/Cloud/Store/AppStore.qml | 90 ++++++++++++++++++ sysui/Cloud/Store/AppStoreController.qml | 153 ++++++++++++++++++++++++++++++ sysui/Cloud/Store/JSONBackend.js | 85 +++++++++++++++++ sysui/Cloud/Store/JSONModel.qml | 50 ++++++++++ sysui/Cloud/Store/LoadingPage.qml | 42 ++++++++ sysui/Cloud/Store/NotFoundOverlay.qml | 42 ++++++++ sysui/Cloud/Store/StoreScreen.qml | 41 ++++++++ 11 files changed, 780 insertions(+) create mode 100644 sysui/Cloud/CloudPage.qml create mode 100644 sysui/Cloud/Settings/SettingsScreen.qml create mode 100644 sysui/Cloud/Store/AppGridItemDelegate.qml create mode 100644 sysui/Cloud/Store/AppGridView.qml create mode 100644 sysui/Cloud/Store/AppStore.qml create mode 100644 sysui/Cloud/Store/AppStoreController.qml create mode 100644 sysui/Cloud/Store/JSONBackend.js create mode 100644 sysui/Cloud/Store/JSONModel.qml create mode 100644 sysui/Cloud/Store/LoadingPage.qml create mode 100644 sysui/Cloud/Store/NotFoundOverlay.qml create mode 100644 sysui/Cloud/Store/StoreScreen.qml (limited to 'sysui/Cloud') diff --git a/sysui/Cloud/CloudPage.qml b/sysui/Cloud/CloudPage.qml new file mode 100644 index 0000000..bf7a3a5 --- /dev/null +++ b/sysui/Cloud/CloudPage.qml @@ -0,0 +1,49 @@ +/**************************************************************************** +** +** Copyright (C) 2015 Pelagicore AG +** Contact: http://www.pelagicore.com/ +** +** This file is part of Neptune IVI UI. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** Commercial License Usage +** Licensees holding valid commercial Neptune IVI UI licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Pelagicore. For licensing terms +** and conditions see http://www.pelagicore.com. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3 requirements will be +** met: http://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.1 + +import controls 1.0 +import utils 1.0 + +UIPage { + id: root + hspan: 24 + vspan: 24 + + title: "MY CLOUD" + symbolName: "my_cloud" + + TabView { + id: tabView + anchors.fill: parent + tabs: [ + { title : "SETTINGS", url : Qt.resolvedUrl("Settings/SettingsScreen.qml"), properties : {} }, + { title : "APP STORE", url : Qt.resolvedUrl("Store/StoreScreen.qml"), properties : {} }, + ] + } +} diff --git a/sysui/Cloud/Settings/SettingsScreen.qml b/sysui/Cloud/Settings/SettingsScreen.qml new file mode 100644 index 0000000..4beabbf --- /dev/null +++ b/sysui/Cloud/Settings/SettingsScreen.qml @@ -0,0 +1,65 @@ +/**************************************************************************** +** +** Copyright (C) 2015 Pelagicore AG +** Contact: http://www.pelagicore.com/ +** +** This file is part of Neptune IVI UI. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** Commercial License Usage +** Licensees holding valid commercial Neptune IVI UI licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Pelagicore. For licensing terms +** and conditions see http://www.pelagicore.com. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3 requirements will be +** met: http://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.1 +import utils 1.0 + +import controls 1.0 +import utils 1.0 +import service.settings 1.0 + +UIElement { + id: root + + ListViewManager { + id: settingsListView + + anchors.horizontalCenter: parent.horizontalCenter + anchors.top: parent.top; anchors.bottom: parent.bottom + hspan: 14 + + model: SettingsService.entries + + delegate: SettingsListItem { + hspan: settingsListView.hspan + vspan: 2 + + iconName: model.icon + titleText: model.title + checked: model.checked + hasChildren: model.hasChildren + } + } + + Image { + anchors.horizontalCenter: parent.horizontalCenter + anchors.bottom: parent.bottom + source: Style.icon('cloud_bottom_shadow') + asynchronous: true + visible: false + } +} diff --git a/sysui/Cloud/Store/AppGridItemDelegate.qml b/sysui/Cloud/Store/AppGridItemDelegate.qml new file mode 100644 index 0000000..971f349 --- /dev/null +++ b/sysui/Cloud/Store/AppGridItemDelegate.qml @@ -0,0 +1,103 @@ +/**************************************************************************** +** +** Copyright (C) 2015 Pelagicore AG +** Contact: http://www.pelagicore.com/ +** +** This file is part of Neptune IVI UI. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** Commercial License Usage +** Licensees holding valid commercial Neptune IVI UI licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Pelagicore. For licensing terms +** and conditions see http://www.pelagicore.com. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3 requirements will be +** met: http://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.1 + +import controls 1.0 +import utils 1.0 + +UIElement { + id: root + + property string icon + property alias titleText: titleLabel.text + property alias subtitleText: subtitleLabel.text + + signal clicked() + + Image { + anchors.fill: parent + anchors.rightMargin: 1 + source: Style.icon('appstore_grid_cell_panel') + asynchronous: true + } + + Column { + anchors.left: parent.left; anchors.right: parent.right + anchors.bottom: parent.bottom; anchors.bottomMargin: Style.padding + + spacing: Style.paddingXL + + Image { + id: iconImage + + anchors.horizontalCenter: parent.horizontalCenter + + width: Style.hspan(2) + + source: root.icon //Style.icon(root.icon) + + fillMode: Image.PreserveAspectFit + asynchronous: true + } + + Column { + anchors.left: parent.left; anchors.right: parent.right + spacing: -10 + + Label { + id: titleLabel + + anchors.left: parent.left; anchors.right: parent.right + anchors.margins: Style.padding + font.capitalization: Font.AllUppercase + + horizontalAlignment: Text.AlignHCenter + font.pixelSize: Style.fontSizeS + color: Style.colorWhite + elide: Text.ElideRight + } + + Label { + id: subtitleLabel + + anchors.left: parent.left; anchors.right: parent.right + anchors.margins: Style.padding + font.capitalization: Font.AllUppercase + + horizontalAlignment: Text.AlignHCenter + font.pixelSize: Style.fontSizeXXS + color: Style.colorGrey + } + } + } + + MouseArea { + anchors.fill: parent + onClicked: root.clicked() + } +} diff --git a/sysui/Cloud/Store/AppGridView.qml b/sysui/Cloud/Store/AppGridView.qml new file mode 100644 index 0000000..16357ee --- /dev/null +++ b/sysui/Cloud/Store/AppGridView.qml @@ -0,0 +1,60 @@ +/**************************************************************************** +** +** Copyright (C) 2015 Pelagicore AG +** Contact: http://www.pelagicore.com/ +** +** This file is part of Neptune IVI UI. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** Commercial License Usage +** Licensees holding valid commercial Neptune IVI UI licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Pelagicore. For licensing terms +** and conditions see http://www.pelagicore.com. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3 requirements will be +** met: http://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.1 + +import controls 1.0 +import utils 1.0 + +UIElement { + id: root + + property string appCategory: "" + property alias cellWidth: grid.cellWidth + property alias cellHeight: grid.cellHeight + property alias model: grid.model + property alias delegate: grid.delegate + property bool loading: true + + onLoadingChanged: print("loading: ", loading, model.count) + + GridView { + id: grid + + anchors.fill: parent + + clip: true + + NotFoundOverlay { + anchors.top: parent.top; anchors.topMargin: Style.vspan(6) + width: parent.width + + text: loading ? "Loading..." : model.count === 0 ? qsTr("No apps found in %1").arg(root.appCategory) : "" + overlayVisible: loading || model.count === 0 + } + } +} diff --git a/sysui/Cloud/Store/AppStore.qml b/sysui/Cloud/Store/AppStore.qml new file mode 100644 index 0000000..af5fadf --- /dev/null +++ b/sysui/Cloud/Store/AppStore.qml @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** Copyright (C) 2015 Pelagicore AG +** Contact: http://www.pelagicore.com/ +** +** This file is part of Neptune IVI UI. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** Commercial License Usage +** Licensees holding valid commercial Neptune IVI UI licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Pelagicore. For licensing terms +** and conditions see http://www.pelagicore.com. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3 requirements will be +** met: http://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.0 +import "JSONBackend.js" as JSONBackend +import com.pelagicore.ApplicationManager 0.1 + +Item { + + property bool serverOnline: false + property string serverReason + property string server: ApplicationManager.additionalConfiguration.appStoreServerUrl + + signal loginSuccessful() + + function goBack() { + if (categoriesPage.state != "") + categoriesPage.goBack() + else + root.close(); + } + + function checkServer() { + print("#####################checkserver#####################") + var url = server + "/hello" + var data = {"platform" : "AM", "version" : "1"} + JSONBackend.setErrorFunction(function () { + serverOnline = false + serverReason = "unknown" + }) + JSONBackend.serverCall(url, data, function(data) { + if (data !== 0) { + if (data.status == "ok") { + serverOnline = true + login() + //refresh() + } else if (data.status == "maintenance") { + serverOnline = false + serverReason = "maintenance" + } else { + print("HELLO ERROR: " + data.error) + serverOnline = false + } + } else { + serverOnline = false + serverReason = "unknown" + } + }) + } + + function login() { + var url = server + "/login" + var data = {"username" : "t", "password" : "t", "imei" : "112163001487801"} + JSONBackend.serverCall(url, data, function(data) { + if (data !== 0) { + if (data.status == "ok") { + print("LOGIN SUCCESSFUL"); + loginSuccessful() + } else { + print("LOGIN ERROR: " + data.error) + } + } + }) + } + Component.onCompleted: checkServer() +} diff --git a/sysui/Cloud/Store/AppStoreController.qml b/sysui/Cloud/Store/AppStoreController.qml new file mode 100644 index 0000000..d519ebf --- /dev/null +++ b/sysui/Cloud/Store/AppStoreController.qml @@ -0,0 +1,153 @@ +/**************************************************************************** +** +** Copyright (C) 2015 Pelagicore AG +** Contact: http://www.pelagicore.com/ +** +** This file is part of Neptune IVI UI. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** Commercial License Usage +** Licensees holding valid commercial Neptune IVI UI licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Pelagicore. For licensing terms +** and conditions see http://www.pelagicore.com. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3 requirements will be +** met: http://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.1 +import QtQuick.Layouts 1.0 + +import controls 1.0 +import utils 1.0 +import service.apps 1.0 + +import "JSONBackend.js" as JSONBackend +import com.pelagicore.ApplicationInstaller 0.1 + +Item { + id: root + + property int categoryid: 1 + property string filter: "" + + function download(id) { + var url = appstore.server + "/app/purchase" + var data = {"id": id, "device_id" : "00-11-22-33-44-55" } + + JSONBackend.serverCall(url, data, function(data) { + if (data !== 0) { + if (data.status === "ok") { + print("start downloading") + var icon = appstore.server + "/app/icon?id=" + id + var installID = ApplicationInstaller.startPackageInstallation("internal-0", data.url); + ApplicationInstaller.acknowledgePackageInstallation(installID); + } else if (data.status === "fail" && data.error === "not-logged-in"){ + print(":::AppStoreController::: not logged in") + } else { + print(":::AppStoreController::: download failed: " + data.error) + } + } + }) + } + + AppStore { + id: appstore + onLoginSuccessful: categoriesModel.refresh() + } + + JSONModel { + id: categoriesModel + url: appstore.server + "/category/list" + } + + JSONModel { + id: appModel + url: appstore.server + "/app/list" + data: root.categoryid >= 0 ? { "filter" : root.filter , "category_id" : root.categoryid} : { "filter" : root.filter} + } + + Row { + anchors.horizontalCenter: parent.horizontalCenter + + Column { + width: Style.hspan(4) + + ListViewManager { + id: categoryView + + anchors.left: parent.left; anchors.right: parent.right + vspan: 14 + + model: categoriesModel + + header: Label { + // The graphics for the category list is not align to the grid, have to specify hardcoded values. + height: Style.vspan(5/3) + anchors.left: parent.left; anchors.right: parent.right + anchors.margins: Style.paddingXL + + text: "CATEGORY" + font.pixelSize: Style.fontSizeM + } + + delegate: CategoryListItem { + width: ListView.view.width + height: Style.vspan(5/3) + text: model.name //.title + onClicked: ListView.view.currentIndex = index + } + + onCurrentIndexChanged: { + appGrid.appCategory = model.get(currentIndex) ? model.get(currentIndex).name : "" + categoryid = model.get(currentIndex) ? model.get(currentIndex).id : 1 + appModel.refresh() + } + } + } + + AppGridView { + id: appGrid + // The graphics for the category list is not align to the grid, have to specify hardcoded values. + width: Style.hspan(3)*4 + height: root.height + loading: categoriesModel.status !== "ready" || appModel.status !== "ready" + + cellWidth: Style.hspan(3) + cellHeight:Style.vspan(5) + + appCategory: "" + + model: appModel + + delegate: AppGridItemDelegate { + width: GridView.view.cellWidth + height: GridView.view.cellHeight + + icon: appstore.server + "/app/icon?id=" + model.id //model.icon + titleText: model.name //model.title + subtitleText: model.category //model.subtitle + + onClicked: download(model.id) + } + } + } + + Image { + anchors.horizontalCenter: parent.horizontalCenter + anchors.bottom: parent.bottom + source: Style.icon('appstore_bottom_shadow') + asynchronous: true + visible: false + } + } diff --git a/sysui/Cloud/Store/JSONBackend.js b/sysui/Cloud/Store/JSONBackend.js new file mode 100644 index 0000000..a1ba1b1 --- /dev/null +++ b/sysui/Cloud/Store/JSONBackend.js @@ -0,0 +1,85 @@ +/**************************************************************************** +** +** Copyright (C) 2015 Pelagicore AG +** Contact: http://www.pelagicore.com/ +** +** This file is part of Neptune IVI UI. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** Commercial License Usage +** Licensees holding valid commercial Neptune IVI UI licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Pelagicore. For licensing terms +** and conditions see http://www.pelagicore.com. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3 requirements will be +** met: http://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +.pragma library + +var request = new XMLHttpRequest() +var errorCounter = 0 +var errorFunc = 0 + +//Will be called when the error is not responding after a few tries +function setErrorFunction(func) { + errorFunc = func +} + +function serverCall(url, data, dataReadyFunction, xhr) { + var i = 0 + for (var key in data) + { + if (i === 0) { + url += "?" + key + "=" + data[key]; + } else { + url += "&" + key+ "=" + data[key]; + } + i++ + } + + //when no xhr is defined use the global one and reuse it + if (xhr == undefined) { + xhr = new XMLHttpRequest() + } + + console.log("HTTP GET to " + url); + if (xhr.readyState != 0) { + xhr.abort(); + } + xhr.open("GET", url); + xhr.onreadystatechange = function() { + if (xhr.readyState == XMLHttpRequest.DONE) { + //print(xhr.responseText); + + if (xhr.responseText !== "") { + errorCounter = 0 + var data = JSON.parse(xhr.responseText); + return dataReadyFunction(data) + } else { + print("JSONBackend: " + xhr.status + xhr.statusText) + errorCounter++ + if (errorCounter >= 3 && errorFunc) { + errorFunc() + } + + return dataReadyFunction(0) + } + } + } + xhr.send(); +} + +function abortableServerCall(url, data, dataReadyFunction) { + serverCall(url,data,dataReadyFunction,request) +} diff --git a/sysui/Cloud/Store/JSONModel.qml b/sysui/Cloud/Store/JSONModel.qml new file mode 100644 index 0000000..beae582 --- /dev/null +++ b/sysui/Cloud/Store/JSONModel.qml @@ -0,0 +1,50 @@ +/**************************************************************************** +** +** Copyright (C) 2015 Pelagicore AG +** Contact: http://www.pelagicore.com/ +** +** This file is part of Neptune IVI UI. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** Commercial License Usage +** Licensees holding valid commercial Neptune IVI UI licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Pelagicore. For licensing terms +** and conditions see http://www.pelagicore.com. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3 requirements will be +** met: http://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.0 +import "JSONBackend.js" as JSONBackend + +ListModel { + id: contenModel + + property int itemCount: 10; + property string url: "" + property variant data + property string status: "empty" + + function refresh() { + status = "loading" + clear(); + JSONBackend.abortableServerCall(url, data, function(data) { + for (var i = 0; i < data.length; i++) { + var entry = data[i]; + append(entry); + } + status = "ready" + }) + } +} diff --git a/sysui/Cloud/Store/LoadingPage.qml b/sysui/Cloud/Store/LoadingPage.qml new file mode 100644 index 0000000..2818980 --- /dev/null +++ b/sysui/Cloud/Store/LoadingPage.qml @@ -0,0 +1,42 @@ +/**************************************************************************** +** +** Copyright (C) 2015 Pelagicore AG +** Contact: http://www.pelagicore.com/ +** +** This file is part of Neptune IVI UI. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** Commercial License Usage +** Licensees holding valid commercial Neptune IVI UI licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Pelagicore. For licensing terms +** and conditions see http://www.pelagicore.com. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3 requirements will be +** met: http://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.0 + +Image { + anchors.fill: parent + + z:2 + + Text { + anchors.centerIn: parent + + text: "Loading..." + color: "white" + font.pixelSize: 24 + } +} diff --git a/sysui/Cloud/Store/NotFoundOverlay.qml b/sysui/Cloud/Store/NotFoundOverlay.qml new file mode 100644 index 0000000..4d04b6d --- /dev/null +++ b/sysui/Cloud/Store/NotFoundOverlay.qml @@ -0,0 +1,42 @@ +/**************************************************************************** +** +** Copyright (C) 2015 Pelagicore AG +** Contact: http://www.pelagicore.com/ +** +** This file is part of Neptune IVI UI. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** Commercial License Usage +** Licensees holding valid commercial Neptune IVI UI licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Pelagicore. For licensing terms +** and conditions see http://www.pelagicore.com. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3 requirements will be +** met: http://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.1 + +import utils 1.0 +import controls 1.0 + +Label { + id: root + + property bool overlayVisible: false + + horizontalAlignment: Qt.AlignHCenter + opacity: overlayVisible + + Behavior on opacity { NumberAnimation { duration: 200 } } +} diff --git a/sysui/Cloud/Store/StoreScreen.qml b/sysui/Cloud/Store/StoreScreen.qml new file mode 100644 index 0000000..cde148e --- /dev/null +++ b/sysui/Cloud/Store/StoreScreen.qml @@ -0,0 +1,41 @@ +/**************************************************************************** +** +** Copyright (C) 2015 Pelagicore AG +** Contact: http://www.pelagicore.com/ +** +** This file is part of Neptune IVI UI. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** Commercial License Usage +** Licensees holding valid commercial Neptune IVI UI licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Pelagicore. For licensing terms +** and conditions see http://www.pelagicore.com. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3 requirements will be +** met: http://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.1 +import QtQuick.Controls 1.0 +import QtQuick.Layouts 1.0 + +import controls 1.0 +import utils 1.0 + +Item { + id: root + + AppStoreController { + anchors.fill: parent; anchors.topMargin: Style.vspan(1) + } +} -- cgit v1.2.3