diff options
| author | Akshay Nair <phenax5@gmail.com> | 2025-03-28 23:16:14 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2025-03-28 23:16:14 +0530 |
| commit | f7392096d2d84be7143947d386528bf4f487ee83 (patch) | |
| tree | c1e40ccc50b857aa469e06bba6312dd3ff776397 /src/widgets/MainWindow.cpp | |
| parent | 46a7fee95a010f20490d7f66f0c2c82ed936ca5e (diff) | |
| download | null-browser-f7392096d2d84be7143947d386528bf4f487ee83.tar.gz null-browser-f7392096d2d84be7143947d386528bf4f487ee83.zip | |
Split window management for multi-window
Diffstat (limited to 'src/widgets/MainWindow.cpp')
| -rw-r--r-- | src/widgets/MainWindow.cpp | 34 |
1 files changed, 12 insertions, 22 deletions
diff --git a/src/widgets/MainWindow.cpp b/src/widgets/MainWindow.cpp index d66611b..2d17557 100644 --- a/src/widgets/MainWindow.cpp +++ b/src/widgets/MainWindow.cpp @@ -9,13 +9,11 @@ #include "widgets/MainWindow.hpp" #include "widgets/WebViewStack.hpp" -MainWindow::MainWindow() { +MainWindow::MainWindow(const Configuration &configuration) + : configuration(configuration) { setStyleSheet("background-color: #000; color: #fff;"); setCentralWidget(new QWidget()); // TODO: manage widget memory - // Global event filter - qApp->installEventFilter(this); - // Root stacked layout auto *layout = new QStackedLayout(); layout->setContentsMargins(0, 0, 0, 0); @@ -25,10 +23,14 @@ MainWindow::MainWindow() { // Web engine auto *web_view_stack = - new WebViewStack((const Configuration *)&configuration, - new QWebEngineProfile("null-browser")); + new WebViewStack(&configuration, new QWebEngineProfile("null-browser")); layout->addWidget(web_view_stack); + auto *keymap_evaluator = new KeymapEvaluator; + + input_mediator = new InputMediator(web_view_stack, LuaRuntime::instance(), + keymap_evaluator); + // TODO: remoev web_view_stack->open_url(QUrl("https://duckduckgo.com"), OpenType::OpenUrl); web_view_stack->open_url(QUrl("https://ediblemonad.dev"), @@ -36,32 +38,20 @@ MainWindow::MainWindow() { web_view_stack->open_url(QUrl("https://github.com/trending"), OpenType::OpenUrlInBgTab); - auto *keymap_evaluator = new KeymapEvaluator; - - input_mediator = new InputMediator(web_view_stack, LuaRuntime::instance(), - keymap_evaluator); - - // NOTE: TMP - LuaRuntime::instance()->load_file("./config.lua"); - // TODO: remove - keymap_evaluator->add_keymap(KeyMode::Normal, "i", [&keymap_evaluator]() { + keymap_evaluator->add_keymap(KeyMode::Normal, "i", [keymap_evaluator]() { keymap_evaluator->set_current_mode(KeyMode::Insert); }); - keymap_evaluator->add_keymap(KeyMode::Insert, "<esc>", [&keymap_evaluator]() { + keymap_evaluator->add_keymap(KeyMode::Insert, "<esc>", [keymap_evaluator]() { keymap_evaluator->set_current_mode(KeyMode::Normal); }); keymap_evaluator->add_keymap(KeyMode::Normal, "<c-t>a", []() { qDebug() << "Stuff"; }); } -bool MainWindow::eventFilter(QObject * /*watched*/, QEvent *event) { - if (event->type() != QEvent::KeyPress) - return false; - - auto *key_event = static_cast<QKeyEvent *>(event); +bool MainWindow::on_window_key_event(QKeyEvent *event) { const bool should_skip = input_mediator->evaluate_keymap( - key_event->modifiers(), (Qt::Key)key_event->key()); + event->modifiers(), (Qt::Key)event->key()); return should_skip; } |
