harbour-boxing-timer/qml/pages/js/helpers.js

107 lines
2.8 KiB
JavaScript

function pushPresetListPage() {
if (settings.presetsList().length > 0) {
pageStack.pushAttached(Qt.resolvedUrl("../PresetList.qml"))
}
}
function playPauseTimer() {
if (boxingTimer.isActive) {
boxingTimer.status = BoxingTimer.Pause
} else {
boxingTimer.restore()
}
}
function addSliderForInnerTime() {
var newArray = settingsPage.mListOfInnerTimers
newArray.push(5)
settingsPage.mListOfInnerTimers = newArray
generateSlidersForInnerTimers()
}
function removeLastSliderFromInnerTimers() {
var newArray = settingsPage.mListOfInnerTimers
newArray.pop()
settingsPage.mListOfInnerTimers = newArray
generateSlidersForInnerTimers()
}
function getListOfInnerTimers() {
var list = []
var timers = settingsPage.mListOfInnerTimers.length
for (var i = 0; i < timers; i++) {
list.push(settingsPage.mListOfInnerTimers[i])
}
return list;
}
function updateValueInnerTimer(i, value) {
var newArray = settingsPage.mListOfInnerTimers
newArray[i] = value
settingsPage.mListOfInnerTimers = newArray
}
function generateSlidersForInnerTimers() {
for (var i = 0; i < settingsColumn.children.length; i++) {
if (settingsColumn.children[i].objectName === 'innerSlider') {
settingsColumn.children[i].destroy()
}
}
var value = 5
var remainingTimeForInner = settingsPage.mRoundMs
var numberOfInnerTimers = settingsPage.mListOfInnerTimers.length
var newArray = []
for (i = 0; i < numberOfInnerTimers; i++) {
value = settingsPage.mListOfInnerTimers[i]
if (value === undefined) {
value = 5
}
remainingTimeForInner -= value
var enabled = "true"
if ((i + 1) < numberOfInnerTimers) {
enabled = "false"
}
var newSlider = Qt.createQmlObject(
"import QtQuick 2.2;" +
"import Sailfish.Silica 1.0;" +
"import 'converter.js' as Converter;" +
"import 'helpers.js' as Helper;" +
"Slider {" +
"objectName: 'innerSlider';" +
"enabled: "+ enabled +"; "+
"width: parent.width;" +
"minimumValue: Converter.sToMs(5);" +
"maximumValue: "+ remainingTimeForInner +";" +
"stepSize: Converter.sToMs(5);" +
"value: "+ parseInt(value) +";" +
"valueText: Converter.msToTime(value);" +
"label: qsTr('"+ (i + 1) +"° inner time');" +
"onValueChanged: Helper.updateValueInnerTimer("+ i +", value);" +
"}",
settingsColumn,
"dynamicInnerTimerSlider"
);
newArray.push(value);
}
settingsPage.mListOfInnerTimers = newArray;
}