Updating branch refs/heads/master
         to 26947daaf4219756f73b97b3cc7c74adead5981e (commit)
       from 72da5b00a24a60603191f5aba057a80b97527a8c (commit)

commit 26947daaf4219756f73b97b3cc7c74adead5981e
Author: Peter de Ridder <[email protected]>
Date:   Sun Aug 21 13:55:46 2011 +0200

    Fixed mime info and mime icons

 libsqueeze/archive-iter.c    |   31 +++++++++++++++----------------
 libsqueeze/archive.c         |    6 +-----
 libsqueeze/libsqueeze-view.h |    2 +-
 src/archive_store.c          |   26 +++++++++-----------------
 src/notebook.c               |    2 +-
 5 files changed, 27 insertions(+), 40 deletions(-)

diff --git a/libsqueeze/archive-iter.c b/libsqueeze/archive-iter.c
index b5f36bd..1022c47 100644
--- a/libsqueeze/archive-iter.c
+++ b/libsqueeze/archive-iter.c
@@ -51,7 +51,7 @@ lsq_archive_entry_save_free(const LSQArchive *, 
LSQArchiveEntry *);
 inline static const gchar *
 lsq_archive_entry_get_filename(const LSQArchiveEntry *);
 inline static const gchar *
-lsq_archive_entry_get_mimetype(const LSQArchiveEntry *);
+lsq_archive_entry_get_contenttype(const LSQArchiveEntry *);
 
 inline static guint
 lsq_archive_entry_n_children(const LSQArchiveEntry *);
@@ -395,13 +395,14 @@ lsq_archive_iter_get_real_parent(LSQArchiveIter *iter)
 gboolean
 lsq_archive_iter_is_directory(const LSQArchiveIter *iter)
 {
+       const gchar *contenttype;
 #ifdef debug
        g_return_val_if_fail(iter, FALSE);
 #endif
-       const gchar *mime = lsq_archive_entry_get_mimetype(iter->entry);
-       if(!mime)
+       contenttype = lsq_archive_entry_get_contenttype(iter->entry);
+       if(!contenttype)
                return FALSE;
-       if(!strcmp(mime, LSQ_MIME_DIRECTORY))
+       if(!strcmp(contenttype, LSQ_MIME_DIRECTORY))
                return TRUE;
        return FALSE;
 }
@@ -591,12 +592,12 @@ lsq_archive_iter_get_filename(const LSQArchiveIter *iter)
 }
 
 const gchar*
-lsq_archive_iter_get_mime(const LSQArchiveIter *iter)
+lsq_archive_iter_get_contenttype(const LSQArchiveIter *iter)
 {
 #ifdef DEBUG
        g_return_val_if_fail(iter, FALSE);
 #endif
-       return lsq_archive_entry_get_mimetype(iter->entry);
+       return lsq_archive_entry_get_contenttype(iter->entry);
 }
 
 gboolean
@@ -892,23 +893,21 @@ lsq_archive_entry_new(const gchar *filename)
        if(pos)
        {
                entry->filename = g_strndup(filename, (gsize)(pos - filename));
-               /*entry->mime_info = 
thunar_vfs_mime_database_get_info(lsq_mime_database, LSQ_MIME_DIRECTORY);*/
+               entry->content_type = g_strdup(LSQ_MIME_DIRECTORY);
        }
        else
        {
                entry->filename = g_strdup(filename);
-        /*
                if(g_utf8_validate (filename, -1, NULL))
                {
-                       entry->mime_info = 
thunar_vfs_mime_database_get_info_for_name(lsq_mime_database, entry->filename);
+                       entry->content_type = 
g_content_type_guess(entry->filename, NULL, 0, NULL);
                }
                else
                {
                        gchar *utf8_file = g_convert(filename, -1, "UTF-8", 
"WINDOWS-1252", NULL, NULL, NULL);
-                       entry->mime_info = 
thunar_vfs_mime_database_get_info_for_name(lsq_mime_database, utf8_file);
+                       entry->content_type = g_content_type_guess(utf8_file, 
NULL, 0, NULL);
                        g_free(utf8_file);
                }
-        */
        }
 
        return entry;
@@ -1011,7 +1010,7 @@ lsq_archive_entry_free(const LSQArchive *archive, 
LSQArchiveEntry *entry)
        /* free the properties */
        lsq_archive_entry_props_free(archive, entry);
 
