diff options
| author | Akshay Nair <phenax5@gmail.com> | 2025-04-19 21:29:38 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2025-04-19 22:17:39 +0530 |
| commit | 208202db9cba6ddf0713a70e7122c69a53b1f2aa (patch) | |
| tree | 747f8ad71c19f239e545d13579ccfa86c8fefe5e /src | |
| parent | a9d767b209c503ac7b5dff5132aa213d47dcb608 (diff) | |
| download | null-browser-208202db9cba6ddf0713a70e7122c69a53b1f2aa.tar.gz null-browser-208202db9cba6ddf0713a70e7122c69a53b1f2aa.zip | |
Add web.search.get_text and prefill current search text
Diffstat (limited to '')
| -rw-r--r-- | src/LuaRuntimeApi.hpp | 9 | ||||
| -rw-r--r-- | src/WindowActionRouter.cpp | 7 | ||||
| -rw-r--r-- | src/WindowActionRouter.hpp | 1 |
3 files changed, 15 insertions, 2 deletions
diff --git a/src/LuaRuntimeApi.hpp b/src/LuaRuntimeApi.hpp index ff2f46c..3b67f36 100644 --- a/src/LuaRuntimeApi.hpp +++ b/src/LuaRuntimeApi.hpp @@ -4,6 +4,7 @@ #include "LuaRuntime.hpp" #include "WindowActionRouter.hpp" +#include "lua.h" int lua_api_view_set_url(lua_State *state) { const char *url = lua_tostring(state, 1); @@ -216,6 +217,13 @@ int lua_api_view_open_devtools(lua_State *state) { return 1; } +int lua_api_search_get_text(lua_State *state) { + auto &router = WindowActionRouter::instance(); + auto search_text = router.fetch_current_search_text(); + lua_pushstring(state, search_text.toStdString().c_str()); + return 1; +} + // NOLINTNEXTLINE static luaL_Reg internals_api[] = { luaL_Reg{"event_add_listener", &lua_event_register}, @@ -230,6 +238,7 @@ static luaL_Reg internals_api[] = { luaL_Reg{"view_set_url", &lua_api_view_set_url}, luaL_Reg{"history_back", &lua_history_back}, luaL_Reg{"history_forward", &lua_history_forward}, + luaL_Reg{"search_get_text", &lua_api_search_get_text}, luaL_Reg{"search_set_text", &lua_api_search_set_text}, luaL_Reg{"search_previous", &lua_api_search_previous}, luaL_Reg{"search_next", &lua_api_search_next}, diff --git a/src/WindowActionRouter.cpp b/src/WindowActionRouter.cpp index 9cc9f71..05d0218 100644 --- a/src/WindowActionRouter.cpp +++ b/src/WindowActionRouter.cpp @@ -61,8 +61,9 @@ void WindowActionRouter::initialize(Configuration *config) { connect(&runtime, &LuaRuntime::search_requested, this, [this](const QString &text, WebViewId webview_id) { WITH_WEBVIEW_WINDOW(webview_id, window, { - this->current_search_text = text; - win_match.second->mediator()->set_search_text(text, webview_id, true); + auto *mediator = win_match.second->mediator(); + this->current_search_text = text.trimmed(); + mediator->set_search_text(this->current_search_text, webview_id, true); }) }); connect(&runtime, &LuaRuntime::search_next_requested, this, [this](WebViewId webview_id) { @@ -136,3 +137,5 @@ QList<WebViewData> WindowActionRouter::fetch_webview_data_list(WindowId win_id) } return {}; } + +QString WindowActionRouter::fetch_current_search_text() const { return current_search_text; } diff --git a/src/WindowActionRouter.hpp b/src/WindowActionRouter.hpp index c1e6ecc..65124ef 100644 --- a/src/WindowActionRouter.hpp +++ b/src/WindowActionRouter.hpp @@ -35,6 +35,7 @@ public: WebViewId fetch_current_view_id(WindowId win_id = 0); QList<WebViewData> fetch_webview_data_list(WindowId win_id = 0); QVariant fetch_config_value(const QString &key); + QString fetch_current_search_text() const; DELEGATE((&event_queue), dispatch_event, dispatch_event); DELEGATE((&event_queue), register_event, register_event) |
