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

Peter de Ridder peter at xfce.org
Sat Jul 12 01:36:22 CEST 2008


Author: peter
Date: 2008-07-11 23:36:22 +0000 (Fri, 11 Jul 2008)
New Revision: 27259

Modified:
   squeeze/trunk/libsqueeze/libsqueeze.c
   squeeze/trunk/libsqueeze/libsqueeze.h
   squeeze/trunk/src/main_window.c
   squeeze/trunk/src/tool_bar.c
Log:
delete works now too

Modified: squeeze/trunk/libsqueeze/libsqueeze.c
===================================================================
--- squeeze/trunk/libsqueeze/libsqueeze.c	2008-07-11 21:36:31 UTC (rev 27258)
+++ squeeze/trunk/libsqueeze/libsqueeze.c	2008-07-11 23:36:22 UTC (rev 27259)
@@ -140,3 +140,30 @@
 {
 	return NULL;
 }
+
+const gchar **
+lsq_iter_list_to_strv(GSList *list)
+{
+  guint i;
+
+  const gchar **strv;
+
+  if(!list)
+    return NULL;
+
+  strv = g_new(const gchar *, g_slist_length(list)+1);
+
+  i = 0;
+
+  while(list)
+  {
+    g_debug(list->data);
+    strv[i++] = lsq_archive_iter_get_filename(list->data);
+    list = g_slist_next(list);
+  }
+
+  strv[i] = NULL;
+
+  return strv;
+}
+

Modified: squeeze/trunk/libsqueeze/libsqueeze.h
===================================================================
--- squeeze/trunk/libsqueeze/libsqueeze.h	2008-07-11 21:36:31 UTC (rev 27258)
+++ squeeze/trunk/libsqueeze/libsqueeze.h	2008-07-11 23:36:22 UTC (rev 27259)
@@ -80,6 +80,9 @@
 gboolean
 lsq_is_supported(const gchar *filename);
 
+const gchar **
+lsq_iter_list_to_strv(GSList *list);
+
 G_END_DECLS
 
 #endif /* __LIBSQUEEZE_H__ */

Modified: squeeze/trunk/src/main_window.c
===================================================================
--- squeeze/trunk/src/main_window.c	2008-07-11 21:36:31 UTC (rev 27258)
+++ squeeze/trunk/src/main_window.c	2008-07-11 23:36:22 UTC (rev 27259)
@@ -806,6 +806,8 @@
 
 	LSQArchive		*lp_archive = NULL;
 
+  const gchar **strv;
+
 	GSList *filenames = sq_notebook_get_selected_items(SQ_NOTEBOOK(window->notebook));
 
 	sq_notebook_get_active_archive(SQ_NOTEBOOK(window->notebook), &lp_archive);
@@ -821,8 +823,10 @@
 			lsq_iter_slist_free(filenames);
 			filenames = NULL;
 		}
-		if(!lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_EXTRACT, NULL, extract_archive_path))
+    strv = lsq_iter_list_to_strv(filenames);
+		if(!lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_EXTRACT, strv, extract_archive_path))
 		{
+      g_free(strv);
 			GtkWidget *warning_dialog = gtk_message_dialog_new(GTK_WINDOW(window), 
 															   GTK_DIALOG_DESTROY_WITH_PARENT, 
 																												 GTK_MESSAGE_WARNING,
@@ -834,6 +838,8 @@
 				gtk_widget_destroy(warning_dialog);
 			}
 		}
+    else
+      g_free(strv);
 		g_free(extract_archive_path);
 		extract_archive_path = NULL;
 	}
@@ -869,8 +875,10 @@
 		filenames = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(dialog));
 		if(filenames)
 		{
-			if(!lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_ADD, NULL, NULL))
+      const gchar **strv = lsq_iter_list_to_strv(filenames);
+			if(!lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_ADD, strv, NULL))
 			{
+        g_free(strv);
 				GtkWidget *warning_dialog = gtk_message_dialog_new(GTK_WINDOW(window), 
 																													 GTK_DIALOG_DESTROY_WITH_PARENT, 
 																													 GTK_MESSAGE_WARNING,
@@ -879,6 +887,8 @@
 				gtk_dialog_run (GTK_DIALOG (warning_dialog) );
 				gtk_widget_destroy(warning_dialog);
 			}
+      else
+        g_free(strv);
 		}
 	}
 	gtk_widget_destroy (dialog);
