From 1bd89088f1bb6103a34584ae39157abf2f732742 Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Tue, 18 Mar 2025 21:57:03 +0530 Subject: Add action for keymaps + test --- src/widgets/MainWindow.cpp | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'src/widgets/MainWindow.cpp') diff --git a/src/widgets/MainWindow.cpp b/src/widgets/MainWindow.cpp index 327a77c..32bde30 100644 --- a/src/widgets/MainWindow.cpp +++ b/src/widgets/MainWindow.cpp @@ -6,6 +6,7 @@ #include #include "InputMediator.hpp" +#include "keymap/KeymapEvaluator.hpp" #include "widgets/MainWindow.hpp" #include "widgets/WebViewStack.hpp" @@ -34,11 +35,23 @@ MainWindow::MainWindow() { webViewStack->openUrl(QUrl("https://github.com/trending"), OpenType::OpenUrlInBgTab); - inputMediator = new InputMediator(webViewStack, LuaRuntime::instance()); + auto keymapEvaluator = new KeymapEvaluator; + + inputMediator = + new InputMediator(webViewStack, LuaRuntime::instance(), keymapEvaluator); // TODO: remove - keymapEvaluator.addKeymap("default", "a", "Stuff"); - keymapEvaluator.addKeymap("default", "b", "Other stuff"); + keymapEvaluator->addKeymap(KeyMode::Normal, "i", [keymapEvaluator]() { + keymapEvaluator->setCurrentMode(KeyMode::Insert); + }); + keymapEvaluator->addKeymap(KeyMode::Insert, "", [keymapEvaluator]() { + keymapEvaluator->setCurrentMode(KeyMode::Normal); + }); + + keymapEvaluator->addKeymap(KeyMode::Normal, "a", + []() { qDebug() << "Stuff"; }); + keymapEvaluator->addKeymap(KeyMode::Normal, "b", + []() { qDebug() << "Else"; }); } void MainWindow::keyPressEvent(QKeyEvent *event) { @@ -61,7 +74,8 @@ bool MainWindow::eventFilter(QObject *object, QEvent *event) { return false; auto keyEvent = static_cast(event); - keymapEvaluator.evaluate(keyEvent->modifiers(), (Qt::Key)keyEvent->key()); + bool shouldSkip = inputMediator->evaluateKeymap(keyEvent->modifiers(), + (Qt::Key)keyEvent->key()); - return true; + return shouldSkip; } -- cgit v1.3.1