viking

webkit based web browser for Enlightenment
Log | Files | Refs | LICENSE

commit f35fb9ce8cc289f8d6d4f7d1fde3a79df277d3d9
parent ca5604ebcf1c333b762baf40208347840a0358fe
Author: Kyle Milz <kmilz@ucalgary.ca>
Date:   Tue, 16 Oct 2012 22:21:08 -0600

nuke update_url

update the fields directly instead of using this catch all hack.

Diffstat:
Msrc/buffer.c | 11++++++-----
Msrc/commands.c | 100+------------------------------------------------------------------------------
Msrc/commands.h | 3---
Msrc/keymap.h | 3---
Msrc/utilities.c | 122+++++++++++++++++++++++++++++++++++++++++++------------------------------------
Msrc/utilities.h | 2+-
Msrc/window.c | 9+++++----
7 files changed, 80 insertions(+), 170 deletions(-)

diff --git a/src/buffer.c b/src/buffer.c @@ -240,16 +240,15 @@ inspector_close_cb(void *data, Evas_Object *obj, void *event_info) static void url_changed_cb(void *data, Evas_Object *obj, void *event_info) { - // Arg a = { .i = Silent, .s = strdup(JS_SETUP_HINTS) }; Buffer_Data *bd = data; - const char *uri = event_info; - // int i; + Window_Data *wd = bd->window; + const char *url = event_info; + // Arg a = { .i = Silent, .s = strdup(JS_SETUP_HINTS) }; if (bd != bd->window->cur_buf) return; // userscript_hooks_start(elm_web_uri_get(td->web)); - // script(&a, bd->window); // free(a.s); @@ -259,7 +258,9 @@ url_changed_cb(void *data, Evas_Object *obj, void *event_info) } bd->window->manual_focus = EINA_FALSE; - update_url(uri, bd->window); + + elm_box_clear(wd->status_url); + elm_box_pack_end(wd->status_url, make_url_with_icon(url, wd)); } static void diff --git a/src/commands.c b/src/commands.c @@ -900,27 +900,6 @@ browser_settings(const Arg *arg, void *data) { */ Eina_Bool -proxy(const Arg *arg, void *data) -{ - Window_Data *ad = data; - Buffer_Data *bd = ad->cur_buf; - - if (bd->proxy_enabled) { - printf("proxy off\n"); - // ewk_network_proxy_uri_set(NULL); - g_object_set(ad->app->soup_session, "proxy-uri", NULL, NULL); - bd->proxy_enabled = EINA_FALSE; - update_url(ewk_view_url_get(bd->view), data); - } else if (enable_proxy(ad->cur_buf)) { - bd->proxy_enabled = EINA_TRUE; - update_url(ewk_view_url_get(bd->view), data); - ewk_view_reload(bd->view); - } - - return EINA_TRUE; -} - -Eina_Bool search_tag(const Arg * a, void *data) { #if 0 @@ -990,34 +969,16 @@ search_tag(const Arg * a, void *data) return EINA_TRUE; } -static void -received_favicon_cb(const char *url, Evas_Object *icon, void *data) -{ - Evas_Object *row = data; - evas_object_ref(icon); - - evas_object_size_hint_align_set(icon, 0.0, EVAS_HINT_FILL); - evas_object_size_hint_max_set(icon, 14, 14); - evas_object_size_hint_min_set(icon, 14, 14); - - elm_box_pack_start(row, icon); - evas_object_show(icon); -} - Eina_Bool list(const Arg *arg, void *data) { - const char *url; Window_Data *ad = data; Eina_List *l; Buffer_Data *td; Evas_Object *row, *label; - Evas *e = evas_object_evas_get(ad->win); - Ewk_Favicon_Database *database; elm_box_clear(ad->event_box); - database = ewk_context_favicon_database_get(ewk_context_default_get()); EINA_LIST_FOREACH(ad->buffer_list, l, td) { row = elm_box_add(ad->win); @@ -1027,12 +988,6 @@ list(const Arg *arg, void *data) elm_box_pack_end(ad->event_box, row); evas_object_show(row); - url = ewk_view_url_get(td->view); - if (strncmp(url, "http://", 7) == 0) - url += 7; - else if (strncmp(url, "https://", 8) == 0) - url += 8; - label = elm_label_add(ad->win); evas_object_size_hint_align_set(label, 0.0, EVAS_HINT_FILL); elm_box_pack_end(row, label); @@ -1041,23 +996,11 @@ list(const Arg *arg, void *data) elm_object_text_set(label, eina_strbuf_string_steal(buf)); evas_object_show(label); - label = elm_box_add(ad->win); - ewk_favicon_database_async_icon_get( - database, - ewk_view_url_get(td->view), - e, - received_favicon_cb, - label); + label = make_url_with_icon(ewk_view_url_get(td->view), ad); elm_box_pack_end(row, label); evas_object_show(label); label = elm_label_add(ad->win); - evas_object_size_hint_align_set(label, 0.0, EVAS_HINT_FILL); - elm_box_pack_end(row, label); - elm_object_text_set(label, url); - evas_object_show(label); - - label = elm_label_add(ad->win); evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(label, 1.0, EVAS_HINT_FILL); elm_box_pack_end(row, label); @@ -1104,51 +1047,10 @@ inspector(const Arg *arg, void *data) if (!bd->inspector_enabled) { ewk_view_inspector_show(bd->view); bd->inspector_enabled = EINA_TRUE; - update_url(ewk_view_url_get(bd->view), data); } else { ewk_view_inspector_close(bd->view); bd->inspector_enabled = EINA_FALSE; - update_url(ewk_view_url_get(bd->view), data); - } - - return EINA_TRUE; -} - -Eina_Bool -toggle_history(const Arg *arg, void *data) -{ - Window_Data *ad = data; - Buffer_Data *bd = ad->cur_buf; - Hist_Item *item = hist_items_get(ad->app->history, ewk_view_url_get(bd->view)); - Eina_Bool enab = hist_item_enabled_get(item); - - if (enab) { - hist_item_enabled_set(item, EINA_FALSE); - update_url(ewk_view_url_get(bd->view), data); - } else { - hist_item_enabled_set(item, EINA_TRUE); - update_url(ewk_view_url_get(bd->view), data); - } - - return EINA_TRUE; -} - -Eina_Bool -toggle_cookies(const Arg *arg, void *data) -{ - Window_Data *ad = data; - Buffer_Data *bd = ad->cur_buf; - - if (bd->cookies_enabled) { - bd->cookies_enabled = EINA_FALSE; - // ewk_cookies_policy_set(EWK_COOKIE_JAR_ACCEPT_NEVER); - update_url(ewk_view_url_get(bd->view), data); - } - else { - bd->cookies_enabled = EINA_TRUE; - // ewk_cookies_policy_set(EWK_COOKIE_JAR_ACCEPT_NO_THIRD_PARTY); - update_url(ewk_view_url_get(bd->view), data); } return EINA_TRUE; diff --git a/src/commands.h b/src/commands.h @@ -27,9 +27,6 @@ Eina_Bool set(const Arg *, void *); Eina_Bool list(const Arg *, void *); Eina_Bool switch_buffer(const Arg *, void *); Eina_Bool inspector(const Arg *, void *); -Eina_Bool proxy(const Arg *, void *); -Eina_Bool toggle_history(const Arg *, void *); -Eina_Bool toggle_cookies(const Arg *, void *); Eina_Bool window(const Arg *arg, void *data); // static Eina_Bool fake_key_event(const Arg *, void *); diff --git a/src/keymap.h b/src/keymap.h @@ -25,8 +25,6 @@ static Key keys[] = { { 0, 'q', "7", quickmark, { .s = "7" } }, { 0, 'q', "8", quickmark, { .s = "8" } }, { 0, 'q', "9", quickmark, { .s = "9" } }, - { "Control", 0, "h", toggle_history, { 0 } }, - { "Control", 0, "c", toggle_cookies, { 0 } }, { 0, 0, "0", scroll, {ScrollJumpTo | DirectionLeft} }, { 0, 0, "$", scroll, {ScrollJumpTo | DirectionRight} }, { 0, 'g', "g", scroll, {ScrollJumpTo | DirectionTop} }, @@ -87,7 +85,6 @@ static Key keys[] = { { 0, 'g', "h", open_arg, {TargetCurrent, DEFAULT_URL} }, { 0, 'g', "H", open_arg, {TargetNew, DEFAULT_URL} }, - { "Control", 0, "p", proxy, {0} }, { 0, 0, "p", paste, {TargetCurrent | ClipboardPrimary | ClipboardGTK} }, { 0, 0, "P", paste, {TargetNew | ClipboardPrimary | ClipboardGTK} }, diff --git a/src/utilities.c b/src/utilities.c @@ -669,7 +669,6 @@ update_state(Window_Data *wd) else eina_strbuf_append_printf(status, " %d%%", val); - */ elm_object_style_set(wd->status_state, "slide_bounce"); elm_object_text_set(wd->status_state, eina_strbuf_string_get(status)); @@ -681,61 +680,7 @@ update_state(Window_Data *wd) elm_label_wrap_width_set(wd->status_url, window_width - state_width); eina_strbuf_free(status); -} - -void -update_url(const char *uri, Window_Data *wd) -{ - Eina_Strbuf *url_buf; - - Buffer_Data *bd = wd->cur_buf; - char *url_color = "#FFF"; - - if (uri == NULL) - return; - - url_buf = eina_strbuf_new(); - - /* - if (!strncmp(uri, "https://", 8)) { - Evas_Object *frame = ewk_view_frame_main_get(bd->view); - Ewk_Certificate_Status cert_status = ewk_frame_certificate_status_get(frame); - if (cert_status & EWK_CERTIFICATE_STATUS_TRUSTED) - url_color = "#6F6"; - else if (cert_status & EWK_CERTIFICATE_STATUS_UNTRUSTED) - url_color = "#F66"; - - uri += 8; - } - else - uri += 7; */ - - eina_strbuf_append(url_buf, "<font=Monospace font_size=11 color=#FFF>"); - - /* - - strcat(flags, "["); - strcat(flags, bd->proxy_enabled ? "P" : " "); - strcat(flags, bd->inspector_enabled ? "I" : " "); - // strcat(flags, bd->history_enabled ? "H" : " "); - Hist_Item *item = hist_items_get(bd->window->app->history, ewk_view_url_get(bd->view)); - strcat(flags, (item && hist_item_enabled_get(item)) ? "H" : " "); - strcat(flags, bd->cookies_enabled ? "C" : " "); - - */ - eina_strbuf_append_printf(url_buf, " %2i ", bd->buf_number); - eina_strbuf_append_printf(url_buf, "<color=%s>%s", url_color, uri); - - int state_width, window_width; - evas_object_geometry_get(wd->status_state, NULL, NULL, &state_width, NULL); - evas_object_geometry_get(wd->win, NULL, NULL, &window_width, NULL); - elm_label_wrap_width_set(wd->status_url, window_width - state_width); - - elm_object_style_set(wd->status_url, "slide_bounce"); - elm_object_text_set(wd->status_url, eina_strbuf_string_get(url_buf)); - - eina_strbuf_free(url_buf); } Eina_Bool @@ -795,4 +740,71 @@ set_widget_font_and_color(Evas_Object *widget, const char *font_str, const char } */ +static void +received_favicon_cb(const char *url, Evas_Object *icon, void *data) +{ + Evas_Object *row = data; + evas_object_ref(icon); + + evas_object_size_hint_align_set(icon, 0.0, EVAS_HINT_FILL); + evas_object_size_hint_max_set(icon, 14, 14); + evas_object_size_hint_min_set(icon, 14, 14); + + elm_box_pack_start(row, icon); + evas_object_show(icon); +} + +Evas_Object* +make_url_with_icon(const char *url, Window_Data *wd) +{ + Ewk_Favicon_Database *database; + Evas_Object *icon, *label, *return_box; + Evas *e = evas_object_evas_get(wd->win); + + if (url == NULL) + return NULL; + + return_box = elm_box_add(wd->win); + elm_box_horizontal_set(return_box, EINA_TRUE); + evas_object_show(return_box); + + database = ewk_context_favicon_database_get(ewk_context_default_get()); + icon = elm_box_add(wd->win); + ewk_favicon_database_async_icon_get( + database, + url, + e, + received_favicon_cb, + icon); + elm_box_pack_end(return_box, icon); + evas_object_show(icon); + + if (strncmp(url, "http://", 7) == 0) + url += 7; + else if (strncmp(url, "https://", 8) == 0) + url += 8; + /* + if (!strncmp(uri, "https://", 8)) { + Evas_Object *frame = ewk_view_frame_main_get(bd->view); + Ewk_Certificate_Status cert_status = ewk_frame_certificate_status_get(frame); + if (cert_status & EWK_CERTIFICATE_STATUS_TRUSTED) + url_color = "#6F6"; + else if (cert_status & EWK_CERTIFICATE_STATUS_UNTRUSTED) + url_color = "#F66"; + + uri += 8; + } + else + uri += 7; + */ + + label = elm_label_add(wd->win); + elm_box_pack_end(return_box, label); + elm_object_text_set(label, url); + evas_object_show(label); + + printf("make_url_with_icon()\n"); + + return return_box; +} diff --git a/src/utilities.h b/src/utilities.h @@ -29,8 +29,8 @@ void userscript_hooks_end(const char*); void setup_modkeys(void *data); Eina_Bool echo(const Arg *arg, void *); void update_state(Window_Data*); -void update_url(const char*, Window_Data*); Eina_Bool enable_proxy(Buffer_Data *bd); +Evas_Object* make_url_with_icon(const char *url, Window_Data *wd); char *find_uri_for_searchengine(const char *handle); void make_searchengines_list(Searchengine *searchengines, int length); diff --git a/src/window.c b/src/window.c @@ -359,7 +359,8 @@ window_main_buffer_set(Buffer_Data *new_buf) ewk_cookies_policy_set(EWK_COOKIE_JAR_ACCEPT_NEVER); */ // evas_object_show(new_buf->view); - update_url(ewk_view_url_get(new_buf->view), wd); + elm_box_clear(wd->status_url); + elm_box_pack_end(wd->status_url, make_url_with_icon(ewk_view_url_get(new_buf->view), wd)); } } @@ -394,13 +395,13 @@ window_add(App_Data *ad, Session_Window *session_window) fprintf(stderr, "grab failed mask = %s, key = %s\n", keys[i].mask , keys[i].key); } - elm_config_engine_set("opengl_x11"); + // elm_config_engine_set("opengl_x11"); /* program bacground */ bg = elm_bg_add(win); evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, bg); - elm_bg_color_set(bg, 0, 0, 0); + // elm_bg_color_set(bg, 0, 0, 0); evas_object_layer_set(bg, EVAS_LAYER_MIN); evas_object_show(bg); @@ -426,7 +427,7 @@ window_add(App_Data *ad, Session_Window *session_window) evas_object_show(status_bar); /* status bar url */ - status_url = elm_label_add(win); + status_url = elm_box_add(win); evas_object_size_hint_align_set(status_url, 0.0, EVAS_HINT_FILL); elm_box_pack_end(status_bar, status_url); evas_object_show(status_url);