[patch] support new GTK file selector in editors/leafpad

Piotr Smyrak piotr.smyrak at heron.pl
Fri Mar 11 03:21:04 PST 2005


>Submitter-Id:	current-users 
>Originator:	Piotr Smyrak 
>Organization:	 
>Confidential:	no 
>Synopsis:	[patch] support new GTK file selector in editors/leafpad 
>Severity:	non-critical 
>Priority:	low 
>Category:	ports 
>Class:		update 
>Release:	FreeBSD 5.3-STABLE i386 
>Environment:


System: FreeBSD 5.3-STABLE #0: Mon Nov 22 01:43:22 CET 2004
    root at smyru.smyrak.com:/usr/obj/usr/src/sys/SMYRU



>Description:


The following patch adds an extra patch to the port that lets editors/leafpad compile so it could take advantage of the new standard GTK+ file selector.

The patch originates from leafpad's website, and its author is Link Dupont. It was cleaned to properly integrate with the port.

I also got Radek, port maintainer approval to get this commited.


>How-To-Repeat:





>Fix:


--- leafpad.patch begins here ---
diff -Naru leafpad.orig/Makefile leafpad/Makefile
--- leafpad.orig/Makefile	Tue Jan 18 10:51:45 2005
+++ leafpad/Makefile	Tue Feb 22 00:10:51 2005
@@ -18,10 +18,26 @@
 USE_REINPLACE=	yes
 USE_X_PREFIX=	yes
 GNU_CONFIGURE=	yes
-CONFIGURE_ENV=	CPPFLAGS="-I${LOCALBASE}/include" \
-		LDFLAGS="-L${LOCALBASE}/lib"
+CONFIGURE_ENV=	CPPFLAGS="-I${LOCALBASE}/include -I${X11BASE}/include ${PTHREAD_CFLAGS}" \
+		LDFLAGS="-L${LOCALBASE}/lib -L${X11BASE}/lib ${PTHREAD_LIBS}" \
+		PTHREAD_LIB="${PTHREAD_LIBS}"
 
 PORTDOCS=	AUTHORS COPYING ChangeLog INSTALL README
+
+.if defined (WITH_NEW_SELECTOR)
+EXTRA_PATCHES=	${FILESDIR}/extra-new-selector.patch
+.endif
+
+pre-everything::
+.if !defined(WITH_NEW_SELECTOR)
+	@${ECHO_MSG} ""
+	@${ECHO_MSG} "You may choose to compile with unsupported patch"
+	@${ECHO_MSG} "that lets leafpad use the new GTK file selector."
+	@${ECHO_MSG} "Define:"
+	@${ECHO_MSG} ""
+	@${ECHO_MSG} "	WITH_NEW_SELECTOR=yes"
+	@${ECHO_MSG} ""
+.endif
 
 post-patch:
 	@${REINPLACE_CMD} -e 's|/pixmaps|/gnome/pixmaps|; \
--- leafpad.orig/pkg-plist.orig	Thu Mar 10 02:25:39 2005
+++ leafpad/pkg-plist	Thu Mar 10 02:20:42 2005
@@ -16,5 +16,6 @@
 share/locale/ta/LC_MESSAGES/leafpad.mo
 share/locale/zh_CN/LC_MESSAGES/leafpad.mo
 share/locale/zh_TW/LC_MESSAGES/leafpad.mo
+%%PORTDOCS%%@dirrm %%DOCSDIR%%
 @exec update-desktop-database > /dev/null || /usr/bin/true
 @unexec update-desktop-database > /dev/null || /usr/bin/true
