Comments only, no code changes. Replaces vague or personified phrasing with explicit statements of what the code does and why, uses bullet lists for multi-case behavior, and fixes the settings path in WindowSettings.h (~/.config/sloposk/sloposk.conf). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
131 lines
4.7 KiB
QML
131 lines
4.7 KiB
QML
import QtQuick
|
|
import Sloposk
|
|
|
|
// Shown instead of the keys while open. Drawn on the window background, so
|
|
// opacity changes are visible immediately. Bound directly to Settings, which saves to disk.
|
|
Flickable {
|
|
id: panel
|
|
|
|
required property Settings settings
|
|
required property LayoutModel layoutModel
|
|
required property Diagnostics diagnostics
|
|
|
|
clip: true
|
|
contentHeight: content.height + 2 * content.y
|
|
boundsBehavior: Flickable.StopAtBounds
|
|
|
|
Column {
|
|
id: content
|
|
x: 16
|
|
y: 16
|
|
width: panel.width - 2 * x
|
|
spacing: 16
|
|
|
|
ProblemList {
|
|
width: parent.width
|
|
problems: panel.diagnostics.problems
|
|
}
|
|
|
|
Row {
|
|
id: columns
|
|
readonly property real columnWidth: (width - spacing) / 2
|
|
|
|
width: parent.width
|
|
spacing: 32
|
|
|
|
Column {
|
|
width: columns.columnWidth
|
|
spacing: 4
|
|
|
|
SectionHeader { text: qsTr("Typing") }
|
|
|
|
ToggleRow {
|
|
width: parent.width
|
|
text: qsTr("Auto-Capitalization")
|
|
detail: qsTr("Shift at the start of a sentence")
|
|
checked: panel.settings.autoCapitalize
|
|
onToggled: checked => panel.settings.autoCapitalize = checked
|
|
}
|
|
|
|
ToggleRow {
|
|
width: parent.width
|
|
text: qsTr("Hold Keys")
|
|
detail: qsTr("Keys stay down while touched, like a hardware keyboard; no accents or flicks")
|
|
checked: panel.settings.holdKeys
|
|
onToggled: checked => panel.settings.holdKeys = checked
|
|
}
|
|
|
|
ToggleRow {
|
|
width: parent.width
|
|
text: qsTr("Always Show")
|
|
detail: qsTr("Type into any window, not just text fields")
|
|
checked: panel.settings.alwaysVisible
|
|
onToggled: checked => panel.settings.alwaysVisible = checked
|
|
}
|
|
|
|
ToggleRow {
|
|
width: parent.width
|
|
text: qsTr("Shrink to Button")
|
|
detail: qsTr("⌨ leaves a floating button instead of hiding; tap it to bring the keyboard back")
|
|
checked: panel.settings.collapseToButton
|
|
onToggled: checked => panel.settings.collapseToButton = checked
|
|
}
|
|
|
|
ToggleRow {
|
|
width: parent.width
|
|
text: qsTr("“.” Shortcut")
|
|
detail: qsTr("Double-tap space for a period and a space")
|
|
checked: panel.settings.doubleSpacePeriod
|
|
onToggled: checked => panel.settings.doubleSpacePeriod = checked
|
|
}
|
|
|
|
SectionHeader { text: qsTr("Appearance"); topPadding: 12 }
|
|
|
|
SliderRow {
|
|
width: parent.width
|
|
text: qsTr("Background")
|
|
from: panel.settings.minBackgroundOpacity
|
|
value: panel.settings.backgroundOpacity
|
|
onMoved: value => panel.settings.backgroundOpacity = value
|
|
}
|
|
|
|
ToggleRow {
|
|
width: parent.width
|
|
text: qsTr("Blur Behind")
|
|
detail: qsTr("Frosted glass under a see-through background, if the desktop supports it")
|
|
checked: panel.settings.blurBackground
|
|
onToggled: checked => panel.settings.blurBackground = checked
|
|
}
|
|
}
|
|
|
|
Column {
|
|
width: columns.columnWidth
|
|
spacing: 4
|
|
|
|
SectionHeader { text: qsTr("Keys") }
|
|
|
|
ToggleRow {
|
|
width: parent.width
|
|
text: qsTr("Full Keyboard")
|
|
detail: qsTr("Number row, tab, ctrl, alt — like iPad Pro")
|
|
checked: panel.settings.fullKeyboard
|
|
onToggled: checked => panel.settings.fullKeyboard = checked
|
|
}
|
|
|
|
Repeater {
|
|
// "main" = the typing keys; other ids are template sections.
|
|
model: [{ id: "main", name: qsTr("Typing keys") }].concat(panel.layoutModel.sections)
|
|
|
|
ToggleRow {
|
|
required property var modelData
|
|
width: parent.width
|
|
text: modelData.name
|
|
checked: panel.settings.visibleSections.includes(modelData.id)
|
|
onToggled: checked => panel.settings.setSectionVisible(modelData.id, checked)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|