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

Stephan Arts stephan at xfce.org
Wed Jun 20 20:27:12 CEST 2007


Author: stephan
Date: 2007-06-20 18:27:11 +0000 (Wed, 20 Jun 2007)
New Revision: 25822

Added:
   squeeze/trunk/libsqueeze/support-factory.c
   squeeze/trunk/libsqueeze/support-factory.h
Removed:
   squeeze/trunk/libsqueeze/builder-settings.c
   squeeze/trunk/libsqueeze/builder-settings.h
   squeeze/trunk/libsqueeze/command-builder-compr.c
   squeeze/trunk/libsqueeze/command-builder-compr.h
   squeeze/trunk/libsqueeze/command-builder-gnu-tar.c
   squeeze/trunk/libsqueeze/command-builder-gnu-tar.h
   squeeze/trunk/libsqueeze/command-builder-rar.c
   squeeze/trunk/libsqueeze/command-builder-rar.h
   squeeze/trunk/libsqueeze/command-builder-zip.c
   squeeze/trunk/libsqueeze/command-builder-zip.h
   squeeze/trunk/libsqueeze/command-builder.c
   squeeze/trunk/libsqueeze/command-builder.h
   squeeze/trunk/libsqueeze/libsqueeze-module.h
Modified:
   squeeze/trunk/libsqueeze/Makefile.am
   squeeze/trunk/libsqueeze/archive-command.c
   squeeze/trunk/libsqueeze/archive-iter.c
   squeeze/trunk/libsqueeze/archive-tempfs.c
   squeeze/trunk/libsqueeze/archive.c
   squeeze/trunk/libsqueeze/archive.h
   squeeze/trunk/libsqueeze/internals.c
   squeeze/trunk/libsqueeze/libsqueeze-archive.h
   squeeze/trunk/libsqueeze/libsqueeze.c
   squeeze/trunk/libsqueeze/slist.c
   squeeze/trunk/libsqueeze/vfs-mime.c
   squeeze/trunk/libsqueeze/vfs-mime.h
   squeeze/trunk/src/application.c
   squeeze/trunk/src/main_window.c
   squeeze/trunk/src/notebook.c
   squeeze/trunk/src/tool_bar.c
Log:
Prepare support for .desktop files

- Add support-reader
- Add support-factory
- Remove Command-builders
- Remove Module



Modified: squeeze/trunk/libsqueeze/Makefile.am
===================================================================
--- squeeze/trunk/libsqueeze/Makefile.am	2007-06-17 07:28:34 UTC (rev 25821)
+++ squeeze/trunk/libsqueeze/Makefile.am	2007-06-20 18:27:11 UTC (rev 25822)
@@ -12,19 +12,16 @@
 	vfs-mime.c vfs-mime.h \
 	archive.c archive.h \
 	archive-iter.c archive-iter.h \
-	archive-command.c archive-command.h \
-	spawn-command.c spawn-command.h \
-	macro-command.c macro-command.h \
-	remove-command.c remove-command.h \
-	xfce-launch-command.c xfce-launch-command.h \
 	archive-tempfs.c archive-tempfs.h \
-	builder-settings.c builder-settings.h \
-	command-builder.c command-builder.h \
-	command-builder-zip.c command-builder-zip.h \
-	command-builder-rar.c command-builder-rar.h \
-	command-builder-compr.c command-builder-compr.h \
-	command-builder-gnu-tar.c command-builder-gnu-tar.h
+	support-factory.c support-factory.h \
+	support-reader.c support-reader.h
 
+# archive-command.c archive-command.h
+# spawn-command.c spawn-command.h
+# macro-command.c macro-command.h
+# remove-command.c remove-command.h
+# xfce-launch-command.c xfce-launch-command.h
+
 libsqueeze_1_la_CFLAGS = \
 	$(GLIB_CFLAGS)  \
 	$(DBUS_CFLAGS)  \

Modified: squeeze/trunk/libsqueeze/archive-command.c
===================================================================
--- squeeze/trunk/libsqueeze/archive-command.c	2007-06-17 07:28:34 UTC (rev 25821)
+++ squeeze/trunk/libsqueeze/archive-command.c	2007-06-20 18:27:11 UTC (rev 25822)
@@ -26,9 +26,9 @@
 
 #include "libsqueeze-archive.h"
 #include "libsqueeze-command.h"
-#include "libsqueeze-module.h"
 #include "archive-iter.h"
 #include "archive-command.h"
+#include "command-builder.h"
 #include "archive.h"
 
 static void

Modified: squeeze/trunk/libsqueeze/archive-iter.c
===================================================================
--- squeeze/trunk/libsqueeze/archive-iter.c	2007-06-17 07:28:34 UTC (rev 25821)
+++ squeeze/trunk/libsqueeze/archive-iter.c	2007-06-20 18:27:11 UTC (rev 25822)
@@ -22,9 +22,10 @@
 
 #include "libsqueeze-archive.h"
 #include "libsqueeze-view.h"
-#include "libsqueeze-module.h"
+#include "libsqueeze-command.h"
 #include "archive-iter.h"
 #include "archive-command.h"
+#include "support-factory.h"
 #include "archive.h"
 #include "slist.h"
 

