/*!
 *
 * Copyright (c) 2023-2024 Diality Inc. - All Rights Reserved.
 * \copyright
 * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN
 * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER.
 *
 * \file    SliderArrows.qml
 * \author  (last)      Behrouz NematiPour
 * \date    (last)      31-Mar-2023
 * \author  (original)  Vy
 * \date    (original)  13-Mar-2023
 *
 */

// Qt
import QtQuick 2.12

// Project
//  Qml imports
import "qrc:/globals"
import "qrc:/components"


/*!
 * \brief   Denali project SliderArrows
 */
Row { id: _adjustValueButtonsContainer
    signal incrementValue()
    signal decrementValue()

    width       : (Variables.sliderAdjustButtonDiameter * 2 + Variables.sliderAdjustButtonSpacing) // total width with 2 buttons and space in between
    height      : Variables.sliderAdjustButtonDiameter
    anchors.leftMargin      : Variables.sliderAdjustButtonSpacing
    spacing                 : Variables.sliderAdjustButtonSpacing

    TouchRect { id: _decrementValueButton
        width: Variables.sliderAdjustButtonDiameter
        height: Variables.sliderAdjustButtonDiameter
        radius: Variables.sliderAdjustButtonDiameter
        border.color: _adjustValueButtonsContainer.enabled ? Colors.borderButton : Colors.borderDisableButton
        anchors.verticalCenter: parent.verticalCenter

        Image { id: _decrementArrowImage
            anchors.centerIn: parent
            height  : Variables.iconsDiameter
            width   : Variables.iconsDiameter
            source  : "qrc:/images/iChevronLeft"
        }

        onPressed: decrementValue()
        // onPressAndHold: {
        //     _sliderAdjustValueTimer.isIncrementing = false
        //     _sliderAdjustValueTimer.restart()
        // }
        // onReleased: _sliderAdjustValueTimer.stop()
    }

    TouchRect { id: _incrementValueButton
        width: Variables.sliderAdjustButtonDiameter
        height: Variables.sliderAdjustButtonDiameter
        radius: Variables.sliderAdjustButtonDiameter
        border.color: _adjustValueButtonsContainer.enabled ? Colors.borderButton : Colors.borderDisableButton
        anchors.verticalCenter: parent.verticalCenter

        Image { id: _incrementArrowImage
            anchors.centerIn: parent
            height  : Variables.iconsDiameter
            width   : Variables.iconsDiameter
            source  : "qrc:/images/iChevronRight"
        }

        onPressed: incrementValue()
        // onPressAndHold: {
        //     _sliderAdjustValueTimer.isIncrementing = true
        //     _sliderAdjustValueTimer.restart()
        // }
        // onReleased: _sliderAdjustValueTimer.stop()
    }

    // Timer { id: _sliderAdjustValueTimer
    //     property bool isIncrementing : true
    //     interval: Variables.sliderAdjustPressAndHoldRefreshRate //ms
    //     running : false
    //     repeat  : true
    //     onTriggered: {
    //         if(isIncrementing)
    //             incrementValue()
    //         else
    //             decrementValue()
    //         //DEBUG console.log("timer triggered " + _root.value)
    //     }
    // }
}
