Warning, /multimedia/elisa/src/qml/mobile/MobileMediaTrackMetadataView.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 SPDX-FileCopyrightText: 2017 (c) Alexander Stippich <a.stippich@gmx.net> 0003 SPDX-FileCopyrightText: 2018 (c) Matthieu Gallien <matthieu_gallien@yahoo.fr> 0004 SPDX-FileCopyrightText: 2020 (c) Devin Lin <espidev@gmail.com> 0005 0006 SPDX-License-Identifier: LGPL-3.0-or-later 0007 */ 0008 0009 0010 import QtQuick 2.7 0011 import QtQuick.Controls 2.2 0012 import QtQuick.Window 2.2 0013 import QtQml.Models 2.2 0014 import QtQuick.Layouts 1.2 0015 import org.kde.kirigami 2.13 as Kirigami 0016 import org.kde.elisa 1.0 0017 0018 import ".." 0019 0020 Kirigami.ScrollablePage { 0021 id: trackMetadata 0022 0023 property url fileName 0024 property bool editableMetadata 0025 property bool showTrackFileName 0026 0027 property alias modelType: metadataForm.modelType 0028 property alias isModifying: metadataForm.isModifying 0029 property alias isCreating: metadataForm.isCreating 0030 property alias canAddMoreMetadata: metadataForm.canAddMoreMetadata 0031 property alias showImage: metadataForm.showImage 0032 property alias showDeleteButton: metadataForm.showDeleteButton 0033 0034 signal rejected() 0035 0036 onBackRequested: event => { 0037 if (realModel.isDirty) { 0038 metadataForm.dirtyClosingDialog.open() 0039 event.accepted = true 0040 } 0041 } 0042 0043 LayoutMirroring.enabled: Qt.application.layoutDirection == Qt.RightToLeft 0044 LayoutMirroring.childrenInherit: true 0045 0046 title: isCreating ? i18nc("@title:window", "Create a Radio") : 0047 i18nc("@title:window", "View details") 0048 0049 actions: [ 0050 Kirigami.Action { 0051 icon.name: 'document-edit' 0052 text: i18nc("@action:button", "Modify") 0053 onTriggered: metadataForm.isModifying = true 0054 visible: !metadataForm.isModifying && !metadataForm.isCreating 0055 }, 0056 Kirigami.Action { 0057 icon.name: "dialog-ok-apply" 0058 text: i18nc("@action:button", "Save") 0059 onTriggered: metadataForm.isCreating ? metadataForm.applyAndClose() : metadataForm.apply() 0060 visible: metadataForm.isModifying || metadataForm.isCreating 0061 }, 0062 Kirigami.Action { 0063 icon.name: 'dialog-cancel' 0064 text: i18nc("@action:button", "Cancel") 0065 onTriggered: metadataForm.isCreating ? metadataForm.cancelAndClose() : metadataForm.cancel() 0066 visible: metadataForm.isModifying || metadataForm.isCreating 0067 }, 0068 Kirigami.Action { 0069 icon.name: 'delete' 0070 text: i18nc("@action:button", "Delete") 0071 onTriggered: metadataForm.deleteItem() 0072 visible: showDeleteButton && !isCreating 0073 } 0074 ] 0075 0076 Component.onCompleted: { 0077 if (ElisaApplication.musicManager) { 0078 if (isCreating) { 0079 realModel.initializeForNewRadio() 0080 } else { 0081 realModel.initializeByUrl(modelType, fileName) 0082 } 0083 } 0084 } 0085 0086 ColumnLayout { 0087 Layout.minimumWidth: parent.width 0088 Layout.maximumWidth: parent.width 0089 0090 Connections { 0091 target: ElisaApplication 0092 0093 function onMusicManagerChanged() { 0094 if (isCreating) { 0095 realModel.initializeForNewRadio() 0096 } else { 0097 realModel.initializeByUrl(modelType, fileName) 0098 } 0099 } 0100 } 0101 0102 EditableTrackMetadataModel { 0103 id: realModel 0104 manager: ElisaApplication.musicManager 0105 } 0106 0107 // file location 0108 RowLayout { 0109 id: fileNameRow 0110 visible: showTrackFileName 0111 0112 spacing: Kirigami.Units.largeSpacing 0113 0114 Kirigami.Icon { 0115 Layout.preferredWidth: fileNameLabel.height 0116 Layout.preferredHeight: fileNameLabel.height 0117 0118 source: elisaTheme.folderIcon 0119 } 0120 0121 LabelWithToolTip { 0122 id: fileNameLabel 0123 0124 Layout.fillWidth: true 0125 text: realModel.fileUrl 0126 wrapMode: Text.Wrap 0127 elide: Text.ElideRight 0128 } 0129 } 0130 0131 MediaTrackMetadataForm { 0132 id: metadataForm 0133 0134 Layout.fillWidth: true 0135 0136 metadataModel: realModel 0137 onClose: mainWindow.pageStack.layers.pop() 0138 } 0139 } 0140 }