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

Stephan Arts stephan at xfce.org
Wed Apr 4 12:05:00 CEST 2007


Author: stephan
Date: 2007-04-04 10:05:00 +0000 (Wed, 04 Apr 2007)
New Revision: 25378

Modified:
   squeeze/trunk/libsqueeze/archive-iter.c
   squeeze/trunk/libsqueeze/archive.c
   squeeze/trunk/libsqueeze/command-builder-gnu-tar.c
   squeeze/trunk/libsqueeze/command-builder-rar.c
   squeeze/trunk/src/archive_store.c
   squeeze/trunk/src/main_window.c
Log:
(previous commit was update of po files)

Remove updates the archive tree with .rar and .tar archives too now.
Command-buttons sensitivity is toggled correctly.

When trying to open an unsupported file, it no longer segfaults.



Modified: squeeze/trunk/libsqueeze/archive-iter.c
===================================================================
--- squeeze/trunk/libsqueeze/archive-iter.c	2007-04-04 10:03:04 UTC (rev 25377)
+++ squeeze/trunk/libsqueeze/archive-iter.c	2007-04-04 10:05:00 UTC (rev 25378)
@@ -514,7 +514,8 @@
 		back_iter = g_slist_next(back_iter);
 		if(!back_iter)
 			break;
-		if(!lsq_archive_entry_get_child(parent->entry, lsq_archive_entry_get_filename(((LSQArchiveIter*)back_iter->data)->entry)))
+		if(!lsq_archive_entry_get_child(parent->entry,
+				   lsq_archive_entry_get_filename(((LSQArchiveIter*)back_iter->data)->entry)))
 		{
 			g_slist_free(back_stack);
 			return FALSE;

Modified: squeeze/trunk/libsqueeze/archive.c
===================================================================
--- squeeze/trunk/libsqueeze/archive.c	2007-04-04 10:03:04 UTC (rev 25377)
+++ squeeze/trunk/libsqueeze/archive.c	2007-04-04 10:05:00 UTC (rev 25378)
@@ -219,8 +219,8 @@
 		g_object_unref(archive);
 		archive = NULL;
 	}
-
-	archive->settings = lsq_command_builder_get_settings(archive->builder);
+	else
+		archive->settings = lsq_command_builder_get_settings(archive->builder);
 	
 	return archive;
 }
@@ -361,7 +361,7 @@
 	if(archive->command)
 		return lsq_archive_command_get_comment(archive->command);
 	else
-		return _("Done");
+		return NULL;
 }
 
 void

Modified: squeeze/trunk/libsqueeze/command-builder-gnu-tar.c
===================================================================
--- squeeze/trunk/libsqueeze/command-builder-gnu-tar.c	2007-04-04 10:03:04 UTC (rev 25377)
+++ squeeze/trunk/libsqueeze/command-builder-gnu-tar.c	2007-04-04 10:05:00 UTC (rev 25378)
@@ -353,8 +353,16 @@
 	}
 
 	if(!remove_macro)
-		remove_macro = spawn;
+	{
+		LSQArchiveCommand *remove = lsq_remove_command_new(_("Removing"), archive, file_iters);
 
+		remove_macro = lsq_macro_command_new(archive);
+		lsq_macro_command_append(LSQ_MACRO_COMMAND(remove_macro), spawn);
+		g_object_unref(spawn);
+		lsq_macro_command_append(LSQ_MACRO_COMMAND(remove_macro), remove);
+		g_object_unref(remove);
+	}
+
 	g_free(files);
 	return remove_macro;
 }

Modified: squeeze/trunk/libsqueeze/command-builder-rar.c
===================================================================
--- squeeze/trunk/libsqueeze/command-builder-rar.c	2007-04-04 10:03:04 UTC (rev 25377)
+++ squeeze/trunk/libsqueeze/command-builder-rar.c	2007-04-04 10:05:00 UTC (rev 25378)
@@ -183,14 +183,21 @@
 }
 
 static LSQArchiveCommand *
