Flip Elsewhen between Fahrenheit and Celsius with Alt+T (#13450)
* Flip Elsewhen between Fahrenheit and Celsius with Shift+T Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Flip Elsewhen's temperature units with Alt+T instead of Shift+T PanelKeyCatcher's textKey now carries the held modifiers, which is how the panel tells Alt+T from T. Existing handlers take only the text and are unaffected. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
ed5837a05b
commit
349ecc09a2
4 files changed
+76
-5
No files matched your search
Executable
+23
@@ -0,0 +1,23 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
source "$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)/base-test.sh"
|
||||
|
||||
# /usr/bin/qmltestrunner is the Qt 5 binary, which exits 0 having run nothing.
|
||||
qml_test_runner=""
|
||||
for candidate in /usr/lib/qt6/bin/qmltestrunner /usr/lib/qt6/qmltestrunner; do
|
||||
if [[ -x $candidate ]]; then
|
||||
qml_test_runner=$candidate
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ -z $qml_test_runner ]]; then
|
||||
skip "qt6 qmltestrunner not found; skipping panel key catcher tests"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
output=$(QT_QPA_PLATFORM=offscreen QT_QUICK_BACKEND=software "$qml_test_runner" -input "$SHELL_TEST_DIR/panel-key-catcher/qml" -o -,txt 2>&1) ||
|
||||
fail "panel key catcher passes modifiers with text keys" "$output"
|
||||
pass "panel key catcher passes modifiers with text keys"
|
||||
@@ -0,0 +1,45 @@
|
||||
import QtQuick
|
||||
import QtTest
|
||||
import "../../../../shell/Ui"
|
||||
|
||||
// Text keys carry their modifiers, so a panel can tell Alt+T from T.
|
||||
Item {
|
||||
id: root
|
||||
width: 100
|
||||
height: 100
|
||||
|
||||
property string lastText: ""
|
||||
property int lastModifiers: -1
|
||||
|
||||
PanelKeyCatcher {
|
||||
id: catcher
|
||||
anchors.fill: parent
|
||||
onTextKey: function(text, modifiers) {
|
||||
root.lastText = text
|
||||
root.lastModifiers = modifiers
|
||||
}
|
||||
}
|
||||
|
||||
TestCase {
|
||||
name: "PanelKeyCatcherModifiers"
|
||||
when: windowShown
|
||||
|
||||
function init() {
|
||||
catcher.forceActiveFocus()
|
||||
root.lastText = ""
|
||||
root.lastModifiers = -1
|
||||
}
|
||||
|
||||
function test_plainLetterHasNoModifiers() {
|
||||
keyClick(Qt.Key_T)
|
||||
compare(root.lastText, "t")
|
||||
compare(root.lastModifiers & Qt.AltModifier, 0)
|
||||
}
|
||||
|
||||
function test_altLetterCarriesAlt() {
|
||||
keyClick(Qt.Key_T, Qt.AltModifier)
|
||||
compare(root.lastText.toLowerCase(), "t")
|
||||
verify(root.lastModifiers & Qt.AltModifier)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user