Modified: squeeze/trunk/libsqueeze/archive-tempfs.c
===================================================================
--- squeeze/trunk/libsqueeze/archive-tempfs.c	2007-06-17 07:28:34 UTC (rev 25821)
+++ squeeze/trunk/libsqueeze/archive-tempfs.c	2007-06-20 18:27:11 UTC (rev 25822)
@@ -26,9 +26,9 @@
 #include <errno.h>
 #include <thunar-vfs/thunar-vfs.h>
 
-#include "libsqueeze-module.h"
+#include "libsqueeze-archive.h"
 #include "archive-iter.h"
-#include "archive-command.h"
+#include "support-factory.h"
 #include "archive.h"
 #include "archive-tempfs.h"
 

Modified: squeeze/trunk/libsqueeze/archive.c
===================================================================
--- squeeze/trunk/libsqueeze/archive.c	2007-06-17 07:28:34 UTC (rev 25821)
+++ squeeze/trunk/libsqueeze/archive.c	2007-06-20 18:27:11 UTC (rev 25822)
@@ -25,12 +25,10 @@
 #include <thunar-vfs/thunar-vfs.h>
 
 #include "libsqueeze.h"
-#include "libsqueeze-module.h"
 #include "libsqueeze-vfs-mime.h"
 #include "archive-iter.h"
-#include "archive-command.h"
+#include "support-factory.h"
 #include "archive.h"
-#include "command-builder.h"
 #include "slist.h"
 #include "archive-tempfs.h"
 
@@ -60,8 +58,6 @@
 static void
 lsq_archive_finalize(GObject *object);
 
