aboutsummaryrefslogtreecommitdiff
path: root/main/src/ui/widgets/avatar_picture.vala
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/ui/widgets/avatar_picture.vala')
-rw-r--r--main/src/ui/widgets/avatar_picture.vala21
1 files changed, 21 insertions, 0 deletions
diff --git a/main/src/ui/widgets/avatar_picture.vala b/main/src/ui/widgets/avatar_picture.vala
index 155c9440..18e4d02f 100644
--- a/main/src/ui/widgets/avatar_picture.vala
+++ b/main/src/ui/widgets/avatar_picture.vala
@@ -217,6 +217,13 @@ public class Dino.Ui.CompatAvatarDrawer {
public int width_request { get; set; default = 35; }
public string font_family { get; set; default = "Sans"; }
+ public CompatAvatarDrawer() {
+ Dino.Application? application = Dino.Application.get_default();
+ if (application != null && application.settings != null) {
+ radius_percent = (float) application.settings.avatar_roundness / 100.0f;
+ }
+ }
+
public Cairo.ImageSurface draw_image_surface() {
Cairo.ImageSurface surface = new Cairo.ImageSurface(Cairo.Format.ARGB32, width_request, height_request);
draw_on_context(new Cairo.Context(surface));
@@ -337,12 +344,17 @@ public class Dino.Ui.AvatarPicture : Gtk.Widget {
private ViewModel.AvatarPictureModel? old_model;
private ulong model_tiles_items_changed_handler;
+ private Binding? avatar_roundness_binding;
construct {
height_request = 35;
width_request = 35;
set_css_name("picture");
add_css_class("avatar");
+ Dino.Application? application = Dino.Application.get_default();
+ if (application != null && application.settings != null) {
+ avatar_roundness_binding = application.settings.bind_property("avatar-roundness", this, "radius-percent", BindingFlags.SYNC_CREATE, avatar_roundness_to_radius_percent);
+ }
notify["radius-percent"].connect(queue_draw);
notify["model"].connect(on_model_changed);
check_widget_leak(this);
@@ -433,11 +445,20 @@ public class Dino.Ui.AvatarPicture : Gtk.Widget {
}
public override void dispose() {
+ if (avatar_roundness_binding != null) {
+ avatar_roundness_binding.unbind();
+ avatar_roundness_binding = null;
+ }
model = null;
on_model_changed();
base.dispose();
}
+ private static bool avatar_roundness_to_radius_percent(Binding binding, Value from_value, ref Value to_value) {
+ to_value.set_float((float) from_value.get_int() / 100.0f);
+ return true;
+ }
+
private class Tile : Gtk.Widget {
public ViewModel.AvatarPictureTileModel? model { get; set; }
public Gdk.RGBA background_color { get; set; default = Gdk.RGBA(){ red = 1.0f, green = 1.0f, blue = 1.0f, alpha = 0.0f }; }