Fixed BUG with inner timers.

This commit is contained in:
2017-08-29 23:03:22 +02:00
parent a111de5426
commit ebdcd75860
15 changed files with 208 additions and 8 deletions

View File

@@ -47,9 +47,22 @@ Page {
property int mRoundMs: settings.roundsMs
property int mRestMs: settings.restMs
property var mListOfInnerTimers: []
onStatusChanged: {
if (status === PageStatus.Active) {
Helper.pushPresetListPage();
Helper.pushPresetListPage()
var counter = 0
for (var i = 0; i < settingsColumn.children.length; i++) {
if (settingsColumn.children[i].objectName === 'innerSlider') {
// if (counter in mListOfInnerTimers) {
// counter++
// } else {
// settingsColumn.children[i].destroy()
// }
}
}
}
}
@@ -65,7 +78,8 @@ Page {
presetName.text,
roundsSlider.value,
roundsTimeSlider.value,
Converter.sToMs(restSlider.value)
Converter.sToMs(restSlider.value),
Helper.getListOfInnerTimers()
)
boxingTimer.loadPreset(presetName.text)
@@ -75,6 +89,20 @@ Page {
}
}
PushUpMenu {
MenuItem {
text: qsTr("Add inner time")
onClicked: Helper.addSliderForInnerTime()
}
MenuItem {
text: qsTr("Remove last inner time")
onClicked: Helper.removeLastSliderFromInnerTimers()
visible: mListOfInnerTimers.length
}
}
contentHeight: settingsColumn.height
Column {
@@ -136,6 +164,12 @@ Page {
label: qsTr("Total rounds")
}
SectionHeader {
text: qsTr("Inner timers")
visible: mListOfInnerTimers.length
}
}
}
}

View File

@@ -11,3 +11,64 @@ function playPauseTimer() {
boxingTimer.restore()
}
}
function addSliderForInnerTime(value) {
if (value === undefined) value = 5
var remainingTimeForInner = settingsPage.mRoundMs
var numberOfInnerTimers = settingsPage.mListOfInnerTimers.length
for (var i = 0; i < numberOfInnerTimers; i++) {
remainingTimeForInner -= settingsPage.mListOfInnerTimers[i].value
}
if (remainingTimeForInner > 0) {
var number = parseInt(numberOfInnerTimers) + 1
var id = "innerTime_" + number
var newSlider = Qt.createQmlObject(
"import QtQuick 2.2;" +
"import Sailfish.Silica 1.0;" +
"import 'converter.js' as Converter;" +
"Slider {" +
"id: " + id + ";" +
"objectName: 'innerSlider';" +
"width: parent.width;" +
"minimumValue: Converter.sToMs(5);" +
"maximumValue: "+ remainingTimeForInner +";" +
"stepSize: Converter.sToMs(5);" +
"value: "+ value +";" +
"valueText: Converter.msToTime(value);" +
"label: qsTr('Inner time "+ number +"');" +
"}",
settingsColumn,
"dynamicInnerTimerSlider"
);
var newArray = settingsPage.mListOfInnerTimers
newArray.push(newSlider);
settingsPage.mListOfInnerTimers = newArray;
}
}
function removeLastSliderFromInnerTimers() {
var newArray = settingsPage.mListOfInnerTimers
var slider = newArray.pop()
slider.destroy()
settingsPage.mListOfInnerTimers = newArray
}
function getListOfInnerTimers() {
var list = []
var timers = settingsPage.mListOfInnerTimers.length
for (var i = 0; i < timers; i++) {
list.push(settingsPage.mListOfInnerTimers[i].value)
}
return list;
}