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:
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);