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

_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to