apps/webview: make search engine configurable via app.ini, add setting to main menu (#420)

Changes:
- Added `search_engine` variable to `WebView.c`
- Modified `EventSeachWeb()` to use configurable search engine
- Added `LoadIniConfig( )` for `search_engine` in `settings.h`
- Updated `app.ini` with default **Wiby** and alternatives (**Bing**, **DuckDuckGo**)
- Added menu tab and hotkey for opening `app.ini`

Co-authored-by: Burer <burer@kolibrios.org>
Reviewed-on: #420
Reviewed-by: Burer <burer@noreply.localhost>
Reviewed-by: Ivan B <dunkaist@noreply.localhost>
Co-authored-by: jaskaran-singh-77 <jassijatt951@gmail.com>
Co-committed-by: jaskaran-singh-77 <jassijatt951@gmail.com>
This commit was merged in pull request #420.
This commit is contained in:
2026-04-18 09:13:39 +00:00
committed by Burer
parent db529bc1a8
commit 096cca20cb
4 changed files with 48 additions and 40 deletions
+4 -1
View File
@@ -23,4 +23,7 @@ path=/usbhd0/1/kolibri.img
autoclose=0
[WebView]
proxy=http://proxy.kolibrios.org:82/?site=
proxy_address=http://proxy.kolibrios.org:82/?site=
search_engine=http://wiby.me/?q=
;search_engine=http://bing.com/search?q=
;search_engine=https://html.duckduckgo.com/html/?q=
+31 -29
View File
@@ -73,6 +73,7 @@ proc_info Form;
char settings_file[256];
char proxy_address[768];
char search_engine[768];
#include "settings.h"
#include "tabs.h"
@@ -306,13 +307,14 @@ void ProcessButtonClick(dword id__)
case SANDWICH_BUTTON: EventShowMainMenu(); return;
case VIEW_SOURCE: EventViewSource(); return;
case EDIT_SOURCE: EventEditSource(); return;
case VIEW_HISTORY: OpenPage(URL_SERVICE_HISTORY); return;
case DOWNLOAD_MANAGER: EventOpenDownloader(""); return;
case UPDATE_BROWSER: EventUpdateBrowser(); return;
case CLEAR_CACHE: EventClearCache(); return;
case IN_NEW_TAB: EventClickLink(TARGET_NEW_TAB); return;
case IN_NEW_WINDOW: EventClickLink(TARGET_NEW_WINDOW); return;
case COPY_LINK_URL: EventCopyLinkToClipboard(); return;
case VIEW_HISTORY: OpenPage(URL_SERVICE_HISTORY); return;
case DOWNLOAD_MANAGER: EventOpenDownloader(""); return;
case UPDATE_BROWSER: EventUpdateBrowser(); return;
case OPEN_SETTINGS: RunProgram("/sys/@open", #settings_file); return;
case CLEAR_CACHE: EventClearCache(); return;
case IN_NEW_TAB: EventClickLink(TARGET_NEW_TAB); return;
case IN_NEW_WINDOW: EventClickLink(TARGET_NEW_WINDOW); return;
case COPY_LINK_URL: EventCopyLinkToClipboard(); return;
case DOWNLOAD_LINK_CT: EventOpenDownloader( GetAbsoluteActiveURL() ); return;
case OPEN_FILE: EventOpenDialog(); return;
}
@@ -329,9 +331,10 @@ void ProcessKeyEvent()
if (key_modifier&KEY_LCTRL) || (key_modifier&KEY_RCTRL) switch(key_scancode)
{
case SCAN_CODE_KEY_O: EventOpenDialog(); return;
case SCAN_CODE_KEY_H: ProcessButtonClick(VIEW_HISTORY); return;
case SCAN_CODE_KEY_U: EventViewSource(); return;
case SCAN_CODE_KEY_T: EventOpenNewTab(URL_SERVICE_HOMEPAGE); return;
case SCAN_CODE_KEY_H: ProcessButtonClick(VIEW_HISTORY); return;
case SCAN_CODE_KEY_E: ProcessButtonClick(OPEN_SETTINGS); return;
case SCAN_CODE_KEY_U: EventViewSource(); return;
case SCAN_CODE_KEY_T: EventOpenNewTab(URL_SERVICE_HOMEPAGE); return;
case SCAN_CODE_KEY_N: RunProgram(#program_path, NULL); return;
case SCAN_CODE_KEY_J: ProcessButtonClick(DOWNLOAD_MANAGER); return;
case SCAN_CODE_KEY_R: ProcessButtonClick(REFRESH_BUTTON); return;
@@ -714,23 +717,23 @@ void EventClickLink(dword _target)
}
void EventSubmitOmnibox(bool force_url)
{
char new_url[URL_SIZE+1];
if (!editURL[0]) return;
if (!strncmp(#editURL,"http:",5)) || (editURL[0]=='/')
|| (!strncmp(#editURL,"https:",6)) || (!strncmp(#editURL,"WebView:",8)) {
OpenPage(#editURL);
return;
}
if (!force_url) && (!IsAddress()) {
EventSearchWeb();
return ;
}
strcpy(#new_url, "http://");
strncat(#new_url, #editURL, URL_SIZE-1);
OpenPage(#new_url);
}
void EventSubmitOmnibox(bool force_url)
{
char new_url[URL_SIZE+1];
if (!editURL[0]) return;
if (!strncmp(#editURL,"http:",5)) || (editURL[0]=='/')
|| (!strncmp(#editURL,"https:",6)) || (!strncmp(#editURL,"WebView:",8)) {
OpenPage(#editURL);
return;
}
if (!force_url) && (!IsAddress()) {
EventSearchWeb();
return ;
}
strcpy(#new_url, "http://");
strncat(#new_url, #editURL, URL_SIZE-1);
OpenPage(#new_url);
}
void LoadInternalPage(dword _bufdata, _in_bufsize){
@@ -840,8 +843,7 @@ void EventSearchWeb()
char new_url[URL_SIZE+1];
// replace the spaces with '+' for the search query
replace_char(#editURL, ' ', '+', URL_SIZE);
//strcpy(#new_url, "https://html.duckduckgo.com/html/?q=");
strcpy(#new_url, "http://bing.com/search?q=");
strcpy(#new_url, #search_engine);
strncat(#new_url, #editURL, URL_SIZE);
OpenPage(#new_url);
}
+11 -9
View File
@@ -15,11 +15,12 @@ Forward|Ctrl+>
Посмотреть исходник|Ctrl+U
Редактировать исходник|F2";
char main_menu[] =
"Открыть файл...|Ctrl+O
Новое окно|Ctrl+N
"Открыть файл...|Ctrl+O
Новое окно|Ctrl+N
-
История|Ctrl+H
Менеджер загрузок |Ctrl+J
История|Ctrl+H
Менеджер загрузок|Ctrl+J
Настройки|Ctrl+E
Очистить кэш|Ctrl+F5
Обновить браузер";
char link_menu[] =
@@ -55,11 +56,12 @@ Forward|Ctrl+>
View source|Ctrl+U
Edit source|F2";
char main_menu[] =
"Open local file...|Ctrl+O
New window|Ctrl+N
"Open local file...|Ctrl+O
New window|Ctrl+N
-
History|Ctrl+H
Download Manager |Ctrl+J
Download Manager|Ctrl+J
Settings|Ctrl+E
Clear cache|Ctrl+F5
Update browser";
char link_menu[] =
@@ -101,7 +103,7 @@ enum {
REFRESH_BUTTON, GOTOURL_BUTTON, CHANGE_ENCODING,
GO_BUTTON, SEARCH_BUTTON, SANDWICH_BUTTON,
OPEN_FILE, NEW_WINDOW, VIEW_HISTORY, DOWNLOAD_MANAGER,
CLEAR_CACHE, UPDATE_BROWSER, IN_NEW_TAB, IN_NEW_WINDOW,
OPEN_SETTINGS, CLEAR_CACHE, UPDATE_BROWSER, IN_NEW_TAB, IN_NEW_WINDOW,
COPY_LINK_URL, DOWNLOAD_LINK_CT, TAB_ID,
TAB_CLOSE_ID = 900
};
@@ -113,4 +115,4 @@ char editbox_icons[] = FROM "res/editbox_icons.raw";
#define DEFAULT_URL URL_SERVICE_HOMEPAGE
char version[]="WebView 3.94";
char version[]="WebView 3.95";
+2 -1
View File
@@ -5,5 +5,6 @@ void LoadIniConfig()
ini.path = GetIni(#settings_file, "app.ini");
ini.section = "WebView";
ini.GetString("proxy", #proxy_address, sizeof(proxy_address), NULL);
ini.GetString("proxy_address", #proxy_address, sizeof(proxy_address), NULL);
ini.GetString("search_engine", #search_engine, sizeof(search_engine), "http://bing.com/search?q=");
}