@@ -911,8 +921,10 @@
 		filenames = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(dialog));
 		if(filenames)
 		{
-			if(!lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_ADD, NULL, NULL))
+      const gchar **strv = lsq_iter_list_to_strv(filenames);
+			if(!lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_ADD, strv, NULL))
 			{
+        g_free(strv);
 				GtkWidget *warning_dialog = gtk_message_dialog_new(GTK_WINDOW(window),
 									  GTK_DIALOG_DESTROY_WITH_PARENT, 
 									  GTK_MESSAGE_WARNING,
@@ -922,6 +934,8 @@
 				gtk_dialog_run (GTK_DIALOG (warning_dialog) );
 				gtk_widget_destroy(warning_dialog);
 			}
+      else
+        g_free(strv);
 		}
 	}
 	gtk_widget_destroy (dialog);
@@ -934,6 +948,7 @@
 	LSQArchive		*lp_archive = NULL;
 	GtkWidget *dialog = NULL;
 	gint result = 0;
+  const gchar **strv;
 	GSList *filenames = sq_notebook_get_selected_items(SQ_NOTEBOOK(window->notebook));
 
 	if(filenames)
@@ -945,8 +960,10 @@
 			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_operate(lp_archive, LSQ_COMMAND_TYPE_REMOVE, NULL, NULL))
+      strv = lsq_iter_list_to_strv(filenames);
+			if(!lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_REMOVE, strv, NULL))
 			{
+        g_free(strv);
 				GtkWidget *warning_dialog = gtk_message_dialog_new(GTK_WINDOW(window), 
 																													 GTK_DIALOG_DESTROY_WITH_PARENT, 
 																													 GTK_MESSAGE_WARNING,
@@ -955,6 +972,8 @@
 				gtk_dialog_run (GTK_DIALOG (warning_dialog) );
 				gtk_widget_destroy(warning_dialog);
 			}
+      else
+        g_free(strv);
 		}
 		gtk_widget_destroy (dialog);
 
@@ -1227,12 +1246,15 @@
 	gint result = gtk_dialog_run(GTK_DIALOG(dialog));
 	gtk_widget_hide(dialog);
 
-	GSList *files = g_slist_prepend(NULL, iter);
+	const gchar **strv = g_new(const gchar*, 2);
+  strv[0] = lsq_archive_iter_get_filename(iter);
+  strv[1] = NULL;
+
 	switch(result)
 	{
 		case GTK_RESPONSE_OK: /* VIEW */
 			sq_notebook_get_active_archive(SQ_NOTEBOOK(notebook), &lp_archive);
-			if(lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_OPEN, NULL, NULL))
+			if(lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_OPEN, strv, 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)
@@ -1252,10 +1274,10 @@
 				extract_archive_path = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(extr_dialog));
 				if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(SQ_EXTRACT_ARCHIVE_DIALOG(extr_dialog)->all_files_radio)))
 				{
-					g_slist_free(files);
-					files = NULL;
+					g_free(strv);
+					strv = NULL;
 				}
-				if(lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_EXTRACT, NULL, extract_archive_path))
+				if(lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_EXTRACT, strv, extract_archive_path))
 				{
 					GtkWidget *warning_dialog = gtk_message_dialog_new(GTK_WINDOW(window), 
 																	 GTK_DIALOG_DESTROY_WITH_PARENT, 
@@ -1275,7 +1297,7 @@
 		case GTK_RESPONSE_CANCEL: /* CANCEL */
 			break;
 	}
-	g_slist_free(files);
+	g_free(strv);
 	gtk_widget_destroy(dialog);
 }
 

Modified: squeeze/trunk/src/tool_bar.c
===================================================================
--- squeeze/trunk/src/tool_bar.c	2008-07-11 21:36:31 UTC (rev 27258)
+++ squeeze/trunk/src/tool_bar.c	2008-07-11 23:36:22 UTC (rev 27259)
@@ -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_operate(archive, LSQ_COMMAND_TYPE_REFRESH, NULL, NULL);
 }
 
 static void



More information about the Xfce4-commits mailing list