-lsq_command_builder_rar_build_remove(LSQCommandBuilder *builder, LSQArchive *archive, GSList *iter_files)
+lsq_command_builder_rar_build_remove(LSQCommandBuilder *builder, LSQArchive *archive, GSList *file_iters)
 {
-	gchar *files = lsq_concat_iter_filenames(iter_files);
+	gchar *files = lsq_concat_iter_filenames(file_iters);
 
 	LSQArchiveCommand *spawn = lsq_spawn_command_new(_("Removing"), archive, "rar d %1$s %2$s", files, NULL, NULL);
+	LSQArchiveCommand *macro = lsq_macro_command_new(archive);
+	LSQArchiveCommand *remove = lsq_remove_command_new(_("Removing"), archive, file_iters);
 
+	lsq_macro_command_append(LSQ_MACRO_COMMAND(macro), spawn);
+	g_object_unref(spawn);
+	lsq_macro_command_append(LSQ_MACRO_COMMAND(macro), remove);
+	g_object_unref(remove);
+
 	g_free(files);
-	return spawn;
+	return macro;
 }
 
 static LSQArchiveCommand *

Modified: squeeze/trunk/src/archive_store.c
===================================================================
--- squeeze/trunk/src/archive_store.c	2007-04-04 10:03:04 UTC (rev 25377)
+++ squeeze/trunk/src/archive_store.c	2007-04-04 10:05:00 UTC (rev 25378)
@@ -1235,7 +1235,7 @@
 	store->archive = archive;
 
 	/* only update if we are not busy */
-	/* if(lsq_archive_get_status(archive) == LSQ_ARCHIVESTATUS_IDLE) */
+	/* if(lsq_archive_get_status(archive) == NULL) */
 	{
 		root_entry = lsq_archive_get_iter(archive, NULL);
 
@@ -1487,9 +1487,11 @@
 static void
 sq_archive_store_append_history(SQArchiveStore *store, LSQArchiveIter *entry)
 {
-/*	if(lsq_archive_get_status(store->archive) != LSQ_ARCHIVESTATUS_IDLE)
+	/*
+	if(lsq_archive_get_status(store->archive) != NULL)
 		return;
-*/
+	*/
+
 	GList *iter = store->navigation.present;
 
 	if(store->navigation.present)

Modified: squeeze/trunk/src/main_window.c
===================================================================
--- squeeze/trunk/src/main_window.c	2007-04-04 10:03:04 UTC (rev 25377)
+++ squeeze/trunk/src/main_window.c	2007-04-04 10:05:00 UTC (rev 25378)
@@ -636,6 +636,19 @@
 		if(!lsq_new_archive(archive_path, TRUE, NULL, &archive))
 		{
 			sq_notebook_add_archive(SQ_NOTEBOOK(window->notebook), archive, TRUE);
+			gtk_widget_set_sensitive(window->menubar.menu_item_add, TRUE);
+			gtk_widget_set_sensitive(window->menubar.menu_item_extract, TRUE);
+			gtk_widget_set_sensitive(window->menubar.menu_item_remove, TRUE);
+			gtk_widget_set_sensitive(window->menubar.menu_item_refresh, TRUE);
+
+			if(window->tool_bar)
+			{
+				gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_add), TRUE);
+				gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_extract), TRUE);
+				gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_remove), TRUE);
+
+				gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_stop), FALSE);
+			}
 		}
 		else
 		{
@@ -990,7 +1003,47 @@
 	sq_main_window_new_action_menu(window, lp_archive);
 
 	guint context_id = gtk_statusbar_get_context_id(GTK_STATUSBAR(window->statusbar), "Window Statusbar");
-	gtk_statusbar_push(GTK_STATUSBAR(window->statusbar), context_id, lsq_archive_get_status(lp_archive));
+	const gchar *message = lsq_archive_get_status(lp_archive);
+	if(!message)
+	{
+		message = _("Done");
+		if(window->menu_bar)
+		{
+			gtk_widget_set_sensitive(window->menubar.menu_item_close, TRUE);
+			gtk_widget_set_sensitive(window->menubar.menu_item_add, TRUE);
+			gtk_widget_set_sensitive(window->menubar.menu_item_extract, TRUE);
+			gtk_widget_set_sensitive(window->menubar.menu_item_remove, TRUE);
+			gtk_widget_set_sensitive(window->menubar.menu_item_refresh, TRUE);
+		}
+		if(window->tool_bar)
+		{
+			gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_add), TRUE);
+			gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_extract), TRUE);
+			gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_remove), TRUE);
+			gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_stop), FALSE);
+		}
+	}
+	else
+	{
+		if(window->menu_bar)
+		{
+			gtk_widget_set_sensitive(window->menubar.menu_item_close, FALSE);
+			gtk_widget_set_sensitive(window->menubar.menu_item_add, FALSE);
+			gtk_widget_set_sensitive(window->menubar.menu_item_extract, FALSE);
+			gtk_widget_set_sensitive(window->menubar.menu_item_remove, FALSE);
+			gtk_widget_set_sensitive(window->menubar.menu_item_refresh, FALSE);
+		}
+
+		if(window->tool_bar)
+		{
+			gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_add), FALSE);
+			gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_extract), FALSE);
+			gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_remove), FALSE);
+			gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_stop), TRUE);
+		}
+
+	}
+	gtk_statusbar_push(GTK_STATUSBAR(window->statusbar), context_id, message);
 }
 
 static void
