aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/LuaRuntimeApi.hpp9
-rw-r--r--src/WindowActionRouter.cpp7
-rw-r--r--src/WindowActionRouter.hpp1
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)