-static void
-cb_archive_archive_command_terminated(LSQArchiveCommand *command, GError *error, LSQArchive *archive);
 
 enum
 {
@@ -105,17 +101,6 @@
 	GObjectClass *object_class = G_OBJECT_CLASS(archive_class);
 
 	object_class->finalize = lsq_archive_finalize;
-	lsq_archive_signals[LSQ_ARCHIVE_SIGNAL_COMMAND_TERMINATED] = g_signal_new("command-terminated",
-			G_TYPE_FROM_CLASS(archive_class),
-			G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
-			0,
-			NULL,
-			NULL,
-			g_cclosure_marshal_VOID__POINTER,
-			G_TYPE_NONE,
-			1,
-			G_TYPE_POINTER,
-			NULL);
 	lsq_archive_signals[LSQ_ARCHIVE_SIGNAL_STATE_CHANGED] = g_signal_new("state-changed",
 			G_TYPE_FROM_CLASS(archive_class),
 			G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
@@ -204,16 +189,6 @@
 	g_debug("%s\n", thunar_vfs_mime_info_get_name(archive->mime_info));
 #endif
 
-	archive->builder = lsq_archive_mime_get_default_builder(thunar_vfs_mime_info_get_name(archive->mime_info));
-
-	if(!archive->builder) /* Then it is not supported */
-	{
-		g_object_unref(archive);
-		archive = NULL;
-	}
-	else
-		archive->settings = lsq_command_builder_get_settings(archive->builder);
-	
 	return archive;
 }
 
@@ -229,7 +204,7 @@
 #ifdef DEBUG
 	g_return_val_if_fail(archive, 0);
 #endif
-	return lsq_builder_settings_get_n_properties(archive->settings) + LSQ_ARCHIVE_PROP_USER;
+	return LSQ_ARCHIVE_PROP_USER;//lsq_builder_settings_get_n_properties(archive->settings) + LSQ_ARCHIVE_PROP_USER;
 }
 
 /*
@@ -248,7 +223,7 @@
 			return G_TYPE_STRING;
 			break;
 		default:
-			return lsq_builder_settings_get_property_type(archive->settings, n - LSQ_ARCHIVE_PROP_USER);
+			return G_TYPE_NONE; //lsq_builder_settings_get_property_type(archive->settings, n - LSQ_ARCHIVE_PROP_USER);
 			break;
 	}
 }
@@ -270,7 +245,7 @@
 			return _("Mime type");
 			break;
 		default:
-			return lsq_builder_settings_get_property_name(archive->settings, n - LSQ_ARCHIVE_PROP_USER);
+			return NULL; //lsq_builder_settings_get_property_name(archive->settings, n - LSQ_ARCHIVE_PROP_USER);
 			break;
 	}
 }
@@ -329,92 +304,12 @@
 	return FALSE;
 }
 
-gboolean
-lsq_archive_can_stop(const LSQArchive *archive)
-{
-	if(archive->command)
-		return archive->command->safe;
-	else
-		return TRUE;
-}
-
-gboolean
-lsq_archive_stop(const LSQArchive *archive)
-{
-	if(archive->command)
-		return lsq_archive_command_stop(archive->command);
-	else
-		return FALSE;
-}
-
-const gchar *
-lsq_archive_get_status(const LSQArchive *archive)
-{
-	if(archive->command)
-		return lsq_archive_command_get_comment(archive->command);
-	else
-		return NULL;
-}
-
-LSQSupportType
-lsq_archive_get_support_mask(const LSQArchive *archive)
-{
-	if(archive->builder)
-		return archive->builder->support_mask;
-	else
-		return 0;
-}
-
 void
 lsq_archive_refreshed(const LSQArchive *archive)
 {
 	g_signal_emit(G_OBJECT(archive), lsq_archive_signals[LSQ_ARCHIVE_SIGNAL_REFRESHED], 0, NULL);
 }
 
-gboolean
-lsq_archive_add(LSQArchive *archive, GSList *files)
-{
-	g_return_val_if_fail(archive->builder, FALSE);
-	LSQCommandBuilder *builder = archive->builder;
-	if(archive->command)
-		return FALSE;
-
-	archive->command = builder->build_add(builder, archive, files);
-	g_signal_connect(archive->command, "terminated", G_CALLBACK(cb_archive_archive_command_terminated), archive);
-	if(!lsq_archive_command_execute(archive->command))
-	{
-		g_object_unref(archive->command);
-		archive->command = NULL;
-		return FALSE;
-	}
-	else
-		g_object_unref(archive->command);
-	lsq_archive_state_changed(archive);
-	return TRUE;
-}
-
-gboolean
-lsq_archive_extract(LSQArchive *archive, const gchar *dest_path, GSList *files)
-{
-	g_return_val_if_fail(archive->builder, FALSE);
-	LSQCommandBuilder *builder = archive->builder;
-	if(archive->command)
-		return FALSE;
-	
-	archive->command = builder->build_extract(builder, archive, dest_path, files);
-	g_signal_connect(archive->command, "terminated", G_CALLBACK(cb_archive_archive_command_terminated), archive);
-	if(!lsq_archive_command_execute(archive->command))
-	{
-		g_object_unref(archive->command);
-		archive->command = NULL;
-		return FALSE;
-	}
-	else
-		g_object_unref(archive->command);
-	lsq_archive_state_changed(archive);
-	return TRUE;
-}
-
 void lsq_archive_add_children(GSList *files)
 {
 	GSList *iter;
@@ -428,114 +323,6 @@
 	}
 }
 
-gboolean
-lsq_archive_remove(LSQArchive *archive, GSList *files)
-{
-	g_return_val_if_fail(archive->builder, FALSE);
-	LSQCommandBuilder *builder = archive->builder;
-	if(archive->command)
-		return FALSE;
-
-	//lsq_archive_add_children(files);
-
-	archive->command = builder->build_remove(builder, archive, files);
-	g_signal_connect(archive->command, "terminated", G_CALLBACK(cb_archive_archive_command_terminated), archive);
-	if(!lsq_archive_command_execute(archive->command))
-	{
-		g_object_unref(archive->command);
-		archive->command = NULL;
-		return FALSE;
-	}
-	else
-		g_object_unref(archive->command);
-	lsq_archive_state_changed(archive);
-	return TRUE;
-}
-
-gboolean
-lsq_archive_refresh(LSQArchive *archive)
-{
-	g_return_val_if_fail(archive->builder, FALSE);
-	LSQCommandBuilder *builder = archive->builder;
-	if(archive->command)
-		return FALSE;
-
-	archive->command = builder->build_refresh(builder, archive);
-	if(archive->command)
-	{
-		g_signal_connect(archive->command, "terminated", G_CALLBACK(cb_archive_archive_command_terminated), archive);
-		if(!lsq_archive_command_execute(archive->command))
-		{
-			g_object_unref(archive->command);
-			archive->command = NULL;
-			return FALSE;
-		}
-		else
-			g_object_unref(archive->command);
-		lsq_archive_state_changed(archive);
-		return TRUE;
-	}
-	return FALSE;
-}
-
-gboolean
-lsq_archive_full_refresh(LSQArchive *archive)
-{
-	g_return_val_if_fail(archive->builder, FALSE);
-	LSQCommandBuilder *builder = archive->builder;
-	if(archive->command)
-		return FALSE;
-
-	archive->command = builder->build_full_refresh(builder, archive);
-	if(archive->command)
-	{
-		g_signal_connect(archive->command, "terminated", G_CALLBACK(cb_archive_archive_command_terminated), archive);
-		if(!lsq_archive_command_execute(archive->command))
-		{
-			g_object_unref(archive->command);
-			archive->command = NULL;
-			return FALSE;
-		}
-		else
-			g_object_unref(archive->command);
-		lsq_archive_state_changed(archive);
-		return TRUE;
-	}
-	return FALSE;
-}
-
-gboolean
-lsq_archive_view(LSQArchive *archive, GSList *files)
-{
-	g_return_val_if_fail(archive->builder, FALSE);
-	LSQCommandBuilder *builder = archive->builder;
-	if(archive->command)
-		return FALSE;
-
-	archive->command = builder->build_open(builder, archive, files);
-	g_signal_connect(archive->command, "terminated", G_CALLBACK(cb_archive_archive_command_terminated), archive);
-	if(!lsq_archive_command_execute(archive->command))
-	{
-		g_object_unref(archive->command);
-		archive->command = NULL;
-	}
-	else
-		g_object_unref(archive->command);
-	return FALSE;
-}
-
-static void
-cb_archive_archive_command_terminated(LSQArchiveCommand *command, GError *error, LSQArchive *archive)
-{
-	archive->command = NULL;
-#ifdef DEBUG
-	g_debug("COMMAND TERMINATED");
-#endif
-	lsq_archive_state_changed(archive);
-	lsq_archive_refreshed(archive);
-	g_signal_emit(G_OBJECT(archive), lsq_archive_signals[LSQ_ARCHIVE_SIGNAL_COMMAND_TERMINATED], 0, error, NULL);
-}
-
 void
 lsq_archive_state_changed(const LSQArchive *archive)
 {
@@ -546,8 +333,6 @@
 lsq_close_archive(LSQArchive *archive)
 {
 	lsq_opened_archive_list = g_slist_remove(lsq_opened_archive_list, archive);
-	if(archive->command)
-		g_signal_handlers_disconnect_by_func(archive->command, cb_archive_archive_command_terminated, archive);
 
 	if(archive->path)
 		g_free(archive->path);
@@ -561,3 +346,34 @@
 	lsq_archive_stop(archive);
 	g_object_unref(archive);
 }
+
+gboolean
+lsq_archive_operate(LSQArchive *archive, LSQCommandType type, const gchar *dest_path, GSList *files, GError **error)
+{
+	return FALSE;
+}
+
+
+LSQSupportType
+lsq_archive_get_support_mask(const LSQArchive *archive)
+{
+	return archive->support->support_mask;
+}
+
+gboolean
+lsq_archive_can_stop(const LSQArchive *archive)
+{
+	return FALSE;
+}
+
+gboolean
+lsq_archive_stop(const LSQArchive *archive)
+{
+	return FALSE;
+}
+
+const gchar *
+lsq_archive_get_status(const LSQArchive *archive)
+{
+	return NULL;
+}

Modified: squeeze/trunk/libsqueeze/archive.h
===================================================================
--- squeeze/trunk/libsqueeze/archive.h	2007-06-17 07:28:34 UTC (rev 25821)
+++ squeeze/trunk/libsqueeze/archive.h	2007-06-20 18:27:11 UTC (rev 25822)
@@ -27,15 +27,13 @@
 	ThunarVfsInfo      *file_info;
 	ThunarVfsMimeInfo  *mime_info;
 	LSQArchiveEntry    *root_entry;
-	LSQArchiveCommand  *command;
+	LSQMimeSupport     *support;
 	struct {
 		guint64 archive_size;
 		guint64 content_size;
 		guint64 n_files;
 		guint64 n_directories;
 	} props;
-	LSQCommandBuilder  *builder;
-	LSQBuilderSettings *settings;
 	gchar *temp_dir;
 	GSList *monitor_list;
 	LSQArchiveIterPool *pool;

Deleted: squeeze/trunk/libsqueeze/builder-settings.c

Deleted: squeeze/trunk/libsqueeze/builder-settings.h

Deleted: squeeze/trunk/libsqueeze/command-builder-compr.c

Deleted: squeeze/trunk/libsqueeze/command-builder-compr.h

Deleted: squeeze/trunk/libsqueeze/command-builder-gnu-tar.c

Deleted: squeeze/trunk/libsqueeze/command-builder-gnu-tar.h

Deleted: squeeze/trunk/libsqueeze/command-builder-rar.c

Deleted: squeeze/trunk/libsqueeze/command-builder-rar.h

Deleted: squeeze/trunk/libsqueeze/command-builder-zip.c

Deleted: squeeze/trunk/libsqueeze/command-builder-zip.h

Deleted: squeeze/trunk/libsqueeze/command-builder.c

Deleted: squeeze/trunk/libsqueeze/command-builder.h

Modified: squeeze/trunk/libsqueeze/internals.c
===================================================================
--- squeeze/trunk/libsqueeze/internals.c	2007-06-17 07:28:34 UTC (rev 25821)
+++ squeeze/trunk/libsqueeze/internals.c	2007-06-20 18:27:11 UTC (rev 25822)
@@ -22,11 +22,11 @@
 
 #include "libsqueeze-archive.h"
 #include "libsqueeze-view.h"
-#include "libsqueeze-module.h"
+#include "libsqueeze-command.h"
+#include "support-factory.h"
 #include "archive-iter.h"
 #include "archive-command.h"
 #include "archive.h"
-#include "command-builder.h"
 
 #include "internals.h"
 

Modified: squeeze/trunk/libsqueeze/libsqueeze-archive.h
===================================================================
--- squeeze/trunk/libsqueeze/libsqueeze-archive.h	2007-06-17 07:28:34 UTC (rev 25821)
+++ squeeze/trunk/libsqueeze/libsqueeze-archive.h	2007-06-20 18:27:11 UTC (rev 25822)
@@ -53,6 +53,16 @@
 		G_TYPE_CHECK_CLASS_TYPE ((class),        \
 			LSQ_TYPE_ARCHIVE))
 
+typedef enum
+{
+	LSQ_COMMAND_TYPE_ADD,
+	LSQ_COMMAND_TYPE_REMOVE,
+	LSQ_COMMAND_TYPE_EXTRACT,
+	LSQ_COMMAND_TYPE_REFRESH,
+	LSQ_COMMAND_TYPE_OPEN,
+	LSQ_COMMAND_TYPE_TEST
+} LSQCommandType;
+
 typedef struct _LSQArchive LSQArchive;
 typedef struct _LSQArchiveClass LSQArchiveClass;
 
@@ -77,12 +87,7 @@
 LSQArchiveIter *lsq_archive_iter_ref(LSQArchiveIter *iter);
 void            lsq_archive_iter_unref(LSQArchiveIter *iter);
 
-gboolean        lsq_archive_add(LSQArchive *, GSList *files);
-gboolean        lsq_archive_extract(LSQArchive *, const gchar *dest_path, GSList *files);
-gboolean        lsq_archive_remove(LSQArchive *, GSList *files);
-gboolean        lsq_archive_refresh(LSQArchive *);
-gboolean        lsq_archive_full_refresh(LSQArchive *);
-gboolean        lsq_archive_view(LSQArchive *, GSList *files);
+gboolean        lsq_archive_operate(LSQArchive *archive, LSQCommandType type, const gchar *dest_path, GSList *files, GError **error);
 
 
 G_END_DECLS

Deleted: squeeze/trunk/libsqueeze/libsqueeze-module.h

Modified: squeeze/trunk/libsqueeze/libsqueeze.c
===================================================================
--- squeeze/trunk/libsqueeze/libsqueeze.c	2007-06-17 07:28:34 UTC (rev 25821)
+++ squeeze/trunk/libsqueeze/libsqueeze.c	2007-06-20 18:27:11 UTC (rev 25822)
@@ -23,16 +23,12 @@
 #include <thunar-vfs/thunar-vfs.h>
 
 #include "libsqueeze.h"
-#include "libsqueeze/libsqueeze-module.h"
+#include "libsqueeze/libsqueeze-command.h"
 #include "libsqueeze/libsqueeze-vfs-mime.h"
+#include "libsqueeze/support-factory.h"
 #include "libsqueeze/archive-iter.h"
 #include "libsqueeze/archive-command.h"
 #include "libsqueeze/archive.h"
-#include "libsqueeze/command-builder.h"
-#include "libsqueeze/command-builder-zip.h"
-#include "libsqueeze/command-builder-rar.h"
-#include "libsqueeze/command-builder-compr.h"
-#include "libsqueeze/command-builder-gnu-tar.h"
 
 #include "vfs-mime.h"
 
@@ -44,30 +40,20 @@
 void
 lsq_init()
 {
-	LSQCommandBuilder *builder = NULL;
 	gchar *current_dir = g_get_current_dir();
 
 	lsq_mime_database = thunar_vfs_mime_database_get_default();
 
-	builder = lsq_command_builder_zip_new();
-	if(builder)
-		lsq_command_builder_register(builder);
-
-	builder = lsq_command_builder_gnu_tar_new();
-	if(builder)
-		lsq_command_builder_register(builder);
-
-	builder = lsq_command_builder_rar_new();
-	if(builder)
-		lsq_command_builder_register(builder);
-
-	builder = lsq_command_builder_compr_new();
-	if(builder)
-		lsq_command_builder_register(builder);
-
 	lsq_relative_base_path = thunar_vfs_path_new(current_dir, NULL);
 	lsq_opened_archive_list = NULL;
 	g_free(current_dir);
+
+	const gchar *data_home = g_getenv("XDG_DATA_HOME");
+	gchar *data_squeeze = g_strconcat(data_home, "/squeeze", NULL);
+	GDir *data_home_dir = g_dir_open(data_squeeze, 0, NULL);
+
+	if(data_home_dir)
+		g_dir_close(data_home_dir);
 }
 
 void
@@ -139,10 +125,6 @@
 		GSList *_types = m_types;
 		while(_types)
 		{
-			LSQArchiveMime *mime = _types->data;
-			LSQCommandBuilder *builder = mime->command_builders->data;
-			if(!builder->build_add)
-				m_types = g_slist_remove(m_types, mime);
 			_types = g_slist_next(_types);
 		}
 	}

Modified: squeeze/trunk/libsqueeze/slist.c
===================================================================
--- squeeze/trunk/libsqueeze/slist.c	2007-06-17 07:28:34 UTC (rev 25821)
+++ squeeze/trunk/libsqueeze/slist.c	2007-06-20 18:27:11 UTC (rev 25822)
@@ -19,9 +19,9 @@
 #include <glib-object.h>
 #include <thunar-vfs/thunar-vfs.h>
 
-#include "libsqueeze-module.h"
+#include "libsqueeze-archive.h"
+#include "support-factory.h"
 #include "archive-iter.h"
-#include "archive-command.h"
 #include "archive.h"
 #include "internals.h"
 #include "slist.h"

Copied: squeeze/trunk/libsqueeze/support-factory.c (from rev 25704, squeeze/trunk/libsqueeze/command-builder.c)
===================================================================
--- squeeze/trunk/libsqueeze/support-factory.c	                        (rev 0)
+++ squeeze/trunk/libsqueeze/support-factory.c	2007-06-20 18:27:11 UTC (rev 25822)
@@ -0,0 +1,110 @@
+/* 
+ *  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.
+ */
+
+#include <config.h>
+#include <string.h>
+#include <glib.h>
+#include <glib/gstdio.h>
+#include <glib-object.h> 
+#include <signal.h>
+#include <sys/wait.h>
+#include <sys/types.h>
+#include <thunar-vfs/thunar-vfs.h>
+
+#include "libsqueeze-archive.h"
+#include "archive-iter.h"
+#include "archive-tempfs.h"
+#include "support-factory.h"
+#include "archive.h"
+
+static void
+lsq_support_factory_class_init(LSQSupportFactoryClass *);
+static void
+lsq_support_factory_init(LSQSupportFactory *);
+static void
+lsq_support_factory_dispose(GObject *object);
+static void
+lsq_support_factory_finalize(GObject *object);
+
+static GObjectClass *parent_class;
+
+GType
+lsq_support_factory_get_type ()
+{
+	static GType lsq_support_factory_type = 0;
+
+	if (!lsq_support_factory_type)
+	{
+		static const GTypeInfo lsq_support_factory_info = 
+		{
+			sizeof (LSQSupportFactoryClass),
+			(GBaseInitFunc) NULL,
+			(GBaseFinalizeFunc) NULL,
+			(GClassInitFunc) lsq_support_factory_class_init,
+			(GClassFinalizeFunc) NULL,
+			NULL,
+			sizeof (LSQSupportFactory),
+			0,
+			(GInstanceInitFunc) lsq_support_factory_init,
+			NULL
+		};
+
+		lsq_support_factory_type = g_type_register_static (G_TYPE_OBJECT, "LSQSupportFactory", &lsq_support_factory_info, 0);
+	}
+	return lsq_support_factory_type;
+}
+
+static void
+lsq_support_factory_class_init(LSQSupportFactoryClass *support_factory_class)
+{
+	GObjectClass *object_class = G_OBJECT_CLASS(support_factory_class);
+
+	object_class->dispose = lsq_support_factory_dispose;
+	object_class->finalize = lsq_support_factory_finalize;
+
+	parent_class = g_type_class_peek(G_TYPE_OBJECT); 
+
+}
+
+static void
+lsq_support_factory_init(LSQSupportFactory *support_factory)
+{
+}
+
+/**
+ * lsq_support_factory_dispose:
+ *
+ * @object: LSQSupportFactory object
+ *
+ */
+static void
+lsq_support_factory_dispose(GObject *object)
+{
+
+	parent_class->dispose(object);
+}
+
+/**
+ * lsq_support_factory_finalize:
+ *
+ * @object: LSQSupportFactory object
+ *
+ */
+static void
+lsq_support_factory_finalize(GObject *object)
+{
+	parent_class->finalize(object);
+}