diff -Naru leafpad.orig/files/extra-new-selector.patch leafpad/files/extra-new-selector.patch
--- leafpad.orig/files/extra-new-selector.patch	Thu Jan  1 01:00:00 1970
+++ leafpad/files/extra-new-selector.patch	Thu Feb  3 21:09:32 2005
@@ -0,0 +1,130 @@
+--- src/callback.c.orig	Mon Dec 20 12:58:26 2004
++++ src/callback.c	Thu Feb  3 20:08:07 2005
+@@ -93,7 +93,7 @@
+ 	
+ 	if (!check_text_modification(sd)) {
+ //		fi = get_file_info_by_selector(OPEN, sd->fi);
+-		fi = get_fileinfo_from_selector(sd->mainwin->window, sd->fi, OPEN);
++		fi = get_fileinfo_from_chooser(sd->mainwin->window, sd->fi, OPEN);
+ 		if (fi) {
+ 			if (file_open_real(sd->mainwin->textview, fi)) {
+ 				g_free(fi);
+@@ -123,7 +123,7 @@
+ {
+ 	FileInfo *fi;
+ 	
+-	fi = get_fileinfo_from_selector(sd->mainwin->window, sd->fi, SAVE);
++	fi = get_fileinfo_from_chooser(sd->mainwin->window, sd->fi, SAVE);
+ 	if (fi) {
+ 		if (file_save_real(sd->mainwin->textview, fi))
+ 			g_free(fi);
+--- src/selector.c.orig	Fri Dec 24 10:35:12 2004
++++ src/selector.c	Thu Feb  3 21:02:00 2005
+@@ -310,7 +310,7 @@
+ 	return option_menu;
+ }
+ 
+-static GtkWidget *create_file_selector(FileInfo *selected_fi)
++static GtkWidget *create_file_chooser(FileInfo *selected_fi, GtkWidget *window)
+ {
+ 	GtkWidget *filesel;
+ 	GtkWidget *align;
+@@ -322,12 +322,19 @@
+ 	
+ 	title = mode ? _("Open") : _("Save As");
+ 	
+-	filesel = gtk_file_selection_new(title);
+-//	gtk_window_set_transient_for(GTK_WINDOW(filesel), GTK_WINDOW(window));
++	if(mode == OPEN)
++		filesel = gtk_file_chooser_dialog_new(title, GTK_WINDOW(window),
++				GTK_FILE_CHOOSER_ACTION_OPEN,
++				GTK_STOCK_CANCEL,GTK_RESPONSE_CANCEL,
++				GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,NULL);
++	else
++		filesel = gtk_file_chooser_dialog_new(title, GTK_WINDOW(window),
++				GTK_FILE_CHOOSER_ACTION_SAVE,
++				GTK_STOCK_CANCEL,GTK_RESPONSE_CANCEL,
++				GTK_STOCK_SAVE,GTK_RESPONSE_ACCEPT,NULL);
+ 	
+ 	align = gtk_alignment_new(1, 0, 0, 0);
+-	gtk_box_pack_end(GTK_BOX(GTK_FILE_SELECTION(filesel)->main_vbox),
+-		align, FALSE, FALSE, 0);
++	gtk_file_chooser_set_extra_widget(GTK_FILE_CHOOSER(filesel),align);
+ 	table = gtk_table_new(2, 2, FALSE);
+ 	gtk_table_set_row_spacings(GTK_TABLE(table), 5);
+ 	gtk_container_add(GTK_CONTAINER(align), table);
+@@ -340,15 +347,15 @@
+ 		option_menu_lineend = create_lineend_menu(selected_fi);
+ 		gtk_table_attach_defaults(GTK_TABLE(table), option_menu_lineend, 1, 2, 0, 1);
+ 	}
+-	gtk_widget_show_all(GTK_FILE_SELECTION(filesel)->main_vbox);
++	gtk_widget_show_all(GTK_FILE_CHOOSER(filesel));
+ 	
+ 	if (selected_fi->filename)
+-		gtk_file_selection_set_filename(GTK_FILE_SELECTION(filesel), selected_fi->filename);
++		gtk_file_chooser_select_filename(GTK_FILE_CHOOSER(filesel), selected_fi->filename);
+ 	
+ 	return filesel;
+ }
+ 
+-FileInfo *get_fileinfo_from_selector(GtkWidget *window, FileInfo *fi, gint requested_mode)
++FileInfo *get_fileinfo_from_chooser(GtkWidget *window, FileInfo *fi, gint requested_mode)
+ {
+ 	FileInfo *selected_fi;
+ 	GtkWidget *filesel;
+@@ -366,24 +373,24 @@
+ 	selected_fi->manual_charset =
+ 		fi->manual_charset ? g_strdup(fi->manual_charset) : NULL;
+ 	
+-	filesel = create_file_selector(selected_fi);
++	filesel = create_file_chooser(selected_fi,window);
+ 	
+ 	gtk_window_set_transient_for(GTK_WINDOW(filesel), GTK_WINDOW(window));
+ 	
+ 	do {
+ 		res = gtk_dialog_run(GTK_DIALOG(filesel));
+-		if (res == GTK_RESPONSE_OK) {
++		if (res == GTK_RESPONSE_ACCEPT) {
+ 			if (selected_fi->filename)
+ 				g_free(selected_fi->filename);
+ 			selected_fi->filename = g_strdup(
+-				gtk_file_selection_get_filename(GTK_FILE_SELECTION(filesel)));
++				gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(filesel)));
+ 			if (g_file_test(selected_fi->filename, G_FILE_TEST_IS_DIR)) {
+ 				len = strlen(selected_fi->filename);
+ 				if (len < 1 || selected_fi->filename[len - 1] != G_DIR_SEPARATOR)
+ 					str = g_strconcat(selected_fi->filename, G_DIR_SEPARATOR_S, NULL);
+ 				else
+ 					str = g_strdup(selected_fi->filename);
+-				gtk_file_selection_set_filename(GTK_FILE_SELECTION(filesel), str);
++				gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(filesel), str);
+ 				g_free(str);
+ 				continue;
+ 			}
+@@ -397,14 +404,14 @@
+ 				case GTK_RESPONSE_NO:
+ 					continue;
+ 				case GTK_RESPONSE_YES:
+-					res = GTK_RESPONSE_OK;
++					res = GTK_RESPONSE_ACCEPT;
+ 				}
+ 			}
+ 		}
+ 		gtk_widget_hide(filesel);
+ 	} while (GTK_WIDGET_VISIBLE(filesel));
+ 	
+-	if (res != GTK_RESPONSE_OK) {
++	if (res != GTK_RESPONSE_ACCEPT) {
+ 		if (selected_fi->charset)
+ 			g_free(selected_fi->charset);
+ 		if (selected_fi->manual_charset)
+--- src/selector.h.orig	Thu Feb  3 20:17:09 2005
++++ src/selector.h	Thu Feb  3 20:17:27 2005
+@@ -30,6 +30,6 @@
+ 	OPEN
+ };
+ 
+-FileInfo *get_fileinfo_from_selector(GtkWidget *window, FileInfo *fi, gint requested_mode);
++FileInfo *get_fileinfo_from_chooser(GtkWidget *window, FileInfo *fi, gint requested_mode);
+ 
+ #endif  /* _SELECTOR_H */
--- leafpad.patch ends here ---





More information about the freebsd-gnome mailing list