[gaim-migrate @ 9817]

Sun, 23 May 2004 21:40:58 +0000

author
Stu Tomlinson <nosnilmot@pidgin.im>
date
Sun, 23 May 2004 21:40:58 +0000
changeset 9041
cbded2eb14d7
parent 9040
233ed3376e65
child 9042
a44973ada5fe

[gaim-migrate @ 9817]
nosnilmot wrote:
" Yahoo & MSN support a subset of formatting which does
not include sending descriptions with links.

This patch adds a connection flag
GAIM_CONNECTION_NO_URLDESC to allow prpls to specify
this limitation (and modifies Yahoo & MSN to do so)

It also adds GTK_IMHTML_LINKDESC to the
GtkIMHtmlButtons enum (I pondered over this, then
realized it's referred to as "format_functions" in some
places, so probably could be renamed to
GtkIMHtmlOptions or something)

This combination allows the GtkIMHtmlToolbar to
intelligently ask for only a URL if a description is
not supported.

One slightly unfortunate side effect is it makes bug
955538 much more prominent on Yahoo"

committer: Tim Ringenbach <marv@pidgin.im>

src/connection.h file | annotate | diff | comparison | revisions
src/gtkconv.c file | annotate | diff | comparison | revisions
src/gtkimhtml.h file | annotate | diff | comparison | revisions
src/gtkimhtmltoolbar.c file | annotate | diff | comparison | revisions
src/protocols/msn/msn.c file | annotate | diff | comparison | revisions
src/protocols/yahoo/yahoo.c file | annotate | diff | comparison | revisions
--- a/src/connection.h	Sun May 23 20:12:36 2004 +0000
+++ b/src/connection.h	Sun May 23 21:40:58 2004 +0000
@@ -43,7 +43,8 @@
 	GAIM_CONNECTION_AUTO_RESP  = 0x0004,  /**< Send auto responses when away.       */
 	GAIM_CONNECTION_FORMATTING_WBFO = 0x0008, /**< The text buffer must be formatted as a whole */
 	GAIM_CONNECTION_NO_NEWLINES = 0x0010, /**< No new lines are allowed in outgoing messages */
-	GAIM_CONNECTION_NO_FONTSIZE = 0x0020 /**< Connection does not send/receive font sizes */
+	GAIM_CONNECTION_NO_FONTSIZE = 0x0020, /**< Connection does not send/receive font sizes */
+	GAIM_CONNECTION_NO_URLDESC = 0x0040  /**< Connection does not support descriptions with links */
 } GaimConnectionFlags;
 
 typedef enum
--- a/src/gtkconv.c	Sun May 23 20:12:36 2004 +0000
+++ b/src/gtkconv.c	Sun May 23 21:40:58 2004 +0000
@@ -2416,6 +2416,8 @@
 				buttons &= ~GTK_IMHTML_GROW;
 				buttons &= ~GTK_IMHTML_SHRINK;
 			}
+			if (gc->flags & GAIM_CONNECTION_NO_URLDESC)
+				buttons &= ~GTK_IMHTML_LINKDESC;
 		} else {
 			buttons = GTK_IMHTML_SMILEY;
 		}
--- a/src/gtkimhtml.h	Sun May 23 20:12:36 2004 +0000
+++ b/src/gtkimhtml.h	Sun May 23 21:40:58 2004 +0000
@@ -67,6 +67,7 @@
 	GTK_IMHTML_LINK =      1 << 8,
 	GTK_IMHTML_IMAGE =     1 << 9,
 	GTK_IMHTML_SMILEY =    1 << 10,
+	GTK_IMHTML_LINKDESC =  1 << 11,
 	GTK_IMHTML_ALL =      -1
 } GtkIMHtmlButtons;
 
