[gnome-builder/gnome-builder-43] plugins/buildui: provide error messages for envvars



commit a4fde235de2ad090a21cfcda409ec4a24b0b6937
Author: Christian Hergert <chergert redhat com>
Date:   Tue Oct 11 18:37:10 2022 -0500

    plugins/buildui: provide error messages for envvars
    
    Sorry translators! It's better for us to have any sort of error message
    than nothing at all. No rush to translate, but helpful if you do.

 src/plugins/buildui/gbp-buildui-environment-editor.c  | 18 +++++++++++++++++-
 src/plugins/buildui/gbp-buildui-environment-editor.ui |  1 +
 2 files changed, 18 insertions(+), 1 deletion(-)
---
diff --git a/src/plugins/buildui/gbp-buildui-environment-editor.c 
b/src/plugins/buildui/gbp-buildui-environment-editor.c
index 6996ad7f9..8a6493d86 100644
--- a/src/plugins/buildui/gbp-buildui-environment-editor.c
+++ b/src/plugins/buildui/gbp-buildui-environment-editor.c
@@ -22,6 +22,8 @@
 
 #include "config.h"
 
+#include <glib/gi18n.h>
+
 #include <libide-gtk.h>
 
 #include "gbp-buildui-environment-editor.h"
@@ -134,6 +136,7 @@ static void
 on_entry_changed_cb (GbpBuilduiEnvironmentEditor *self,
                      IdeEntryPopover             *popover)
 {
+  const char *errstr = NULL;
   gboolean valid = FALSE;
   const char *text;
   const char *eq;
@@ -144,14 +147,26 @@ on_entry_changed_cb (GbpBuilduiEnvironmentEditor *self,
   text = ide_entry_popover_get_text (popover);
   eq = strchr (text, '=');
 
+  if (!ide_str_empty0 (text) && eq == NULL)
+    errstr = _("Use KEY=VALUE to set an environment variable");
+
   if (eq != NULL && eq != text)
     {
+      if (g_unichar_isdigit (g_utf8_get_char (text)))
+        {
+          errstr = _("Keys may not start with a number");
+          goto failure;
+
+        }
       for (const char *iter = text; iter < eq; iter = g_utf8_next_char (iter))
         {
           gunichar ch = g_utf8_get_char (iter);
 
           if (!g_unichar_isalnum (ch) && ch != '_')
-            goto failure;
+            {
+              errstr = _("Keys may only contain alpha-numerics or underline.");
+              goto failure;
+            }
         }
 
       if (g_ascii_isalpha (*text))
@@ -160,6 +175,7 @@ on_entry_changed_cb (GbpBuilduiEnvironmentEditor *self,
 
 failure:
   ide_entry_popover_set_ready (popover, valid);
+  ide_entry_popover_set_message (popover, errstr);
 }
 
 static void
diff --git a/src/plugins/buildui/gbp-buildui-environment-editor.ui 
b/src/plugins/buildui/gbp-buildui-environment-editor.ui
index b29aa9e08..01c6c2ff1 100644
--- a/src/plugins/buildui/gbp-buildui-environment-editor.ui
+++ b/src/plugins/buildui/gbp-buildui-environment-editor.ui
@@ -28,6 +28,7 @@
               <object class="IdeEntryPopover">
                 <property name="title" translatable="yes">Add Variable</property>
                 <property name="button-text" translatable="yes">_Add</property>
+                <property name="width-request">400</property>
                 <signal name="activate" handler="on_entry_activate_cb" swapped="true" 
object="GbpBuilduiEnvironmentEditor"/>
                 <signal name="changed" handler="on_entry_changed_cb" swapped="true" 
object="GbpBuilduiEnvironmentEditor"/>
               </object>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]