aboutsummaryrefslogtreecommitdiff
path: root/src/widgets/BrowserWindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/widgets/BrowserWindow.cpp48
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;
}