fix text set on escape, add focus shift with tab and shift + tab
Python / lint-format (pull_request) Successful in 15s
Python / test (pull_request) Successful in 28s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m6s
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 9s

This commit is contained in:
2026-06-08 15:28:28 +02:00
parent 345d558317
commit c0202ef015
2 changed files with 113 additions and 68 deletions
+56 -32
View File
@@ -167,6 +167,14 @@ Item {
CustomTextField { CustomTextField {
id: startHourField id: startHourField
function setConfigText(setting: string): string {
var val = root.convertHour(root.object[setting]);
if (val === 0) {
return "00";
}
return String(val);
}
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
@@ -178,13 +186,7 @@ Item {
font.pixelSize: 56 font.pixelSize: 56
font.weight: 400 font.weight: 400
horizontalAlignment: TextInput.AlignHCenter horizontalAlignment: TextInput.AlignHCenter
text: { text: setConfigText(root.settings[1])
var val = root.convertHour(root.object[root.settings[1]]);
if (val === 0) {
return "00";
}
return String(val);
}
verticalAlignment: TextInput.AlignVCenter verticalAlignment: TextInput.AlignVCenter
Keys.onPressed: event => { Keys.onPressed: event => {
@@ -198,11 +200,15 @@ Item {
return; return;
} else if (event.key === Qt.Key_Escape) { } else if (event.key === Qt.Key_Escape) {
event.accepted = true; event.accepted = true;
startHourField.text = String(root.convertHour(root.object[root.settings[1]])); startHourField.text = setConfigText(root.settings[1]);
startHourField.focus = false; startHourField.focus = false;
} else if (event.key === Qt.Key_Return) { } else if (event.key === Qt.Key_Return) {
startHourField.focus = false; startHourField.focus = false;
return; return;
} else if (event.key === Qt.Key_Tab) {
startMinuteField.focus = true;
} else if (event.key === Qt.Key_Backtab) {
endMinuteField.focus = true;
} }
if (event.text.length === 1 && event.text >= "0" && event.text <= "9") { if (event.text.length === 1 && event.text >= "0" && event.text <= "9") {
@@ -284,6 +290,14 @@ Item {
CustomTextField { CustomTextField {
id: startMinuteField id: startMinuteField
function setConfigText(setting: string): string {
var val = root.convertMinute(root.object[setting]);
if (val === 0) {
return "00";
}
return String(val);
}
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
@@ -295,13 +309,7 @@ Item {
font.pixelSize: 56 font.pixelSize: 56
font.weight: 400 font.weight: 400
horizontalAlignment: TextInput.AlignHCenter horizontalAlignment: TextInput.AlignHCenter
text: { text: setConfigText(root.settings[1])
var val = root.convertMinute(root.object[root.settings[1]]);
if (val === 0) {
return "00";
}
return String(val);
}
verticalAlignment: TextInput.AlignVCenter verticalAlignment: TextInput.AlignVCenter
Keys.onPressed: event => { Keys.onPressed: event => {
@@ -315,11 +323,15 @@ Item {
return; return;
} else if (event.key === Qt.Key_Escape) { } else if (event.key === Qt.Key_Escape) {
event.accepted = true; event.accepted = true;
startMinuteField.text = String(root.convertMinute(root.object[root.settings[1]])); startMinuteField.text = setConfigText(root.settings[1]);
startMinuteField.focus = false; startMinuteField.focus = false;
} else if (event.key === Qt.Key_Return) { } else if (event.key === Qt.Key_Return) {
startMinuteField.focus = false; startMinuteField.focus = false;
return; return;
} else if (event.key === Qt.Key_Tab) {
endHourField.focus = true;
} else if (event.key === Qt.Key_Backtab) {
startHourField.focus = true;
} }
if (event.text.length === 1 && event.text >= "0" && event.text <= "9") { if (event.text.length === 1 && event.text >= "0" && event.text <= "9") {
@@ -400,6 +412,14 @@ Item {
CustomTextField { CustomTextField {
id: endHourField id: endHourField
function setConfigText(setting: string): string {
var val = root.convertHour(root.object[setting]);
if (val === 0) {
return "00";
}
return String(val);
}
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
@@ -411,13 +431,7 @@ Item {
font.pixelSize: 56 font.pixelSize: 56
font.weight: 400 font.weight: 400
horizontalAlignment: TextInput.AlignHCenter horizontalAlignment: TextInput.AlignHCenter
text: { text: setConfigText(root.settings[2])
var val = root.convertHour(root.object[root.settings[2]]);
if (val === 0) {
return "00";
}
return String(val);
}
verticalAlignment: TextInput.AlignVCenter verticalAlignment: TextInput.AlignVCenter
Keys.onPressed: event => { Keys.onPressed: event => {
@@ -431,11 +445,15 @@ Item {
return; return;
} else if (event.key === Qt.Key_Escape) { } else if (event.key === Qt.Key_Escape) {
event.accepted = true; event.accepted = true;
endHourField.text = String(root.convertHour(root.object[root.settings[2]])); endHourField.text = setConfigText(root.settings[2]);
endHourField.focus = false; endHourField.focus = false;
} else if (event.key === Qt.Key_Return) { } else if (event.key === Qt.Key_Return) {
endHourField.focus = false; endHourField.focus = false;
return; return;
} else if (event.key === Qt.Key_Tab) {
endMinuteField.focus = true;
} else if (event.key === Qt.Key_Backtab) {
startMinuteField.focus = true;
} }
if (event.text.length === 1 && event.text >= "0" && event.text <= "9") { if (event.text.length === 1 && event.text >= "0" && event.text <= "9") {
@@ -517,6 +535,14 @@ Item {
CustomTextField { CustomTextField {
id: endMinuteField id: endMinuteField
function setConfigText(setting: string): string {
var val = root.convertMinute(root.object[setting]);
if (val === 0) {
return "00";
}
return String(val);
}
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
@@ -528,13 +554,7 @@ Item {
font.pixelSize: 56 font.pixelSize: 56
font.weight: 400 font.weight: 400
horizontalAlignment: TextInput.AlignHCenter horizontalAlignment: TextInput.AlignHCenter
text: { text: setConfigText(root.settings[2])
var val = root.convertMinute(root.object[root.settings[2]]);
if (val === 0) {
return "00";
}
return String(val);
}
verticalAlignment: TextInput.AlignVCenter verticalAlignment: TextInput.AlignVCenter
Keys.onPressed: event => { Keys.onPressed: event => {
@@ -548,11 +568,15 @@ Item {
return; return;
} else if (event.key === Qt.Key_Escape) { } else if (event.key === Qt.Key_Escape) {
event.accepted = true; event.accepted = true;
endMinuteField.text = String(root.convertMinute(root.object[root.settings[2]])); endMinuteField.text = setConfigText(root.settings[2]);
endMinuteField.focus = false; endMinuteField.focus = false;
} else if (event.key === Qt.Key_Return) { } else if (event.key === Qt.Key_Return) {
endMinuteField.focus = false; endMinuteField.focus = false;
return; return;
} else if (event.key === Qt.Key_Tab) {
startHourField.focus = true;
} else if (event.key === Qt.Key_Backtab) {
endHourField.focus = true;
} }
if (event.text.length === 1 && event.text >= "0" && event.text <= "9") { if (event.text.length === 1 && event.text >= "0" && event.text <= "9") {
+57 -36
View File
@@ -26,6 +26,7 @@ Item {
function commitChoice(choice: int, setting: string): void { function commitChoice(choice: int, setting: string): void {
root.object[setting] = choice; root.object[setting] = choice;
Config.save(); Config.save();
ModeScheduler.checkStartup();
} }
function convertHour(timeValue: int): int { function convertHour(timeValue: int): int {
@@ -167,6 +168,14 @@ Item {
CustomTextField { CustomTextField {
id: startHourField id: startHourField
function setConfigText(setting: string): string {
var val = root.convertHour(root.object[setting]);
if (val === 0) {
return "00";
}
return String(val);
}
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
@@ -178,13 +187,7 @@ Item {
font.pixelSize: 56 font.pixelSize: 56
font.weight: 400 font.weight: 400
horizontalAlignment: TextInput.AlignHCenter horizontalAlignment: TextInput.AlignHCenter
text: { text: setConfigText(root.settings[1])
var val = root.convertHour(root.object[root.settings[1]]);
if (val === 0) {
return "00";
}
return String(val);
}
verticalAlignment: TextInput.AlignVCenter verticalAlignment: TextInput.AlignVCenter
Keys.onPressed: event => { Keys.onPressed: event => {
@@ -198,11 +201,15 @@ Item {
return; return;
} else if (event.key === Qt.Key_Escape) { } else if (event.key === Qt.Key_Escape) {
event.accepted = true; event.accepted = true;
startHourField.text = String(root.convertHour(root.object[root.settings[1]])); startHourField.text = setConfigText(root.settings[1]);
startHourField.focus = false; startHourField.focus = false;
} else if (event.key === Qt.Key_Return) { } else if (event.key === Qt.Key_Return) {
startHourField.focus = false; startHourField.focus = false;
return; return;
} else if (event.key === Qt.Key_Tab) {
startMinuteField.focus = true;
} else if (event.key === Qt.Key_Backtab) {
endMinuteField.focus = true;
} }
if (event.text.length === 1 && event.text >= "0" && event.text <= "9") { if (event.text.length === 1 && event.text >= "0" && event.text <= "9") {
@@ -237,7 +244,6 @@ Item {
onCursorPositionChanged: cursorPosition = 2 onCursorPositionChanged: cursorPosition = 2
onEditingFinished: { onEditingFinished: {
root.commitChoice(root.convertToMinutes(parseInt(startHourField.text), parseInt(startMinuteField.text)), root.settings[1]); root.commitChoice(root.convertToMinutes(parseInt(startHourField.text), parseInt(startMinuteField.text)), root.settings[1]);
ModeScheduler.checkStartup();
} }
onTextEdited: { onTextEdited: {
if (startHourField.text === "") if (startHourField.text === "")
@@ -285,6 +291,14 @@ Item {
CustomTextField { CustomTextField {
id: startMinuteField id: startMinuteField
function setConfigText(setting: string): string {
var val = root.convertMinute(root.object[setting]);
if (val === 0) {
return "00";
}
return String(val);
}
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
@@ -296,13 +310,7 @@ Item {
font.pixelSize: 56 font.pixelSize: 56
font.weight: 400 font.weight: 400
horizontalAlignment: TextInput.AlignHCenter horizontalAlignment: TextInput.AlignHCenter
text: { text: setConfigText(root.settings[1])
var val = root.convertMinute(root.object[root.settings[1]]);
if (val === 0) {
return "00";
}
return String(val);
}
verticalAlignment: TextInput.AlignVCenter verticalAlignment: TextInput.AlignVCenter
Keys.onPressed: event => { Keys.onPressed: event => {
@@ -316,11 +324,15 @@ Item {
return; return;
} else if (event.key === Qt.Key_Escape) { } else if (event.key === Qt.Key_Escape) {
event.accepted = true; event.accepted = true;
startMinuteField.text = String(root.convertMinute(root.object[root.settings[1]])); startMinuteField.text = setConfigText(root.settings[1]);
startMinuteField.focus = false; startMinuteField.focus = false;
} else if (event.key === Qt.Key_Return) { } else if (event.key === Qt.Key_Return) {
startMinuteField.focus = false; startMinuteField.focus = false;
return; return;
} else if (event.key === Qt.Key_Tab) {
endHourField.focus = true;
} else if (event.key === Qt.Key_Backtab) {
startHourField.focus = true;
} }
if (event.text.length === 1 && event.text >= "0" && event.text <= "9") { if (event.text.length === 1 && event.text >= "0" && event.text <= "9") {
@@ -355,7 +367,6 @@ Item {
onCursorPositionChanged: cursorPosition = 2 onCursorPositionChanged: cursorPosition = 2
onEditingFinished: { onEditingFinished: {
root.commitChoice(root.convertToMinutes(parseInt(startHourField.text), parseInt(startMinuteField.text)), root.settings[1]); root.commitChoice(root.convertToMinutes(parseInt(startHourField.text), parseInt(startMinuteField.text)), root.settings[1]);
ModeScheduler.checkStartup();
} }
onTextEdited: { onTextEdited: {
if (startMinuteField.text === "") if (startMinuteField.text === "")
@@ -402,6 +413,14 @@ Item {
CustomTextField { CustomTextField {
id: endHourField id: endHourField
function setConfigText(setting: string): string {
var val = root.convertHour(root.object[setting]);
if (val === 0) {
return "00";
}
return String(val);
}
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
@@ -413,13 +432,7 @@ Item {
font.pixelSize: 56 font.pixelSize: 56
font.weight: 400 font.weight: 400
horizontalAlignment: TextInput.AlignHCenter horizontalAlignment: TextInput.AlignHCenter
text: { text: setConfigText(root.settings[2])
var val = root.convertHour(root.object[root.settings[2]]);
if (val === 0) {
return "00";
}
return String(val);
}
verticalAlignment: TextInput.AlignVCenter verticalAlignment: TextInput.AlignVCenter
Keys.onPressed: event => { Keys.onPressed: event => {
@@ -433,11 +446,15 @@ Item {
return; return;
} else if (event.key === Qt.Key_Escape) { } else if (event.key === Qt.Key_Escape) {
event.accepted = true; event.accepted = true;
endHourField.text = String(root.convertHour(root.object[root.settings[2]])); endHourField.text = setConfigText(root.settings[2]);
endHourField.focus = false; endHourField.focus = false;
} else if (event.key === Qt.Key_Return) { } else if (event.key === Qt.Key_Return) {
endHourField.focus = false; endHourField.focus = false;
return; return;
} else if (event.key === Qt.Key_Tab) {
endMinuteField.focus = true;
} else if (event.key === Qt.Key_Backtab) {
startMinuteField.focus = true;
} }
if (event.text.length === 1 && event.text >= "0" && event.text <= "9") { if (event.text.length === 1 && event.text >= "0" && event.text <= "9") {
@@ -472,7 +489,6 @@ Item {
onCursorPositionChanged: cursorPosition = 2 onCursorPositionChanged: cursorPosition = 2
onEditingFinished: { onEditingFinished: {
root.commitChoice(root.convertToMinutes(parseInt(endHourField.text), parseInt(endMinuteField.text)), root.settings[2]); root.commitChoice(root.convertToMinutes(parseInt(endHourField.text), parseInt(endMinuteField.text)), root.settings[2]);
ModeScheduler.checkStartup();
} }
onTextEdited: { onTextEdited: {
if (endHourField.text === "") if (endHourField.text === "")
@@ -520,6 +536,14 @@ Item {
CustomTextField { CustomTextField {
id: endMinuteField id: endMinuteField
function setConfigText(setting: string): string {
var val = root.convertMinute(root.object[setting]);
if (val === 0) {
return "00";
}
return String(val);
}
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
@@ -531,13 +555,7 @@ Item {
font.pixelSize: 56 font.pixelSize: 56
font.weight: 400 font.weight: 400
horizontalAlignment: TextInput.AlignHCenter horizontalAlignment: TextInput.AlignHCenter
text: { text: setConfigText(root.settings[2])
var val = root.convertMinute(root.object[root.settings[2]]);
if (val === 0) {
return "00";
}
return String(val);
}
verticalAlignment: TextInput.AlignVCenter verticalAlignment: TextInput.AlignVCenter
Keys.onPressed: event => { Keys.onPressed: event => {
@@ -551,11 +569,15 @@ Item {
return; return;
} else if (event.key === Qt.Key_Escape) { } else if (event.key === Qt.Key_Escape) {
event.accepted = true; event.accepted = true;
endMinuteField.text = String(root.convertMinute(root.object[root.settings[2]])); endMinuteField.text = setConfigText(root.settings[2]);
endMinuteField.focus = false; endMinuteField.focus = false;
} else if (event.key === Qt.Key_Return) { } else if (event.key === Qt.Key_Return) {
endMinuteField.focus = false; endMinuteField.focus = false;
return; return;
} else if (event.key === Qt.Key_Tab) {
startHourField.focus = true;
} else if (event.key === Qt.Key_Backtab) {
endHourField.focus = true;
} }
if (event.text.length === 1 && event.text >= "0" && event.text <= "9") { if (event.text.length === 1 && event.text >= "0" && event.text <= "9") {
@@ -590,7 +612,6 @@ Item {
onCursorPositionChanged: cursorPosition = 2 onCursorPositionChanged: cursorPosition = 2
onEditingFinished: { onEditingFinished: {
root.commitChoice(root.convertToMinutes(parseInt(endHourField.text), parseInt(endMinuteField.text)), root.settings[2]); root.commitChoice(root.convertToMinutes(parseInt(endHourField.text), parseInt(endMinuteField.text)), root.settings[2]);
ModeScheduler.checkStartup();
} }
onTextEdited: { onTextEdited: {
if (endMinuteField.text === "") if (endMinuteField.text === "")