/*SPDX-FileCopyrightText: 2023 Fushan Wen <qydwhotmail@gmail.com>SPDX-License-Identifier: GPL-2.0-or-later*/import QtCoreimport QtQuickimport QtQuick.Controls as QQC2import QtQuick.Dialogsimport org.kde.kirigami as Kirigamiimport org.kde.kcmutils as KCMRow {id: urlRequesterrequired property url locationrequired property url defaultLocationrequired property int textFieldWidthreadonly property int implicitTextFieldWidth: metrics.width + textField.leftPadding + textField.rightPadding/*** Emitted when the user selects a new folder*/signal newLocationSelected(url newLocation)spacing: Kirigami.Units.smallSpacingTextMetrics {id: metricstext: textField.text}Component {id: fileDialogComponentFolderDialog {id: fileDialogcurrentFolder: StandardPaths.standardLocations(StandardPaths.HomeLocation)[0]onAccepted: {urlRequester.newLocationSelected(selectedFolder);destroy();}onRejected: destroy()Component.onCompleted: open()}}KCM.SettingHighlighter {highlight: location !== defaultLocation}QQC2.TextField {id: textFieldwidth: urlRequester.textFieldWidthheight: Math.max(fileDialogButton.implicitHeight, textField.implicitHeight)text: location.toString().substr(7)readOnly: trueAccessible.description: urlRequester.Accessible.descriptionQQC2.ToolTip.text: urlRequester.Accessible.descriptionQQC2.ToolTip.delay: Kirigami.Units.toolTipDelayQQC2.ToolTip.visible: textField.hovered}QQC2.Button {id: fileDialogButtonanchors.verticalCenter: textField.verticalCenterdisplay: QQC2.AbstractButton.IconOnlyicon.name: "document-open"text: i18nc("@action:button", "Choose new location")Accessible.description: textQQC2.ToolTip.text: textQQC2.ToolTip.delay: Kirigami.Units.toolTipDelayQQC2.ToolTip.visible: fileDialogButton.hoveredonClicked: fileDialogComponent.incubateObject(urlRequester)}}