Updating branch refs/heads/peter/libsqueeze to 40a75344fa2918b78db21818bdb6bab987bee012 (commit) from d62f93326d0b937d53cbb2b80b0c8e2862421cc6 (commit)
commit 40a75344fa2918b78db21818bdb6bab987bee012 Author: Peter de Ridder <pe...@xfce.org> Date: Sun Jun 17 17:49:12 2012 +0200 Use the api in the application src/application.c | 32 ++++++++++++++------- src/archive_store.c | 2 +- src/extract_dialog.c | 1 + src/main_window.c | 75 ++++++++++++++++++++++++++++++++++---------------- src/new_dialog.c | 8 +++-- src/notebook.c | 4 +- src/tool_bar.c | 2 +- 7 files changed, 82 insertions(+), 42 deletions(-) diff --git a/src/application.c b/src/application.c index 2e2688b..8bb2a85 100644 --- a/src/application.c +++ b/src/application.c @@ -149,9 +149,12 @@ gint sq_application_extract_archive(SQApplication *app, GFile *file, gchar *dest_path) { GtkWidget *dialog = NULL; - LSQArchive *lp_archive = NULL; + LSQArchive *archive; GtkWidget *message_dialog; - if(lsq_open_archive(file, &lp_archive)) + LSQExecuteContext *operation; + + archive = lsq_open_archive( file, NULL ); + if ( NULL == archive ) { /* * Could not open archive (mime type not supported or file did not exist) @@ -165,7 +168,7 @@ sq_application_extract_archive(SQApplication *app, GFile *file, gchar *dest_path } if(!dest_path) { - GtkWidget *extr_dialog = sq_extract_archive_dialog_new(lp_archive, 0); + GtkWidget *extr_dialog = sq_extract_archive_dialog_new( archive, 0 ); gint result = gtk_dialog_run (GTK_DIALOG (extr_dialog) ); if(result == GTK_RESPONSE_OK) { @@ -176,12 +179,13 @@ sq_application_extract_archive(SQApplication *app, GFile *file, gchar *dest_path } if(!dest_path) { - lsq_close_archive(lp_archive); + lsq_close_archive( archive ); return 1; } - message_dialog = sq_message_dialog_new(GTK_WINDOW_TOPLEVEL, lp_archive); + message_dialog = sq_message_dialog_new( GTK_WINDOW_TOPLEVEL, archive ); gtk_widget_show(message_dialog); - if(!lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_EXTRACT, NULL, dest_path)) + operation = lsq_archive_operate( archive, LSQ_COMMAND_TYPE_EXTRACT, NULL, dest_path, NULL, NULL ); + if ( NULL == operation ) { GtkWidget *warning_dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_DESTROY_WITH_PARENT, @@ -195,6 +199,7 @@ sq_application_extract_archive(SQApplication *app, GFile *file, gchar *dest_path } } + g_object_unref( operation ); g_object_ref(app); return 0; } @@ -204,8 +209,9 @@ sq_application_new_archive(SQApplication *app, GFile *file, GSList *files) { GtkWidget *dialog = NULL; gint result = 0; - LSQArchive *lp_archive = NULL; + LSQArchive *archive; GtkWidget *message_dialog; + LSQExecuteContext *operation; if(!file) { @@ -226,7 +232,8 @@ sq_application_new_archive(SQApplication *app, GFile *file, GSList *files) file = sq_new_archive_dialog_get_file(SQ_NEW_ARCHIVE_DIALOG(dialog)); gtk_widget_destroy (GTK_WIDGET (dialog) ); } - if(lsq_new_archive(file, TRUE, &lp_archive)) + archive = lsq_new_archive( file, NULL, TRUE, NULL ); + if ( NULL == archive ) { /* * Could not create archive (mime type unsupported) @@ -242,7 +249,8 @@ sq_application_new_archive(SQApplication *app, GFile *file, GSList *files) } else { - if(lsq_open_archive(file, &lp_archive)) + archive = lsq_open_archive( file, NULL ); + if ( NULL == archive ) { /* * Could not open archive (mime type not supported or file did not exist) @@ -255,10 +263,11 @@ sq_application_new_archive(SQApplication *app, GFile *file, GSList *files) return 1; } } - message_dialog = sq_message_dialog_new(GTK_WINDOW_TOPLEVEL, lp_archive); + message_dialog = sq_message_dialog_new( GTK_WINDOW_TOPLEVEL, archive ); gtk_widget_show(message_dialog); - if(!lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_ADD, NULL, NULL)) + operation = lsq_archive_operate( archive, LSQ_COMMAND_TYPE_ADD, NULL, NULL, NULL, NULL ); + if ( NULL == operation ) { /* FIXME: show warning dialog */ GtkWidget *warning_dialog = gtk_message_dialog_new( @@ -270,6 +279,7 @@ sq_application_new_archive(SQApplication *app, GFile *file, GSList *files) gtk_dialog_run (GTK_DIALOG (warning_dialog) ); gtk_widget_destroy(warning_dialog); } + g_object_unref( operation ); g_object_ref(app); return 0; } diff --git a/src/archive_store.c b/src/archive_store.c index 968c992..63614de 100644 --- a/src/archive_store.c +++ b/src/archive_store.c @@ -1014,7 +1014,7 @@ sq_archive_insertionsort(SQArchiveStore *store, gint left, gint right) static GIcon * sq_archive_store_get_icon_name_for_iter(SQArchiveStore *store, LSQArchiveIter *iter) { - return g_content_type_get_icon(lsq_archive_iter_get_contenttype(iter)); + return g_content_type_get_icon( lsq_archive_iter_get_content_type( iter ) ); } GtkTreeModel * diff --git a/src/extract_dialog.c b/src/extract_dialog.c index 630af18..7bf26a1 100644 --- a/src/extract_dialog.c +++ b/src/extract_dialog.c @@ -22,6 +22,7 @@ #include <glib.h> #include <gtk/gtk.h> #include <gio/gio.h> +#include <libxfce4util/libxfce4util.h> #include <libsqueeze/libsqueeze.h> #include "extract_dialog.h" diff --git a/src/main_window.c b/src/main_window.c index f50029c..f283857 100644 --- a/src/main_window.c +++ b/src/main_window.c @@ -660,28 +660,32 @@ cb_sq_main_new_archive(GtkWidget *widget, gpointer userdata) GtkWidget *dialog = sq_new_archive_dialog_new(); GFile *file = NULL; SQMainWindow *window = SQ_MAIN_WINDOW(userdata); - LSQArchive *archive = NULL; - LSQSupportType support_mask = 0; + LSQArchive *archive; + //LSQSupportType support_mask = 0; gint result = 0; result = gtk_dialog_run (GTK_DIALOG (dialog) ); - if(result == GTK_RESPONSE_CANCEL || result == GTK_RESPONSE_DELETE_EVENT) + switch ( result ) { + case GTK_RESPONSE_CANCEL: + case GTK_RESPONSE_DELETE_EVENT: gtk_widget_destroy (GTK_WIDGET (dialog) ); return; - } - if(result == GTK_RESPONSE_OK) - { + + case GTK_RESPONSE_OK: file = sq_new_archive_dialog_get_file(SQ_NEW_ARCHIVE_DIALOG(dialog)); - if(!lsq_new_archive(file, TRUE, &archive)) + archive = lsq_new_archive( file, NULL, TRUE, NULL ); + if ( NULL != archive ) { - support_mask = lsq_archive_get_support_mask(archive); + //support_mask = lsq_archive_get_support_mask(archive); sq_notebook_add_archive(SQ_NOTEBOOK(window->notebook), archive, TRUE); + /* if(support_mask & LSQ_SUPPORT_FILES) gtk_widget_set_sensitive(window->menubar.menu_item_add_files, TRUE); if(support_mask & LSQ_SUPPORT_FOLDERS) gtk_widget_set_sensitive(window->menubar.menu_item_add_folders, TRUE); + */ gtk_widget_set_sensitive(window->menubar.menu_item_extract, TRUE); gtk_widget_set_sensitive(window->menubar.menu_item_remove, TRUE); @@ -689,10 +693,12 @@ cb_sq_main_new_archive(GtkWidget *widget, gpointer userdata) if(window->tool_bar) { + /* if(support_mask & LSQ_SUPPORT_FILES) gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_add_files), TRUE); if(support_mask & LSQ_SUPPORT_FOLDERS) gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_add_folders), 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); @@ -802,6 +808,7 @@ cb_sq_main_extract_archive(GtkWidget *widget, gpointer userdata) gchar *extract_archive_path = NULL; gint result = 0; SQMainWindow *window = SQ_MAIN_WINDOW(userdata); + LSQExecuteContext *operation; LSQArchive *lp_archive = NULL; @@ -822,8 +829,9 @@ cb_sq_main_extract_archive(GtkWidget *widget, gpointer userdata) lsq_iter_slist_free(filenames); filenames = NULL; } - strv = lsq_iter_list_to_strv(filenames); - if(!lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_EXTRACT, strv, extract_archive_path)) + strv = lsq_iter_slist_to_strv( filenames ); + operation = lsq_archive_operate( lp_archive, LSQ_COMMAND_TYPE_EXTRACT, strv, extract_archive_path, NULL, NULL ); + if ( NULL == operation ) { GtkWidget *warning_dialog; g_strfreev(strv); @@ -840,9 +848,10 @@ cb_sq_main_extract_archive(GtkWidget *widget, gpointer userdata) } else g_strfreev(strv); - g_free(extract_archive_path); - extract_archive_path = NULL; + g_object_unref( operation ); } + g_free(extract_archive_path); + extract_archive_path = NULL; gtk_widget_destroy (dialog); lsq_iter_slist_free(filenames); @@ -852,6 +861,7 @@ static void cb_sq_main_add_files_to_archive(GtkWidget *widget, gpointer userdata) { SQMainWindow *window = SQ_MAIN_WINDOW(userdata); + LSQExecuteContext *operation; LSQArchive *lp_archive = NULL; GtkWidget *dialog = NULL; @@ -875,8 +885,9 @@ cb_sq_main_add_files_to_archive(GtkWidget *widget, gpointer userdata) filenames = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(dialog)); if(filenames) { - gchar **strv = lsq_iter_list_to_strv(filenames); - if(!lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_ADD, strv, NULL)) + gchar **strv = lsq_iter_slist_to_strv( filenames ); + operation = lsq_archive_operate( lp_archive, LSQ_COMMAND_TYPE_ADD, strv, NULL, NULL, NULL ); + if ( NULL == operation ) { GtkWidget *warning_dialog; g_strfreev(strv); @@ -890,6 +901,7 @@ cb_sq_main_add_files_to_archive(GtkWidget *widget, gpointer userdata) } else g_strfreev(strv); + g_object_unref( operation ); } } gtk_widget_destroy (dialog); @@ -899,6 +911,7 @@ static void cb_sq_main_add_folders_to_archive(GtkWidget *widget, gpointer userdata) { SQMainWindow *window = SQ_MAIN_WINDOW(userdata); + LSQExecuteContext *operation; LSQArchive *lp_archive = NULL; GtkWidget *dialog = NULL; @@ -922,8 +935,9 @@ cb_sq_main_add_folders_to_archive(GtkWidget *widget, gpointer userdata) filenames = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(dialog)); if(filenames) { - gchar **strv = lsq_iter_list_to_strv(filenames); - if(!lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_ADD, strv, NULL)) + gchar **strv = lsq_iter_slist_to_strv( filenames ); + operation = lsq_archive_operate( lp_archive, LSQ_COMMAND_TYPE_ADD, strv, NULL, NULL, NULL ); + if ( NULL == operation ) { GtkWidget *warning_dialog; g_strfreev(strv); @@ -938,6 +952,7 @@ cb_sq_main_add_folders_to_archive(GtkWidget *widget, gpointer userdata) } else g_strfreev(strv); + g_object_unref( operation ); } } gtk_widget_destroy (dialog); @@ -952,6 +967,7 @@ cb_sq_main_remove_from_archive(GtkWidget *widget, gpointer userdata) gint result = 0; gchar **strv; GSList *filenames = sq_notebook_get_selected_items(SQ_NOTEBOOK(window->notebook)); + LSQExecuteContext *operation; if(filenames) { @@ -962,8 +978,9 @@ cb_sq_main_remove_from_archive(GtkWidget *widget, gpointer userdata) 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); */ - strv = lsq_iter_list_to_strv(filenames); - if(!lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_REMOVE, strv, NULL)) + strv = lsq_iter_slist_to_strv( filenames ); + operation = lsq_archive_operate( lp_archive, LSQ_COMMAND_TYPE_REMOVE, strv, NULL, NULL, NULL ); + if ( NULL == operation ) { GtkWidget *warning_dialog; g_strfreev(strv); @@ -977,6 +994,7 @@ cb_sq_main_remove_from_archive(GtkWidget *widget, gpointer userdata) } else g_strfreev(strv); + g_object_unref( operation ); } gtk_widget_destroy (dialog); @@ -1004,7 +1022,7 @@ cb_sq_main_refresh_archive(GtkWidget *widget, gpointer userdata) SQMainWindow *window = SQ_MAIN_WINDOW(userdata); SQArchiveStore *store = sq_notebook_get_active_store(SQ_NOTEBOOK(window->notebook)); LSQArchive *archive = sq_archive_store_get_archive(store); - lsq_archive_operate(archive, LSQ_COMMAND_TYPE_REFRESH, NULL, NULL); + g_object_unref( lsq_archive_operate( archive, LSQ_COMMAND_TYPE_REFRESH, NULL, NULL, NULL, NULL ) ); } static void @@ -1252,6 +1270,7 @@ cb_sq_main_window_notebook_file_activated(SQNotebook *notebook, LSQArchiveIter * GtkWidget *extr_dialog = NULL; gint result; gchar **strv; + LSQExecuteContext *operation = NULL; gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), label, TRUE, TRUE, 20); gtk_widget_show(label); result = gtk_dialog_run(GTK_DIALOG(dialog)); @@ -1265,7 +1284,8 @@ cb_sq_main_window_notebook_file_activated(SQNotebook *notebook, LSQArchiveIter * { 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, strv, NULL)) + operation = lsq_archive_operate( lp_archive, LSQ_COMMAND_TYPE_OPEN, strv, NULL, NULL, NULL ); + if ( NULL == operation ) { 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) @@ -1288,7 +1308,8 @@ cb_sq_main_window_notebook_file_activated(SQNotebook *notebook, LSQArchiveIter * g_strfreev(strv); strv = NULL; } - if(lsq_archive_operate(lp_archive, LSQ_COMMAND_TYPE_EXTRACT, strv, extract_archive_path)) + operation = lsq_archive_operate( lp_archive, LSQ_COMMAND_TYPE_EXTRACT, strv, extract_archive_path, NULL, NULL ); + if ( NULL == operation ) { GtkWidget *warning_dialog = gtk_message_dialog_new(GTK_WINDOW(window), GTK_DIALOG_DESTROY_WITH_PARENT, @@ -1309,15 +1330,17 @@ cb_sq_main_window_notebook_file_activated(SQNotebook *notebook, LSQArchiveIter * break; } g_strfreev(strv); + g_object_unref( operation ); gtk_widget_destroy(dialog); } gint sq_main_window_open_archive(SQMainWindow *window, GFile *file, gint replace) { - LSQArchive *archive = NULL; + LSQArchive *archive; - if(!lsq_open_archive(file, &archive)) + archive = lsq_open_archive( file, NULL ); + if ( NULL != archive ) { if(replace < 0) sq_notebook_add_archive(SQ_NOTEBOOK(window->notebook), archive, FALSE); @@ -1386,7 +1409,7 @@ static void cb_sq_main_window_notebook_state_changed(SQNotebook *notebook, LSQArchive *archive, gpointer userdata) { SQMainWindow *window = SQ_MAIN_WINDOW(userdata); - LSQSupportType support_mask = lsq_archive_get_support_mask(archive); + //LSQSupportType support_mask = lsq_archive_get_support_mask(archive); guint context_id = gtk_statusbar_get_context_id(GTK_STATUSBAR(window->statusbar), "Window Statusbar"); const gchar *message = lsq_archive_get_state_msg(archive); @@ -1396,10 +1419,12 @@ cb_sq_main_window_notebook_state_changed(SQNotebook *notebook, LSQArchive *archi message = _("Done"); if(window->menu_bar) { + /* if(support_mask & LSQ_SUPPORT_FILES) gtk_widget_set_sensitive(window->menubar.menu_item_add_files, TRUE); if(support_mask & LSQ_SUPPORT_FOLDERS) gtk_widget_set_sensitive(window->menubar.menu_item_add_folders, 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); @@ -1407,10 +1432,12 @@ cb_sq_main_window_notebook_state_changed(SQNotebook *notebook, LSQArchive *archi if(window->tool_bar) { + /* if(support_mask & LSQ_SUPPORT_FILES) gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_add_files), TRUE); if(support_mask & LSQ_SUPPORT_FOLDERS) gtk_widget_set_sensitive(GTK_WIDGET(window->toolbar.tool_item_add_folders), 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); diff --git a/src/new_dialog.c b/src/new_dialog.c index d1e1205..d76aae4 100644 --- a/src/new_dialog.c +++ b/src/new_dialog.c @@ -67,7 +67,7 @@ static void sq_new_archive_dialog_init(SQNewArchiveDialog *dialog) { GtkWidget *hbox = gtk_hbox_new(FALSE, 10); - GSList *_supported_mime_types; + //GSList *_supported_mime_types; gtk_box_pack_start (GTK_BOX (hbox),gtk_label_new (_("Archive type:")),FALSE, FALSE, 0); dialog->archive_types_combo = gtk_combo_box_new_text(); @@ -75,14 +75,16 @@ sq_new_archive_dialog_init(SQNewArchiveDialog *dialog) gtk_widget_show_all(hbox); + /* dialog->supported_mime_types = lsq_get_supported_mime_types(LSQ_COMMAND_TYPE_ADD); _supported_mime_types = dialog->supported_mime_types; + */ dialog->file_filter = gtk_file_filter_new(); gtk_file_filter_set_name(dialog->file_filter, _("Archives")); + /* while(_supported_mime_types) { - /* gtk_combo_box_append_text(GTK_COMBO_BOX(dialog->archive_types_combo), lsq_mime_support_get_comment((LSQMimeSupport *)(_supported_mime_types->data))); @@ -90,8 +92,8 @@ sq_new_archive_dialog_init(SQNewArchiveDialog *dialog) lsq_mime_support_get_name((LSQMimeSupport *)(_supported_mime_types->data))); _supported_mime_types = g_slist_next(_supported_mime_types); - */ } + */ gtk_box_pack_end(GTK_BOX(GTK_DIALOG(dialog)->vbox), hbox, FALSE, TRUE, 0); gtk_dialog_add_buttons(GTK_DIALOG(dialog), diff --git a/src/notebook.c b/src/notebook.c index 2de6571..15e31a4 100644 --- a/src/notebook.c +++ b/src/notebook.c @@ -590,7 +590,7 @@ sq_notebook_add_archive(SQNotebook *notebook, LSQArchive *archive, gboolean new_ if(new_archive == FALSE) { - lsq_archive_operate(archive, LSQ_COMMAND_TYPE_REFRESH, NULL, NULL); + g_object_unref( lsq_archive_operate( archive, LSQ_COMMAND_TYPE_REFRESH, NULL, NULL, NULL, NULL) ); } g_free(filename); g_free(filepath); @@ -842,7 +842,7 @@ sq_notebook_page_set_archive(SQNotebook *notebook, LSQArchive *archive, gint n) g_signal_connect(G_OBJECT(archive), "refreshed", G_CALLBACK(cb_notebook_archive_refreshed), treeview); - lsq_archive_operate(archive, LSQ_COMMAND_TYPE_REFRESH, NULL, NULL); + g_object_unref( lsq_archive_operate( archive, LSQ_COMMAND_TYPE_REFRESH, NULL, NULL, NULL, NULL ) ); gtk_tree_view_set_model(GTK_TREE_VIEW(treeview), store); diff --git a/src/tool_bar.c b/src/tool_bar.c index 68ad636..c0f1355 100644 --- a/src/tool_bar.c +++ b/src/tool_bar.c @@ -366,7 +366,7 @@ 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_operate(archive, LSQ_COMMAND_TYPE_REFRESH, NULL, NULL); + g_object_unref( lsq_archive_operate( archive, LSQ_COMMAND_TYPE_REFRESH, NULL, NULL, NULL, NULL ) ); } static void _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits