Mercurial > pidgin
changeset 15927:846a00760176
use file select dialog
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Mon, 26 Mar 2007 04:06:15 +0000 |
parents | 9ac4e6b097d3 |
children | f00f2e283ffb |
files | finch/gntrequest.c finch/libgnt/gntfilesel.c |
diffstat | 2 files changed, 12 insertions(+), 52 deletions(-) [+] |
line wrap: on
line diff
--- a/finch/gntrequest.c Mon Mar 26 03:58:42 2007 +0000 +++ b/finch/gntrequest.c Mon Mar 26 04:06:15 2007 +0000 @@ -28,6 +28,7 @@ #include <gntcheckbox.h> #include <gntcombobox.h> #include <gntentry.h> +#include <gntfilesel.h> #include <gntlabel.h> #include <gntline.h> #include <gnttree.h> @@ -39,7 +40,7 @@ typedef struct { void *user_data; - GntWidget *entry, *dialog; + GntWidget *dialog; GCallback *cbs; } PurpleGntFileRequest; @@ -549,8 +550,10 @@ file_ok_cb(GntWidget *wid, gpointer fq) { PurpleGntFileRequest *data = fq; + char *file = gnt_file_sel_get_selected_file(GNT_FILE_SEL(data->dialog)); if (data->cbs[0] != NULL) - ((PurpleRequestFileCb)data->cbs[0])(data->user_data, gnt_entry_get_text(GNT_ENTRY(data->entry))); + ((PurpleRequestFileCb)data->cbs[0])(data->user_data, file); + g_free(file); purple_request_close(PURPLE_REQUEST_FILE, data->dialog); } @@ -568,8 +571,8 @@ GCallback ok_cb, GCallback cancel_cb, void *user_data) { - GntWidget *window = gnt_vbox_new(FALSE); - GntWidget *entry, *hbox, *button; + GntWidget *window = gnt_file_sel_new(); + GntFileSel *sel = GNT_FILE_SEL(window); PurpleGntFileRequest *data = g_new0(PurpleGntFileRequest, 1); data->user_data = user_data; @@ -577,31 +580,12 @@ data->cbs[0] = ok_cb; data->cbs[1] = cancel_cb; data->dialog = window; - data->entry = entry = gnt_entry_new(g_strconcat(purple_home_dir(), G_DIR_SEPARATOR_S, filename, NULL)); - gnt_widget_set_size(entry, 30, 1); - gnt_box_set_toplevel(GNT_BOX(window), TRUE); gnt_box_set_title(GNT_BOX(window), title ? title : (savedialog ? _("Save File...") : _("Open File..."))); -#if 0 - /* After the string freeze */ - gnt_box_add_widget(GNT_BOX(window), gnt_label_new(_("Please enter a full path for a file"))); -#endif - gnt_box_add_widget(GNT_BOX(window), entry); - - hbox = gnt_hbox_new(TRUE); - gnt_box_set_alignment(GNT_BOX(hbox), GNT_ALIGN_MID); - - button = gnt_button_new(_("Cancel")); - g_signal_connect(G_OBJECT(button), "activate", - G_CALLBACK(file_cancel_cb), data); - gnt_box_add_widget(GNT_BOX(hbox), button); - - button = gnt_button_new(_("OK")); - g_signal_connect(G_OBJECT(button), "activate", - G_CALLBACK(file_ok_cb), data); - gnt_box_add_widget(GNT_BOX(hbox), button); - - gnt_box_add_widget(GNT_BOX(window), hbox); - + gnt_file_sel_set_current_location(sel, purple_home_dir()); /* XXX: */ + g_signal_connect(G_OBJECT(sel->cancel), "activate", + G_CALLBACK(file_cancel_cb), data); + g_signal_connect(G_OBJECT(sel->select), "activate", + G_CALLBACK(file_ok_cb), data); g_signal_connect_swapped(G_OBJECT(window), "destroy", G_CALLBACK(file_request_destroy), data);
--- a/finch/libgnt/gntfilesel.c Mon Mar 26 03:58:42 2007 +0000 +++ b/finch/libgnt/gntfilesel.c Mon Mar 26 04:06:15 2007 +0000 @@ -492,27 +492,3 @@ return list; } -void gnt_file_sel_set_multi_select(GntFileSel *sel, gboolean set) -{ - sel->multiselect = set; -} - -GList *gnt_file_sel_get_selected_multi_files(GntFileSel *sel) -{ - GList *list = NULL, *iter; - char *str = gnt_file_sel_get_selected_file(sel); - - for (iter = sel->tags; iter; iter = iter->next) { - list = g_list_prepend(list, g_strdup(iter->data)); - if (g_utf8_collate(str, iter->data)) { - g_free(str); - str = NULL; - } - } - if (str) - list = g_list_prepend(list, str); - list = g_list_reverse(list); - return list; -} - -