import QtQuick
import qs.config
import qs.services

SettingsPage {
    id: root

    title: "Screen Intelligence"
    lede: "Turn text and codes on screen into content you can use."

    Component.onCompleted: ScreenIntelligence.refresh()

    Timer {
        id: launchDelay
        interval: 180
        onTriggered: Capture.openIntelligence()
    }

    SettingsCard {
        title: "Read anything on screen"
        subtitle: "Select a region, window, or display. It is recognized locally, with clean follow-up actions."

        SettingRow {
            icon: "󰗊"
            label: "Read screen text"
            detail: "Copy, search, translate, or open detected links"
            controlWidth: 160
            divider: false

            SettingsButton {
                anchors.right: parent.right
                anchors.verticalCenter: parent.verticalCenter
                text: "Start reading"
                tone: "accent"
                enabled: ScreenIntelligence.ocrReady && ScreenIntelligence.englishReady
                onClicked: {
                    ShellState.closeSettings();
                    launchDelay.restart();
                }
            }
        }
    }

    SettingsCard {
        title: "Capture preferences"
        subtitle: "Choose where captures go and how recordings are encoded."

        ChoiceRow { setting: "screenshotDir" }
        ChoiceRow { setting: "recordingDir" }
        ChoiceRow { setting: "recorderArgs"; divider: false }
    }

    SettingsCard {
        title: "Local recognition"
        subtitle: "The screen image stays in a local cache and is deleted when you dismiss the result."

        TextRow {
            label: "Text recognition"
            detail: "Tesseract with the English language model"
            value: ScreenIntelligence.ocrReady && ScreenIntelligence.englishReady ? "Ready" : "Needs install"
        }
        TextRow {
            label: "QR & barcodes"
            detail: "ZBar recognizes codes alongside ordinary text"
            value: ScreenIntelligence.codeReady ? "Ready" : "Needs install"
        }
        TextRow {
            label: "Privacy"
            detail: "Only Search, Translate, and Open send the selected result to another application or service"
            value: "Local first"
            divider: false
        }
    }

    SettingsCard {
        title: "Shortcut"

        TextRow {
            label: "Read a screen selection"
            detail: "Also available as Read in the Print-screen picker"
            value: "Super + Shift + S"
            controlWidth: 190
            divider: ScreenIntelligence.ocrReady && ScreenIntelligence.codeReady && ScreenIntelligence.englishReady
        }
        TextRow {
            visible: !ScreenIntelligence.ocrReady || !ScreenIntelligence.codeReady || !ScreenIntelligence.englishReady
            label: "Install recognition engines"
            detail: "sudo dnf install -y tesseract zbar"
            value: "Required once"
            divider: false
        }
    }
}
