diff options
Diffstat (limited to 'imports')
-rw-r--r-- | imports/shared/service/notification/NotificationInterface.qml | 37 | ||||
-rw-r--r-- | imports/shared/service/notification/qmldir | 1 | ||||
-rw-r--r-- | imports/system/models/NotificationModel.qml | 116 | ||||
-rw-r--r-- | imports/system/models/qmldir | 1 |
4 files changed, 155 insertions, 0 deletions
diff --git a/imports/shared/service/notification/NotificationInterface.qml b/imports/shared/service/notification/NotificationInterface.qml new file mode 100644 index 0000000..e8fd2e8 --- /dev/null +++ b/imports/shared/service/notification/NotificationInterface.qml @@ -0,0 +1,37 @@ +/**************************************************************************** +** +** Copyright (C) 2016 Pelagicore AG +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Neptune IVI UI. +** +** $QT_BEGIN_LICENSE:GPL-QTAS$ +** Commercial License Usage +** Licensees holding valid commercial Qt Automotive Suite 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 The Qt Company. For +** licensing terms and conditions see https://www.qt.io/terms-conditions. +** For further information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 or (at your option) any later version +** approved by the KDE Free Qt Foundation. The licenses are as published by +** the Free Software Foundation and appearing in the file LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +** SPDX-License-Identifier: GPL-3.0 +** +****************************************************************************/ + +import QtQuick 2.0 +import QtApplicationManager 1.0 + +Notification { + timeout: 10000 +} diff --git a/imports/shared/service/notification/qmldir b/imports/shared/service/notification/qmldir new file mode 100644 index 0000000..4c1b488 --- /dev/null +++ b/imports/shared/service/notification/qmldir @@ -0,0 +1 @@ +NotificationInterface 1.0 NotificationInterface.qml diff --git a/imports/system/models/NotificationModel.qml b/imports/system/models/NotificationModel.qml new file mode 100644 index 0000000..77033ce --- /dev/null +++ b/imports/system/models/NotificationModel.qml @@ -0,0 +1,116 @@ +/**************************************************************************** +** +** Copyright (C) 2016 Pelagicore AG +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Neptune IVI UI. +** +** $QT_BEGIN_LICENSE:GPL-QTAS$ +** Commercial License Usage +** Licensees holding valid commercial Qt Automotive Suite 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 The Qt Company. For +** licensing terms and conditions see https://www.qt.io/terms-conditions. +** For further information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 or (at your option) any later version +** approved by the KDE Free Qt Foundation. The licenses are as published by +** the Free Software Foundation and appearing in the file LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +** SPDX-License-Identifier: GPL-3.0 +** +****************************************************************************/ + +pragma Singleton +import QtQuick 2.0 + +import utils 1.0 +import QtApplicationManager 1.0 + +QtObject { + id: root + + readonly property int maxNotifications: 20 + + property bool notificationVisible: false + + property int notificationIndex: -1 + + property string title + property string description + + property var buttonModel: [] + + property Connections notificationManagerConnection: Connections { + target: NotificationManager + + onNotificationAdded: { + console.log("::: Notification received :::", id) + addNotification() + } + + onNotificationChanged: { + console.log("::: Notification changed :::", id) + updateNotification(id) + } + + onNotificationAboutToBeRemoved: { + console.log("::: Notification closing :::", id) + closeNotification() + } + } + + function addNotification() { + var notification = NotificationManager.get(NotificationManager.count - 1) + var notificationId = notification.id + var actions = [] + for (var i in notification.actions) { + actions.push(i) + } + root.buttonModel = actions + root.notificationIndex = notificationId + root.title = notification.summary + root.description = notification.body + root.notificationVisible = true + } + + function updateNotification(index) { + var notification = NotificationManager.notification(index) + root.notificationIndex = notification.id + root.title = notification.summary + root.description = notification.body + var actions = [] + for (var i in notification.actions) { + actions.push(i) + } + root.buttonModel = actions + root.notificationVisible = true + } + + function closeNotification() { + root.title = root.description = "" + root.buttonModel = [] + root.notificationIndex = -1 + root.notificationVisible = false + } + + function removeNotification() { + NotificationManager.dismissNotification(root.notificationIndex) + closeNotification() + } + + function buttonClicked(index) { + NotificationManager.triggerNotificationAction(root.notificationIndex, root.buttonModel[index]) + closeNotification() + } + +} + diff --git a/imports/system/models/qmldir b/imports/system/models/qmldir index e947d97..8c1c1ed 100644 --- a/imports/system/models/qmldir +++ b/imports/system/models/qmldir @@ -1 +1,2 @@ singleton ApplicationManagerInterface 1.0 ApplicationManagerInterface.qml +singleton NotificationModel 1.0 NotificationModel.qml |