1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-09-22 19:45:54 -04:00

Final touches for /avatar set

This commit is contained in:
Michael Vetter 2022-05-27 10:39:49 +02:00
parent 0cff111249
commit d510f3a430
5 changed files with 8 additions and 10 deletions

View File

@ -66,7 +66,7 @@ AC_ARG_WITH([themes],
AC_ARG_ENABLE([icons-and-clipboard], AC_ARG_ENABLE([icons-and-clipboard],
[AS_HELP_STRING([--enable-icons-and-clipboard], [enable GTK tray icons and clipboard paste support])]) [AS_HELP_STRING([--enable-icons-and-clipboard], [enable GTK tray icons and clipboard paste support])])
AC_ARG_ENABLE([gdk-pixbuf], AC_ARG_ENABLE([gdk-pixbuf],
[AS_HELP_STRING([--enable-gdk-pixbuf], [enable GDK Pixbuf support])]) [AS_HELP_STRING([--enable-gdk-pixbuf], [enable GDK Pixbuf support to scale avatars before uploading])])
# Required dependencies # Required dependencies
@ -308,15 +308,14 @@ if test "x$enable_otr" != xno; then
AM_COND_IF([BUILD_OTR], [AC_DEFINE([HAVE_LIBOTR], [1], [Have libotr])]) AM_COND_IF([BUILD_OTR], [AC_DEFINE([HAVE_LIBOTR], [1], [Have libotr])])
fi fi
dnl feature: pixbuf dnl feature: pixbuf / used for scaling avatars before uploading via `/avatar set`
AS_IF([test "x$enable_pixbuf" != xno], AS_IF([test "x$enable_pixbuf" != xno],
[PKG_CHECK_MODULES([gdk_pixbuf], [gdk-pixbuf-2.0 >= 2.4], [PKG_CHECK_MODULES([gdk_pixbuf], [gdk-pixbuf-2.0 >= 2.4],
[AC_DEFINE([HAVE_PIXBUF], [1], [gdk-pixbuf module])], [AC_DEFINE([HAVE_PIXBUF], [1], [gdk-pixbuf module])],
[AS_IF([test "x$enable_pixbuf" = xyes], [AS_IF([test "x$enable_pixbuf" = xyes],
[AC_MSG_ERROR([gdk-pixbuf-2.0 >= 2.4 is required for GDK Pixbuf support])], [AC_MSG_ERROR([gdk-pixbuf-2.0 >= 2.4 is required to scale avatars before uploading])],
[AC_MSG_NOTICE([gdk-pixbuf-2.0 >= 2.4 not found, GDK Pixbuf support not enabled])])])]) [AC_MSG_NOTICE([gdk-pixbuf-2.0 >= 2.4 not found, GDK Pixbuf support not enabled])])])])
dnl feature: omemo dnl feature: omemo
AM_CONDITIONAL([BUILD_OMEMO], [false]) AM_CONDITIONAL([BUILD_OMEMO], [false])
if test "x$enable_omemo" != xno; then if test "x$enable_omemo" != xno; then

View File

@ -2452,7 +2452,7 @@ static struct cmd_t command_defs[] = {
"If nothing happens after using this command the user either doesn't have an avatar set at all " "If nothing happens after using this command the user either doesn't have an avatar set at all "
"or doesn't use XEP-0084 to publish it.") "or doesn't use XEP-0084 to publish it.")
CMD_ARGS( CMD_ARGS(
{ "set <path>", "Set avatar to the img at <path>." }, { "set <path>", "Set avatar to the image at <path>." },
{ "get <barejid>", "Download the avatar. barejid is the JID to download avatar from." }, { "get <barejid>", "Download the avatar. barejid is the JID to download avatar from." },
{ "open <barejid>", "Download avatar and open it with command." }) { "open <barejid>", "Download avatar and open it with command." })
CMD_EXAMPLES( CMD_EXAMPLES(

View File

@ -9201,7 +9201,7 @@ cmd_avatar(ProfWin* window, const char* const command, gchar** args)
cons_show("Avatar updated successfully"); cons_show("Avatar updated successfully");
} }
#else #else
cons_show("This version of Profanity has not been built with GDK Pixbuf support enabled"); cons_show("Profanity has not been built with GDK Pixbuf support enabled which is needed to scale the avatar when uploading.");
#endif #endif
} else if (g_strcmp0(args[0], "get") == 0) { } else if (g_strcmp0(args[0], "get") == 0) {
avatar_get_by_nick(args[1], false); avatar_get_by_nick(args[1], false);

View File

@ -36,12 +36,13 @@
#include "config.h" #include "config.h"
#include <glib.h> #include <glib.h>
#ifdef HAVE_PIXBUF
#include <gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf.h> #include <gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf.h>
#endif
#include <string.h> #include <string.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <errno.h> #include <errno.h>
#include <assert.h>
#include <sys/stat.h> #include <sys/stat.h>
#include "log.h" #include "log.h"
@ -61,7 +62,7 @@ typedef struct avatar_metadata
static GHashTable* looking_for = NULL; // contains nicks/barejids from who we want to get the avatar static GHashTable* looking_for = NULL; // contains nicks/barejids from who we want to get the avatar
static GHashTable* shall_open = NULL; // contains a list of nicks that shall not just downloaded but also opened static GHashTable* shall_open = NULL; // contains a list of nicks that shall not just downloaded but also opened
const int MAX_PIXEL = 192; const int MAX_PIXEL = 192; // max pixel width/height for an avatar
static void _avatar_request_item_by_id(const char* jid, avatar_metadata* data); static void _avatar_request_item_by_id(const char* jid, avatar_metadata* data);
static int _avatar_metadata_handler(xmpp_stanza_t* const stanza, void* const userdata); static int _avatar_metadata_handler(xmpp_stanza_t* const stanza, void* const userdata);

View File

@ -9,10 +9,8 @@ avatar_get_by_nick(const char* nick)
return TRUE; return TRUE;
} }
#ifdef HAVE_PIXBUF
gboolean gboolean
avatar_set(const char* path) avatar_set(const char* path)
{ {
return TRUE; return TRUE;
} }
#endif