[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