Warning, /network/angelfish/lib/contents/ui/JavaScriptDialogSheet.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-FileCopyrightText: 2020 Jonah BrĂ¼chert <jbb@kaidan.im>
0002 //
0003 // SPDX-License-Identifier: GPL-2.0-or-later
0004
0005 import QtQuick 2.7
0006 import QtQuick.Controls 2.2 as Controls
0007 import org.kde.kirigami 2.20 as Kirigami
0008 import QtQuick.Layouts 1.2
0009
0010 import QtWebEngine 1.4
0011
0012 Kirigami.PromptDialog {
0013 id: root
0014 property JavaScriptDialogRequest request
0015
0016 onAccepted: root.request.dialogAccept()
0017 onRejected: root.request.dialogReject()
0018
0019 onVisibleChanged: {
0020 if (root.visible) {
0021 switch(request.type) {
0022 case JavaScriptDialogRequest.DialogTypeAlert:
0023 root.standardButtons = Kirigami.Dialog.Close;
0024 root.customFooterActions = [];
0025 inputField.visible = false;
0026 break;
0027 case JavaScriptDialogRequest.DialogTypeConfirm:
0028 root.standardButtons = Kirigami.Dialog.Ok | Kirigami.Dialog.Cancel;
0029 root.customFooterActions = [];
0030 inputField.visible = false;
0031 break;
0032 case JavaScriptDialogRequest.DialogTypePrompt:
0033 root.standardButtons = Kirigami.Dialog.Cancel;
0034 root.customFooterActions = [root.submitAction];
0035 inputField.text = "";
0036 inputField.visible = true;
0037 break;
0038 case JavaScriptDialogRequest.DialogTypeBeforeUnload:
0039 root.standardButtons = Kirigami.Dialog.NoButton
0040 root.customFooterActions = [root.leavePageAction];
0041 inputField.visible = false;
0042 break;
0043 }
0044 } else {
0045 root.request.dialogReject()
0046 }
0047 }
0048
0049 title: i18n("This page says")
0050
0051 ColumnLayout {
0052 spacing: Kirigami.Units.smallSpacing
0053
0054 Controls.Label {
0055 Layout.fillWidth: true
0056 wrapMode: Text.Wrap
0057 text: {
0058 if (request) {
0059 if (request.message) {
0060 return request.message
0061 }
0062
0063 if (request.type == JavaScriptDialogRequest.DialogTypeBeforeUnload) {
0064 return i18n("The website asks for confirmation that you want to leave. Unsaved information might not be saved.")
0065 }
0066 }
0067
0068 return ""
0069 }
0070 }
0071
0072 Controls.TextField {
0073 id: inputField
0074 Layout.fillWidth: true
0075 }
0076 }
0077
0078 property var leavePageAction: Kirigami.Action {
0079 text: i18n("Leave page")
0080 onTriggered: {
0081 root.request.dialogAccept()
0082 root.close()
0083 }
0084 }
0085
0086 property var submitAction: Kirigami.Action {
0087 text: i18n("Submit")
0088 icon.name: "dialog-ok"
0089 onTriggered: {
0090 root.request.dialogAccept(inputField.text)
0091 root.close()
0092 }
0093 }
0094 }