From 3daa44276a76dad653fed2a92a87875486d94cf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Bellegarde?= Date: Tue, 28 Feb 2023 18:19:05 +0100 Subject: [PATCH] client: Unused since we moved to libfolks --- src/client/meson.build | 1 - src/client/util/util-avatar.vala | 162 ------------------------- test/client/util/util-avatar-test.vala | 44 ------- test/meson.build | 1 - test/test-client.vala | 1 - 5 files changed, 209 deletions(-) delete mode 100644 src/client/util/util-avatar.vala delete mode 100644 test/client/util/util-avatar-test.vala diff --git a/src/client/meson.build b/src/client/meson.build index 419e7f4d..0e9f437a 100644 --- a/src/client/meson.build +++ b/src/client/meson.build @@ -140,7 +140,6 @@ client_vala_sources = files( 'sidebar/sidebar-entry.vala', 'sidebar/sidebar-tree.vala', - 'util/util-avatar.vala', 'util/util-cache.vala', 'util/util-contact.vala', 'util/util-date.vala', diff --git a/src/client/util/util-avatar.vala b/src/client/util/util-avatar.vala deleted file mode 100644 index b1a5423e..00000000 --- a/src/client/util/util-avatar.vala +++ /dev/null @@ -1,162 +0,0 @@ -/* - * Copyright 2019 Michael Gratton - * - * This software is licensed under the GNU Lesser General Public License - * (version 2.1 or later). See the COPYING file in this distribution. - */ - -namespace Util.Avatar { - - // The following was based on code written by Felipe Borges for - // gnome-control-enter in panels/user-accounts/user-utils.c commit - // 02c288ab6f069a0c106323a93400f192a63cb67e. The copyright in that - // file is: "Copyright 2009-2010 Red Hat, Inc," - - public Gdk.Pixbuf generate_user_picture(string name, int size) { - Cairo.Surface surface = new Cairo.ImageSurface( - Cairo.Format.ARGB32, size, size - ); - Cairo.Context cr = new Cairo.Context(surface); - cr.rectangle(0, 0, size, size); - - /* Fill the background with a colour for the name */ - Gdk.RGBA color = get_color_for_name(name); - cr.set_source_rgb( - color.red / 255.0, color.green / 255.0, color.blue / 255.0 - ); - cr.fill(); - - /* Draw the initials on top */ - string? initials = extract_initials_from_name(name); - if (initials != null) { - string font = "Sans %d".printf((int) GLib.Math.ceil(size / 2.5)); - - cr.set_source_rgb(1.0, 1.0, 1.0); - Pango.Layout layout = Pango.cairo_create_layout(cr); - layout.set_text(initials, -1); - layout.set_font_description(Pango.FontDescription.from_string(font)); - - int width, height; - layout.get_size(out width, out height); - cr.translate(size / 2, size / 2); - cr.move_to( - -((double) width / Pango.SCALE) / 2, - -((double) height / Pango.SCALE) / 2 - ); - Pango.cairo_show_layout(cr, layout); - } - - return Gdk.pixbuf_get_from_surface( - surface, 0, 0, size, size - ); - } - - public Gdk.Pixbuf round_image(Gdk.Pixbuf source) { - int size = source.width; - Cairo.Surface surface = new Cairo.ImageSurface( - Cairo.Format.ARGB32, size, size - ); - Cairo.Context cr = new Cairo.Context(surface); - - /* Clip a circle */ - cr.arc(size / 2, size / 2, size / 2, 0, 2 * GLib.Math.PI); - cr.clip(); - cr.new_path(); - - Gdk.cairo_set_source_pixbuf(cr, source, 0, 0); - cr.paint(); - - return Gdk.pixbuf_get_from_surface( - surface, 0, 0, size, size - ); - } - - public string? extract_initials_from_name(string name) { - string normalized = name.strip().normalize(-1, DEFAULT_COMPOSE); - string? initials = null; - if (normalized != "") { - GLib.StringBuilder buf = new GLib.StringBuilder(); - unichar c = 0; - int index = 0; - - // Get the first alphanumeric char of the string - for (int i = 0; normalized.get_next_char(ref index, out c); i++) { - if (c.isalnum()) { - buf.append_unichar(c.toupper()); - break; - } - } - - // Get the first alphanumeric char of the last word of the string - index = normalized.last_index_of_char(' '); - if (index >= 0) { - for (int i = 0; normalized.get_next_char(ref index, out c); i++) { - if (c.isalnum()) { - buf.append_unichar(c.toupper()); - break; - } - } - } - - if (buf.data.length > 0) { - initials = (string) buf.data; - } - } - return initials; - } - - - public Gdk.RGBA get_color_for_name(string name) { - // https://gitlab.gnome.org/Community/Design/HIG-app-icons/blob/master/GNOME%20HIG.gpl - const double[,] GNOME_COLOR_PALETTE = { - { 98, 160, 234 }, - { 53, 132, 228 }, - { 28, 113, 216 }, - { 26, 95, 180 }, - { 87, 227, 137 }, - { 51, 209, 122 }, - { 46, 194, 126 }, - { 38, 162, 105 }, - { 248, 228, 92 }, - { 246, 211, 45 }, - { 245, 194, 17 }, - { 229, 165, 10 }, - { 255, 163, 72 }, - { 255, 120, 0 }, - { 230, 97, 0 }, - { 198, 70, 0 }, - { 237, 51, 59 }, - { 224, 27, 36 }, - { 192, 28, 40 }, - { 165, 29, 45 }, - { 192, 97, 203 }, - { 163, 71, 186 }, - { 129, 61, 156 }, - { 97, 53, 131 }, - { 181, 131, 90 }, - { 152, 106, 68 }, - { 134, 94, 60 }, - { 99, 69, 44 } - }; - - Gdk.RGBA color = { 255, 255, 255, 1.0 }; - uint hash; - uint number_of_colors; - uint idx; - - if (name == "") { - return color; - } - - hash = name.hash(); - number_of_colors = GNOME_COLOR_PALETTE.length[0]; - idx = hash % number_of_colors; - - color.red = GNOME_COLOR_PALETTE[idx,0]; - color.green = GNOME_COLOR_PALETTE[idx,1]; - color.blue = GNOME_COLOR_PALETTE[idx,2]; - - return color; - } - -} diff --git a/test/client/util/util-avatar-test.vala b/test/client/util/util-avatar-test.vala deleted file mode 100644 index ac290ad8..00000000 --- a/test/client/util/util-avatar-test.vala +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright 2019 Michael Gratton - * - * This software is licensed under the GNU Lesser General Public License - * (version 2.1 or later). See the COPYING file in this distribution. - */ - -public class Util.Avatar.Test : TestCase { - - public Test() { - base("UtilAvatarTest"); - add_test("extract_initials", extract_initials); - } - - public void extract_initials() throws GLib.Error { - assert_equal(extract_initials_from_name("aardvark"), "A"); - assert_equal(extract_initials_from_name("aardvark baardvark"), "AB"); - assert_equal(extract_initials_from_name("aardvark baardvark"), "AB"); - assert_equal( - extract_initials_from_name("aardvark baardvark caardvark"), "AC" - ); - - assert_equal( - extract_initials_from_name("!aardvark"), "A" - ); - assert_equal( - extract_initials_from_name("aardvark !baardvark"), "AB" - ); - assert_equal( - extract_initials_from_name("aardvark baardvark !caardvark"), "AC" - ); - - assert_equal(extract_initials_from_name("óvári"), "Ó"); - - assert_null(extract_initials_from_name("")); - assert_null(extract_initials_from_name(" ")); - assert_null(extract_initials_from_name(" ")); - assert_null(extract_initials_from_name("!")); - assert_null(extract_initials_from_name("!!")); - assert_null(extract_initials_from_name("! !")); - assert_null(extract_initials_from_name("! !!")); - } - -} diff --git a/test/meson.build b/test/meson.build index 8adfd81a..ff7479a7 100644 --- a/test/meson.build +++ b/test/meson.build @@ -88,7 +88,6 @@ test_client_sources = [ 'client/components/components-web-view-test.vala', 'client/composer/composer-web-view-test.vala', 'client/composer/composer-widget-test.vala', - 'client/util/util-avatar-test.vala', 'client/util/util-cache-test.vala', 'client/util/util-email-test.vala', 'client/util/util-js-test.vala', diff --git a/test/test-client.vala b/test/test-client.vala index f93ddc92..cef97674 100644 --- a/test/test-client.vala +++ b/test/test-client.vala @@ -57,7 +57,6 @@ int main(string[] args) { client.add_suite(new Components.ValidatorTest().suite); client.add_suite(new Composer.WebViewTest().suite); client.add_suite(new Composer.WidgetTest().suite); - client.add_suite(new Util.Avatar.Test().suite); client.add_suite(new Util.Cache.Test().suite); client.add_suite(new Util.Email.Test().suite); client.add_suite(new Util.JS.Test().suite);