Matej Habrnal 34dad7
From 5d544028c3dd3f4af9d4da83a4c57d2c05c09014 Mon Sep 17 00:00:00 2001
Matej Habrnal 34dad7
From: Jakub Filak <jfilak@redhat.com>
Matej Habrnal 34dad7
Date: Sat, 16 May 2015 06:51:09 +0200
Matej Habrnal 34dad7
Subject: [PATCH] config UI: enable options without config files
Matej Habrnal 34dad7
Matej Habrnal 34dad7
Signed-off-by: Jakub Filak <jfilak@redhat.com>
Matej Habrnal 34dad7
---
Matej Habrnal 34dad7
 src/configuration-gui/abrt-config-widget.c | 14 ++++++++++++--
Matej Habrnal 34dad7
 1 file changed, 12 insertions(+), 2 deletions(-)
Matej Habrnal 34dad7
Matej Habrnal 34dad7
diff --git a/src/configuration-gui/abrt-config-widget.c b/src/configuration-gui/abrt-config-widget.c
Matej Habrnal 34dad7
index 2c75429..8bfc269 100644
Matej Habrnal 34dad7
--- a/src/configuration-gui/abrt-config-widget.c
Matej Habrnal 34dad7
+++ b/src/configuration-gui/abrt-config-widget.c
Matej Habrnal 34dad7
@@ -175,10 +175,13 @@ on_switch_activate(GObject       *object,
Matej Habrnal 34dad7
         GParamSpec     *spec,
Matej Habrnal 34dad7
         AbrtConfigWidget *config)
Matej Habrnal 34dad7
 {
Matej Habrnal 34dad7
+    AbrtConfigWidgetOption *option = g_object_get_data(G_OBJECT(object), "abrt-option");
Matej Habrnal 34dad7
+    if (option->config == NULL)
Matej Habrnal 34dad7
+        return;
Matej Habrnal 34dad7
+
Matej Habrnal 34dad7
     const gboolean state = gtk_switch_get_active(GTK_SWITCH(object));
Matej Habrnal 34dad7
     const char *const val = state ? "yes" : "no";
Matej Habrnal 34dad7
 
Matej Habrnal 34dad7
-    AbrtConfigWidgetOption *option = g_object_get_data(G_OBJECT(object), "abrt-option");
Matej Habrnal 34dad7
     log_debug("%s : %s", option->name, val);
Matej Habrnal 34dad7
     abrt_app_configuration_set_value(option->config, option->name, val);
Matej Habrnal 34dad7
     abrt_app_configuration_save(option->config);
Matej Habrnal 34dad7
@@ -191,7 +194,11 @@ update_option_current_value(AbrtConfigWidget *self, enum AbrtOptions opid)
Matej Habrnal 34dad7
     assert((opid >= _ABRT_OPT_BEGIN_ && opid < _ABRT_OPT_END_) || !"Out of range Option ID value");
Matej Habrnal 34dad7
 
Matej Habrnal 34dad7
     AbrtConfigWidgetOption *option = &(self->priv->options[opid]);
Matej Habrnal 34dad7
-    const char *val = abrt_app_configuration_get_value(option->config, option->name);
Matej Habrnal 34dad7
+
Matej Habrnal 34dad7
+    const char *val = NULL;
Matej Habrnal 34dad7
+    if (option->config != NULL)
Matej Habrnal 34dad7
+        val = abrt_app_configuration_get_value(option->config, option->name);
Matej Habrnal 34dad7
+
Matej Habrnal 34dad7
     option->current_value = val ? string_to_bool(val) : option->default_value;
Matej Habrnal 34dad7
 }
Matej Habrnal 34dad7
 
Matej Habrnal 34dad7
@@ -209,6 +216,9 @@ connect_switch_with_option(AbrtConfigWidget *self, enum AbrtOptions opid, const
Matej Habrnal 34dad7
     g_object_set_data(G_OBJECT(gsw), "abrt-option", option);
Matej Habrnal 34dad7
     g_signal_connect(G_OBJECT(gsw), "notify::active",
Matej Habrnal 34dad7
             G_CALLBACK(on_switch_activate), self);
Matej Habrnal 34dad7
+
Matej Habrnal 34dad7
+    if (option->config == NULL)
Matej Habrnal 34dad7
+        gtk_widget_set_sensitive(GTK_WIDGET(gsw), FALSE);
Matej Habrnal 34dad7
 }
Matej Habrnal 34dad7
 
Matej Habrnal 34dad7
 static void
Matej Habrnal 34dad7
-- 
Matej Habrnal 34dad7
2.4.1
Matej Habrnal 34dad7