diff options
author | Christian Persch <chpe@cvs.gnome.org> | 2006-12-18 20:35:02 +0800 |
---|---|---|
committer | Christian Persch <chpe@src.gnome.org> | 2006-12-18 20:35:02 +0800 |
commit | bf6e7073bb05741c865cf9efee9ec387acdee4b9 (patch) | |
tree | 75422120e4a01aae82d4e337024df589b10981b1 /src | |
parent | 436f6e9686a7ae31883c8bd2e30cf76853141a9a (diff) | |
download | gsoc2013-epiphany-bf6e7073bb05741c865cf9efee9ec387acdee4b9.tar gsoc2013-epiphany-bf6e7073bb05741c865cf9efee9ec387acdee4b9.tar.gz gsoc2013-epiphany-bf6e7073bb05741c865cf9efee9ec387acdee4b9.tar.bz2 gsoc2013-epiphany-bf6e7073bb05741c865cf9efee9ec387acdee4b9.tar.lz gsoc2013-epiphany-bf6e7073bb05741c865cf9efee9ec387acdee4b9.tar.xz gsoc2013-epiphany-bf6e7073bb05741c865cf9efee9ec387acdee4b9.tar.zst gsoc2013-epiphany-bf6e7073bb05741c865cf9efee9ec387acdee4b9.zip |
Show favicons in location entry drop-down. Bug #112748, patch by Diego
2006-12-18 Christian Persch <chpe@cvs.gnome.org>
* lib/widgets/ephy-location-entry.c:
(ephy_location_entry_set_completion):
* lib/widgets/ephy-location-entry.h:
* src/ephy-completion-model.c:
(ephy_completion_model_get_column_type), (init_favicon_col),
(ephy_completion_model_get_value):
* src/ephy-completion-model.h:
* src/ephy-location-action.c: (connect_proxy):
Show favicons in location entry drop-down. Bug #112748, patch by Diego
Escalante Urrelo.
Diffstat (limited to 'src')
-rw-r--r-- | src/ephy-completion-model.c | 39 | ||||
-rw-r--r-- | src/ephy-completion-model.h | 1 | ||||
-rw-r--r-- | src/ephy-location-action.c | 3 |
3 files changed, 42 insertions, 1 deletions
diff --git a/src/ephy-completion-model.c b/src/ephy-completion-model.c index 75358c096..6691062fd 100644 --- a/src/ephy-completion-model.c +++ b/src/ephy-completion-model.c @@ -21,6 +21,7 @@ #include "config.h" #include "ephy-completion-model.h" +#include "ephy-favicon-cache.h" #include "ephy-node.h" #include "ephy-shell.h" #include "ephy-history.h" @@ -274,6 +275,9 @@ ephy_completion_model_get_column_type (GtkTreeModel *tree_model, case EPHY_COMPLETION_EXTRA_COL: type = G_TYPE_STRING; break; + case EPHY_COMPLETION_FAVICON_COL: + type = GDK_TYPE_PIXBUF; + break; case EPHY_COMPLETION_RELEVANCE_COL: type = G_TYPE_INT; break; @@ -347,6 +351,37 @@ init_keywords_col (GValue *value, EphyNode *node, int group) g_value_set_string (value, text); } +static void +init_favicon_col (GValue *value, EphyNode *node, int group) +{ + EphyFaviconCache *cache; + const char *icon_location; + GdkPixbuf *pixbuf = NULL; + + cache = EPHY_FAVICON_CACHE + (ephy_embed_shell_get_favicon_cache (EPHY_EMBED_SHELL (ephy_shell))); + + switch (group) + { + case BOOKMARKS_GROUP: + icon_location = ephy_node_get_property_string + (node, EPHY_NODE_BMK_PROP_ICON); + break; + case HISTORY_GROUP: + icon_location = ephy_node_get_property_string + (node, EPHY_NODE_PAGE_PROP_ICON); + break; + default: + icon_location = NULL; + } + + if (icon_location) + { + pixbuf = ephy_favicon_cache_get (cache, icon_location); + } + + g_value_take_object (value, pixbuf); +} static gboolean is_base_address (const char *address) @@ -443,6 +478,10 @@ ephy_completion_model_get_value (GtkTreeModel *tree_model, g_value_init (value, G_TYPE_STRING); init_text_col (value, node, group); break; + case EPHY_COMPLETION_FAVICON_COL: + g_value_init (value, GDK_TYPE_PIXBUF); + init_favicon_col (value, node, group); + break; case EPHY_COMPLETION_ACTION_COL: g_value_init (value, G_TYPE_STRING); init_action_col (value, node, group); diff --git a/src/ephy-completion-model.h b/src/ephy-completion-model.h index d54470912..973951ad8 100644 --- a/src/ephy-completion-model.h +++ b/src/ephy-completion-model.h @@ -41,6 +41,7 @@ typedef enum EPHY_COMPLETION_KEYWORDS_COL, EPHY_COMPLETION_RELEVANCE_COL, EPHY_COMPLETION_EXTRA_COL, + EPHY_COMPLETION_FAVICON_COL, N_COL } EphyCompletionColumn; diff --git a/src/ephy-location-action.c b/src/ephy-location-action.c index 25af807a5..a4431d813 100644 --- a/src/ephy-location-action.c +++ b/src/ephy-location-action.c @@ -369,7 +369,8 @@ connect_proxy (GtkAction *action, GtkWidget *proxy) EPHY_COMPLETION_ACTION_COL, EPHY_COMPLETION_KEYWORDS_COL, EPHY_COMPLETION_RELEVANCE_COL, - EPHY_COMPLETION_EXTRA_COL); + EPHY_COMPLETION_EXTRA_COL, + EPHY_COMPLETION_FAVICON_COL); add_completion_actions (action, proxy); |