// The bar.
//
// Everything Panama draws along the top edge: how legible it stays, what earns
// a place in it, and how often the readouts refresh. The bar floats directly on
// the wallpaper, so legibility is a real setting and not a theme detail -- a
// theme that reads perfectly against the panel background can disappear
// entirely over a bright photograph.
//
// The Clock and System vitals cards came from Appearance's Shell tab, which was
// the wrong home for them: Appearance is about how surfaces look, and these
// decide what the bar contains.

import QtQuick
import qs.config
import qs.services

SettingsPage {
    id: root

    title: "Bar"
    lede: "The bar sits on whatever wallpaper you chose. These keep it legible on all of them."

    SettingsCard {
        title: "Visibility"
        subtitle: "The real bar above this window is the preview — every change here lands on it immediately."

        ChoiceRow { setting: "barTextTone" }
        ToggleRow { setting: "barTextShadow" }
        ToggleRow { setting: "barBackdrop"; divider: false }
    }

    SettingsCard {
        title: "Widgets"
        subtitle: "What earns a place in the bar. Indicators that carry state — health, activity, focus, video wallpaper — appear on their own and leave when they are done."

        ToggleRow { setting: "showWeatherWidget" }
        ToggleRow { setting: "showMediaWidget" }
        ToggleRow { setting: "showClipboardButton" }
        ToggleRow { setting: "showCalendarCountdown" }
        ToggleRow { setting: "showCpu" }
        ToggleRow { setting: "showMemory" }
        ToggleRow { setting: "showGpu" }
        // Only where there is a battery to report on. A desktop should not be
        // offered a switch for a readout it can never show.
        ToggleRow { setting: "showBattery"; visible: Battery.available }
        ToggleRow { setting: "showBatteryPercent"; visible: Battery.available && Settings.showBattery }
        ToggleRow { setting: "showAgentUsage"; divider: false }
    }

    SettingsCard {
        title: "Clock"
        subtitle: "24-hour time lives in System › Date & Time — it drives the date menu, notifications, and the lock screen too, so it was never just the bar's."

        ToggleRow { setting: "showSeconds" }
        ToggleRow { setting: "showWeekday"; divider: false }
    }

    SettingsCard {
        title: "Vitals"

        SliderRow {
            setting: "vitalsIntervalMs"
            divider: GraphicsDevices.devices.length > 1 || GraphicsDevices.selectionMissing
        }

        // Only worth asking when there is a choice to make.
        ChoiceGrid {
            visible: GraphicsDevices.devices.length > 1 || GraphicsDevices.selectionMissing
            width: parent.width
            label: "Graphics device"
            detail: GraphicsDevices.selectionMissing
                ? "The stored device is not present on this machine, so the graphics readout is hidden. Choose one below."
                : "Which GPU the graphics readout measures."
            options: GraphicsDevices.devices.map(device => ({
                value: device.path,
                label: GraphicsDevices.shortName(device.name)
            }))
            current: GraphicsDevices.selectedPath
            divider: false
            onPicked: value => GraphicsDevices.select(value)
        }
    }
}
