From f13a1a1c4eab8bdef3760dd71cd7e2b3cc68a3e8 Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Sat, 26 Jul 2025 18:43:45 +0530 Subject: Add ModeChanged event and display mode in bottom decoration --- src/WindowActionRouter.cpp | 8 ++++++-- src/events/ModeChangedEvent.hpp | 19 +++++++++++++++++++ src/widgets/EdgeDecoration.cpp | 5 +++-- src/widgets/EdgeDecoration.hpp | 2 +- 4 files changed, 29 insertions(+), 5 deletions(-) create mode 100644 src/events/ModeChangedEvent.hpp (limited to 'src') diff --git a/src/WindowActionRouter.cpp b/src/WindowActionRouter.cpp index 3aeabc7..d0cc6d0 100644 --- a/src/WindowActionRouter.cpp +++ b/src/WindowActionRouter.cpp @@ -4,6 +4,7 @@ #include #include "LuaRuntime.hpp" +#include "events/ModeChangedEvent.hpp" #include "keymap/KeymapEvaluator.hpp" #include "widgets/BrowserWindow.hpp" @@ -19,8 +20,11 @@ void WindowActionRouter::initialize(Configuration *config) { configuration = config; connect(&runtime, &LuaRuntime::keymap_add_requested, this, &WindowActionRouter::add_keymap); - connect(&runtime, &LuaRuntime::keymap_mode_update_requested, this, - [](const QString &mode) { KeymapEvaluator::instance().set_current_mode(mode); }); + connect(&runtime, &LuaRuntime::keymap_mode_update_requested, this, [](const QString &mode) { + KeymapEvaluator::instance().set_current_mode(mode); + auto *event = new ModeChangedEvent(mode); + WindowActionRouter::instance().dispatch_event(event); + }); // Configuration connect(&runtime, &LuaRuntime::config_updated, configuration, &Configuration::set_config); diff --git a/src/events/ModeChangedEvent.hpp b/src/events/ModeChangedEvent.hpp new file mode 100644 index 0000000..fcb7dd2 --- /dev/null +++ b/src/events/ModeChangedEvent.hpp @@ -0,0 +1,19 @@ +#pragma once + +#include +#include + +#include "events/Event.hpp" +#include "keymap/KeymapEvaluator.hpp" + +class ModeChangedEvent : public Event { +public: + const KeyMode mode; + + ModeChangedEvent(KeyMode mode) : mode(std::move(mode)) { kind = "ModeChanged"; } + + void lua_push(lua_State *state) const override { + Event::lua_push(state); + SET_FIELD("mode", string, mode.toStdString().c_str()) + } +}; diff --git a/src/widgets/EdgeDecoration.cpp b/src/widgets/EdgeDecoration.cpp index ed48857..7351552 100644 --- a/src/widgets/EdgeDecoration.cpp +++ b/src/widgets/EdgeDecoration.cpp @@ -4,7 +4,6 @@ #include #include -#include "LuaRuntime.hpp" #include "widgets/WebView.hpp" #include "widgets/WebViewStack.hpp" @@ -28,9 +27,11 @@ QString default_html_layout = R"HTML( :where(html, body) { margin: 0; padding: 0; - background: #333; + background: #111; color: white; overflow: hidden; + text-size: 12px; + font-family: monospace; } diff --git a/src/widgets/EdgeDecoration.hpp b/src/widgets/EdgeDecoration.hpp index 2af567c..3c90cfb 100644 --- a/src/widgets/EdgeDecoration.hpp +++ b/src/widgets/EdgeDecoration.hpp @@ -32,7 +32,7 @@ private: QWebEngineProfile *profile; bool enabled = false; QString html_content = ""; - uint16_t size = 24; + uint16_t size = 20; void setup_webview(); }; -- cgit v1.3.1