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