Fixed BUG with inner timers.
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user