Warning, /plasma/aura-browser/app/qml/DownloadRequest.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 QtWebEngine 1.7
0010 import QtWebChannel 1.0
0011 import QtQuick.Layouts 1.12
0012 import org.kde.kirigami as Kirigami
0013 
0014 Item {
0015     property var download
0016     property var messageText
0017     property bool actionsVisible: true
0018     property bool isDownloading: false
0019     property var downloadBytes: download.receivedBytes
0020     property string downloadName
0021 
0022     onDownloadBytesChanged: {
0023         downloadProgressBar.value = downloadBytes / download.totalBytes
0024     }
0025 
0026     width: parent.width
0027     height: parent.height
0028 
0029     onMessageTextChanged: {
0030         message.text = messageText
0031     }
0032 
0033     RowLayout {
0034         anchors.fill: parent
0035 
0036         Label {
0037             id: message
0038             Layout.fillWidth: true
0039             Layout.leftMargin: Kirigami.Units.largeSpacing
0040             text: i18n("Do you want to download %1 file ?", downloadName)
0041             color: Kirigami.Theme.textColor
0042         }
0043 
0044         Button {
0045             id: downloadButton
0046             text: "Download"
0047             Layout.alignment: Qt.AlignRight
0048             Layout.preferredWidth: Kirigami.Units.iconSizes.large
0049             visible: actionsVisible && !isDownloading
0050             palette.buttonText: Kirigami.Theme.textColor
0051 
0052             background: Rectangle {
0053                 color: downloadButton.activeFocus ? Kirigami.Theme.highlightColor : Qt.lighter(Kirigami.Theme.backgroundColor, 1.2)
0054                 border.color: Kirigami.Theme.disabledTextColor
0055                 radius: 20
0056             }
0057 
0058             onClicked: (mouse)=> {
0059                 download.resume();
0060                 message.text = i18n("Downloading.. %1", downloadName)
0061                 isDownloading = true;
0062                 if(download.totalBytes != -1){
0063                     downloadProgressBar.indeterminate = false
0064                 } else {
0065                     downloadProgressBar.indeterminate = true
0066                 }
0067             }
0068         }
0069 
0070         ProgressBar {
0071             id: downloadProgressBar
0072             visible: isDownloading
0073             enabled: isDownloading
0074             Layout.preferredWidth: Kirigami.Units.iconSizes.large * 2
0075             Layout.preferredHeight: Kirigami.Units.iconSizes.medium
0076             Layout.alignment: Qt.AlignRight
0077             from: 0
0078             to: 1
0079         }
0080 
0081         Button {
0082             id: cancleButton
0083             text: i18n("Cancel")
0084             Layout.alignment: Qt.AlignRight
0085             Layout.preferredWidth: Kirigami.Units.iconSizes.large
0086             visible: actionsVisible
0087             palette.buttonText: Kirigami.Theme.textColor
0088 
0089             background: Rectangle {
0090                 color: cancleButton.activeFocus ? Kirigami.Theme.highlightColor : Qt.lighter(Kirigami.Theme.backgroundColor, 1.2)
0091                 border.color: Kirigami.Theme.disabledTextColor
0092                 radius: 20
0093             }
0094 
0095             onClicked: (mouse)=> {
0096                 download.cancel()
0097                 interactionBar.isRequested = false
0098             }
0099         }
0100 
0101         Button {
0102             id: closeButton
0103             Layout.alignment: Qt.AlignRight
0104             Layout.preferredWidth: Kirigami.Units.iconSizes.large - (Kirigami.Units.largeSpacing + Kirigami.Units.smallSpacing)
0105             Layout.preferredHeight: Kirigami.Units.iconSizes.large - (Kirigami.Units.largeSpacing + Kirigami.Units.smallSpacing)
0106             Layout.leftMargin: Kirigami.Units.largeSpacing
0107 
0108             background: Rectangle {
0109                 color: closeButton.activeFocus ? Kirigami.Theme.highlightColor : Qt.lighter(Kirigami.Theme.backgroundColor, 1.2)
0110                 border.color: Kirigami.Theme.disabledTextColor
0111                 radius: 200
0112             }
0113 
0114             Kirigami.Icon {
0115                 anchors.centerIn: parent
0116                 width: Kirigami.Units.iconSizes.medium
0117                 height: Kirigami.Units.iconSizes.medium
0118                 source: "window-close"
0119             }
0120 
0121             onClicked: (mouse)=> {
0122                 interactionBar.isRequested = false
0123             }
0124         }
0125     }
0126 }