[Xfce4-commits] r25297 - in squeeze/trunk: libsqueeze src

Stephan Arts stephan at xfce.org
Mon Mar 26 13:59:59 CEST 2007


Author: stephan
Date: 2007-03-26 11:59:59 +0000 (Mon, 26 Mar 2007)
New Revision: 25297

Added:
   squeeze/trunk/libsqueeze/libsqueeze-vfs-mime.h
Modified:
   squeeze/trunk/libsqueeze/archive.c
   squeeze/trunk/libsqueeze/command-builder-gnu-tar.c
   squeeze/trunk/libsqueeze/command-builder-zip.c
   squeeze/trunk/libsqueeze/libsqueeze.c
   squeeze/trunk/libsqueeze/libsqueeze.h
   squeeze/trunk/libsqueeze/vfs-mime.c
   squeeze/trunk/libsqueeze/vfs-mime.h
   squeeze/trunk/src/new_dialog.c
Log:
modified new-archive dialog

Modified: squeeze/trunk/libsqueeze/archive.c
===================================================================
--- squeeze/trunk/libsqueeze/archive.c	2007-03-26 09:33:35 UTC (rev 25296)
+++ squeeze/trunk/libsqueeze/archive.c	2007-03-26 11:59:59 UTC (rev 25297)
@@ -26,6 +26,7 @@
 
 #include "libsqueeze.h"
 #include "libsqueeze-module.h"
+#include "libsqueeze-vfs-mime.h"
 #include "archive-iter.h"
 #include "archive-command.h"
 #include "archive.h"

Modified: squeeze/trunk/libsqueeze/command-builder-gnu-tar.c
===================================================================
--- squeeze/trunk/libsqueeze/command-builder-gnu-tar.c	2007-03-26 09:33:35 UTC (rev 25296)
+++ squeeze/trunk/libsqueeze/command-builder-gnu-tar.c	2007-03-26 11:59:59 UTC (rev 25297)
@@ -104,13 +104,12 @@
 	command_builder->build_remove = lsq_command_builder_gnu_tar_build_remove;
 	command_builder->build_refresh = lsq_command_builder_gnu_tar_build_refresh;
 
-	command_builder->mime_types = g_new0(gchar *, 7);
+	command_builder->mime_types = g_new0(gchar *, 6);
 	command_builder->mime_types[0] = "application/x-tar";
 	command_builder->mime_types[1] = "application/x-tarz";
 	command_builder->mime_types[2] = "application/x-compressed-tar";
 	command_builder->mime_types[3] = "application/x-bzip-compressed-tar";
