aboutsummaryrefslogtreecommitdiff
path: root/src/InputMediator.cpp
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2025-03-22 00:51:46 +0530
committerAkshay Nair <phenax5@gmail.com>2025-03-22 00:51:50 +0530
commitf09f1aa704f06472ec134b40e2f69bf3279c3f06 (patch)
treef292716c90d16ade8d31b2b2d70da8481d1e8294 /src/InputMediator.cpp
parent498135054a168bd839f2ee8ebb1ba245d72a8f3b (diff)
downloadnull-browser-f09f1aa704f06472ec134b40e2f69bf3279c3f06.tar.gz
null-browser-f09f1aa704f06472ec134b40e2f69bf3279c3f06.zip
Add web.keymap.set + test keymaps config.lua
Diffstat (limited to '')
-rw-r--r--src/InputMediator.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/InputMediator.cpp b/src/InputMediator.cpp
index f935ad2..61ef125 100644
--- a/src/InputMediator.cpp
+++ b/src/InputMediator.cpp
@@ -5,14 +5,24 @@
#include "CommandParser.hpp"
#include "InputMediator.hpp"
#include "LuaRuntime.hpp"
+#include "keymap/KeymapEvaluator.hpp"
#include "widgets/WebViewStack.hpp"
+// TODO: Rename this
InputMediator::InputMediator(WebViewStack *webViewStack, LuaRuntime *luaRuntime,
KeymapEvaluator *keymapEvaluator)
: QObject(), webViewStack(webViewStack), luaRuntime(luaRuntime),
keymapEvaluator(keymapEvaluator) {
connect(luaRuntime, &LuaRuntime::urlOpened, webViewStack,
&WebViewStack::openUrl);
+ connect(luaRuntime, &LuaRuntime::keymapAddRequested, this,
+ &InputMediator::addKeymap);
+}
+
+void InputMediator::addKeymap(QString modeString, QString keyseq,
+ std::function<void()> action) {
+ KeyMode mode = keymapEvaluator->modeFromString(modeString);
+ keymapEvaluator->addKeymap(mode, keyseq, action);
}
void InputMediator::evaluateCommand(QString command) {