[Xfce4-commits] [xfce/xfce4-settings] 18/18: display: Improve profile-create popover

noreply at xfce.org noreply at xfce.org
Thu Apr 4 23:03:16 CEST 2019


This is an automated email from the git hooks/post-receive script.

o   c   h   o   s   i       p   u   s   h   e   d       a       c   o   m   m   i   t       t   o       b   r   a   n   c   h       m   a   s   t   e   r   
   in repository xfce/xfce4-settings.

commit 6fb40f3e4f240fc112dcca364fb724969b98ffa5
Author: Simon Steinbeiss <simon.steinbeiss at elfenbeinturm.at>
Date:   Thu Apr 4 22:59:29 2019 +0200

    display: Improve profile-create popover
---
 dialogs/display-settings/main.c | 24 +++++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

diff --git a/dialogs/display-settings/main.c b/dialogs/display-settings/main.c
index 83fcf5f..7e1b9d1 100644
--- a/dialogs/display-settings/main.c
+++ b/dialogs/display-settings/main.c
@@ -1641,12 +1641,27 @@ display_settings_profile_save (GtkWidget *widget, GtkBuilder *builder)
         gtk_widget_set_sensitive (widget, TRUE);
 }
 
+/* reset the widget states if the user starts editing the profile name */
+static void
+display_settings_profile_entry_text_changed (GtkEditable *entry,
+                                             GtkBuilder  *builder)
+{
+    GObject *infobar, *button;
+
+    button = gtk_builder_get_object (builder, "button-profile-create-cb");
+    infobar = gtk_builder_get_object (builder, "profile-exists");
+
+    gtk_style_context_remove_class (gtk_widget_get_style_context (GTK_WIDGET (entry)), "error");
+    gtk_widget_set_sensitive (GTK_WIDGET (button), TRUE);
+    gtk_widget_hide (GTK_WIDGET (infobar));
+}
+
 static void
 display_settings_profile_create_cb (GtkWidget *widget, GtkBuilder *builder)
 {
     const gchar *profile_name;
     GtkWidget *popover;
-    GObject *infobar, *entry;
+    GObject *infobar, *entry, *button;
 
     entry = gtk_builder_get_object (builder, "entry-profile-create");
     profile_name = gtk_entry_get_text (GTK_ENTRY (entry));
@@ -1654,8 +1669,15 @@ display_settings_profile_create_cb (GtkWidget *widget, GtkBuilder *builder)
     /* check if the profile name is already taken */
     if (!display_settings_profile_name_exists (display_channel, profile_name))
     {
+        button = gtk_builder_get_object (builder, "button-profile-create-cb");
         infobar = gtk_builder_get_object (builder, "profile-exists");
+
+        gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET (entry)), "error");
+        gtk_widget_set_sensitive (GTK_WIDGET (button), FALSE);
         gtk_widget_show_all (GTK_WIDGET (infobar));
+
+        g_signal_connect (G_OBJECT (entry), "changed",
+                          G_CALLBACK (display_settings_profile_entry_text_changed), builder);
         return;
     }
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list