Warning, /multimedia/audiotube/src/contents/ui/ShareMenu.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-FileCopyrightText: 2019 Nicolas Fella <nicolas.fella@gmx.de>
0002 // SPDX-FileCopyrightText: 2023 Mathis BrĂ¼chert <mbb@kaidan.im>
0003 // SPDX-License-Identifier: GPL-2.0-or-later
0004
0005 import QtQuick.Controls as Controls
0006 import QtQuick.Layouts 1.7
0007 import QtQuick 2.7
0008 import QtQuick.Window 2.15
0009
0010 import org.kde.kirigami 2.20 as Kirigami
0011 import org.kde.kirigami.delegates as KirigamiDelegates
0012 import org.kde.kirigamiaddons.components 1.0 as Components
0013 import org.kde.purpose 1.0 as Purpose
0014
0015 import org.kde.ytmusic 1.0
0016
0017 Item{
0018 id:root
0019 property url url
0020 property string inputTitle
0021 function open(){
0022 if (Kirigami.Settings.isMobile){
0023 inputDrawer.open()
0024 inputDrawer.interactive = true
0025 drawerView.inputData = {
0026 "urls": [root.url.toString()],
0027 "title": "Title"
0028
0029 }
0030 } else {
0031 inputSheet.open()
0032 view.inputData = {
0033 "urls": [root.url.toString()],
0034 "title": "Title"
0035 }
0036 }
0037 }
0038
0039 Kirigami.Dialog {
0040 id: inputSheet
0041 title: i18n("Share to")
0042 preferredWidth: Kirigami.Units.gridUnit * 16
0043 standardButtons: Kirigami.Dialog.NoButton
0044 ColumnLayout {
0045 spacing:0
0046 KirigamiDelegates.SubtitleDelegate {
0047 Layout.fillWidth: true
0048 icon.name: "edit-copy"
0049 text: i18n("Copy Link")
0050 visible: view.depth === 1
0051 onClicked: {
0052 Clipboard.text = root.url
0053 inputSheet.close()
0054 applicationWindow().showPassiveNotification(i18n("Link copied to clipboard"))
0055 }
0056 }
0057 Purpose.AlternativesView {
0058 Layout.fillHeight: true
0059 Layout.fillWidth: true
0060 id: view
0061 pluginType: "ShareUrl"
0062 clip: true
0063
0064 delegate: Controls.ItemDelegate {
0065 onClicked: view.createJob (shareDelegate.index)
0066
0067 contentItem: KirigamiDelegates.IconTitleSubtitle {
0068 id: shareDelegate
0069
0070 required property string iconName
0071 required property int index
0072 required property string actionDisplay
0073
0074 title: shareDelegate.actionDisplay
0075 Keys.onReturnPressed: view.createJob (shareDelegate.index)
0076 Keys.onEnterPressed: view.createJob (shareDelegate.index)
0077 icon.name: shareDelegate.iconName
0078
0079 Kirigami.Icon {
0080 implicitWidth: Kirigami.Units.iconSizes.small
0081 implicitHeight: Kirigami.Units.iconSizes.small
0082 source: "arrow-right"
0083 }
0084 }
0085 }
0086
0087 onFinished: inputSheet.close()
0088 }
0089 }
0090 }
0091
0092 Components.BottomDrawer {
0093 id: inputDrawer
0094
0095 parent: applicationWindow().overlay
0096
0097 drawerContentItem: ColumnLayout {
0098 spacing:0
0099 KirigamiDelegates.SubtitleDelegate {
0100 Layout.fillWidth: true
0101 icon.name: "edit-copy"
0102 text: i18n("Copy Link")
0103 visible: drawerView.depth === 1
0104 onClicked: {
0105 Clipboard.text = root.url
0106 inputDrawer.close()
0107 applicationWindow().showPassiveNotification(i18n("Link copied to clipboard"))
0108 }
0109 }
0110 Purpose.AlternativesView {
0111 id: drawerView
0112 pluginType: "ShareUrl"
0113 clip: true
0114 Layout.fillHeight: true
0115 Layout.fillWidth: true
0116 delegate: KirigamiDelegates.SubtitleDelegate {
0117 id: shareDrawerDelegate
0118
0119 required property string iconName
0120 required property int index
0121
0122 text: shareDrawerDelegate.display
0123 onClicked: drawerView.createJob (shareDrawerDelegate.index)
0124 Keys.onReturnPressed: view.createJob (shareDrawerDelegate.index)
0125 Keys.onEnterPressed: view.createJob (shareDrawerDelegate.index)
0126 icon.name: shareDrawerDelegate.iconName
0127
0128 Kirigami.Icon {
0129 implicitWidth: Kirigami.Units.iconSizes.small
0130 implicitHeight: Kirigami.Units.iconSizes.small
0131 source: "arrow-right"
0132 }
0133 }
0134
0135 onFinished: inputDrawer.close()
0136 }
0137
0138 Item{
0139 Layout.fillHeight: true
0140 }
0141
0142 }
0143 }
0144 }