[geany/geany-plugins] c12903: gproject: Display content-type-specific icons for files in the sidebar
Colomban Wendling
git-noreply at xxxxx
Sun Jan 26 22:35:47 UTC 2014
Branch: refs/heads/master
Author: Colomban Wendling <ban at herbesfolles.org>
Committer: Colomban Wendling <ban at herbesfolles.org>
Date: Sun, 26 Jan 2014 22:35:47 UTC
Commit: c12903d6ab673f821987aa76181df12b69139804
https://github.com/geany/geany-plugins/commit/c12903d6ab673f821987aa76181df12b69139804
Log Message:
-----------
gproject: Display content-type-specific icons for files in the sidebar
Modified Paths:
--------------
gproject/src/gproject-sidebar.c
Modified: gproject/src/gproject-sidebar.c
39 files changed, 31 insertions(+), 8 deletions(-)
===================================================================
@@ -346,7 +346,7 @@ static void on_open_clicked(void)
else
{
gchar *name;
- gchar *icon;
+ GIcon *icon;
gtk_tree_model_get(model, &iter, FILEVIEW_COLUMN_ICON, &icon, -1);
@@ -359,6 +359,7 @@ static void on_open_clicked(void)
name = build_path(&iter);
open_file(name);
g_free(name);
+ g_object_unref(icon);
}
}
}
@@ -457,6 +458,7 @@ static void create_branch(gint level, GSList *leaf_list, GtkTreeIter *parent,
GtkTreeIter iter;
gchar **path_arr = dir_list->data;
gchar *last_dir_name;
+ GIcon *icon_dir = g_icon_new_for_string("gtk-directory", NULL);
last_dir_name = path_arr[level];
@@ -471,7 +473,7 @@ static void create_branch(gint level, GSList *leaf_list, GtkTreeIter *parent,
{
gtk_tree_store_append(s_file_store, &iter, parent);
gtk_tree_store_set(s_file_store, &iter,
- FILEVIEW_COLUMN_ICON, "gtk-directory",
+ FILEVIEW_COLUMN_ICON, icon_dir,
FILEVIEW_COLUMN_NAME, last_dir_name, -1);
create_branch(level+1, tmp_list, &iter, header_patterns, source_patterns);
@@ -486,39 +488,60 @@ static void create_branch(gint level, GSList *leaf_list, GtkTreeIter *parent,
gtk_tree_store_append(s_file_store, &iter, parent);
gtk_tree_store_set(s_file_store, &iter,
- FILEVIEW_COLUMN_ICON, "gtk-directory",
+ FILEVIEW_COLUMN_ICON, icon_dir,
FILEVIEW_COLUMN_NAME, last_dir_name, -1);
create_branch(level+1, tmp_list, &iter, header_patterns, source_patterns);
g_slist_free(tmp_list);
g_slist_free(dir_list);
+ g_object_unref(icon_dir);
}
for (elem = file_list; elem != NULL; elem = g_slist_next(elem))
{
GtkTreeIter iter;
gchar **path_arr = elem->data;
+ GIcon *icon;
+ gchar *content_type = g_content_type_guess(path_arr[level], NULL, 0, NULL);
+
+ if (content_type)
+ {
+ icon = g_content_type_get_icon(content_type);
+ g_free(content_type);
+ }
gtk_tree_store_append(s_file_store, &iter, parent);
if (patterns_match(header_patterns, path_arr[level]))
{
+ if (! icon)
+ icon = g_icon_new_for_string("gproject-header", NULL);
+
gtk_tree_store_set(s_file_store, &iter,
- FILEVIEW_COLUMN_ICON, "gproject-header",
+ FILEVIEW_COLUMN_ICON, icon,
FILEVIEW_COLUMN_NAME, path_arr[level], -1);
}
else if (patterns_match(source_patterns, path_arr[level]))
{
+ if (! icon)
+ icon = g_icon_new_for_string("gproject-source", NULL);
+
gtk_tree_store_set(s_file_store, &iter,
- FILEVIEW_COLUMN_ICON, "gproject-source",
+ FILEVIEW_COLUMN_ICON, icon,
FILEVIEW_COLUMN_NAME, path_arr[level], -1);
}
else
{
+ if (! icon)
+ icon = g_icon_new_for_string("gproject-file", NULL);
+
gtk_tree_store_set(s_file_store, &iter,
- FILEVIEW_COLUMN_ICON, "gproject-file",
+ FILEVIEW_COLUMN_ICON, icon,
FILEVIEW_COLUMN_NAME, path_arr[level], -1);
}
+
+ if (icon)
+ g_object_unref(icon);
}
g_slist_free(file_list);
@@ -735,13 +758,13 @@ void gprj_sidebar_init(void)
s_file_view = gtk_tree_view_new();
- s_file_store = gtk_tree_store_new(FILEVIEW_N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING);
+ s_file_store = gtk_tree_store_new(FILEVIEW_N_COLUMNS, G_TYPE_ICON, G_TYPE_STRING);
gtk_tree_view_set_model(GTK_TREE_VIEW(s_file_view), GTK_TREE_MODEL(s_file_store));
renderer = gtk_cell_renderer_pixbuf_new();
column = gtk_tree_view_column_new();
gtk_tree_view_column_pack_start(column, renderer, FALSE);
- gtk_tree_view_column_set_attributes(column, renderer, "icon-name", FILEVIEW_COLUMN_ICON, NULL);
+ gtk_tree_view_column_set_attributes(column, renderer, "gicon", FILEVIEW_COLUMN_ICON, NULL);
renderer = gtk_cell_renderer_text_new();
gtk_tree_view_column_pack_start(column, renderer, TRUE);
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).
More information about the Plugins-Commits
mailing list