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