Warning, /multimedia/rattlesnake/EditPage.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-FileCopyrightText: 2023 Mathis BrĂ¼chert <mbb@kaidan.im> 0002 // 0003 // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0004 0005 import QtQuick 2.12 0006 import QtQuick.Window 2.12 0007 import QtQuick.Controls 2.14 0008 import QtQuick.Layouts 1.12 0009 import org.kde.kirigami 2.10 as Kirigami 0010 import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm 0011 0012 import org.kde.rattlesnake 1.0 0013 0014 import "components" 0015 0016 Kirigami.ScrollablePage { 0017 id:root 0018 title: qsTr("Edit beat") 0019 Kirigami.Theme.colorSet: Kirigami.Theme.Window 0020 padding: 0 0021 0022 ActionButton { 0023 parent: overlay 0024 x: root.width - width - margin 0025 y: applicationWindow().height - height - pageStack.globalToolBar.preferredHeight - margin 0026 singleAction: Kirigami.Action { 0027 icon.name: "list-add" 0028 text: qsTr("Add Beat") 0029 onTriggered: Metronome.addNote(0) 0030 } 0031 0032 } 0033 ColumnLayout { 0034 MobileForm.FormCard { 0035 Layout.topMargin: Kirigami.Units.largeSpacing 0036 Layout.fillWidth: true 0037 contentItem: ColumnLayout { 0038 spacing:0 0039 Repeater { 0040 model: Metronome.notes 0041 delegate: ColumnLayout { 0042 spacing:0 0043 Layout.margins: 0 0044 MobileForm.AbstractFormDelegate { 0045 background: Rectangle { 0046 color: index === Metronome.currentIndex ?Kirigami.Theme.highlightColor:"transparent" 0047 opacity: 0.2 0048 0049 } 0050 contentItem: ColumnLayout { 0051 id: delegateLayout 0052 ButtonGroup { 0053 buttons: column.children 0054 } 0055 RowLayout { 0056 Layout.fillWidth: true 0057 Layout.fillHeight: true 0058 Item { 0059 width: deleteButton.width 0060 visible: index > 0 0061 } 0062 0063 Item { Layout.fillWidth: true } 0064 RowLayout { 0065 Layout.alignment: Qt.AlignHCenter 0066 Layout.fillWidth: true 0067 Layout.fillHeight: true 0068 id: column 0069 0070 InstrumentButton { 0071 belongsToIndex: index 0072 instrument: Metronome.D 0073 } 0074 0075 InstrumentButton { 0076 belongsToIndex: index 0077 instrument: Metronome.E 0078 } 0079 0080 InstrumentButton { 0081 belongsToIndex: index 0082 instrument: Metronome.F 0083 } 0084 } 0085 Item { Layout.fillWidth: true } 0086 0087 ToolButton { 0088 id: deleteButton 0089 visible: index > 0 0090 icon.name: "delete" 0091 onClicked: Metronome.removeNote(index) 0092 } 0093 } 0094 RowLayout { 0095 Layout.alignment: Qt.AlignHCenter 0096 Layout.fillWidth: true 0097 Layout.fillHeight: true 0098 ToolButton { 0099 icon.name: Metronome.notes[index].volume === 0 ? "audio-volume-muted" : (Metronome.notes[index].volume < 33 ? "audio-volume-low" : (Metronome.notes[index].volume < 66 ? "audio-volume-medium" : "audio-volume-high")) 0100 checkable: true 0101 checked: Metronome.notes[index].volume === 0 0102 onClicked: Metronome.notes[index].volume = 0 0103 0104 } 0105 Slider { 0106 id:slider 0107 Layout.alignment: Qt.AlignHCenter 0108 from: 0 0109 to: 100 0110 snapMode: Slider.SnapAlways 0111 stepSize: 10 0112 value: Metronome.notes[index].volume 0113 onMoved: Metronome.notes[index].volume = value 0114 } 0115 } 0116 } 0117 } 0118 MobileForm.FormDelegateSeparator { Layout.margins: 0 } 0119 0120 } 0121 } 0122 } 0123 } 0124 } 0125 }