/dev/twasilczyk/imgupload: 90b78170f622: Imgupload: fill image f...

Tomasz Wasilczyk twasilczyk at pidgin.im
Mon May 19 15:22:47 EDT 2014


Changeset: 90b78170f62288c516f14a6907c9f19738f69575
Author:	 Tomasz Wasilczyk <twasilczyk at pidgin.im>
Date:	 2014-05-19 21:22 +0200
Branch:	 default
URL: https://hg.pidgin.im/dev/twasilczyk/imgupload/rev/90b78170f622

Description:

Imgupload: fill image file names as link description

diffstat:

 pidgin/plugins/imgupload.c |  23 ++++++++++++++++++-----
 pidgin/plugins/screencap.c |  11 +++++++++++
 2 files changed, 29 insertions(+), 5 deletions(-)

diffs (84 lines):

diff --git a/pidgin/plugins/imgupload.c b/pidgin/plugins/imgupload.c
--- a/pidgin/plugins/imgupload.c
+++ b/pidgin/plugins/imgupload.c
@@ -67,7 +67,7 @@ imgup_imgur_uploaded(PurpleHttpConnectio
 	const gchar *data;
 	gsize data_len;
 	PidginWebView *webview = PIDGIN_WEBVIEW(_webview);
-	const gchar *url;
+	const gchar *url, *title;
 
 	if (!purple_http_response_is_successful(resp)) {
 		imgup_upload_failed(webview);
@@ -97,8 +97,12 @@ imgup_imgur_uploaded(PurpleHttpConnectio
 	result = json_object_get_object_member(result, "data");
 	url = json_object_get_string_member(result, "link");
 
-	/* TODO: pass image name here too */
-	imgup_upload_done(webview, url, NULL);
+	title = g_object_get_data(G_OBJECT(webview), "imgupload-imgur-name");
+
+	imgup_upload_done(webview, url, title);
+
+	g_object_unref(parser);
+	g_object_set_data(G_OBJECT(webview), "imgupload-imgur-name", NULL);
 }
 
 static PurpleHttpConnection *
@@ -126,6 +130,10 @@ imgup_imgur_upload(PidginWebView *webvie
 	purple_http_request_set_contents(req, req_data, -1);
 	g_free(req_data);
 
+	/* TODO: set it to hc, not webview (after gobjectifying it) */
+	g_object_set_data_full(G_OBJECT(webview), "imgupload-imgur-name",
+		g_strdup(purple_image_get_friendly_filename(image)), g_free);
+
 	hc = purple_http_request(NULL, req, imgup_imgur_uploaded, webview);
 	purple_http_request_unref(req);
 
@@ -139,10 +147,15 @@ imgup_imgur_upload(PidginWebView *webvie
 static void
 imgup_upload_done(PidginWebView *webview, const gchar *url, const gchar *title)
 {
+	PidginWebViewButtons format;
+	gboolean url_desc;
+
 	g_object_steal_data(G_OBJECT(webview), "imgupload-hc");
 
-	/* TODO: insert text or insert link */
-	pidgin_webview_insert_link(webview, url, title ? title : url);
+	format = pidgin_webview_get_format_functions(webview);
+	url_desc = format & PIDGIN_WEBVIEW_LINKDESC;
+
+	pidgin_webview_insert_link(webview, url, url_desc ? title : NULL);
 }
 
 static void
diff --git a/pidgin/plugins/screencap.c b/pidgin/plugins/screencap.c
--- a/pidgin/plugins/screencap.c
+++ b/pidgin/plugins/screencap.c
@@ -298,6 +298,9 @@ scrncap_draw_window_response(GtkDialog *
 	PidginWebView *webview = PIDGIN_WEBVIEW(_webview);
 	GdkPixbuf *result = NULL;
 	PurpleImage *image;
+	const gchar *fname_prefix;
+	gchar *fname;
+	static guint fname_no = 0;
 
 	if (response_id == SCRNCAP_RESPONSE_COLOR)
 		return;
@@ -316,6 +319,14 @@ scrncap_draw_window_response(GtkDialog *
 		return;
 
 	image = scrncap_pixbuf_to_image(result);
+
+	/* translators: this is the file name prefix,
+	 * keep it lowercase and pure ASCII */
+	fname_prefix = _("screenshot-");
+	fname = g_strdup_printf("%s%u", fname_prefix, ++fname_no);
+	purple_image_set_friendly_filename(image, fname);
+	g_free(fname);
+
 	pidgin_webview_insert_image(webview, image);
 	g_object_unref(image);
 }



More information about the Commits mailing list