Warning, /plasma/aura-browser/app/qml/TopBar.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.Controls 2.12
0009 import QtQuick.Window 2.12
0010 import QtWebEngine 1.7
0011 import QtQuick.Layouts 1.12
0012 import QtQuick.LocalStorage 2.12
0013 import Aura 1.0 as Aura
0014 import "code/RecentStorage.js" as RecentStorage
0015 import "code/Utils.js" as Utils
0016 import Qt5Compat.GraphicalEffects
0017 import org.kde.kirigami as Kirigami
0018
0019 Rectangle {
0020 property bool viewFullscreenMode: false
0021 width: parent.width
0022 height: viewFullscreenMode ? 0 : Kirigami.Units.iconSizes.large + Kirigami.Units.largeSpacing
0023 color: Qt.lighter(Kirigami.Theme.backgroundColor, 1.2)
0024 layer.enabled: true
0025 z: 1000
0026 layer.effect: DropShadow {
0027 horizontalOffset: 0
0028 verticalOffset: 1
0029 radius: 8.0
0030 samples: 17
0031 color: Qt.rgba(0,0,0,0.6)
0032 }
0033
0034 Item {
0035 id: tbarLayout
0036 width: parent.width
0037 visible: viewFullscreenMode ? 0 : 1
0038 enabled: viewFullscreenMode ? 0 : 1
0039 height: Kirigami.Units.iconSizes.large
0040 anchors.centerIn: parent
0041
0042 Item {
0043 id: backButtonTopBar
0044 width: Kirigami.Units.iconSizes.large
0045 height: Kirigami.Units.iconSizes.large
0046 anchors.left: parent.left
0047
0048 Kirigami.Icon {
0049 width: Kirigami.Units.iconSizes.medium
0050 height: Kirigami.Units.iconSizes.medium
0051 anchors.centerIn: parent
0052 source: "arrow-left"
0053 }
0054
0055 MouseArea {
0056 anchors.fill: parent
0057 onClicked: (mouse)=> {
0058 Aura.NavigationSoundEffects.playClickedSound()
0059 webView.goBack()
0060 }
0061 }
0062 }
0063
0064 Item {
0065 id: forwardButtonTopBar
0066 width: Kirigami.Units.iconSizes.large
0067 height: Kirigami.Units.iconSizes.large
0068 anchors.left: backButtonTopBar.right
0069
0070 Kirigami.Icon {
0071 width: Kirigami.Units.iconSizes.medium
0072 height: Kirigami.Units.iconSizes.medium
0073 anchors.centerIn: parent
0074 source: "arrow-right"
0075 }
0076
0077 MouseArea {
0078 anchors.fill: parent
0079 onClicked: (mouse)=> {
0080 Aura.NavigationSoundEffects.playClickedSound()
0081 webView.goForward()
0082 }
0083 }
0084 }
0085
0086 Rectangle {
0087 id: homeButtonTopBar
0088 width: Kirigami.Units.iconSizes.large
0089 height: Kirigami.Units.iconSizes.large
0090 anchors.left: forwardButtonTopBar.right
0091 color: Qt.lighter(Kirigami.Theme.backgroundColor, 1.2)
0092
0093 Kirigami.Icon {
0094 width: Kirigami.Units.iconSizes.medium
0095 height: Kirigami.Units.iconSizes.medium
0096 anchors.centerIn: parent
0097 source: "go-home"
0098 }
0099
0100 MouseArea {
0101 anchors.fill: parent
0102
0103 onClicked: (mouse)=> {
0104 Aura.NavigationSoundEffects.playClickedSound()
0105 auraStack.currentIndex = 0
0106 auraStack.itemAt(0).focus = true
0107 auraStack.itemAt(0).forceActiveFocus();
0108 }
0109 }
0110 }
0111
0112 Rectangle {
0113 id: urlBox
0114 anchors.left: homeButtonTopBar.right
0115 anchors.right: bookmarkButtonTopBar.left
0116 anchors.leftMargin: Kirigami.Units.largeSpacing
0117 anchors.rightMargin: Kirigami.Units.largeSpacing
0118 anchors.verticalCenter: parent.verticalCenter
0119 height: Kirigami.Units.iconSizes.medium
0120 radius: 20
0121 color: Qt.lighter(Kirigami.Theme.backgroundColor, 1.5)
0122 border.color: Kirigami.Theme.disabledTextColor
0123 border.width: 0.5
0124
0125 Image {
0126 id: websiteImgIcon
0127 width: Kirigami.Units.iconSizes.small
0128 height: Kirigami.Units.iconSizes.small
0129 anchors.left: parent.left
0130 anchors.verticalCenter: parent.verticalCenter
0131 anchors.leftMargin: Kirigami.Units.largeSpacing
0132 source: webView.icon
0133 }
0134
0135 Kirigami.Separator {
0136 id: urlboxsept
0137 width: 1
0138 anchors.top: parent.top
0139 anchors.bottom: parent.bottom
0140 anchors.left: websiteImgIcon.right
0141 anchors.margins: Kirigami.Units.smallSpacing
0142 }
0143
0144 Item {
0145 anchors.left: urlboxsept.right
0146 anchors.leftMargin: Kirigami.Units.largeSpacing
0147 height: parent.height
0148 width: urlBox.width - (websiteImgIcon.width + refreshbtn.width + Kirigami.Units.largeSpacing * 4)
0149
0150 RowLayout {
0151 anchors.fill: parent
0152 anchors.verticalCenter: parent.verticalCenter
0153
0154 Label {
0155 maximumLineCount: 1
0156 Layout.maximumWidth: parent.width
0157 Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter
0158 wrapMode: Text.WrapAnywhere
0159 color: Kirigami.Theme.textColor
0160 text: webView.url
0161 }
0162 }
0163 }
0164
0165 MouseArea {
0166 anchors.fill: parent
0167 onClicked: (mouse)=> {
0168 Aura.NavigationSoundEffects.playClickedSound()
0169 localUrlEntryDrawer.open()
0170 }
0171 }
0172
0173 Item {
0174 id: refreshbtn
0175 anchors.right: parent.right
0176 width: Kirigami.Units.iconSizes.medium
0177 height: parent.height
0178 anchors.verticalCenter: parent.verticalCenter
0179
0180 Kirigami.Icon {
0181 source: "refactor"
0182 width: Kirigami.Units.iconSizes.small
0183 height: Kirigami.Units.iconSizes.small
0184 anchors.centerIn: parent
0185 }
0186
0187 MouseArea {
0188 anchors.fill: parent
0189 onClicked: (mouse)=> {
0190 Aura.NavigationSoundEffects.playClickedSound()
0191 webView.reload()
0192 }
0193 }
0194 }
0195 }
0196
0197
0198 Item {
0199 id: bookmarkButtonTopBar
0200 width: Kirigami.Units.iconSizes.large
0201 height: Kirigami.Units.iconSizes.large
0202 anchors.right: adblockButtonTopBar.left
0203
0204 Kirigami.Icon {
0205 width: Kirigami.Units.iconSizes.medium
0206 height: Kirigami.Units.iconSizes.medium
0207 anchors.centerIn: parent
0208 source: "bookmark-new"
0209 }
0210
0211 MouseArea {
0212 anchors.fill: parent
0213 onClicked: (mouse)=> {
0214 Aura.NavigationSoundEffects.playClickedSound()
0215 bookmarkTabManager.bookmarkStack = 1
0216 bookmarkTabManager.preBookmarkName = webView.title
0217 bookmarkTabManager.preBookmarkUrl = webView.url
0218 bookmarkTabManager.open()
0219 }
0220 }
0221 }
0222
0223 Item {
0224 id: adblockButtonTopBar
0225 width: Kirigami.Units.iconSizes.large
0226 height: Kirigami.Units.iconSizes.large
0227 anchors.right: tabButtonTopBar.left
0228
0229 Kirigami.Icon {
0230 width: Kirigami.Units.iconSizes.medium
0231 height: Kirigami.Units.iconSizes.medium
0232 anchors.centerIn: parent
0233 source: "draw-polygon"
0234 color: Aura.GlobalSettings.adblockEnabled ? "green" : "red"
0235
0236 Label {
0237 color: Kirigami.Theme.textColor
0238 width: parent.width
0239 height: parent.height
0240 horizontalAlignment: Text.AlignHCenter
0241 verticalAlignment: Text.AlignVCenter
0242 fontSizeMode: Text.Fit
0243 minimumPixelSize: 2
0244 font.bold: true
0245 font.pixelSize: parent.height * 0.5
0246 font.strikeout: !Aura.GlobalSettings.adblockEnabled
0247 text: i18n("A")
0248 }
0249 }
0250
0251 MouseArea {
0252 anchors.fill: parent
0253 onClicked: (mouse)=> {
0254 Aura.NavigationSoundEffects.playClickedSound()
0255 if(Aura.GlobalSettings.adblockEnabled){
0256 Aura.GlobalSettings.setAdblockEnabled(false);
0257 } else {
0258 Aura.GlobalSettings.setAdblockEnabled(true);
0259 }
0260 }
0261 }
0262 }
0263
0264 Item {
0265 id: tabButtonTopBar
0266 width: Kirigami.Units.iconSizes.large
0267 height: Kirigami.Units.iconSizes.large
0268 anchors.right: parent.right
0269
0270 Kirigami.Icon {
0271 width: Kirigami.Units.iconSizes.medium
0272 height: Kirigami.Units.iconSizes.medium
0273 anchors.centerIn: parent
0274 source: "layer-duplicate"
0275 }
0276
0277 MouseArea {
0278 anchors.fill: parent
0279 onClicked: (mouse)=> {
0280 Aura.NavigationSoundEffects.playClickedSound()
0281 tabBarView.open()
0282 }
0283 }
0284 }
0285 }
0286 }