-       /* free the mime info */
+       /* free the content type */
        if(entry->content_type)
     {
         g_free (entry->content_type);
@@ -1030,7 +1029,7 @@ lsq_archive_entry_get_filename(const LSQArchiveEntry 
*entry)
 }
 
 inline static const gchar *
-lsq_archive_entry_get_mimetype(const LSQArchiveEntry *entry)
+lsq_archive_entry_get_contenttype(const LSQArchiveEntry *entry)
 {
        return entry->content_type;
 }
@@ -1196,9 +1195,9 @@ static LSQArchiveEntry *
 lsq_archive_entry_add_child(LSQArchiveEntry *parent, const gchar *filename)
 {
        LSQArchiveEntry *child = lsq_archive_entry_new(filename);
-       const gchar *mime = lsq_archive_entry_get_mimetype(parent);
+       const gchar *contenttype = lsq_archive_entry_get_contenttype(parent);
 
-       if(!mime || strcmp(mime, LSQ_MIME_DIRECTORY))
+       if(!contenttype || strcmp(contenttype, LSQ_MIME_DIRECTORY))
        {
         /*
                if(parent->content_type)
@@ -1299,7 +1298,7 @@ lsq_archive_entry_get_prop_str(const LSQArchive *archive, 
const LSQArchiveEntry
                        retval = lsq_archive_entry_get_filename(entry);
                        break;
                case LSQ_ARCHIVE_PROP_MIME_TYPE:
-                       retval = lsq_archive_entry_get_mimetype(entry);
+                       retval = lsq_archive_entry_get_contenttype(entry);
                        break;
                default:
                        props_iter = entry->props;
diff --git a/libsqueeze/archive.c b/libsqueeze/archive.c
index b591ecd..3e584c0 100644
--- a/libsqueeze/archive.c
+++ b/libsqueeze/archive.c
@@ -41,10 +41,6 @@
 #define LSQ_ENTRY_CHILD_BUFFER_SIZE 500
 #endif
 
-#ifndef LSQ_MIME_DIRECTORY
-#define LSQ_MIME_DIRECTORY "inode/directory"
-#endif
-
 static void
 lsq_archive_class_init(LSQArchiveClass *archive_class);
 
@@ -150,7 +146,6 @@ lsq_archive_finalize(GObject *object)
  * lsq_archive_new:
  *
  * @path: path to archive
- * @mime: mime-type (or NULL)
  *
  * Return value: LSQArchive object
  *
@@ -181,6 +176,7 @@ lsq_archive_new (GFile *file)
        {
          content_type = g_file_info_get_attribute_string (file_info, 
"standard::content-type");
          archive->priv->content_type = g_strdup (content_type); 
+         g_object_unref(file_info);
        }
 #ifdef DEBUG
        g_debug("mime: %s\n", archive->priv->content_type);
diff --git a/libsqueeze/libsqueeze-view.h b/libsqueeze/libsqueeze-view.h
index ee6a972..d8fef13 100644
--- a/libsqueeze/libsqueeze-view.h
+++ b/libsqueeze/libsqueeze-view.h
@@ -30,7 +30,7 @@ LSQArchiveIter         
*lsq_archive_iter_get_parent(LSQArchiveIter *);
 
 gboolean                       lsq_archive_iter_get_prop_value(const 
LSQArchiveIter *iter, guint n, GValue *value);
 const gchar            *lsq_archive_iter_get_filename(const LSQArchiveIter *);
-const gchar            *lsq_archive_iter_get_mime(const LSQArchiveIter *);
+const gchar            *lsq_archive_iter_get_contenttype(const LSQArchiveIter 
*);
 gchar                    *lsq_archive_iter_get_path(const LSQArchiveIter 
*archive);
 
 LSQArchiveIter  *lsq_archive_get_iter(LSQArchive *archive, const gchar *path);
diff --git a/src/archive_store.c b/src/archive_store.c
index bf162da..9aecb71 100644
--- a/src/archive_store.c
+++ b/src/archive_store.c
@@ -124,7 +124,7 @@ sq_archive_insertionsort(SQArchiveStore *store, gint left, 
gint right);
 static void
 sq_archive_store_sort(SQArchiveStore *store);
 
-static const gchar *
+static GIcon *
 sq_archive_store_get_icon_name_for_iter(SQArchiveStore *store, LSQArchiveIter 
*iter);
 
 static void
@@ -411,8 +411,9 @@ sq_archive_store_get_column_type(GtkTreeModel *tree_model, 
gint index_)
        switch(index_)
        {
                case SQ_ARCHIVE_STORE_EXTRA_PROP_PATH:
-               case SQ_ARCHIVE_STORE_EXTRA_PROP_ICON:
                        return G_TYPE_STRING; 
+               case SQ_ARCHIVE_STORE_EXTRA_PROP_ICON:
+                       return G_TYPE_ICON; 
                default:
                        return lsq_archive_get_entry_property_type(archive, 
index_ - SQ_ARCHIVE_STORE_EXTRA_PROP_COUNT);
        }
@@ -536,10 +537,10 @@ sq_archive_store_get_value (GtkTreeModel *tree_model, 
GtkTreeIter *iter, gint co
                                lsq_archive_iter_unref(parent);
                        break;
                        case SQ_ARCHIVE_STORE_EXTRA_PROP_ICON:
-                               g_value_init(value, G_TYPE_STRING);
+                               g_value_init(value, G_TYPE_ICON);
 
                                if(store->props._show_icons)
-                                       g_value_set_string(value, 
sq_archive_store_get_icon_name_for_iter(store, entry));
+                                       g_value_take_object(value, 
sq_archive_store_get_icon_name_for_iter(store, entry));
                        break;
                        case LSQ_ARCHIVE_PROP_FILENAME + 
SQ_ARCHIVE_STORE_EXTRA_PROP_COUNT:
                                if(store->props._show_full_path)
@@ -565,9 +566,9 @@ sq_archive_store_get_value (GtkTreeModel *tree_model, 
GtkTreeIter *iter, gint co
                switch(column)
                {
                        case SQ_ARCHIVE_STORE_EXTRA_PROP_ICON:
-                               g_value_init(value, G_TYPE_STRING);
+                               g_value_init(value, G_TYPE_ICON);
                                if(store->props._show_icons)
-                                       g_value_set_string(value, 
GTK_STOCK_GO_UP);
+                                       g_value_take_object(value, 
g_themed_icon_new(GTK_STOCK_GO_UP));
                        break;
                        case LSQ_ARCHIVE_PROP_FILENAME + 
SQ_ARCHIVE_STORE_EXTRA_PROP_COUNT:
                                g_value_init(value, G_TYPE_STRING);
@@ -1003,19 +1004,10 @@ sq_archive_insertionsort(SQArchiveStore *store, gint 
left, gint right)
        }
 }
 
-static const gchar *
+static GIcon *
 sq_archive_store_get_icon_name_for_iter(SQArchiveStore *store, LSQArchiveIter 
*iter)
 {
-    /*
-       ThunarVfsMimeInfo *mime_info = 
thunar_vfs_mime_database_get_info(mimedb, lsq_archive_iter_get_mime(iter));
-       const gchar *icon_name = 
thunar_vfs_mime_info_lookup_icon_name(mime_info, store->icon_theme);
-       if(icon_name && !gtk_icon_theme_has_icon(store->icon_theme, icon_name))
-               icon_name = NULL;
-       thunar_vfs_mime_info_unref(mime_info);
-       g_object_unref(mimedb);
-       return icon_name;
-    */
-    return NULL;
+       return g_content_type_get_icon(lsq_archive_iter_get_contenttype(iter));
 }
 
 GtkTreeModel *
diff --git a/src/notebook.c b/src/notebook.c
index 05ba718..97effba 100644
--- a/src/notebook.c
+++ b/src/notebook.c
@@ -710,7 +710,7 @@ sq_notebook_treeview_reset_columns(LSQArchive *archive, 
GtkTreeView *treeview)
        renderer = gtk_cell_renderer_pixbuf_new();
        g_object_set(G_OBJECT(renderer), "stock-size", 
GTK_ICON_SIZE_SMALL_TOOLBAR, NULL);
        gtk_tree_view_column_pack_start(column, renderer, FALSE);
-       gtk_tree_view_column_set_attributes(column, renderer, "icon-name", 
SQ_ARCHIVE_STORE_EXTRA_PROP_ICON, NULL);
+       gtk_tree_view_column_set_attributes(column, renderer, "gicon", 
SQ_ARCHIVE_STORE_EXTRA_PROP_ICON, NULL);
 
        renderer = gtk_cell_renderer_text_new();
        gtk_tree_view_column_pack_start(column, renderer, TRUE);
_______________________________________________
Xfce4-commits mailing list
[email protected]
https://mail.xfce.org/mailman/listinfo/xfce4-commits

Reply via email to