From 956477b8de3226bbd9c51233d6572218280f579d Mon Sep 17 00:00:00 2001 From: Ting-Wei Lan Date: Sat, 7 Sep 2013 18:05:17 +0800 Subject: Add widgets to support archive creation --- configure.ac | 1 + libempathy-gtk/empathy-ui-utils.c | 33 +++++++++++++++++++++++++++++---- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac index 7f7df8fb3..291c7c39f 100644 --- a/configure.ac +++ b/configure.ac @@ -230,6 +230,7 @@ PKG_CHECK_MODULES(EMPATHY, webkitgtk-3.0 >= $WEBKIT_REQUIRED libsoup-2.4 gee-0.8 + gnome-autoar ]) # ----------------------------------------------------------- diff --git a/libempathy-gtk/empathy-ui-utils.c b/libempathy-gtk/empathy-ui-utils.c index 5e01d9fcc..69b50e266 100644 --- a/libempathy-gtk/empathy-ui-utils.c +++ b/libempathy-gtk/empathy-ui-utils.c @@ -36,6 +36,7 @@ #include #include #include +#include #include #include #include @@ -47,6 +48,8 @@ #define DEBUG_FLAG EMPATHY_DEBUG_OTHER #include "empathy-debug.h" +#define EMPATHY_RESPONSE_SEND 1 + void empathy_gtk_init (void) { @@ -762,7 +765,7 @@ file_manager_send_file_response_cb (GtkDialog *widget, { GFile *file; - if (response_id == GTK_RESPONSE_OK) + if (response_id == GTK_RESPONSE_OK || response_id == EMPATHY_RESPONSE_SEND) { file = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (widget)); @@ -802,13 +805,21 @@ empathy_send_file_with_file_chooser (EmpathyContact *contact) GtkWidget *widget; GtkWidget *button; + GtkWidget *extra; + GtkWidget *format_label; + GtkWidget *format_combo; + + GSettings *settings; + AutoarPref *arpref; + g_return_if_fail (EMPATHY_IS_CONTACT (contact)); DEBUG ("Creating selection file chooser"); widget = gtk_file_chooser_dialog_new (_("Select a file"), NULL, GTK_FILE_CHOOSER_ACTION_OPEN, - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + _("OK"), GTK_RESPONSE_OK, + _("Cancel"), GTK_RESPONSE_CANCEL, NULL); /* send button */ @@ -819,11 +830,11 @@ empathy_send_file_with_file_chooser (EmpathyContact *contact) gtk_widget_show (button); gtk_dialog_add_action_widget (GTK_DIALOG (widget), button, - GTK_RESPONSE_OK); + EMPATHY_RESPONSE_SEND); gtk_widget_set_can_default (button, TRUE); gtk_dialog_set_default_response (GTK_DIALOG (widget), - GTK_RESPONSE_OK); + EMPATHY_RESPONSE_SEND); gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (widget), FALSE); @@ -833,6 +844,20 @@ empathy_send_file_with_file_chooser (EmpathyContact *contact) gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (widget), create_file_filter ()); + settings = g_settings_new (AUTOAR_PREF_DEFAULT_GSCHEMA_ID); + arpref = autoar_pref_new_with_gsettings (settings); + + extra = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); + format_label = gtk_label_new ( + _("Archive selected directories using this format: ")); + format_combo = autoar_gtk_format_filter_simple_new ( + autoar_pref_get_default_format (arpref), + autoar_pref_get_default_filter (arpref)); + gtk_box_pack_start (GTK_BOX (extra), format_label, FALSE, FALSE, 0); + gtk_box_pack_start (GTK_BOX (extra), format_combo, FALSE, FALSE, 0); + gtk_widget_show_all (extra); + gtk_file_chooser_set_extra_widget (GTK_FILE_CHOOSER (widget), extra); + g_signal_connect (widget, "response", G_CALLBACK (file_manager_send_file_response_cb), g_object_ref (contact)); -- cgit v1.2.3