Player screen: note and octave toises animated together
This commit is contained in:
parent
73c80eb307
commit
6850095533
3 changed files with 42 additions and 13 deletions
|
@ -111,10 +111,15 @@ Item {
|
||||||
width: parent.width * 0.8
|
width: parent.width * 0.8
|
||||||
height: parent.toise_h
|
height: parent.toise_h
|
||||||
|
|
||||||
note: tuner.note
|
//note: tuner.note
|
||||||
octave: tuner.octave
|
//octave: tuner.octave
|
||||||
|
|
||||||
onMultipleChanged: tuner.octave = index / 12
|
onReleased: {
|
||||||
|
octave = tuner.octave = index / 12
|
||||||
|
note = tuner.note = index % 12
|
||||||
|
toise_octave.index = tuner.octave - 1
|
||||||
|
toise_octave.updateFlickable()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
|
@ -132,6 +137,7 @@ Item {
|
||||||
|
|
||||||
// octave toise
|
// octave toise
|
||||||
ToiseFlickable {
|
ToiseFlickable {
|
||||||
|
id: toise_octave
|
||||||
anchors.top: main.is_portrait ? title_octave.bottom : toise.bottom
|
anchors.top: main.is_portrait ? title_octave.bottom : toise.bottom
|
||||||
anchors.topMargin: parent.margin_h
|
anchors.topMargin: parent.margin_h
|
||||||
|
|
||||||
|
@ -148,11 +154,20 @@ Item {
|
||||||
width: parent.width * 0.6
|
width: parent.width * 0.6
|
||||||
height: parent.toise_h
|
height: parent.toise_h
|
||||||
|
|
||||||
index: tuner.octave - 1
|
//index: tuner.octave - 1
|
||||||
onIndexChanged: {
|
onReleased: {
|
||||||
// tuner.note = (tuner.note % 12) * (index + 1)
|
tuner.octave = index + 1
|
||||||
// tuner.octave = index + 1
|
toise.octave = tuner.octave
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// update toise indexes if tuner note and octave changed from exterior
|
||||||
|
function update() {
|
||||||
|
toise.note = tuner.note
|
||||||
|
toise.octave = tuner.octave
|
||||||
|
toise_octave.index = tuner.octave - 1
|
||||||
|
}
|
||||||
|
|
||||||
|
Component.onCompleted: update()
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,4 +61,10 @@ ToiseFlickable {
|
||||||
// ToiseFlikcable parameters
|
// ToiseFlikcable parameters
|
||||||
min: notes_en.length * 1 // ut 1
|
min: notes_en.length * 1 // ut 1
|
||||||
max: notes_en.length * 9 - 1 // si 8
|
max: notes_en.length * 9 - 1 // si 8
|
||||||
|
|
||||||
|
onOctaveChanged: {
|
||||||
|
index = note + notes_en.length * octave
|
||||||
|
updateFlickable()
|
||||||
|
}
|
||||||
|
onNoteChanged: console.log(note)
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,6 +24,7 @@ import QtQuick 2.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Toise {
|
Toise {
|
||||||
|
id: toise_flickable
|
||||||
property bool flik_enable: true
|
property bool flik_enable: true
|
||||||
|
|
||||||
property int multiple: index % nb_marks
|
property int multiple: index % nb_marks
|
||||||
|
@ -31,8 +32,8 @@ Toise {
|
||||||
property double p_min: index2pos(min)
|
property double p_min: index2pos(min)
|
||||||
property double p_max: index2pos(max)
|
property double p_max: index2pos(max)
|
||||||
|
|
||||||
|
signal released()
|
||||||
animation_enabled: false
|
//animation_enabled: false
|
||||||
|
|
||||||
MouseArea {
|
MouseArea {
|
||||||
property int refX: 0
|
property int refX: 0
|
||||||
|
@ -43,6 +44,7 @@ Toise {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
|
||||||
onPressed: {
|
onPressed: {
|
||||||
|
animation_enabled = false
|
||||||
refX = mouseX
|
refX = mouseX
|
||||||
refPos = position
|
refPos = position
|
||||||
}
|
}
|
||||||
|
@ -58,10 +60,16 @@ Toise {
|
||||||
first_mark = Math.floor(position) % nb_marks
|
first_mark = Math.floor(position) % nb_marks
|
||||||
}
|
}
|
||||||
onReleased: {
|
onReleased: {
|
||||||
var p = index2pos(index)
|
updateFlickable()
|
||||||
position = p
|
animation_enabled = true
|
||||||
delta = position - Math.floor(position)
|
toise_flickable.released()
|
||||||
//console.log("index:" + index)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function updateFlickable() {
|
||||||
|
var p = index2pos(index)
|
||||||
|
delta = Qt.binding(function() { return position - Math.floor(position) })
|
||||||
|
first_mark = Qt.binding(function() { return Math.floor(position) % nb_marks })
|
||||||
|
position = p
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue