-
Notifications
You must be signed in to change notification settings - Fork 2
/
IQNotification.qml
70 lines (64 loc) · 2.48 KB
/
IQNotification.qml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/*
* This file is part of IQ Notifier.
*
* IQ Notifier is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* any later version.
*
* IQ Notifier is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with IQ Notifier. If not, see <http://www.gnu.org/licenses/>.
*/
import QtQuick 2.5
import QtQuick.Window 2.1
import IQNotifier 1.0
IQPopup {
id: root
dropDuration: container.dropDuration
property int notification_id: 0
property alias appName: container.appName
property alias body: container.body
property alias iconUrl: container.iconUrl
property alias buttons: container.buttons
property alias expireTimeout: expiration_controller.timeout
IQExpirationController{
id: expiration_controller
onExpired: IQNotifications.onExpired(notification_id)
expiration: alive && !mouseArea.containsMouse
}
MouseArea {
id: mouseArea
anchors.fill: parent
hoverEnabled: true
acceptedButtons: Qt.LeftButton | Qt.MiddleButton | Qt.RightButton
onClicked: {
var rightPressed = mouse.button & Qt.RightButton;
if (rightPressed && IQNotifications.closeAllByRightClick) {
IQNotifications.onDropAll()
}
var middlePressed = mouse.button & Qt.MiddleButton;
if (middlePressed && IQNotifications.closeVisibleByLeftClick) {
return IQNotifications.onDropVisible()
}
var leftPressed = mouse.button & Qt.LeftButton;
if (leftPressed && IQNotifications.closeByLeftClick) {
return IQNotifications.onCloseButtonPressed(notification_id)
}
}
}
IQNotificationContainer {
id: container
referenceHeight: root.height
expireTimeout: expiration_controller.timeout - showDuration
expiration: expiration_controller.expiration
title: root.title
anchors.fill: parent
onCloseClicked: IQNotifications.onCloseButtonPressed(notification_id)
onButtonClicked: IQNotifications.onActionButtonPressed(notification_id, button)
}
}