summaryrefslogtreecommitdiff
path: root/src/trg-files-model.c
diff options
context:
space:
mode:
authorGravatar Alan Fitton <ajf@eth0.org.uk>2011-10-03 07:46:12 +0000
committerGravatar Alan Fitton <ajf@eth0.org.uk>2011-10-03 07:46:12 +0000
commita9780439e066ea76d7b5aa6af66a8a539c59b0cf (patch)
tree5cbde63721e07e7498bf952ac25df2c92139207c /src/trg-files-model.c
parent88499797cc64ae0e563ef978ca2e08f38c4a6051 (diff)
issue 145 - fix my broken regex which was causing filenames to be treated as URLs. issue 141 - patch for showing mime type icons in file list.
Diffstat (limited to 'src/trg-files-model.c')
-rw-r--r--src/trg-files-model.c24
1 files changed, 19 insertions, 5 deletions
diff --git a/src/trg-files-model.c b/src/trg-files-model.c
index 3836398..e816924 100644
--- a/src/trg-files-model.c
+++ b/src/trg-files-model.c
@@ -44,12 +44,25 @@ static void trg_files_model_iter_new(TrgFilesModel * model,
GtkTreeIter * iter, JsonObject * file,
int id)
{
- gtk_list_store_append(GTK_LIST_STORE(model), iter);
+ gchar *mimetype;
+ gtk_list_store_append(GTK_LIST_STORE(model), iter);
gtk_list_store_set(GTK_LIST_STORE(model), iter,
FILESCOL_NAME, file_get_name(file),
FILESCOL_SIZE, file_get_length(file),
FILESCOL_ID, id, -1);
+
+ mimetype = g_content_type_guess(file_get_name(file), NULL, 0, NULL);
+ if (mimetype) {
+ GIcon *icon = g_content_type_get_icon (mimetype);
+ if (icon) {
+ gtk_list_store_set(GTK_LIST_STORE(model), iter,
+ FILESCOL_ICON, icon, -1);
+ g_object_unref(icon);
+ }
+ }
+
+ g_free(mimetype);
}
void trg_files_model_set_accept(TrgFilesModel * model, gboolean accept)
@@ -77,9 +90,9 @@ trg_files_model_iter_update(TrgFilesModel * model,
if (priv->accept) {
gtk_list_store_set(GTK_LIST_STORE(model), filesIter,
- FILESCOL_ICON,
- wanted ? GTK_STOCK_FILE :
- GTK_STOCK_CANCEL, FILESCOL_WANTED, wanted,
+ /* set wanted icon: FILESCOL_WANTED_ICON,
+ wanted ? GTK_STOCK_APPLY : GTK_STOCK_CANCEL, */
+ FILESCOL_WANTED, wanted,
FILESCOL_PRIORITY, priority, -1);
}
}
@@ -96,12 +109,13 @@ static void trg_files_model_init(TrgFilesModel * self)
priv->accept = TRUE;
- column_types[FILESCOL_ICON] = G_TYPE_STRING;
+ column_types[FILESCOL_ICON] = G_TYPE_ICON;
column_types[FILESCOL_NAME] = G_TYPE_STRING;
column_types[FILESCOL_SIZE] = G_TYPE_INT64;
column_types[FILESCOL_PROGRESS] = G_TYPE_DOUBLE;
column_types[FILESCOL_ID] = G_TYPE_INT;
column_types[FILESCOL_WANTED] = G_TYPE_BOOLEAN;
+ //column_types[FILESCOL_WANTED_ICON] = G_TYPE_STRING;
column_types[FILESCOL_PRIORITY] = G_TYPE_INT64;
gtk_list_store_set_column_types(GTK_LIST_STORE(self),