aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/keymap.cpp5
-rw-r--r--tests/test_keymap.cpp8
2 files changed, 13 insertions, 0 deletions
diff --git a/src/keymap.cpp b/src/keymap.cpp
index 22c8da1..d8aacc5 100644
--- a/src/keymap.cpp
+++ b/src/keymap.cpp
@@ -33,6 +33,7 @@ QStringList KeyMap::knownActions()
QStringLiteral("toggle_unread"),
QStringLiteral("flag"),
QStringLiteral("focus_query"),
+ QStringLiteral("complete_query"),
QStringLiteral("toggle_html"),
QStringLiteral("load_remote"),
QStringLiteral("zoom_in"),
@@ -64,6 +65,10 @@ QList<QPair<QString, QString>> KeyMap::defaultBindings()
{ QStringLiteral("Ctrl+U"), QStringLiteral("toggle_unread") },
{ QStringLiteral("Ctrl+I"), QStringLiteral("flag") },
{ QStringLiteral("Ctrl+L"), QStringLiteral("focus_query") },
+ // Ctrl+Space is the completion idiom users already carry over from
+ // shells and editors, and it is a named key rather than a symbol, so
+ // no layout has to shift it.
+ { QStringLiteral("Ctrl+Space"), QStringLiteral("complete_query") },
{ QStringLiteral("Ctrl+H"), QStringLiteral("toggle_html") },
{ QStringLiteral("Ctrl+M"), QStringLiteral("load_remote") },
// Ctrl++ is what the '+' key really delivers on a layout where '+' is
diff --git a/tests/test_keymap.cpp b/tests/test_keymap.cpp
index 0fb4f57..8f6a6af 100644
--- a/tests/test_keymap.cpp
+++ b/tests/test_keymap.cpp
@@ -37,8 +37,16 @@ private slots:
void defaultsDoNotCollide();
void everyDefaultIsAKnownAction();
void everyDefaultParses();
+ void completeQueryIsBoundByDefault();
};
+void TestKeyMap::completeQueryIsBoundByDefault()
+{
+ QVERIFY(KeyMap::knownActions().contains(QStringLiteral("complete_query")));
+ QCOMPARE(KeyMap::defaultSequenceFor(QStringLiteral("complete_query")),
+ QKeySequence(QStringLiteral("Ctrl+Space")));
+}
+
void TestKeyMap::everyDefaultParses()
{
// A default that does not parse is a dead binding, the failure mode