From 4f945367ebc8e34263acbfca0416e3f75653924e Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Sun, 30 Mar 2025 19:16:07 +0530 Subject: Update window title on tab change + refactoring --- src/widgets/BrowserWindow.cpp | 52 ++++++++++++++++++++++++++----------------- 1 file changed, 32 insertions(+), 20 deletions(-) (limited to 'src/widgets/BrowserWindow.cpp') 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, "", [keymap_evaluator]() { - keymap_evaluator->set_current_mode(KeyMode::Normal); + keymap_evaluator.add_keymap(KeyMode::Insert, "", [&keymap_evaluator]() { + keymap_evaluator.set_current_mode(KeyMode::Normal); }); - keymap_evaluator->add_keymap(KeyMode::Normal, "a", - []() { qDebug() << "Stuff"; }); - - input_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); + keymap_evaluator.add_keymap(KeyMode::Normal, "a", + []() { qDebug() << "Stuff"; }); + + win_mediator = new WindowMediator(web_view_stack); + + 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; } -- cgit v1.3.1