Warning, /plasma/aura-browser/app/qml/mainSandbox.qml is written in an unsupported language. File is not indexed.
0001 /*
0002 SPDX-FileCopyrightText: 2022 Aditya Mehra <aix.m@outlook.com>
0003
0004 SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006
0007 import QtQuick 2.12
0008 import QtQuick.Window 2.12
0009 import QtQuick.Layouts 1.12
0010 import QtQuick.Controls 2.12 as Controls
0011 import QtQuick.LocalStorage 2.12
0012 import "views" as Views
0013 import "delegates" as Delegates
0014 import "code/RecentStorage.js" as RecentStorage
0015 import "code/BookmarkStorage.js" as BookmarkStorage
0016 import "code/Utils.js" as Utils
0017 import Aura 1.0 as Aura
0018 import QtWebEngine 1.7
0019 import QtQuick.VirtualKeyboard
0020 import QtQuick.VirtualKeyboard.Settings
0021 import org.kde.kirigami as Kirigami
0022
0023 Kirigami.AbstractApplicationWindow {
0024 id: root
0025 visible: true
0026 width: Screen.desktopAvailableWidth
0027 height: Screen.desktopAvailableHeight
0028 title: i18n("Aura-Browser")
0029 property int virtualMouseMoveSpeed: 10
0030 signal settingsTabRequested
0031 signal blurFieldRequested
0032 signal mouseActivationRequested
0033 signal mouseDeActivationRequested
0034 signal ignoreInputRequested
0035 visibility: "FullScreen"
0036
0037 globalDrawer: Kirigami.GlobalDrawer {
0038 id: gDrawer
0039 handleVisible: false
0040
0041 onOpened: {
0042 quitButton.forceActiveFocus();
0043 }
0044
0045 Controls.Label {
0046 id: bblabl
0047 text: i18n("Press 'esc' or the [←] Back button to close")
0048 Layout.alignment: Qt.AlignRight
0049 }
0050
0051 Kirigami.Separator {
0052 Layout.fillWidth: true
0053 Layout.preferredHeight: 1
0054 }
0055
0056 Controls.Button {
0057 id: quitButton
0058 Layout.fillWidth: true
0059 Layout.preferredHeight: Kirigami.Units.gridUnit * 4
0060
0061 background: Rectangle {
0062 color: quitButton.activeFocus ? Kirigami.Theme.highlightColor : Kirigami.Theme.backgroundColor
0063 border.color: Kirigami.Theme.disabledTextColor
0064 }
0065
0066 contentItem: RowLayout {
0067 Kirigami.Icon {
0068 source: "window-close"
0069 Layout.preferredWidth: Kirigami.Units.iconSizes.medium
0070 Layout.preferredHeight: Kirigami.Units.iconSizes.medium
0071 }
0072
0073 Controls.Label {
0074 Layout.fillWidth: true
0075 text: i18n("Quit")
0076 }
0077 }
0078
0079 onClicked: (mouse)=> {
0080 root.close();
0081 }
0082
0083 Keys.onReturnPressed: (event)=> {
0084 root.close();
0085 }
0086 }
0087 }
0088
0089 Component.onCompleted: {
0090 Cursor.setStep(Aura.GlobalSettings.virtualMouseSpeed);
0091 if(Aura.GlobalSettings.firstRun){
0092 RecentStorage.dbInit();
0093 BookmarkStorage.dbInit();
0094 BookmarkStorage.prePopulateBookmarks();
0095 Aura.GlobalSettings.setFirstRun(false);
0096 }
0097 keyFilter.startFilter();
0098 }
0099
0100 Connections {
0101 target: Aura.GlobalSettings
0102
0103 function onFocusOnVKeyboard() {
0104 mouseDeActivationRequested();
0105 }
0106 function onFocusOffVKeyboard() {
0107 ignoreInputRequested();
0108 }
0109 }
0110
0111 SandboxLoader {
0112 anchors.fill: parent
0113 }
0114
0115 InputPanel {
0116 id: inputPanel
0117 z: 99
0118 x: 0
0119 y: root.height
0120 width: root.width
0121
0122 onActiveChanged: {
0123 if(!active){
0124 keyFilter.startFilter();
0125 blurFieldRequested();
0126 } else {
0127 keyFilter.stopFilter();
0128 }
0129 }
0130
0131 states: State {
0132 name: "visible"
0133 when: inputPanel.active
0134 PropertyChanges {
0135 target: inputPanel
0136 y: parent.height - inputPanel.height
0137 }
0138 }
0139
0140 transitions: Transition {
0141 from: ""
0142 to: "visible"
0143 reversible: true
0144 ParallelAnimation {
0145 NumberAnimation {
0146 properties: "y"
0147 duration: 250
0148 easing.type: Easing.InOutQuad
0149 }
0150 }
0151 }
0152 }
0153 }