changeset 15849:65b45106bfbb

Use the file selector for request-file.
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Tue, 20 Mar 2007 11:52:46 +0000
parents 3da9d5da9054
children f771cdcc551a b4086a92568f
files finch/gntrequest.c finch/libgnt/gntfilesel.c finch/libgnt/gntfilesel.h libpurple/example/nullclient.c libpurple/plugins/Makefile.am libpurple/plugins/perl/common/Makefile.PL.in pidgin/Makefile.am pidgin/gtkutils.c pidgin/pixmaps/Makefile.am
diffstat 9 files changed, 41 insertions(+), 29 deletions(-) [+]
line wrap: on
line diff
--- a/finch/gntrequest.c	Tue Mar 20 02:09:46 2007 +0000
+++ b/finch/gntrequest.c	Tue Mar 20 11:52:46 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,30 +580,14 @@
 	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);
+	gnt_file_sel_set_current_location(sel, purple_home_dir());  /* XXX: may be remember the position and restore here? */
 
-	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_signal_connect(G_OBJECT(sel->cancel), "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_signal_connect(G_OBJECT(sel->select), "activate",
 		G_CALLBACK(file_ok_cb), data);
-	gnt_box_add_widget(GNT_BOX(hbox), button);
-
-	gnt_box_add_widget(GNT_BOX(window), hbox);
 
 	g_signal_connect_swapped(G_OBJECT(window), "destroy",
 			G_CALLBACK(file_request_destroy), data);
--- a/finch/libgnt/gntfilesel.c	Tue Mar 20 02:09:46 2007 +0000
+++ b/finch/libgnt/gntfilesel.c	Tue Mar 20 11:52:46 2007 +0000
@@ -375,3 +375,23 @@
 	return sel->dirsonly;
 }
 
+char *gnt_file_sel_get_selected_file(GntFileSel *sel)
+{
+	char *ret;
+	const char *tmp;
+	tmp = (const char*)gnt_tree_get_selection_data(sel->dirsonly ? GNT_TREE(sel->dirs) : GNT_TREE(sel->files));
+	ret = g_strdup_printf("%s%s%s", sel->current, sel->current[1] ? G_DIR_SEPARATOR_S : "", tmp ? tmp : "");
+	return ret;
+}
+
+void gnt_file_sel_set_must_exist(GntFileSel *sel, gboolean must)
+{
+	/*XXX: What do I do with this? */
+	sel->must_exist = must;
+}
+
+gboolean gnt_file_sel_get_must_exist(GntFileSel *sel)
+{
+	return sel->must_exist;
+}
+
--- a/finch/libgnt/gntfilesel.h	Tue Mar 20 02:09:46 2007 +0000
+++ b/finch/libgnt/gntfilesel.h	Tue Mar 20 11:52:46 2007 +0000
@@ -63,6 +63,12 @@
 
 gboolean gnt_file_sel_get_dirs_only(GntFileSel *sel);
 
+void gnt_file_sel_set_must_exist(GntFileSel *sel, gboolean must);
+
+gboolean gnt_file_sel_get_must_exist(GntFileSel *sel);
+
+char *gnt_file_sel_get_selected_file(GntFileSel *sel);  /* The returned value should be free'd */
+
 G_END_DECLS
 
 #endif /* GNT_FILE_SEL_H */
--- a/libpurple/example/nullclient.c	Tue Mar 20 02:09:46 2007 +0000
+++ b/libpurple/example/nullclient.c	Tue Mar 20 11:52:46 2007 +0000
@@ -28,7 +28,6 @@
 #include "ft.h"
 #include "log.h"
 #include "notify.h"
-#include "prefix.h"
 #include "prefs.h"
 #include "prpl.h"
 #include "pounce.h"
--- a/libpurple/plugins/Makefile.am	Tue Mar 20 02:09:46 2007 +0000
+++ b/libpurple/plugins/Makefile.am	Tue Mar 20 11:52:46 2007 +0000
@@ -18,7 +18,6 @@
 
 SUBDIRS = \
 	$(MONO_DIR) \
-	$(PERL_DIR) \
 	ssl \
 	$(TCL_DIR)
 
--- a/libpurple/plugins/perl/common/Makefile.PL.in	Tue Mar 20 02:09:46 2007 +0000
+++ b/libpurple/plugins/perl/common/Makefile.PL.in	Tue Mar 20 11:52:46 2007 +0000
@@ -9,7 +9,7 @@
     ($] >= 5.005 ?    ## Add these new keywords supported since 5.005
       (ABSTRACT_FROM => '@srcdir@/Purple.pm', # retrieve abstract from module
        AUTHOR     => 'Purple <http://pidgin.im/>') : ()),
-    'LIBS'		=> [''], # e.g., '-lm'
+    'LIBS'		=> ['@GLIB_LIBS@', ''], # e.g., '-lm'
     'DEFINE'		=> '@DEBUG_CFLAGS@', # e.g., '-DHAVE_SOMETHING'
     'INC'		=> '-I. -I@srcdir@ -I@top_srcdir@ -I@top_srcdir@/libpurple @GLIB_CFLAGS@', # e.g., '-I. -I/usr/include/other'
     'OBJECT'		=> '$(O_FILES)', # link all the C files too
--- a/pidgin/Makefile.am	Tue Mar 20 02:09:46 2007 +0000
+++ b/pidgin/Makefile.am	Tue Mar 20 11:52:46 2007 +0000
@@ -63,7 +63,7 @@
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = pidgin.pc
 
-SUBDIRS = pixmaps plugins sounds
+SUBDIRS = plugins 
 
 bin_PROGRAMS = pidgin
 
--- a/pidgin/gtkutils.c	Tue Mar 20 02:09:46 2007 +0000
+++ b/pidgin/gtkutils.c	Tue Mar 20 11:52:46 2007 +0000
@@ -3139,3 +3139,4 @@
 	return path;
 }
 #endif
+
--- a/pidgin/pixmaps/Makefile.am	Tue Mar 20 02:09:46 2007 +0000
+++ b/pidgin/pixmaps/Makefile.am	Tue Mar 20 11:52:46 2007 +0000
@@ -50,13 +50,13 @@
 		gaim.ico			
 
 
-gaimbuttonpixdir = $(datadir)/pixmaps/gaim/buttons
+gaimbuttonpixdir = $(datadir)/pixmaps/pidgin/buttons
 gaimbuttonpix_DATA = about_menu.png accounts.png change-bgcolor-small.png change-fgcolor-small.png edit.png info.png insert-image-small.png insert-link-small.png insert-smiley-small.png pause.png text_bigger.png text_normal.png text_smaller.png send-im.png
 
 gaimiconpixdir = $(datadir)/pixmaps/pidgin/icons
 gaimiconpix_DATA = window-icon.png
 
-gaimdistpixdir = $(datadir)/pixmaps/gaim
+gaimdistpixdir = $(datadir)/pixmaps/pidgin
 gaimdistpix_DATA = logo.png tb_drag_arrow_down.xpm tb_drag_arrow_left.xpm tb_drag_arrow_right.xpm tb_drag_arrow_up.xpm typed.png typing.png status-online.png status-offline.png status-away.png status-invisible.png status-typing0.png status-typing1.png status-typing2.png status-typing3.png status-connect0.png status-connect1.png status-connect2.png status-connect3.png phone.png insert-image.png