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:
@@ -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=
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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=");
|
||||
}
|
||||
Reference in New Issue
Block a user