2 * Copyright (C) 2013 Canonical, Ltd.
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.
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.
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/>.
18 import Ubuntu.Components 0.1
19 import Unity.Notifications 1.0 as UnityNotifications
21 import "../Components"
26 objectName: "notificationList"
30 property bool useModal: snapDecisionProxyModel.count > 0
32 SortFilterProxyModel {
33 id: snapDecisionProxyModel
34 objectName: "snapDecisionProxyModel"
36 model: notificationList.model
37 filterRole: UnityNotifications.ModelInterface != undefined ? UnityNotifications.ModelInterface.RoleType : 0
38 filterRegExp: RegExp(UnityNotifications.Notification.SnapDecision)
41 property bool topmostIsFullscreen: false
42 spacing: topmostIsFullscreen ? 0 : units.gu(.5)
44 // FIXME: This doesn't make any sense and results in a binding loop
45 currentIndex: (currentIndex < 1 && count > 1) ? 1 : -1
47 delegate: Notification {
48 objectName: "notification" + index
55 iconSource: model.icon
56 secondaryIconSource: model.secondaryIcon
57 summary: model.summary
60 actions: model.actions
61 notificationId: model.id
62 notification: notificationList.model.getRaw(notificationId)
63 maxHeight: notificationList.height
64 margins: notificationList.margin
66 // make sure there's no opacity-difference between the several
67 // elements in a notification
68 // FIXME: disabled all transitions because of LP: #1354406 workaround
69 //layer.enabled: add.running || remove.running || populate.running
71 Component.onCompleted: {
73 notificationList.topmostIsFullscreen = fullscreen
77 onFullscreenChanged: {
78 // index 1 because 0 is the PlaceHolder...
80 notificationList.topmostIsFullscreen = fullscreen
85 // FIXME: disabled all transitions because of LP: #1354406 workaround
86 /*populate: Transition {
87 UbuntuNumberAnimation {
90 duration: UbuntuAnimation.SnapDuration
95 UbuntuNumberAnimation {
98 duration: UbuntuAnimation.SnapDuration
103 UbuntuNumberAnimation {
109 displaced: Transition {
110 UbuntuNumberAnimation {
112 duration: UbuntuAnimation.SnapDuration