-	command_builder->mime_types[4] = "application/x-bzip2-compressed-tar";
-	command_builder->mime_types[5] = "application/x-tzo";
+	command_builder->mime_types[4] = "application/x-tzo";
 
 	lsq_builder_settings_set_property_types(command_builder->settings, 
 	                                        _("Rights"), /* rights*/

Modified: squeeze/trunk/libsqueeze/command-builder-zip.c
===================================================================
--- squeeze/trunk/libsqueeze/command-builder-zip.c	2007-03-26 09:33:35 UTC (rev 25296)
+++ squeeze/trunk/libsqueeze/command-builder-zip.c	2007-03-26 11:59:59 UTC (rev 25297)
@@ -99,9 +99,8 @@
 	command_builder->build_remove = lsq_command_builder_zip_build_remove;
 	command_builder->build_refresh = lsq_command_builder_zip_build_refresh;
 
-	command_builder->mime_types = g_new0(gchar *, 3);
+	command_builder->mime_types = g_new0(gchar *, 2);
 	command_builder->mime_types[0] = "application/zip";
-	command_builder->mime_types[1] = "application/x-zip";
 
 	lsq_builder_settings_set_property_types(command_builder->settings, 
 	                                        _("Compressed"), /* length */

Added: squeeze/trunk/libsqueeze/libsqueeze-vfs-mime.h
===================================================================
--- squeeze/trunk/libsqueeze/libsqueeze-vfs-mime.h	                        (rev 0)
+++ squeeze/trunk/libsqueeze/libsqueeze-vfs-mime.h	2007-03-26 11:59:59 UTC (rev 25297)
@@ -0,0 +1,32 @@
+/* 
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or 
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Library General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __LIBSQUEEZE_ARCHIVE_MIME_H__
+#define __LIBSQUEEZE_ARCHIVE_MIME_H__
+
+typedef struct _LSQArchiveMime LSQArchiveMime;
+
+gboolean
+lsq_archive_mime_set_default_builder(const gchar *mime, const gchar *id);
+
+const gchar *
+lsq_archive_mime_get_comment(LSQArchiveMime *);
+
+const gchar *
+lsq_archive_mime_get_name(LSQArchiveMime *);
+
+
+#endif /* __LIBSQUEEZE_ARCHIVE_MIME_H__ */

Modified: squeeze/trunk/libsqueeze/libsqueeze.c
===================================================================
--- squeeze/trunk/libsqueeze/libsqueeze.c	2007-03-26 09:33:35 UTC (rev 25296)
+++ squeeze/trunk/libsqueeze/libsqueeze.c	2007-03-26 11:59:59 UTC (rev 25297)
@@ -23,6 +23,7 @@
 
 #include "libsqueeze.h"
 #include "libsqueeze/libsqueeze-module.h"
+#include "libsqueeze/libsqueeze-vfs-mime.h"
 #include "libsqueeze/archive-iter.h"
 #include "libsqueeze/archive-command.h"
 #include "libsqueeze/archive.h"
@@ -131,3 +132,9 @@
 	g_object_unref(archive);
 }
 
+GSList *
+lsq_get_supported_mime_types()
+{
+	return g_slist_copy(lsq_mime_info_list);
+}
+

Modified: squeeze/trunk/libsqueeze/libsqueeze.h
===================================================================
--- squeeze/trunk/libsqueeze/libsqueeze.h	2007-03-26 09:33:35 UTC (rev 25296)
+++ squeeze/trunk/libsqueeze/libsqueeze.h	2007-03-26 11:59:59 UTC (rev 25297)
@@ -18,6 +18,7 @@
 #define __LIBSQUEEZE_H__
 
 #include <libsqueeze/libsqueeze-archive.h>
+#include <libsqueeze/libsqueeze-vfs-mime.h>
 #include <libsqueeze/libsqueeze-view.h>
 
 

Modified: squeeze/trunk/libsqueeze/vfs-mime.c
===================================================================
--- squeeze/trunk/libsqueeze/vfs-mime.c	2007-03-26 09:33:35 UTC (rev 25296)
+++ squeeze/trunk/libsqueeze/vfs-mime.c	2007-03-26 11:59:59 UTC (rev 25297)
@@ -25,27 +25,28 @@
 #include <thunar-vfs/thunar-vfs.h>
 
 #include "libsqueeze-module.h"
+#include "libsqueeze-vfs-mime.h"
 #include "vfs-mime.h"
 
 #include "internals.h"
 
 static void
-lsq_archive_mime_info_add_builder(LSQArchiveMimeInfo *mime_info, const LSQCommandBuilder *builder);
+lsq_archive_mime_add_builder(LSQArchiveMime *mime_info, const LSQCommandBuilder *builder);
 
 gint
-lsq_archive_mime_info_lookup(gconstpointer mime_info, gconstpointer mime)
+lsq_archive_mime_lookup(gconstpointer mime_info, gconstpointer mime)
 {
-	return strcmp(thunar_vfs_mime_info_get_name(((LSQArchiveMimeInfo *)mime_info)->mime_info), mime);
+	return strcmp(thunar_vfs_mime_info_get_name(((LSQArchiveMime *)mime_info)->mime_info), mime);
 }
 
-LSQArchiveMimeInfo *
-lsq_archive_mime_info_register_command_builder(const LSQCommandBuilder *builder, const gchar *mime)
+LSQArchiveMime *
+lsq_archive_mime_register_command_builder(const LSQCommandBuilder *builder, const gchar *mime)
 {
-	LSQArchiveMimeInfo *mime_info = NULL;
-	GSList *result = g_slist_find_custom(lsq_mime_info_list, mime, lsq_archive_mime_info_lookup);
+	LSQArchiveMime *mime_info = NULL;
+	GSList *result = g_slist_find_custom(lsq_mime_info_list, mime, lsq_archive_mime_lookup);
 	if(!result)
 	{
-		mime_info = lsq_archive_mime_info_new(mime);
+		mime_info = lsq_archive_mime_new(mime);
 		lsq_mime_info_list = g_slist_prepend(lsq_mime_info_list, mime_info);
 	}
 	else
@@ -53,7 +54,7 @@
 		mime_info = result->data;
 	}
 	
-	lsq_archive_mime_info_add_builder(mime_info, builder);
+	lsq_archive_mime_add_builder(mime_info, builder);
 	return mime_info;
 }
 
