From 8d1735474061e794bb0331a9dca275b09da2f764 Mon Sep 17 00:00:00 2001 From: Michael Gratton Date: Sat, 2 Feb 2019 13:03:45 +1100 Subject: [PATCH] Tidy up placeholder style when it has no text --- .../components-placeholder-pane.vala | 27 +++++++++++++++++-- ui/geary.css | 2 +- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/client/components/components-placeholder-pane.vala b/src/client/components/components-placeholder-pane.vala index ec8926f9..1851356b 100644 --- a/src/client/components/components-placeholder-pane.vala +++ b/src/client/components/components-placeholder-pane.vala @@ -11,6 +11,10 @@ [GtkTemplate (ui = "/org/gnome/Geary/components-placeholder-pane.ui")] public class Components.PlaceholderPane : Gtk.Grid { + + public const string CLASS_HAS_TEXT = "geary-has-text"; + + /** The icon name of the pane's image. */ public string icon_name { owned get { return this.placeholder_image.icon_name; } @@ -20,13 +24,19 @@ public class Components.PlaceholderPane : Gtk.Grid { /** The text of the pane's title label. */ public string title { get { return this.title_label.get_text(); } - set { this.title_label.set_text(value); } + set { + this.title_label.set_text(value); + update(); + } } /** The text of the pane's sub-title label. */ public string subtitle { get { return this.subtitle_label.get_text(); } - set { this.subtitle_label.set_text(value); } + set { + this.subtitle_label.set_text(value); + update(); + } } [GtkChild] @@ -38,4 +48,17 @@ public class Components.PlaceholderPane : Gtk.Grid { [GtkChild] private Gtk.Label subtitle_label; + + private void update() { + if (Geary.String.is_empty_or_whitespace(this.title_label.get_text())) { + this.title_label.hide(); + } + if (Geary.String.is_empty_or_whitespace(this.subtitle_label.get_text())) { + this.subtitle_label.hide(); + } + if (this.title_label.visible || this.subtitle_label.visible) { + get_style_context().add_class(CLASS_HAS_TEXT); + } + } + } diff --git a/ui/geary.css b/ui/geary.css index e18e8ceb..a11f940f 100644 --- a/ui/geary.css +++ b/ui/geary.css @@ -184,7 +184,7 @@ grid.geary-message-summary { /* PlaceholderPane */ -.geary-placeholder-pane > image { +.geary-placeholder-pane.geary-has-text > image { margin-bottom: 12px; } .geary-placeholder-pane > .title {