/dev/twasilczyk/imgupload: 53fc67d0e684: Imgupload: add use_url_...

Tomasz Wasilczyk <[email protected]>
Newsgroups gmane.comp.gnome.gaim.cvs
Message-ID <[email protected]>
Changeset: 53fc67d0e68411949519ac515794ef1f119d3316
Author:	 Tomasz Wasilczyk <[email protected]>
Date:	 2014-05-19 23:18 +0200
Branch:	 default
URL: https://hg.pidgin.im/dev/twasilczyk/imgupload/rev/53fc67d0e684

Description:

Imgupload: add use_url_desc pref

diffstat:

 libpurple/prefs.c          |   3 +-
 pidgin/plugins/imgupload.c |  76 +++++++++++++++++++++++++++++++++++++++++----
 2 files changed, 70 insertions(+), 9 deletions(-)

diffs (141 lines):

diff --git a/libpurple/prefs.c b/libpurple/prefs.c
--- a/libpurple/prefs.c
+++ b/libpurple/prefs.c
@@ -570,8 +570,7 @@ add_pref(PurplePrefType type, const char
 
 	parent = find_pref_parent(name);
 
-	if(!parent)
-		return NULL;
+	g_return_val_if_fail(parent, NULL);
 
 	my_name = get_path_basename(name);
 
diff --git a/pidgin/plugins/imgupload.c b/pidgin/plugins/imgupload.c
--- a/pidgin/plugins/imgupload.c
+++ b/pidgin/plugins/imgupload.c
@@ -36,6 +36,7 @@
 #include <json-glib/json-glib.h>
 
 #define IMGUP_IMGUR_CLIENT_ID "b6d33c6bb80e1b6"
+#define IMGUP_PREF_PREFIX "/plugins/gtk/imgupload/"
 
 static PurplePlugin *plugin_handle = NULL;
 
@@ -162,13 +163,18 @@ imgup_upload_finish(PidginWebView *webvi
 static void
 imgup_upload_done(PidginWebView *webview, const gchar *url, const gchar *title)
 {
-	PidginWebViewButtons format;
 	gboolean url_desc;
 
 	imgup_upload_finish(webview);
 
-	format = pidgin_webview_get_format_functions(webview);
-	url_desc = format & PIDGIN_WEBVIEW_LINKDESC;
+	if (!purple_prefs_get_bool(IMGUP_PREF_PREFIX "use_url_desc"))
+		url_desc = FALSE;
+	else {
+		PidginWebViewButtons format;
+
+		format = pidgin_webview_get_format_functions(webview);
+		url_desc = format & PIDGIN_WEBVIEW_LINKDESC;
+	}
 
 	pidgin_webview_insert_link(webview, url, url_desc ? title : NULL);
 }
@@ -228,7 +234,7 @@ imgup_upload_start(PidginWebView *webvie
 
 
 /******************************************************************************
- * Plugin setup
+ * Setup/cleanup
  ******************************************************************************/
 
 static void
@@ -378,6 +384,62 @@ imgup_plugin_unload(PurplePlugin *plugin
 	return TRUE;
 }
 
+/******************************************************************************
+ * Prefs
+ ******************************************************************************/
+
+static void
+imgup_prefs_ok(gpointer _unused, PurpleRequestFields *fields)
+{
+	gboolean use_url_desc;
+
+	use_url_desc = purple_request_fields_get_bool(fields, "use_url_desc");
+
+	purple_prefs_set_bool(IMGUP_PREF_PREFIX "use_url_desc", use_url_desc);
+}
+
+static gpointer
+imgup_prefs_get(PurplePlugin *plugin)
+{
+	PurpleRequestCommonParameters *cpar;
+	PurpleRequestFields *fields;
+	PurpleRequestFieldGroup *group;
+	PurpleRequestField *field;
+	gpointer handle;
+
+	fields = purple_request_fields_new();
+	group = purple_request_field_group_new(NULL);
+	purple_request_fields_add_group(fields, group);
+
+	field = purple_request_field_bool_new("use_url_desc",
+		_("Use image filename as link description"),
+		purple_prefs_get_bool(IMGUP_PREF_PREFIX "use_url_desc"));
+	purple_request_field_group_add_field(group, field);
+
+	cpar = purple_request_cpar_new();
+	purple_request_cpar_set_icon(cpar, PURPLE_REQUEST_ICON_DIALOG);
+
+	handle = purple_request_fields(plugin,
+		_("Image Upload"), NULL, NULL, fields,
+		_("OK"), (GCallback)imgup_prefs_ok,
+		_("Cancel"), NULL,
+		cpar, NULL);
+
+	return handle;
+}
+
+/******************************************************************************
+ * Plugin stuff
+ ******************************************************************************/
+
+static PurplePluginUiInfo imgup_prefs_info = {
+	NULL,
+	imgup_prefs_get,
+
+	/* padding */
+	NULL, NULL, NULL, NULL
+};
+
 static PurplePluginInfo imgup_info =
 {
 	PURPLE_PLUGIN_MAGIC,
@@ -401,7 +463,7 @@ static PurplePluginInfo imgup_info =
 	NULL,
 	NULL,
 	NULL,
-	NULL,
+	&imgup_prefs_info,
 	NULL,
 
 	/* padding */
@@ -411,11 +473,11 @@ static PurplePluginInfo imgup_info =
 static void
 imgup_init_plugin(PurplePlugin *plugin)
 {
-#if 0
 	purple_prefs_add_none("/plugins");
 	purple_prefs_add_none("/plugins/gtk");
 	purple_prefs_add_none("/plugins/gtk/imgupload");
-#endif
+
+	purple_prefs_add_bool(IMGUP_PREF_PREFIX "use_url_desc", TRUE);
 }
 
 PURPLE_INIT_PLUGIN(imgupload, imgup_init_plugin, imgup_info)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.