[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