diff options
| author | Akshay Nair <phenax5@gmail.com> | 2025-03-18 21:57:03 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2025-03-18 23:36:03 +0530 |
| commit | 1bd89088f1bb6103a34584ae39157abf2f732742 (patch) | |
| tree | 2f8fd292bbfb710979bdc44507156524a97148b7 /src/widgets/MainWindow.cpp | |
| parent | 4c762b2516bc664293c2aec072074f1e34dda8c3 (diff) | |
| download | null-browser-1bd89088f1bb6103a34584ae39157abf2f732742.tar.gz null-browser-1bd89088f1bb6103a34584ae39157abf2f732742.zip | |
Add action for keymaps + test
Diffstat (limited to 'src/widgets/MainWindow.cpp')
| -rw-r--r-- | src/widgets/MainWindow.cpp | 24 |
1 files changed, 19 insertions, 5 deletions
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 <QtWidgets/qapplication.h> #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", "<c-t>a", "Stuff"); - keymapEvaluator.addKeymap("default", "<c-t>b", "Other stuff"); + keymapEvaluator->addKeymap(KeyMode::Normal, "i", [keymapEvaluator]() { + keymapEvaluator->setCurrentMode(KeyMode::Insert); + }); + keymapEvaluator->addKeymap(KeyMode::Insert, "<esc>", [keymapEvaluator]() { + keymapEvaluator->setCurrentMode(KeyMode::Normal); + }); + + keymapEvaluator->addKeymap(KeyMode::Normal, "<c-t>a", + []() { qDebug() << "Stuff"; }); + keymapEvaluator->addKeymap(KeyMode::Normal, "<c-t>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<QKeyEvent *>(event); - keymapEvaluator.evaluate(keyEvent->modifiers(), (Qt::Key)keyEvent->key()); + bool shouldSkip = inputMediator->evaluateKeymap(keyEvent->modifiers(), + (Qt::Key)keyEvent->key()); - return true; + return shouldSkip; } |
