Warning, /multimedia/haruna/src/qml/Haruna/Components/InputPopup.qml is written in an unsupported language. File is not indexed.

0001 /*
0002  * SPDX-FileCopyrightText: 2022 George Florea Bănuș <georgefb899@gmail.com>
0003  *
0004  * SPDX-License-Identifier: GPL-3.0-or-later
0005  */
0006 
0007 import QtQuick
0008 import QtQuick.Controls
0009 import QtQuick.Layouts
0010 
0011 Popup {
0012     id: root
0013 
0014     signal urlOpened(string url)
0015     property string lastUrl: ""
0016     property string buttonText: ""
0017 
0018     modal: true
0019 
0020     onOpened: {
0021         openUrlTextField.forceActiveFocus(Qt.MouseFocusReason)
0022         openUrlTextField.selectAll()
0023     }
0024 
0025     RowLayout {
0026         anchors.fill: parent
0027 
0028         Label {
0029             text: i18nc("@info", "Neither <a href=\"https://github.com/yt-dlp/yt-dlp\">yt-dlp</a> nor <a href=\"https://github.com/ytdl-org/youtube-dl\">youtube-dl</a> was found.")
0030             visible: !app.hasYoutubeDl()
0031             onLinkActivated: Qt.openUrlExternally(link)
0032         }
0033 
0034         TextField {
0035             id: openUrlTextField
0036 
0037             text: root.lastUrl
0038             visible: app.hasYoutubeDl()
0039             Layout.preferredWidth: 400
0040             Layout.fillWidth: true
0041 
0042             Keys.onPressed: function(event) {
0043                 switch(event.key) {
0044                 case Qt.Key_Enter:
0045                 case Qt.Key_Return:
0046                     openUrlButton.clicked()
0047                     return;
0048                 case Qt.Key_Escape:
0049                     openUrlPopup.close()
0050                     return;
0051                 }
0052             }
0053         }
0054 
0055         Button {
0056             id: openUrlButton
0057 
0058             visible: app.hasYoutubeDl()
0059             text: root.buttonText
0060 
0061             onClicked: {
0062                 root.urlOpened(openUrlTextField.text)
0063                 root.close()
0064                 openUrlTextField.clear()
0065             }
0066         }
0067     }
0068 }