import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import qs.Commons
import qs.Widgets
import qs.Services

ColumnLayout {
  id: root
  spacing: Style.marginM * scaling

  // Properties to receive data from parent
  property var widgetData: null
  property var widgetMetadata: null

  // Local state
  property bool valueAlwaysShowPercentage: widgetData.alwaysShowPercentage !== undefined ? widgetData.alwaysShowPercentage : widgetMetadata.alwaysShowPercentage
  property int valueWarningThreshold: widgetData.warningThreshold !== undefined ? widgetData.warningThreshold : widgetMetadata.warningThreshold

  function saveSettings() {
    var settings = Object.assign({}, widgetData || {})
    settings.alwaysShowPercentage = valueAlwaysShowPercentage
    settings.warningThreshold = valueWarningThreshold
    return settings
  }

  NToggle {
    label: "Always show percentage"
    checked: root.valueAlwaysShowPercentage
    onToggled: checked => root.valueAlwaysShowPercentage = checked
  }

  NSpinBox {
    label: "Low battery warning threshold"
    description: "Show a warning when battery falls below this percentage."
    value: valueWarningThreshold
    suffix: "%"
    minimum: 5
    maximum: 50
    onValueChanged: valueWarningThreshold = value
  }
}
