blob: a1483b126f116b3954cc5f1ac94b06c4b173454f (
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
// Copyright (C) 2018 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import QtQuick
import QtQuick.Window
import QtWebEngine
import QtQuick.Controls
import QtQuick.Layouts
ApplicationWindow {
id: window
visible: true
width: 800
height: 600
title: qsTr("WebEngineAction Example")
header: ToolBar {
RowLayout {
anchors.fill: parent
ToolButton {
property int itemAction: WebEngineView.Back
text: webEngineView.action(itemAction).text
enabled: webEngineView.action(itemAction).enabled
onClicked: webEngineView.action(itemAction).trigger()
icon.name: webEngineView.action(itemAction).iconName
display: AbstractButton.TextUnderIcon
}
ToolButton {
property int itemAction: WebEngineView.Forward
text: webEngineView.action(itemAction).text
enabled: webEngineView.action(itemAction).enabled
onClicked: webEngineView.action(itemAction).trigger()
icon.name: webEngineView.action(itemAction).iconName
display: AbstractButton.TextUnderIcon
}
ToolButton {
property int itemAction: webEngineView.loading ? WebEngineView.Stop : WebEngineView.Reload
text: webEngineView.action(itemAction).text
enabled: webEngineView.action(itemAction).enabled
onClicked: webEngineView.action(itemAction).trigger()
icon.name: webEngineView.action(itemAction).iconName
display: AbstractButton.TextUnderIcon
}
TextField {
Layout.fillWidth: true
text: webEngineView.url
selectByMouse: true
onEditingFinished: webEngineView.url = utils.fromUserInput(text)
}
ToolButton {
id: settingsButton
text: "Settings"
icon.name: "settings-configure"
display: AbstractButton.TextUnderIcon
onClicked: settingsMenu.open()
checked: settingsMenu.visible
Menu {
id: settingsMenu
y: settingsButton.height
MenuItem {
id: customContextMenuOption
checkable: true
checked: true
text: "Custom context menu"
}
}
}
}
}
WebEngineView {
id: webEngineView
url: "https://qt.io"
anchors.fill: parent
Component.onCompleted: {
profile.downloadRequested.connect(function(download){
download.accept();
})
}
property Menu contextMenu: Menu {
Repeater {
model: [
WebEngineView.Back,
WebEngineView.Forward,
WebEngineView.Reload,
WebEngineView.SavePage,
WebEngineView.Copy,
WebEngineView.Paste,
WebEngineView.Cut
]
MenuItem {
text: webEngineView.action(modelData).text
enabled: webEngineView.action(modelData).enabled
onClicked: webEngineView.action(modelData).trigger()
icon.name: webEngineView.action(modelData).iconName
display: MenuItem.TextBesideIcon
}
}
}
onContextMenuRequested: function(request) {
if (customContextMenuOption.checked) {
request.accepted = true;
contextMenu.popup();
}
}
}
}
|