Copied: squeeze/trunk/libsqueeze/support-factory.h (from rev 25704, squeeze/trunk/libsqueeze/command-builder.h)
===================================================================
--- squeeze/trunk/libsqueeze/support-factory.h	                        (rev 0)
+++ squeeze/trunk/libsqueeze/support-factory.h	2007-06-20 18:27:11 UTC (rev 25822)
@@ -0,0 +1,61 @@
+#ifndef __LIBSQUEEZE_SUPPORT_FACTORY_H__
+#define __LIBSQUEEZE_SUPPORT_FACTORY_H__
+
+#define LSQ_TYPE_SUPPORT_FACTORY lsq_support_factory_get_type()
+
+#define LSQ_SUPPORT_FACTORY(obj)         ( \
+		G_TYPE_CHECK_INSTANCE_CAST ((obj),    \
+			LSQ_TYPE_SUPPORT_FACTORY,      \
+			LSQSupportFactory))
+
+#define LSQ_IS_SUPPORT_FACTORY(obj)      ( \
+		G_TYPE_CHECK_INSTANCE_TYPE ((obj),    \
+			LSQ_TYPE_SUPPORT_FACTORY))
+
+#define LSQ_SUPPORT_FACTORY_CLASS(klass) ( \
+		G_TYPE_CHECK_CLASS_CAST ((klass),     \
+			LSQ_TYPE_SUPPORT_FACTORY,      \
+			LSQSupportFactoryClass))
+
+#define LSQ_IS_SUPPORT_FACTORY_CLASS(klass) ( \
+		G_TYPE_CHECK_CLASS_TYPE ((klass),        \
+			LSQ_TYPE_SUPPORT_FACTORY))
+
+typedef struct _LSQMimeSupport LSQMimeSupport;
+
+struct _LSQMimeSupport
+{
+	gchar *mime;
+	gchar **required_apps;
+	gboolean supported;
+
+	gchar **new_cmd_queue;
+	gchar **add_cmd_queue;
+	gchar **remove_cmd_queue;
+	gchar **extract_cmd_queue;
+	gchar **refresh_cmd_queue;
+	LSQSupportType   support_mask;
+};
+
+
+
+typedef struct _LSQSupportFactory LSQSupportFactory;
+
+struct _LSQSupportFactory
+{
+	GObject          parent;
+	gchar           *id;
+	GSList          *mime_support;
+};
+
+typedef struct _LSQSupportFactoryClass LSQSupportFactoryClass;
+
+struct _LSQSupportFactoryClass
+{
+	GObjectClass parent;
+};
+
+GType                lsq_support_factory_get_type(void);
+void                 lsq_support_factory_init_archive(LSQSupportFactory *builder, LSQArchive *archive);
+
+#endif /* __LIBSQUEEZE_SUPPORT_FACTORY_H__ */

