Warning, /education/minuet/src/app/qml/MinuetMenu.qml is written in an unsupported language. File is not indexed.
0001 /**************************************************************************** 0002 ** 0003 ** Copyright (C) 2016 by Sandro S. Andrade <sandroandrade@kde.org> 0004 ** 0005 ** This program is free software; you can redistribute it and/or 0006 ** modify it under the terms of the GNU General Public License as 0007 ** published by the Free Software Foundation; either version 2 of 0008 ** the License or (at your option) version 3 or any later version 0009 ** accepted by the membership of KDE e.V. (or its successor approved 0010 ** by the membership of KDE e.V.), which shall act as a proxy 0011 ** defined in Section 14 of version 3 of the license. 0012 ** 0013 ** This program is distributed in the hope that it will be useful, 0014 ** but WITHOUT ANY WARRANTY; without even the implied warranty of 0015 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0016 ** GNU General Public License for more details. 0017 ** 0018 ** You should have received a copy of the GNU General Public License 0019 ** along with this program. If not, see <http://www.gnu.org/licenses/>. 0020 ** 0021 ****************************************************************************/ 0022 0023 import QtQuick 2.7 0024 import QtQuick.Controls 2.0 0025 import QtQuick.Layouts 1.3 0026 0027 Item { 0028 anchors.fill: parent 0029 //spacing: 0 0030 0031 property var currentExercise: undefined 0032 0033 signal backPressed 0034 0035 QtObject { 0036 id: internal 0037 property variant exercisePath: [] 0038 } 0039 0040 Image { 0041 id: image 0042 0043 source: "qrc:/qml/images/minuet-drawer.png" 0044 width: parent.width; height: 0.53125 * width 0045 fillMode: Image.PreserveAspectFit 0046 } 0047 0048 Item { 0049 id: breadcrumb 0050 0051 width: parent.width; height: (stackView.depth > 1) ? 50:0 0052 anchors.top: image.bottom 0053 clip: true 0054 RowLayout { 0055 anchors.fill: parent 0056 Image { 0057 id: backButton 0058 0059 fillMode: Image.Pad 0060 width: 24; height: 24 0061 horizontalAlignment: Image.AlignHCenter 0062 verticalAlignment: Image.AlignVCenter 0063 source: "qrc:/keyboard_arrow_left.png" 0064 } 0065 0066 Label { 0067 id: currentExerciseParent 0068 text: "" 0069 elide: Label.ElideRight 0070 font { weight: Font.Bold; pixelSize: 12 } 0071 verticalAlignment: Qt.AlignVCenter 0072 Layout.fillWidth: true 0073 } 0074 0075 } 0076 MouseArea { 0077 anchors.fill: parent 0078 onClicked: { 0079 /* 0080 frame.visible = true 0081 stackView.currentExerciseMenuItem = null 0082 */ 0083 currentExercise = undefined 0084 stackView.pop() 0085 internal.exercisePath.pop() 0086 currentExerciseParent.text = i18nc("technical term, do you have a musician friend?", internal.exercisePath.toString()) 0087 backPressed() 0088 /* 0089 titleText = "Minuet" 0090 */ 0091 } 0092 } 0093 } 0094 0095 StackView { 0096 id: stackView 0097 0098 width: parent.width; height: parent.height - image.height - breadcrumb.height 0099 anchors.top: breadcrumb.bottom 0100 clip: true 0101 focus: true 0102 0103 Component { 0104 id: categoryMenu 0105 0106 ListView { 0107 delegate: ImageItemDelegate { 0108 id: control 0109 width: parent.width; height: 50 0110 text: i18nc("technical term, do you have a musician friend?", modelData.name) 0111 onClicked: { 0112 exerciseView.resetTest() 0113 var children = modelData.children 0114 if (!children) { 0115 currentExercise = modelData 0116 } 0117 else { 0118 internal.exercisePath.push(modelData.name) 0119 stackView.push(categoryMenu.createObject(stackView, {model: children})) 0120 currentExerciseParent.text = i18nc("technical term, do you have a musician friend?", modelData.name) 0121 } 0122 } 0123 } 0124 ScrollIndicator.vertical: ScrollIndicator { } 0125 } 0126 } 0127 0128 Component.onCompleted: { stackView.push(categoryMenu.createObject(stackView, {model: core.exerciseController.exercises})) } 0129 } 0130 }