on f782fac help sign in
unity8/qml/Notifications/Notifications.qml
95 lines 2.7 kB history raw
1/*
2 * Copyright (C) 2013 Canonical, Ltd.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; version 3.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
17import QtQuick 2.0
18import Ubuntu.Components 0.1
19import Unity.Notifications 1.0 as UnityNotifications
20import Utils 0.1
21import "../Components"
23ListView {
24 id: notificationList
26 objectName: "notificationList"
27 interactive: false
29 property real margin
30 property bool useModal: snapDecisionProxyModel.count > 0
32 SortFilterProxyModel {
33 id: snapDecisionProxyModel
35 model: notificationList.model
36 filterRole: UnityNotifications.ModelInterface.RoleType
37 filterRegExp: RegExp(UnityNotifications.Notification.SnapDecision)
38 }
39 spacing: delegate.fullscreen ? 0 : units.gu(.5)
41 currentIndex: (currentIndex < 1 && count > 1) ? 1 : -1
43 delegate: Notification {
44 objectName: "notification" + index
45 anchors {
46 left: parent.left
47 right: parent.right
48 }
49 type: model.type
50 hints: model.hints
51 iconSource: model.icon
52 secondaryIconSource: model.secondaryIcon
53 summary: model.summary
54 body: model.body
55 actions: model.actions
56 notificationId: model.id
57 notification: notificationList.model.getRaw(notificationId)
58 maxHeight: notificationList.height
59 margins: notificationList.margin
61 // make sure there's no opacity-difference between the several
62 // elements in a notification
63 layer.enabled: add.running || remove.running || populate.running
64 }
66 populate: Transition {
67 UbuntuNumberAnimation {
68 property: "opacity"
69 to: 1
70 duration: UbuntuAnimation.SnapDuration
71 }
72 }
74 add: Transition {
75 UbuntuNumberAnimation {
76 property: "opacity"
77 to: 1
78 duration: UbuntuAnimation.SnapDuration
79 }
80 }
82 remove: Transition {
83 UbuntuNumberAnimation {
84 property: "opacity"
85 to: 0
86 }
87 }
89 displaced: Transition {
90 UbuntuNumberAnimation {
91 properties: "x,y"
92 duration: UbuntuAnimation.SnapDuration
93 }
94 }