pidgin/plugins/disco/gtkdisco.c

changeset 42034
f05baca349b3
parent 41962
f802660eaef2
child 42037
af20db93f2c2
--- a/pidgin/plugins/disco/gtkdisco.c	Sat Jan 21 22:49:50 2023 -0600
+++ b/pidgin/plugins/disco/gtkdisco.c	Mon Jan 23 20:51:42 2023 -0600
@@ -36,7 +36,7 @@
 GList *dialogs = NULL;
 
 enum {
-	PIXBUF_COLUMN = 0,
+	ICON_NAME_COLUMN = 0,
 	NAME_COLUMN,
 	DESCRIPTION_COLUMN,
 	SERVICE_COLUMN,
@@ -103,45 +103,24 @@
 	}
 }
 
-static GdkPixbuf *
-pidgin_disco_load_icon(XmppDiscoService *service, const char *size)
+static char *
+pidgin_disco_get_icon_name(XmppDiscoService *service)
 {
-	GdkPixbuf *pixbuf = NULL;
-	char *filename = NULL;
-	gchar *tmp_size;
+	char *icon_name = NULL;
 
 	g_return_val_if_fail(service != NULL, NULL);
-	g_return_val_if_fail(size != NULL, NULL);
-
-	tmp_size = g_strdup_printf("%sx%s", size, size);
 
 	if (service->type == XMPP_DISCO_SERVICE_TYPE_GATEWAY && service->gateway_type) {
-		char *tmp = g_strconcat("im-", service->gateway_type,
-				".png", NULL);
-
-		filename = g_build_filename(PURPLE_DATADIR,
-			"pidgin", "icons", "hicolor", tmp_size, "apps",
-			tmp, NULL);
-		g_free(tmp);
+		icon_name = g_strconcat("im-", service->gateway_type, NULL);
 #if 0
 	} else if (service->type == XMPP_DISCO_SERVICE_TYPE_USER) {
-		filename = g_build_filename(PURPLE_DATADIR,
-			"pixmaps", "pidgin", "status", size, "person.png", NULL);
+		icon_name = g_strdup("person");
 #endif
 	} else if (service->type == XMPP_DISCO_SERVICE_TYPE_CHAT) {
-		filename = g_build_filename(PURPLE_DATADIR,
-			"pidgin", "icons", "hicolor", tmp_size, "status",
-			"chat.png", NULL);
+		icon_name = g_strdup("chat");
 	}
 
-	g_free(tmp_size);
-
-	if (filename) {
-		pixbuf = gdk_pixbuf_new_from_file(filename, NULL);
-		g_free(filename);
-	}
-
-	return pixbuf;
+	return icon_name;
 }
 
 static void
@@ -677,7 +656,7 @@
 {
 	PidginDiscoDialog *dialog;
 	GtkTreeIter iter, parent_iter, child;
-	GdkPixbuf *pixbuf = NULL;
+	char *icon_name = NULL;
 	gboolean append = TRUE;
 
 	dialog = pdl->dialog;
@@ -745,14 +724,12 @@
 		gtk_tree_path_free(path);
 	}
 
-	pixbuf = pidgin_disco_load_icon(service, "16");
+	icon_name = pidgin_disco_get_icon_name(service);
 
-	gtk_tree_store_set(dialog->model, &iter, PIXBUF_COLUMN, pixbuf,
+	gtk_tree_store_set(dialog->model, &iter, ICON_NAME_COLUMN, icon_name,
 	                   NAME_COLUMN, service->name, DESCRIPTION_COLUMN,
 	                   service->description, SERVICE_COLUMN, service, -1);
 
-	if (pixbuf) {
-		g_object_unref(pixbuf);
-	}
+	g_free(icon_name);
 }
 

mercurial