[Xfce4-commits] r25123 - in squeeze/trunk: libsqueeze src
Stephan Arts
stephan at xfce.org
Tue Mar 6 22:11:58 CET 2007
Author: stephan
Date: 2007-03-06 21:11:58 +0000 (Tue, 06 Mar 2007)
New Revision: 25123
Modified:
squeeze/trunk/libsqueeze/archive-command.c
squeeze/trunk/libsqueeze/archive.c
squeeze/trunk/libsqueeze/archive.h
squeeze/trunk/libsqueeze/libsqueeze-archive.h
squeeze/trunk/src/application.c
Log:
Fix 'new' command-line option
Modified: squeeze/trunk/libsqueeze/archive-command.c
===================================================================
--- squeeze/trunk/libsqueeze/archive-command.c 2007-03-05 21:55:45 UTC (rev 25122)
+++ squeeze/trunk/libsqueeze/archive-command.c 2007-03-06 21:11:58 UTC (rev 25123)
@@ -111,6 +111,7 @@
next_archive_command = lsq_archive_get_front_command(archive_command->archive);
if(archive_command->refresh)
lsq_archive_refreshed(archive_command->archive);
+ lsq_archive_command_terminated(archive_command->archive, archive_command->error);
archive_command->archive = NULL;
if(next_archive_command)
{
Modified: squeeze/trunk/libsqueeze/archive.c
===================================================================
--- squeeze/trunk/libsqueeze/archive.c 2007-03-05 21:55:45 UTC (rev 25122)
+++ squeeze/trunk/libsqueeze/archive.c 2007-03-06 21:11:58 UTC (rev 25123)
@@ -443,7 +443,6 @@
{
error = g_error_copy(command->error);
}
- g_signal_emit(G_OBJECT(archive), lsq_archive_signals[LSQ_ARCHIVE_SIGNAL_COMMAND_TERMINATED], 0, error, NULL);
}
}
@@ -503,3 +502,18 @@
{
g_signal_emit(G_OBJECT(archive), lsq_archive_signals[LSQ_ARCHIVE_SIGNAL_REFRESHED], 0, NULL);
}
+
+void
+lsq_archive_command_terminated(const LSQArchive *archive, const GError *error)
+{
+ g_signal_emit(G_OBJECT(archive), lsq_archive_signals[LSQ_ARCHIVE_SIGNAL_COMMAND_TERMINATED], 0, error, NULL);
+}
+
+gboolean
+lsq_archive_has_queue(LSQArchive *archive)
+{
+ if(lsq_archive_get_front_command(archive))
+ return TRUE;
+ else
+ return FALSE;
+}
Modified: squeeze/trunk/libsqueeze/archive.h
===================================================================
--- squeeze/trunk/libsqueeze/archive.h 2007-03-05 21:55:45 UTC (rev 25122)
+++ squeeze/trunk/libsqueeze/archive.h 2007-03-06 21:11:58 UTC (rev 25123)
@@ -50,6 +50,7 @@
LSQArchiveCommand *lsq_archive_get_front_command(const LSQArchive *archive) G_GNUC_INTERNAL;
void lsq_archive_refreshed(const LSQArchive *archive) G_GNUC_INTERNAL;
+void lsq_archive_command_terminated(const LSQArchive *archive, const GError *error) G_GNUC_INTERNAL;
G_END_DECLS
Modified: squeeze/trunk/libsqueeze/libsqueeze-archive.h
===================================================================
--- squeeze/trunk/libsqueeze/libsqueeze-archive.h 2007-03-05 21:55:45 UTC (rev 25122)
+++ squeeze/trunk/libsqueeze/libsqueeze-archive.h 2007-03-06 21:11:58 UTC (rev 25123)
@@ -63,6 +63,8 @@
LSQArchiveIter *lsq_archive_iter_ref(LSQArchiveIter *iter);
void lsq_archive_iter_unref(LSQArchiveIter *iter);
+gboolean lsq_archive_has_queue(LSQArchive *archive);
+
G_END_DECLS
#endif /* __LIBSQUEEZE_ARCHIVE_H__ */
Modified: squeeze/trunk/src/application.c
===================================================================
--- squeeze/trunk/src/application.c 2007-03-05 21:55:45 UTC (rev 25122)
+++ squeeze/trunk/src/application.c 2007-03-06 21:11:58 UTC (rev 25123)
@@ -42,6 +42,9 @@
static void
sq_application_dispose(GObject *object);
+static void
+cb_sq_application_archive_command_terminated(LSQArchive *archive, GError *error, gpointer userdata);
+
enum
{
SQ_APPLICATION_SIGNAL_DESTROY = 0,
@@ -216,7 +219,7 @@
return 1;
}
}
- //g_signal_connect(G_OBJECT(lp_archive), "lsq_status_changed", G_CALLBACK(cb_sq_application_archive_status_changed), app);
+ g_signal_connect(G_OBJECT(lp_archive), "command-terminated", G_CALLBACK(cb_sq_application_archive_command_terminated), app);
lp_support = lsq_get_support_for_mimetype(lsq_archive_get_mimetype(lp_archive));
if(lsq_archive_support_add(lp_support, lp_archive, files))
{
@@ -253,3 +256,18 @@
gtk_widget_show(window);
return retval;
}
+
+static void
+cb_sq_application_archive_command_terminated(LSQArchive *archive, GError *error, gpointer userdata)
+{
+ SQApplication *app = userdata;
+ if(lsq_archive_has_queue(archive))
+ {
+ return;
+ }
+ else
+ {
+ lsq_close_archive(archive);
+ g_object_unref(app);
+ }
+}
More information about the Xfce4-commits
mailing list