Updating branch refs/heads/master to d107b6e07496eb6eeca4ee10bfaa9d5afb9844a0 (commit) from 08d8ceb253f8e5ac47340678e292e6c17b5bbb61 (commit)
commit d107b6e07496eb6eeca4ee10bfaa9d5afb9844a0 Author: Christian Dywan <christ...@twotoasts.de> Date: Fri Dec 7 18:53:14 2012 +0100 Move icon path setup and clearing into Midori.Paths katze/katze-net.c | 3 +- katze/katze-net.h | 3 ++ katze/midori-paths.vala | 15 ++++++++++ midori/midori-browser.c | 60 +++++++++++++------------------------------ midori/midori-frontend.c | 2 +- midori/midori-privatedata.c | 17 +----------- midori/midori-session.c | 6 ---- midori/midori-view.c | 9 +----- midori/midori-view.h | 3 -- 9 files changed, 42 insertions(+), 76 deletions(-) diff --git a/katze/katze-net.c b/katze/katze-net.c index 05841e5..fc82510 100644 --- a/katze/katze-net.c +++ b/katze/katze-net.c @@ -22,7 +22,6 @@ #include <glib/gstdio.h> #include <libsoup/soup.h> -#include <webkit/webkit.h> struct _KatzeNet { @@ -78,6 +77,7 @@ katze_net_priv_free (KatzeNetPriv* priv) g_slice_free (KatzeNetPriv, priv); } +#if !WEBKIT_CHECK_VERSION (1, 8, 0) gchar* katze_net_get_cached_path (KatzeNet* net, const gchar* uri, @@ -110,6 +110,7 @@ katze_net_get_cached_path (KatzeNet* net, g_free (cached_filename); return cached_path; } +#endif static void katze_net_got_body_cb (SoupMessage* msg, diff --git a/katze/katze-net.h b/katze/katze-net.h index eea2df4..87c0912 100644 --- a/katze/katze-net.h +++ b/katze/katze-net.h @@ -12,6 +12,7 @@ #ifndef __KATZE_NET_H__ #define __KATZE_NET_H__ +#include <webkit/webkit.h> #include "katze-utils.h" G_BEGIN_DECLS @@ -66,10 +67,12 @@ katze_net_load_uri (KatzeNet* net, KatzeNetTransferCb transfer_cb, gpointer user_data); +#if !WEBKIT_CHECK_VERSION (1, 8, 0) gchar* katze_net_get_cached_path (KatzeNet* net, const gchar* uri, const gchar* subfolder); +#endif G_END_DECLS diff --git a/katze/midori-paths.vala b/katze/midori-paths.vala index 6c1ed41..2f62a90 100644 --- a/katze/midori-paths.vala +++ b/katze/midori-paths.vala @@ -116,6 +116,10 @@ namespace Midori { tmp_dir = Path.build_path (Path.DIR_SEPARATOR_S, Environment.get_tmp_dir (), "midori-" + Environment.get_user_name ()); } +#if HAVE_WEBKIT_1_8_0 + if (user_data_dir != null) + WebKit.get_favicon_database ().set_path (Path.build_filename (user_data_dir, "webkit", "icondatabase")); +#endif if (strcmp (Environment.get_variable ("MIDORI_DEBUG"), "paths") == 0) { stdout.printf ("config: %s\ncache: %s\nuser_data: %s\ntmp: %s\n", config_dir, cache_dir, user_data_dir, tmp_dir); @@ -364,6 +368,17 @@ namespace Midori { #endif } + public static void clear_icons () { + assert (cache_dir != null); + assert (user_data_dir != null); +#if HAVE_WEBKIT_1_8_0 + WebKit.get_favicon_database ().clear (); +#endif + /* FIXME: Exclude search engine icons */ + remove_path (Path.build_filename (cache_dir, "icons")); + remove_path (Path.build_filename (user_data_dir, "webkit", "icondatabase")); + } + public static Gdk.Pixbuf? get_icon (string? uri, Gtk.Widget? widget) { if (!Midori.URI.is_resource (uri)) return null; diff --git a/midori/midori-browser.c b/midori/midori-browser.c index c773c51..df60c75 100644 --- a/midori/midori-browser.c +++ b/midori/midori-browser.c @@ -2411,23 +2411,18 @@ _action_add_desktop_shortcut_activate (GtkAction* action, KatzeItem* item = midori_view_get_proxy_item (MIDORI_VIEW (tab)); const gchar* app_name = katze_item_get_name (item); gchar* app_exec = g_strconcat ("midori -a ", katze_item_get_uri (item), NULL); - const gchar* icon_uri = midori_view_get_icon_uri (MIDORI_VIEW (tab)); - gchar* app_icon; GKeyFile* keyfile = g_key_file_new (); - gchar* filename = g_strconcat (app_name, ".desktop", NULL); - gchar* app_dir; - int i = 0; - while (filename[i] != '\0') - { - if (filename[i] == '/') - filename[i] = '_'; - i++; - } - app_dir = g_build_filename (g_get_user_data_dir (), - "applications", filename, NULL); - app_icon = katze_net_get_cached_path (NULL, icon_uri, "icons"); + gchar* filename = g_strdelimit (g_strconcat (app_name, ".desktop", NULL), "/", '_'); + gchar* app_dir = g_build_filename (g_get_user_data_dir (), "applications", filename, NULL); + #if WEBKIT_CHECK_VERSION (1, 8, 0) + /* FIXME: midori_paths_get_icon */ + gchar* app_icon = g_strdup (STOCK_WEB_BROWSER); + #else + const gchar* icon_uri = midori_view_get_icon_uri (MIDORI_VIEW (tab)); + gchar* app_icon = katze_net_get_cached_path (NULL, icon_uri, "icons"); if (!g_file_test (app_icon, G_FILE_TEST_EXISTS)) katze_assign (app_icon, g_strdup (STOCK_WEB_BROWSER)); + #endif g_key_file_set_string (keyfile, "Desktop Entry", "Version", "1.0"); g_key_file_set_string (keyfile, "Desktop Entry", "Type", "Application"); g_key_file_set_string (keyfile, "Desktop Entry", "Name", app_name); @@ -2439,6 +2434,7 @@ _action_add_desktop_shortcut_activate (GtkAction* action, g_free (app_dir); g_free (filename); g_free (app_exec); + g_free (app_icon); g_key_file_free (keyfile); #elif defined(GDK_WINDOWING_QUARTZ) /* TODO: Implement */ @@ -6422,7 +6418,6 @@ midori_browser_toolbar_popup_context_menu_history (MidoriBrowser* browser, const gint step = back ? -1 : 1; gint steps = step; GtkWidget* menu; - GtkWidget* menu_item; WebKitWebBackForwardList* list; WebKitWebHistoryItem* current_item; WebKitWebHistoryItem* history_item; @@ -6448,36 +6443,17 @@ midori_browser_toolbar_popup_context_menu_history (MidoriBrowser* browser, for (; (history_item = history_next (list)); history_action (list), steps += step) { - #if WEBKIT_CHECK_VERSION (1, 3, 13) - gchar* icon_uri; - gchar* icon_path; - GdkPixbuf* pixbuf; - GdkPixbuf* pixbuf_scaled = NULL; - #endif - - menu_item = gtk_image_menu_item_new_with_label ( + const gchar* uri = webkit_web_history_item_get_uri (history_item); + GtkWidget* menu_item = gtk_image_menu_item_new_with_label ( webkit_web_history_item_get_title (history_item)); - #if WEBKIT_CHECK_VERSION (1, 3, 13) - icon_uri = webkit_icon_database_get_icon_uri (webkit_get_icon_database (), - webkit_web_history_item_get_uri (history_item)); - icon_path = katze_net_get_cached_path (NULL, icon_uri, "icons"); - if ((pixbuf = gdk_pixbuf_new_from_file (icon_path, NULL))) + GdkPixbuf* pixbuf; + if ((pixbuf = midori_paths_get_icon (uri, widget))) { - gint w = 16, h = 16; - gtk_icon_size_lookup_for_settings (gtk_widget_get_settings (widget), - GTK_ICON_SIZE_MENU, &w, &h); - pixbuf_scaled = gdk_pixbuf_scale_simple (pixbuf, - w, h, GDK_INTERP_BILINEAR); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), + gtk_image_new_from_pixbuf (pixbuf)); + g_object_unref (pixbuf); } - gtk_image_menu_item_set_image ( - GTK_IMAGE_MENU_ITEM (menu_item), - pixbuf_scaled ? gtk_image_new_from_pixbuf (pixbuf_scaled) : - gtk_image_new_from_stock (GTK_STOCK_FILE, GTK_ICON_SIZE_MENU)); - g_free (icon_uri); - g_free (icon_path); - #endif - g_object_set_data (G_OBJECT (menu_item), "uri", - (gpointer) webkit_web_history_item_get_uri (history_item)); + g_object_set_data (G_OBJECT (menu_item), "uri", (gpointer)uri); g_object_set_data (G_OBJECT (menu_item), "steps", GINT_TO_POINTER (steps)); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); g_signal_connect (G_OBJECT (menu_item), "activate", diff --git a/midori/midori-frontend.c b/midori/midori-frontend.c index b6c68b9..142619d 100644 --- a/midori/midori-frontend.c +++ b/midori/midori-frontend.c @@ -250,7 +250,7 @@ midori_browser_privacy_preferences_cb (MidoriBrowser* browser, static void midori_app_add_browser_cb (MidoriApp* app, MidoriBrowser* browser, - KatzeNet* net) + gpointer user_data) { GtkWidget* panel; GtkWidget* addon; diff --git a/midori/midori-privatedata.c b/midori/midori-privatedata.c index 48504cd..89fdce6 100644 --- a/midori/midori-privatedata.c +++ b/midori/midori-privatedata.c @@ -291,21 +291,6 @@ midori_clear_web_cache_cb (void) } #endif -static void -midori_clear_page_icons_cb (void) -{ - gchar* cache = g_build_filename (midori_paths_get_cache_dir (), "icons", NULL); - /* FIXME: Exclude search engine icons */ - midori_paths_remove_path (cache); - g_free (cache); - cache = g_build_filename (midori_paths_get_user_data_dir (), "webkit", "icondatabase", NULL); - midori_paths_remove_path (cache); - g_free (cache); - #if WEBKIT_CHECK_VERSION (1, 8, 0) - webkit_favicon_database_clear (webkit_get_favicon_database ()); - #endif -} - void midori_private_data_register_built_ins () { @@ -320,7 +305,7 @@ midori_private_data_register_built_ins () G_CALLBACK (midori_clear_web_cache_cb)); #endif midori_private_data_register_item ("page-icons", _("Website icons"), - G_CALLBACK (midori_clear_page_icons_cb)); + G_CALLBACK (midori_paths_clear_icons)); } void diff --git a/midori/midori-session.c b/midori/midori-session.c index be2f09a..17b5166 100644 --- a/midori/midori-session.c +++ b/midori/midori-session.c @@ -298,12 +298,6 @@ midori_load_soup_session_full (gpointer settings) katze_object_get_int (settings, "maximum-cache-size") * 1024 * 1024); soup_cache_load (SOUP_CACHE (feature)); #endif - - #if WEBKIT_CHECK_VERSION (1, 8, 0) - katze_assign (config_file, g_build_filename (midori_paths_get_user_data_dir (), - "webkit", "icondatabase", NULL)); - webkit_favicon_database_set_path (webkit_get_favicon_database (), config_file); - #endif g_free (config_file); return FALSE; diff --git a/midori/midori-view.c b/midori/midori-view.c index ea9e354..c48a752 100644 --- a/midori/midori-view.c +++ b/midori/midori-view.c @@ -561,13 +561,7 @@ static void _midori_web_view_load_icon (MidoriView* view) { GdkPixbuf* pixbuf = NULL; - gint icon_width, icon_height; - GtkSettings* settings; - #if WEBKIT_CHECK_VERSION (1, 8, 0) - settings = gtk_widget_get_settings (view->web_view); - gtk_icon_size_lookup_for_settings (settings, GTK_ICON_SIZE_MENU, - &icon_width, &icon_height); if ((pixbuf = webkit_web_view_try_get_favicon_pixbuf ( WEBKIT_WEB_VIEW (view->web_view), 16, 16))) midori_view_apply_icon (view, pixbuf, view->icon_uri); @@ -620,7 +614,8 @@ _midori_web_view_load_icon (MidoriView* view) if (pixbuf) { - settings = gtk_widget_get_settings (view->web_view); + gint icon_width, icon_height; + GtkSettings* settings = gtk_widget_get_settings (view->web_view); gtk_icon_size_lookup_for_settings (settings, GTK_ICON_SIZE_MENU, &icon_width, &icon_height); pixbuf_scaled = gdk_pixbuf_scale_simple (pixbuf, icon_width, diff --git a/midori/midori-view.h b/midori/midori-view.h index a62e69d..40ede7c 100644 --- a/midori/midori-view.h +++ b/midori/midori-view.h @@ -60,9 +60,6 @@ GType midori_view_get_type (void) G_GNUC_CONST; GtkWidget* -midori_view_new (KatzeNet* net); - -GtkWidget* midori_view_new_with_title (const gchar* title, MidoriWebSettings* settings, gboolean append); _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits