blob: fedd37e9320143fc26cf74c003247fc5c64509f6 (
plain)
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
|
// Copyright (C) 2024 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import QtQuick
Item {
id: root
signal toggleRequested()
signal selectRequested()
signal contextMenuRequested()
// handler for mouse device
TapHandler {
acceptedDevices: PointerDevice.Mouse
acceptedButtons: Qt.LeftButton | Qt.RightButton
longPressThreshold: 0
onTapped: function(event, button) {
const no_modifier = (point.modifiers === Qt.NoModifier)
const control_modifier = (point.modifiers === Qt.ControlModifier)
if (!no_modifier && !control_modifier) {
// reject event with other modifiers
event.accepted = false
return
}
switch (button) {
case Qt.LeftButton:
if (control_modifier)
root.toggleRequested()
else if (no_modifier)
root.selectRequested()
break
case Qt.RightButton:
if (!no_modifier) {
// reject event if there is a modifier
event.accepted = false
return
}
root.contextMenuRequested()
break
}
}
}
// handler for touch device
TapHandler {
acceptedDevices: PointerDevice.TouchScreen
acceptedModifiers: Qt.NoModifier
dragThreshold: 0
onTapped: (event, button) => root.toggleRequested()
onLongPressed: () => root.contextMenuRequested()
}
}
|