|
@@ -5,6 +5,7 @@
|
|
|
*/
|
|
|
|
|
|
#include <AK/Find.h>
|
|
|
+#include <AK/String.h>
|
|
|
#include <LibWebView/SearchEngine.h>
|
|
|
|
|
|
namespace WebView {
|
|
@@ -46,4 +47,35 @@ Optional<SearchEngine const&> find_search_engine_by_name(StringView name)
|
|
|
return *it;
|
|
|
}
|
|
|
|
|
|
+Optional<SearchEngine const&> find_search_engine_by_query_url(StringView query_url)
|
|
|
+{
|
|
|
+ auto it = AK::find_if(builtin_search_engines.begin(), builtin_search_engines.end(),
|
|
|
+ [&](auto const& engine) {
|
|
|
+ return engine.query_url == query_url;
|
|
|
+ });
|
|
|
+
|
|
|
+ if (it == builtin_search_engines.end())
|
|
|
+ return {};
|
|
|
+
|
|
|
+ return *it;
|
|
|
+}
|
|
|
+
|
|
|
+String format_search_query_for_display(StringView query_url, StringView query)
|
|
|
+{
|
|
|
+ static constexpr auto MAX_SEARCH_STRING_LENGTH = 32;
|
|
|
+
|
|
|
+ if (auto search_engine = find_search_engine_by_query_url(query_url); search_engine.has_value()) {
|
|
|
+ return MUST(String::formatted("Search {} for \"{:.{}}{}\"",
|
|
|
+ search_engine->name,
|
|
|
+ query,
|
|
|
+ MAX_SEARCH_STRING_LENGTH,
|
|
|
+ query.length() > MAX_SEARCH_STRING_LENGTH ? "..."sv : ""sv));
|
|
|
+ }
|
|
|
+
|
|
|
+ return MUST(String::formatted("Search for \"{:.{}}{}\"",
|
|
|
+ query,
|
|
|
+ MAX_SEARCH_STRING_LENGTH,
|
|
|
+ query.length() > MAX_SEARCH_STRING_LENGTH ? "..."sv : ""sv));
|
|
|
+}
|
|
|
+
|
|
|
}
|