@@ -62,21 +63,21 @@
 {
 	int i = 1;
 	for(i = 0; builder->mime_types[i]; ++i)
-		lsq_archive_mime_info_register_command_builder(builder, builder->mime_types[i]);
+		lsq_archive_mime_register_command_builder(builder, builder->mime_types[i]);
 }
 
-LSQArchiveMimeInfo *
-lsq_archive_mime_info_new(const gchar *mime)
+LSQArchiveMime *
+lsq_archive_mime_new(const gchar *mime)
 {
-	LSQArchiveMimeInfo *archive_mime_info = g_new0(LSQArchiveMimeInfo, 1);
+	LSQArchiveMime *archive_mime = g_new0(LSQArchiveMime, 1);
 
-	archive_mime_info->mime_info = thunar_vfs_mime_database_get_info(lsq_mime_database, mime);
+	archive_mime->mime_info = thunar_vfs_mime_database_get_info(lsq_mime_database, mime);
 
-	return archive_mime_info;
+	return archive_mime;
 }
 
 static void
-lsq_archive_mime_info_add_builder(LSQArchiveMimeInfo *mime_info, const LSQCommandBuilder *builder)
+lsq_archive_mime_add_builder(LSQArchiveMime *mime_info, const LSQCommandBuilder *builder)
 {
 	mime_info->command_builders = g_slist_prepend(mime_info->command_builders, (LSQCommandBuilder *)builder);
 }
@@ -84,8 +85,8 @@
 LSQCommandBuilder *
 lsq_archive_mime_get_default_builder(const gchar *mime)
 {
-	LSQArchiveMimeInfo *mime_info = NULL;
-	GSList *result = g_slist_find_custom(lsq_mime_info_list, mime, lsq_archive_mime_info_lookup);
+	LSQArchiveMime *mime_info = NULL;
+	GSList *result = g_slist_find_custom(lsq_mime_info_list, mime, lsq_archive_mime_lookup);
 	if(result)
 	{
 		mime_info = result->data;
@@ -94,3 +95,15 @@
 	}
 	return NULL;	
 }
+
+const gchar *
+lsq_archive_mime_get_comment(LSQArchiveMime *mime)
+{
+	return thunar_vfs_mime_info_get_comment(mime->mime_info);
+}
+
+const gchar *
+lsq_archive_mime_get_name(LSQArchiveMime *mime)
+{
+	return thunar_vfs_mime_info_get_name(mime->mime_info);
+}

Modified: squeeze/trunk/libsqueeze/vfs-mime.h
===================================================================
--- squeeze/trunk/libsqueeze/vfs-mime.h	2007-03-26 09:33:35 UTC (rev 25296)
+++ squeeze/trunk/libsqueeze/vfs-mime.h	2007-03-26 11:59:59 UTC (rev 25297)
@@ -14,19 +14,18 @@
  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
-#ifndef __LIBSQUEEZE_ARCHIVE_MIME_INFO_H__
-#define __LIBSQUEEZE_ARCHIVE_MIME_INFO_H__
+#ifndef __ARCHIVE_MIME_H__
+#define __ARCHIVE_MIME_H__
 
-struct _LSQArchiveMimeInfo
+struct _LSQArchiveMime
 {
 	ThunarVfsMimeInfo *mime_info;
 	GSList            *command_builders;
 };
 
-typedef struct _LSQArchiveMimeInfo LSQArchiveMimeInfo;
 
