[Xfce4-commits] [xfce/xfce4-panel] 01/01: clock: Validate timezone entry (Bug #16036)

noreply at xfce.org noreply at xfce.org
Sun Oct 13 01:09:00 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-panel.

commit 285ee742f98707516c79a4d22f08285f448d28cd
Author: Simon Steinbeiss <simon.steinbeiss at elfenbeinturm.at>
Date:   Sun Oct 13 01:07:59 2019 +0200

    clock: Validate timezone entry (Bug #16036)
---
 plugins/clock/clock.c | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/plugins/clock/clock.c b/plugins/clock/clock.c
index 64a1073..ff7a599 100644
--- a/plugins/clock/clock.c
+++ b/plugins/clock/clock.c
@@ -794,6 +794,46 @@ clock_plugin_validate_entry_text (GtkEditable *entry,
 
 
 static void
+clock_plugin_validate_timezone (GtkEntry    *entry,
+                                const gchar *format,
+                                ClockPlugin *plugin)
+{
+  GtkStyleContext *context;
+  gchar           *filename;
+
+  context = gtk_widget_get_style_context (GTK_WIDGET (entry));
+
+  if (strcmp (format, "") != 0)
+    {
+      filename = g_build_filename (ZONEINFO_DIR, format, NULL);
+
+      if (!g_file_test (filename, G_FILE_TEST_IS_REGULAR))
+        gtk_style_context_add_class (context, "error");
+      else
+        gtk_style_context_remove_class (context, "error");
+    }
+  else
+    {
+      gtk_style_context_remove_class (context, "error");
+    }
+}
+
+
+
+static void
+clock_plugin_validate_entry_tz (GtkEditable *entry,
+                                gpointer     user_data)
+{
+  ClockPlugin *plugin = user_data;
+
+  clock_plugin_validate_timezone (GTK_ENTRY (entry),
+                                  gtk_entry_get_text (GTK_ENTRY (entry)),
+                                  plugin);
+}
+
+
+
+static void
 clock_plugin_configure_plugin_chooser_fill (ClockPlugin *plugin,
                                             GtkComboBox *combo,
                                             GtkEntry    *entry,
@@ -1026,6 +1066,8 @@ clock_plugin_configure_plugin (XfcePanelPlugin *panel_plugin)
 
   object = gtk_builder_get_object (builder, "timezone-name");
   panel_return_if_fail (GTK_IS_ENTRY (object));
+  g_signal_connect (G_OBJECT (object), "changed",
+                    G_CALLBACK (clock_plugin_validate_entry_tz), plugin);
   g_object_bind_property (G_OBJECT (plugin->time), "timezone",
                           G_OBJECT (object), "text",
                           G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE);

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


More information about the Xfce4-commits mailing list