@@ -1174,21 +1227,6 @@
 		gtk_dialog_run(GTK_DIALOG(error_dialog));
 		gtk_widget_destroy(error_dialog);
 	}
-	/* TODO: enable the buttons in menu and toolbar */
-
-	gtk_widget_set_sensitive(window->menubar.menu_item_add, TRUE);
-	gtk_widget_set_sensitive(window->menubar.menu_item_extract, TRUE);
-	gtk_widget_set_sensitive(window->menubar.menu_item_remove, TRUE);
-	gtk_widget_set_sensitive(window->menubar.menu_item_refresh, TRUE);
-
-	if(window->tool_bar)
-	{
-		gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_add), TRUE);
-		gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_extract), TRUE);
-		gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_remove), TRUE);
-
-		gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_stop), FALSE);
-	}
 }
 
 static void
@@ -1197,19 +1235,47 @@
 	SQMainWindow *window = SQ_MAIN_WINDOW(userdata);
 
 	guint context_id = gtk_statusbar_get_context_id(GTK_STATUSBAR(window->statusbar), "Window Statusbar");
-	gtk_statusbar_push(GTK_STATUSBAR(window->statusbar), context_id, lsq_archive_get_status(archive));
+	const gchar *message = lsq_archive_get_status(archive);
+	if(!message)
+	{
+		message = _("Done");
+		if(window->menu_bar)
+		{
+			gtk_widget_set_sensitive(window->menubar.menu_item_add, TRUE);
+			gtk_widget_set_sensitive(window->menubar.menu_item_extract, TRUE);
+			gtk_widget_set_sensitive(window->menubar.menu_item_remove, TRUE);
+			gtk_widget_set_sensitive(window->menubar.menu_item_refresh, TRUE);
+		}
 
-	gtk_widget_set_sensitive(window->menubar.menu_item_add, FALSE);
-	gtk_widget_set_sensitive(window->menubar.menu_item_extract, FALSE);
-	gtk_widget_set_sensitive(window->menubar.menu_item_remove, FALSE);
-	gtk_widget_set_sensitive(window->menubar.menu_item_refresh, FALSE);
+		if(window->tool_bar)
+		{
+			gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_add), TRUE);
+			gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_extract), TRUE);
+			gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_remove), TRUE);
 
-	if(window->tool_bar)
+			gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_stop), FALSE);
+		}
+	}
+	else
 	{
-		gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_add), FALSE);
-		gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_extract), FALSE);
-		gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_remove), FALSE);
 
-		gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_stop), TRUE);
+		if(window->menu_bar)
+		{
+			gtk_widget_set_sensitive(window->menubar.menu_item_add, FALSE);
+			gtk_widget_set_sensitive(window->menubar.menu_item_extract, FALSE);
+			gtk_widget_set_sensitive(window->menubar.menu_item_remove, FALSE);
+			gtk_widget_set_sensitive(window->menubar.menu_item_refresh, FALSE);
+		}
+
+		if(window->tool_bar)
+		{
+			gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_add), FALSE);
+			gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_extract), FALSE);
+			gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_remove), FALSE);
+
+			gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_stop), TRUE);
+		}
 	}
+
+	gtk_statusbar_push(GTK_STATUSBAR(window->statusbar), context_id, message);
 }



More information about the Xfce4-commits mailing list