[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