Modified: squeeze/trunk/libsqueeze/vfs-mime.c
===================================================================
--- squeeze/trunk/libsqueeze/vfs-mime.c	2007-06-17 07:28:34 UTC (rev 25821)
+++ squeeze/trunk/libsqueeze/vfs-mime.c	2007-06-20 18:27:11 UTC (rev 25822)
@@ -24,15 +24,12 @@
 #include <sys/types.h>
 #include <thunar-vfs/thunar-vfs.h>
 
-#include "libsqueeze-module.h"
+#include "libsqueeze-archive.h"
 #include "libsqueeze-vfs-mime.h"
 #include "vfs-mime.h"
 
 #include "internals.h"
 
-static void
-lsq_archive_mime_add_builder(LSQArchiveMime *mime_info, const LSQCommandBuilder *builder);
-
 gint
 lsq_archive_mime_lookup(gconstpointer mime_info, gconstpointer mime)
 {
@@ -40,33 +37,6 @@
 }
 
 LSQArchiveMime *
-lsq_archive_mime_register_command_builder(const LSQCommandBuilder *builder, const gchar *mime)
-{
-	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_new(mime);
-		lsq_mime_info_list = g_slist_prepend(lsq_mime_info_list, mime_info);
-	}
-	else
-	{
-		mime_info = result->data;
-	}
-	
-	lsq_archive_mime_add_builder(mime_info, builder);
-	return mime_info;
-}
-
-void
-lsq_command_builder_register(const LSQCommandBuilder *builder)
-{
-	int i = 1;
-	for(i = 0; builder->mime_types[i]; ++i)
-		lsq_archive_mime_register_command_builder(builder, builder->mime_types[i]);
-}
-
-LSQArchiveMime *
 lsq_archive_mime_new(const gchar *mime)
 {
 	LSQArchiveMime *archive_mime = g_new0(LSQArchiveMime, 1);
@@ -76,26 +46,6 @@
 	return archive_mime;
 }
 