-LSQArchiveMimeInfo *
-lsq_archive_mime_info_new(const gchar *mime);
+LSQArchiveMime *
+lsq_archive_mime_new(const gchar *mime);
 
 
 void
@@ -35,5 +34,6 @@
 LSQCommandBuilder *
 lsq_archive_mime_get_default_builder(const gchar *mime);
 
-#endif /* __LIBSQUEEZE_ARCHIVE_MIME_INFO_H__ */
 
+#endif /* __ARCHIVE_MIME_H__ */
+

Modified: squeeze/trunk/src/new_dialog.c
===================================================================
--- squeeze/trunk/src/new_dialog.c	2007-03-26 09:33:35 UTC (rev 25296)
+++ squeeze/trunk/src/new_dialog.c	2007-03-26 11:59:59 UTC (rev 25297)
@@ -76,48 +76,17 @@
 
 	gtk_widget_show_all(hbox);
 
-	GSList *_supported_mime_types = NULL;
+	GSList *_supported_mime_types = lsq_get_supported_mime_types();
 
 	dialog->file_filter = gtk_file_filter_new();
 	gtk_file_filter_set_name(dialog->file_filter, _("Archives"));
 	while(_supported_mime_types)
 	{
-		if(!strcmp(_supported_mime_types->data, "application/x-tar"))
-		{
-			gtk_combo_box_append_text(GTK_COMBO_BOX(dialog->archive_types_combo), ".tar");
-		}
-		if(!strcmp(_supported_mime_types->data, "application/x-tarz"))
-		{
-			gtk_combo_box_append_text(GTK_COMBO_BOX(dialog->archive_types_combo), ".tar.Z");
-		}
-		if(!strcmp(_supported_mime_types->data, "application/x-compressed-tar"))
-		{
-			gtk_combo_box_append_text(GTK_COMBO_BOX(dialog->archive_types_combo), ".tgz");
-			gtk_combo_box_append_text(GTK_COMBO_BOX(dialog->archive_types_combo), ".tar.gz");
-		}
-		if(!strcmp(_supported_mime_types->data, "application/x-bzip-compressed-tar"))
-		{
-			gtk_combo_box_append_text(GTK_COMBO_BOX(dialog->archive_types_combo), ".tbz");
-			gtk_combo_box_append_text(GTK_COMBO_BOX(dialog->archive_types_combo), ".tar.bz");
-		}
-		if(!strcmp(_supported_mime_types->data, "application/x-bzip2-compressed-tar"))
-		{
-			gtk_combo_box_append_text(GTK_COMBO_BOX(dialog->archive_types_combo), ".tbz2");
-			gtk_combo_box_append_text(GTK_COMBO_BOX(dialog->archive_types_combo), ".tar.bz2");
-		}
-		if(!strcmp(_supported_mime_types->data, "application/x-tzo"))
-		{
-			gtk_combo_box_append_text(GTK_COMBO_BOX(dialog->archive_types_combo), ".tzo");
-		}
-		if(!strcmp(_supported_mime_types->data, "application/x-zip"))
-		{
-			gtk_combo_box_append_text(GTK_COMBO_BOX(dialog->archive_types_combo), ".zip");
-		}
-		if(!strcmp(_supported_mime_types->data, "application/x-rar"))
-		{
-			gtk_combo_box_append_text(GTK_COMBO_BOX(dialog->archive_types_combo), ".rar");
-		}
-		gtk_file_filter_add_mime_type(dialog->file_filter, _supported_mime_types->data);
+		gtk_combo_box_append_text(GTK_COMBO_BOX(dialog->archive_types_combo),
+		        lsq_archive_mime_get_comment((LSQArchiveMime *)(_supported_mime_types->data)));
+
+		gtk_file_filter_add_mime_type(dialog->file_filter,
+		        lsq_archive_mime_get_name((LSQArchiveMime *)(_supported_mime_types->data)));
 		_supported_mime_types = g_slist_next(_supported_mime_types);
 	}
 	gtk_combo_box_set_active(GTK_COMBO_BOX(dialog->archive_types_combo), 0);



More information about the Xfce4-commits mailing list