import QtQuick 2.9
import QtMultimedia 5.8
import QtQuick.Window 2.2
import QtQuick.Controls 2.2
import QtQuick.Layouts 1.3
import QtGraphicalEffects 1.0
import QtQuick.Controls.Styles 1.4

import de.itsblue.ScStw 2.0
import de.itsblue.ScStw.Styling 2.0
import de.itsblue.ScStw.Styling.Components 1.0
import de.itsblue.ScStwApp 2.0

import "../components"

Column {
    id: control

    spacing: parentObj.rowSpacing

    property string title: "autostart"
    property var parentObj

    function updateSetting(key, val, del){
        del.busy = true
        scStwAppSettings.writeSetting(key, val, ScStwSettings.KeyLevel)
        del.busy = false
    }

    function loadSetting(key, del){
        return scStwAppSettings.readSetting(key, ScStwSettings.KeyLevel)
    }

    SmoothSwitchDelegate {
        id: ready_del

        property ScStwSetting setting: scStwAppSettings.getSetting(ScStwSettings.ReadySoundEnableSetting, ScStwSettings.KeyLevel)

        width: parent.width
        height: parentObj.delegateHeight

        checked: setting.value

        onCheckedChanged: {
            enabled = false
            setting.value = checked
            enabled = true
        }

        text: qsTr("say 'ready'")
    }

    InputDelegate {
        id: ready_delay_del

        property bool busy: false
        property ScStwSetting setting: scStwAppSettings.getSetting(ScStwSettings.ReadySoundDelaySetting, ScStwSettings.KeyLevel)

        width: parent.width
        height: parentObj.delegateHeight

        enabled: !busy && ready_del.checked

        text: qsTr("delay (ms)")
        inputHint: qsTr("time")
        inputMethodHints: Qt.ImhFormattedNumbersOnly

        inputText: setting.value

        onInputFinished: {
            console.log("input finished")
            busy = true
            setting.value = inputText
            busy = false
        }
    }

    SmoothSwitchDelegate {
        id: at_marks_del

        property ScStwSetting setting: scStwAppSettings.getSetting(ScStwSettings.AtYourMarksSoundEnableSetting, ScStwSettings.KeyLevel)

        width: parent.width
        height: parentObj.delegateHeight

        text: qsTr("say 'at your marks'")

        checked: setting.value

        onCheckedChanged: {
            enabled = false
            setting.value = checked
            enabled = true
        }
    }

    InputDelegate {
        id: at_marks_delay_del

        property bool busy: false
        property ScStwSetting setting: scStwAppSettings.getSetting(ScStwSettings.AtYourMarksSoundDelaySetting, ScStwSettings.KeyLevel)

        width: parent.width
        height: parentObj.delegateHeight

        text: qsTr("delay (ms)")
        inputHint: qsTr("time")
        inputMethodHints: Qt.ImhFormattedNumbersOnly

        enabled: !busy && at_marks_del.checked

        inputText: setting.value

        onInputFinished: {
            busy = true
            setting.setValue(inputText)
            busy = false
        }
    }
}