-static void
-lsq_archive_mime_add_builder(LSQArchiveMime *mime_info, const LSQCommandBuilder *builder)
-{
-	mime_info->command_builders = g_slist_prepend(mime_info->command_builders, (LSQCommandBuilder *)builder);
-}
-
-LSQCommandBuilder *
-lsq_archive_mime_get_default_builder(const gchar *mime)
-{
-	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;
-		if(mime_info->command_builders)
-			return mime_info->command_builders->data;
-	}
-	return NULL;	
-}
-
 const gchar *
 lsq_archive_mime_get_comment(LSQArchiveMime *mime)
 {

Modified: squeeze/trunk/libsqueeze/vfs-mime.h
===================================================================
--- squeeze/trunk/libsqueeze/vfs-mime.h	2007-06-17 07:28:34 UTC (rev 25821)
+++ squeeze/trunk/libsqueeze/vfs-mime.h	2007-06-20 18:27:11 UTC (rev 25822)
@@ -28,12 +28,6 @@
 lsq_archive_mime_new(const gchar *mime);
 
 
-void
-lsq_command_builder_register(const LSQCommandBuilder *builder);
 
-LSQCommandBuilder *
-lsq_archive_mime_get_default_builder(const gchar *mime);
-
-
 #endif /* __ARCHIVE_MIME_H__ */
 

Modified: squeeze/trunk/src/application.c
===================================================================
--- squeeze/trunk/src/application.c	2007-06-17 07:28:34 UTC (rev 25821)
+++ squeeze/trunk/src/application.c	2007-06-20 18:27:11 UTC (rev 25822)
@@ -182,7 +182,7 @@
 	g_signal_connect(G_OBJECT(lp_archive), "command-terminated", G_CALLBACK(cb_sq_application_archive_command_terminated), app);
 	GtkWidget *message_dialog = sq_message_dialog_new(GTK_WINDOW_TOPLEVEL, lp_archive);
 	gtk_widget_show(message_dialog);
-	if(!lsq_archive_extract(lp_archive, dest_path, NULL))
+	if(!lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_EXTRACT, dest_path, NULL, NULL))
 	{
 		GtkWidget *warning_dialog = gtk_message_dialog_new(NULL, 
 		                                                   GTK_DIALOG_DESTROY_WITH_PARENT, 
@@ -257,7 +257,7 @@
 	g_signal_connect(G_OBJECT(lp_archive), "command-terminated", G_CALLBACK(cb_sq_application_archive_command_terminated), app);
 	GtkWidget *message_dialog = sq_message_dialog_new(GTK_WINDOW_TOPLEVEL, lp_archive);
 	gtk_widget_show(message_dialog);
-	if(!lsq_archive_add(lp_archive, files))
+	if(!lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_ADD, NULL, files, NULL))
 	{
 		/* FIXME: show warning dialog */
 		GtkWidget *warning_dialog = gtk_message_dialog_new(NULL, 

Modified: squeeze/trunk/src/main_window.c
===================================================================
--- squeeze/trunk/src/main_window.c	2007-06-17 07:28:34 UTC (rev 25821)
+++ squeeze/trunk/src/main_window.c	2007-06-20 18:27:11 UTC (rev 25822)
@@ -815,7 +815,7 @@
 			lsq_iter_slist_free(filenames);
 			filenames = NULL;
 		}
-		if(!lsq_archive_extract(lp_archive, extract_archive_path, filenames))
+		if(!lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_EXTRACT, extract_archive_path, filenames, NULL))
 		{
 			GtkWidget *warning_dialog = gtk_message_dialog_new(GTK_WINDOW(window), 
 			                                                   GTK_DIALOG_DESTROY_WITH_PARENT, 
@@ -863,7 +863,7 @@
 		filenames = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(dialog));
 		if(filenames)
 		{
-			if(!lsq_archive_add(lp_archive, filenames))
+			if(!lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_ADD, NULL, filenames, NULL))
 			{
 				GtkWidget *warning_dialog = gtk_message_dialog_new(GTK_WINDOW(window), 
 																													 GTK_DIALOG_DESTROY_WITH_PARENT, 
@@ -905,7 +905,7 @@
 		filenames = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(dialog));
 		if(filenames)
 		{
-			if(!lsq_archive_add(lp_archive, filenames))
+			if(!lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_ADD, NULL, filenames, NULL))
 			{
 				GtkWidget *warning_dialog = gtk_message_dialog_new(GTK_WINDOW(window),
 				                      GTK_DIALOG_DESTROY_WITH_PARENT, 
@@ -939,7 +939,7 @@
 			gtk_widget_hide(dialog);
 			sq_notebook_get_active_archive(SQ_NOTEBOOK(window->notebook), &lp_archive);
 			/* gtk_tree_view_set_model(sq_notebook_get_active_tree_view(SQ_NOTEBOOK(window->notebook)), NULL); */
-			if(!lsq_archive_remove(lp_archive, filenames))
+			if(!lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_REMOVE, NULL, filenames, NULL))
 			{
 				GtkWidget *warning_dialog = gtk_message_dialog_new(GTK_WINDOW(window), 
 																													 GTK_DIALOG_DESTROY_WITH_PARENT, 
@@ -973,10 +973,10 @@
 static void 
 cb_sq_main_refresh_archive(GtkWidget *widget, gpointer userdata)
 {
-	SQMainWindow *window = SQ_MAIN_WINDOW(userdata);
-	SQArchiveStore *store = sq_notebook_get_active_store(SQ_NOTEBOOK(window->notebook));
-	LSQArchive *archive = sq_archive_store_get_archive(store);
-	lsq_archive_full_refresh(archive);
+	//SQMainWindow *window = SQ_MAIN_WINDOW(userdata);
+	//SQArchiveStore *store = sq_notebook_get_active_store(SQ_NOTEBOOK(window->notebook));
+	//LSQArchive *archive = sq_archive_store_get_archive(store);
+	//lsq_archive_full_refresh(archive);
 }
 
 static void
@@ -1226,7 +1226,7 @@
 	{
 		case GTK_RESPONSE_OK: /* VIEW */
 			sq_notebook_get_active_archive(SQ_NOTEBOOK(notebook), &lp_archive);
-			if(lsq_archive_view(lp_archive, files))
+			if(lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_OPEN, NULL, files, NULL))
 			{
 				GtkWidget *warning_dialog = gtk_message_dialog_new(window, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_WARNING, GTK_BUTTONS_CLOSE, _("Squeeze cannot view this file.\nthe application to support this is missing."));
 				if(warning_dialog)
@@ -1249,7 +1249,7 @@
 					g_slist_free(files);
 					files = NULL;
 				}
-				if(lsq_archive_extract(lp_archive, extract_archive_path, files))
+				if(lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_EXTRACT, extract_archive_path, files, NULL))
 				{
 					GtkWidget *warning_dialog = gtk_message_dialog_new(GTK_WINDOW(window), 
 																	 GTK_DIALOG_DESTROY_WITH_PARENT, 

Modified: squeeze/trunk/src/notebook.c
===================================================================
--- squeeze/trunk/src/notebook.c	2007-06-17 07:28:34 UTC (rev 25821)
+++ squeeze/trunk/src/notebook.c	2007-06-20 18:27:11 UTC (rev 25822)
@@ -571,7 +571,7 @@
 
 	if(new_archive == FALSE)
 	{
-		lsq_archive_full_refresh(archive);
+		//lsq_archive_full_refresh(archive);
 	}
 
 }
@@ -802,10 +802,12 @@
 
 		g_signal_connect(G_OBJECT(archive), "refreshed", G_CALLBACK(cb_notebook_archive_refreshed), treeview);
 
+		/*
 		if(lsq_archive_full_refresh(archive))
 		{
-			/* FIXME: show warning dialog */
+			// FIXME: show warning dialog
 		}
+		*/
 
 		gtk_tree_view_set_model(GTK_TREE_VIEW(treeview), store);
 	}

Modified: squeeze/trunk/src/tool_bar.c
===================================================================
--- squeeze/trunk/src/tool_bar.c	2007-06-17 07:28:34 UTC (rev 25821)
+++ squeeze/trunk/src/tool_bar.c	2007-06-20 18:27:11 UTC (rev 25822)
@@ -363,8 +363,8 @@
 static void
 cb_sq_tool_bar_refresh(GtkWidget *refresh_button, SQToolBar *tool_bar)
 {
-	LSQArchive *archive = sq_archive_store_get_archive(SQ_NAVIGATION_BAR(tool_bar)->store);
-	lsq_archive_full_refresh(archive);
+	//LSQArchive *archive = sq_archive_store_get_archive(SQ_NAVIGATION_BAR(tool_bar)->store);
+	//lsq_archive_full_refresh(archive);
 }
 
 static void



More information about the Xfce4-commits mailing list