--- a/src/gtkimhtmltoolbar.c	Sun May 23 20:12:36 2004 +0000
+++ b/src/gtkimhtmltoolbar.c	Sun May 23 21:40:58 2004 +0000
@@ -358,7 +358,10 @@
 	const char *url, *description;
 
 	url         = gaim_request_fields_get_string(fields, "url");
-	description = gaim_request_fields_get_string(fields, "description");
+	if (GTK_IMHTML(toolbar->imhtml)->format_functions & GTK_IMHTML_LINKDESC)
+		description = gaim_request_fields_get_string(fields, "description");
+	else
+		description = NULL;
 
 	if (description == NULL)
 		description = url;
@@ -379,6 +382,7 @@
 		GaimRequestFields *fields;
 		GaimRequestFieldGroup *group;
 		GaimRequestField *field;
+		char *msg;
 
 		fields = gaim_request_fields_new();
 
@@ -389,20 +393,27 @@
 		gaim_request_field_set_required(field, TRUE);
 		gaim_request_field_group_add_field(group, field);
 
-		field = gaim_request_field_string_new("description", _("_Description"),
-						      NULL, FALSE);
-		gaim_request_field_group_add_field(group, field);
+		if(GTK_IMHTML(toolbar->imhtml)->format_functions & GTK_IMHTML_LINKDESC) {
+			field = gaim_request_field_string_new("description", _("_Description"),
+							      NULL, FALSE);
+			gaim_request_field_group_add_field(group, field);
+			msg = g_strdup(_("Please enter the URL and description of the "
+							 "link that you want to insert. The description "
+							 "is optional."));
+		} else {
+			msg = g_strdup(_("Please enter the URL of the "
+									"link that you want to insert."));
+		}
 
 		toolbar->link_dialog =
 			gaim_request_fields(toolbar, _("Insert Link"),
 					    NULL,
-					    _("Please enter the URL and description of the "
-					      "link that you want to insert. The description "
-					      "is optional."),
+						msg,
 					    fields,
 					    _("_Insert"), G_CALLBACK(do_insert_link_cb),
 					    _("Cancel"), G_CALLBACK(cancel_link_cb),
 					    toolbar);
+		g_free(msg);
 	} else {
 		close_link_dialog(toolbar);
 	}
--- a/src/protocols/msn/msn.c	Sun May 23 20:12:36 2004 +0000
+++ b/src/protocols/msn/msn.c	Sun May 23 21:40:58 2004 +0000
@@ -510,7 +510,7 @@
 		msn_http_session_init(session);
 
 	gc->proto_data = session;
-	gc->flags |= GAIM_CONNECTION_HTML | GAIM_CONNECTION_FORMATTING_WBFO | GAIM_CONNECTION_NO_BGCOLOR | GAIM_CONNECTION_NO_FONTSIZE;
+	gc->flags |= GAIM_CONNECTION_HTML | GAIM_CONNECTION_FORMATTING_WBFO | GAIM_CONNECTION_NO_BGCOLOR | GAIM_CONNECTION_NO_FONTSIZE | GAIM_CONNECTION_NO_URLDESC;
 
 	gaim_connection_update_progress(gc, _("Connecting"), 0, MSN_CONNECT_STEPS);
 
--- a/src/protocols/yahoo/yahoo.c	Sun May 23 20:12:36 2004 +0000
+++ b/src/protocols/yahoo/yahoo.c	Sun May 23 21:40:58 2004 +0000
@@ -2174,7 +2174,7 @@
 	GaimConnection *gc = gaim_account_get_connection(account);
 	struct yahoo_data *yd = gc->proto_data = g_new0(struct yahoo_data, 1);
 
-	gc->flags |= GAIM_CONNECTION_HTML | GAIM_CONNECTION_NO_BGCOLOR;
+	gc->flags |= GAIM_CONNECTION_HTML | GAIM_CONNECTION_NO_BGCOLOR | GAIM_CONNECTION_NO_URLDESC;
 
 	gaim_connection_update_progress(gc, _("Connecting"), 1, 2);
 

mercurial