diff options
| author | Akshay Nair <phenax5@gmail.com> | 2025-03-30 19:16:07 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2025-03-30 19:16:37 +0530 |
| commit | 4f945367ebc8e34263acbfca0416e3f75653924e (patch) | |
| tree | aff34361a2b2160aea284df9b619193917bcbc88 /src/widgets/BrowserWindow.cpp | |
| parent | e690963fb6c0240171236fc2d669f95ee26b6798 (diff) | |
| download | null-browser-4f945367ebc8e34263acbfca0416e3f75653924e.tar.gz null-browser-4f945367ebc8e34263acbfca0416e3f75653924e.zip | |
Update window title on tab change + refactoring
Diffstat (limited to '')
| -rw-r--r-- | src/widgets/BrowserWindow.cpp | 48 |
1 files changed, 30 insertions, 18 deletions
diff --git a/src/widgets/BrowserWindow.cpp b/src/widgets/BrowserWindow.cpp index 886572e..e38f234 100644 --- a/src/widgets/BrowserWindow.cpp +++ b/src/widgets/BrowserWindow.cpp @@ -26,35 +26,47 @@ BrowserWindow::BrowserWindow(const Configuration &configuration) new WebViewStack(&configuration, new QWebEngineProfile("null-browser")); layout->addWidget(web_view_stack); - auto *keymap_evaluator = KeymapEvaluator::instance(); + auto &keymap_evaluator = KeymapEvaluator::instance(); // TODO: remove - keymap_evaluator->add_keymap(KeyMode::Normal, "i", [keymap_evaluator]() { - keymap_evaluator->set_current_mode(KeyMode::Insert); + 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->set_current_mode(KeyMode::Normal); + 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"; }); + keymap_evaluator.add_keymap(KeyMode::Normal, "<c-t>a", + []() { qDebug() << "Stuff"; }); - input_mediator = new WindowMediator(web_view_stack); + win_mediator = new WindowMediator(web_view_stack); - auto *lua = LuaRuntime::instance(); - lua->queue_task([this]() { - emit input_mediator->url_opened("https://github.com/phenax/null-browser", - OpenType::OpenUrl, 0); - emit input_mediator->url_opened("https://ediblemonad.dev", - OpenType::OpenUrlInBgTab, 0); - emit input_mediator->url_opened("https://github.com/trending", - OpenType::OpenUrlInBgTab, 0); + connect(web_view_stack, &WebViewStack::current_webview_changed, this, + [this](int index) { + auto webviews = win_mediator->get_webview_list(); + if (index >= 0 && index < webviews.count()) { + const auto &webview = webviews.at(index); + setWindowTitle(webview.title); + } + }); + + // TODO: remove + auto &lua = LuaRuntime::instance(); + lua.queue_task([this]() { + emit win_mediator->url_opened("https://github.com/phenax/null-browser", + OpenType::OpenUrl, 0); + emit win_mediator->url_opened("https://ediblemonad.dev", + OpenType::OpenUrlInBgTab, 0); + emit win_mediator->url_opened("https://github.com/trending", + OpenType::OpenUrlInBgTab, 0); }); } +void BrowserWindow::closeEvent(QCloseEvent * /*event*/) { emit closed(); } + bool BrowserWindow::on_window_key_event(QKeyEvent *event) { - auto *keymap_evaluator = KeymapEvaluator::instance(); + auto &keymap_evaluator = KeymapEvaluator::instance(); const bool should_skip = - keymap_evaluator->evaluate(event->modifiers(), (Qt::Key)event->key()); + keymap_evaluator.evaluate(event->modifiers(), (Qt::Key)event->key()); return should_skip; } |
