|
Matej Habrnal |
34c7e2 |
From b89e812251efdbbc83ed84932c7dc0d0852d153c Mon Sep 17 00:00:00 2001
|
|
Matej Habrnal |
34c7e2 |
From: Matej Habrnal <mhabrnal@redhat.com>
|
|
Matej Habrnal |
34c7e2 |
Date: Mon, 8 Jun 2015 10:31:07 +0200
|
|
Matej Habrnal |
34c7e2 |
Subject: [PATCH] configui: add option always generate backtrace locally
|
|
Matej Habrnal |
34c7e2 |
|
|
Matej Habrnal |
34c7e2 |
The option 'Ask before uploading coredump' is replaced by 'Upload coredump for
|
|
Matej Habrnal |
34c7e2 |
backtrace generation'. The new config option allows the user to choose the option always
|
|
Matej Habrnal |
34c7e2 |
generate the backtrace locally ('Never').
|
|
Matej Habrnal |
34c7e2 |
|
|
Matej Habrnal |
34c7e2 |
Related to rhbz#986876
|
|
Matej Habrnal |
34c7e2 |
Related to abrt/gnome-abrt#131
|
|
Matej Habrnal |
34c7e2 |
|
|
Matej Habrnal |
34c7e2 |
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
|
Matej Habrnal |
34c7e2 |
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
Matej Habrnal |
34c7e2 |
---
|
|
Matej Habrnal |
34c7e2 |
src/configuration-gui/abrt-config-widget.c | 152 ++++++++++++++++++++++---
|
|
Matej Habrnal |
34c7e2 |
src/configuration-gui/abrt-config-widget.glade | 119 +++++++++++++------
|
|
Matej Habrnal |
34c7e2 |
2 files changed, 219 insertions(+), 52 deletions(-)
|
|
Matej Habrnal |
34c7e2 |
|
|
Matej Habrnal |
34c7e2 |
diff --git a/src/configuration-gui/abrt-config-widget.c b/src/configuration-gui/abrt-config-widget.c
|
|
Matej Habrnal |
34c7e2 |
index 664180d..7d2430b 100644
|
|
Matej Habrnal |
34c7e2 |
--- a/src/configuration-gui/abrt-config-widget.c
|
|
Matej Habrnal |
34c7e2 |
+++ b/src/configuration-gui/abrt-config-widget.c
|
|
Matej Habrnal |
34c7e2 |
@@ -38,10 +38,11 @@ typedef struct {
|
|
Matej Habrnal |
34c7e2 |
} AbrtAppConfiguration;
|
|
Matej Habrnal |
34c7e2 |
|
|
Matej Habrnal |
34c7e2 |
typedef struct {
|
|
Matej Habrnal |
34c7e2 |
- const char *name;
|
|
Matej Habrnal |
34c7e2 |
- GtkSwitch *widget;
|
|
Matej Habrnal |
34c7e2 |
- gboolean default_value;
|
|
Matej Habrnal |
34c7e2 |
- gboolean current_value;
|
|
Matej Habrnal |
34c7e2 |
+ const char *name; ///< e.g. ask_steal_dir, report-technical-problems
|
|
Matej Habrnal |
34c7e2 |
+ GtkSwitch *switch_widget;
|
|
Matej Habrnal |
34c7e2 |
+ GtkWidget *radio_button_widget[3];
|
|
Matej Habrnal |
34c7e2 |
+ int default_value;
|
|
Matej Habrnal |
34c7e2 |
+ int current_value;
|
|
Matej Habrnal |
34c7e2 |
AbrtAppConfiguration *config;
|
|
Matej Habrnal |
34c7e2 |
} AbrtConfigWidgetOption;
|
|
Matej Habrnal |
34c7e2 |
|
|
Matej Habrnal |
34c7e2 |
@@ -49,17 +50,34 @@ enum AbrtOptions
|
|
Matej Habrnal |
34c7e2 |
{
|
|
Matej Habrnal |
34c7e2 |
_ABRT_OPT_BEGIN_,
|
|
Matej Habrnal |
34c7e2 |
|
|
Matej Habrnal |
34c7e2 |
- ABRT_OPT_UPLOAD_COREDUMP = _ABRT_OPT_BEGIN_,
|
|
Matej Habrnal |
34c7e2 |
- ABRT_OPT_STEAL_DIRECTORY,
|
|
Matej Habrnal |
34c7e2 |
+ _ABRT_OPT_SWITCH_BEGIN_= _ABRT_OPT_BEGIN_,
|
|
Matej Habrnal |
34c7e2 |
+
|
|
Matej Habrnal |
34c7e2 |
+ ABRT_OPT_STEAL_DIRECTORY= _ABRT_OPT_BEGIN_,
|
|
Matej Habrnal |
34c7e2 |
ABRT_OPT_PRIVATE_TICKET,
|
|
Matej Habrnal |
34c7e2 |
ABRT_OPT_SEND_UREPORT,
|
|
Matej Habrnal |
34c7e2 |
ABRT_OPT_SHORTENED_REPORTING,
|
|
Matej Habrnal |
34c7e2 |
ABRT_OPT_SILENT_SHORTENED_REPORTING,
|
|
Matej Habrnal |
34c7e2 |
ABRT_OPT_NOTIFY_INCOMPLETE_PROBLEMS,
|
|
Matej Habrnal |
34c7e2 |
|
|
Matej Habrnal |
34c7e2 |
+ _ABRT_OPT_SWITCH_END_,
|
|
Matej Habrnal |
34c7e2 |
+
|
|
Matej Habrnal |
34c7e2 |
+ _ABRT_RADIOBUTTON_OPT_BEGIN_= _ABRT_OPT_SWITCH_END_,
|
|
Matej Habrnal |
34c7e2 |
+
|
|
Matej Habrnal |
34c7e2 |
+ ABRT_OPT_UPLOAD_COREDUMP= _ABRT_OPT_SWITCH_END_,
|
|
Matej Habrnal |
34c7e2 |
+
|
|
Matej Habrnal |
34c7e2 |
_ABRT_OPT_END_,
|
|
Matej Habrnal |
34c7e2 |
};
|
|
Matej Habrnal |
34c7e2 |
|
|
Matej Habrnal |
34c7e2 |
+enum AbrtRadioButtonOptions
|
|
Matej Habrnal |
34c7e2 |
+{
|
|
Matej Habrnal |
34c7e2 |
+ _ABRT_RADIOBUTTON_OPT_ = -1,
|
|
Matej Habrnal |
34c7e2 |
+ ABRT_RADIOBUTTON_OPT_NEVER = 0,
|
|
Matej Habrnal |
34c7e2 |
+ ABRT_RADIOBUTTON_OPT_ALWAYS = 1,
|
|
Matej Habrnal |
34c7e2 |
+ ABRT_RADIOBUTTON_OPT_ASK = 2,
|
|
Matej Habrnal |
34c7e2 |
+};
|
|
Matej Habrnal |
34c7e2 |
+
|
|
Matej Habrnal |
34c7e2 |
+/* This structure holds private data of AbrtConfigWidget
|
|
Matej Habrnal |
34c7e2 |
+ */
|
|
Matej Habrnal |
34c7e2 |
struct AbrtConfigWidgetPrivate {
|
|
Matej Habrnal |
34c7e2 |
GtkBuilder *builder;
|
|
Matej Habrnal |
34c7e2 |
AbrtAppConfiguration *report_gtk_conf;
|
|
Matej Habrnal |
34c7e2 |
@@ -103,7 +121,13 @@ abrt_app_configuration_set_value(AbrtAppConfiguration *conf, const char *name, c
|
|
Matej Habrnal |
34c7e2 |
static const char *
|
|
Matej Habrnal |
34c7e2 |
abrt_app_configuration_get_value(AbrtAppConfiguration *conf, const char *name)
|
|
Matej Habrnal |
34c7e2 |
{
|
|
Matej Habrnal |
34c7e2 |
- return get_app_user_setting(conf->settings, name);
|
|
Matej Habrnal |
34c7e2 |
+ if (conf->settings)
|
|
Matej Habrnal |
34c7e2 |
+ {
|
|
Matej Habrnal |
34c7e2 |
+ const char *val = get_app_user_setting(conf->settings, name);
|
|
Matej Habrnal |
34c7e2 |
+ return (val == NULL || strcmp(val, "") == 0) ? NULL : val;
|
|
Matej Habrnal |
34c7e2 |
+ }
|
|
Matej Habrnal |
34c7e2 |
+
|
|
Matej Habrnal |
34c7e2 |
+ assert(!"BUG: not properly initialized AbrtAppConfiguration");
|
|
Matej Habrnal |
34c7e2 |
}
|
|
Matej Habrnal |
34c7e2 |
|
|
Matej Habrnal |
34c7e2 |
static void
|
|
Matej Habrnal |
34c7e2 |
@@ -186,9 +210,30 @@ on_switch_activate(GObject *object,
|
|
Matej Habrnal |
34c7e2 |
}
|
|
Matej Habrnal |
34c7e2 |
|
|
Matej Habrnal |
34c7e2 |
static void
|
|
Matej Habrnal |
34c7e2 |
-update_option_current_value(AbrtConfigWidget *self, enum AbrtOptions opid)
|
|
Matej Habrnal |
34c7e2 |
+on_radio_button_toggle(GObject *object,
|
|
Matej Habrnal |
34c7e2 |
+ AbrtConfigWidget *config)
|
|
Matej Habrnal |
34c7e2 |
{
|
|
Matej Habrnal |
34c7e2 |
- assert((opid >= _ABRT_OPT_BEGIN_ && opid < _ABRT_OPT_END_) || !"Out of range Option ID value");
|
|
Matej Habrnal |
34c7e2 |
+ /* inactive radio button */
|
|
Matej Habrnal |
34c7e2 |
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(object)) == false)
|
|
Matej Habrnal |
34c7e2 |
+ return;
|
|
Matej Habrnal |
34c7e2 |
+
|
|
Matej Habrnal |
34c7e2 |
+ AbrtConfigWidgetOption *option = g_object_get_data(G_OBJECT(object), "abrt-option");
|
|
Matej Habrnal |
34c7e2 |
+ if (option->config == NULL)
|
|
Matej Habrnal |
34c7e2 |
+ return;
|
|
Matej Habrnal |
34c7e2 |
+
|
|
Matej Habrnal |
34c7e2 |
+ /* get active radio button */
|
|
Matej Habrnal |
34c7e2 |
+ const char *val = g_object_get_data(G_OBJECT(object), "abrt-triple-switch-value");
|
|
Matej Habrnal |
34c7e2 |
+ log_debug("%s : %s", option->name, val);
|
|
Matej Habrnal |
34c7e2 |
+
|
|
Matej Habrnal |
34c7e2 |
+ abrt_app_configuration_set_value(option->config, option->name, val);
|
|
Matej Habrnal |
34c7e2 |
+ abrt_app_configuration_save(option->config);
|
|
Matej Habrnal |
34c7e2 |
+ emit_change(config);
|
|
Matej Habrnal |
34c7e2 |
+}
|
|
Matej Habrnal |
34c7e2 |
+
|
|
Matej Habrnal |
34c7e2 |
+static void
|
|
Matej Habrnal |
34c7e2 |
+update_option_switch_current_value(AbrtConfigWidget *self, enum AbrtOptions opid)
|
|
Matej Habrnal |
34c7e2 |
+{
|
|
Matej Habrnal |
34c7e2 |
+ assert((opid >= _ABRT_OPT_SWITCH_BEGIN_ && opid < _ABRT_OPT_SWITCH_END_) || !"Out of range Option ID value");
|
|
Matej Habrnal |
34c7e2 |
|
|
Matej Habrnal |
34c7e2 |
AbrtConfigWidgetOption *option = &(self->priv->options[opid]);
|
|
Matej Habrnal |
34c7e2 |
const char *val = abrt_app_configuration_get_value(option->config, option->name);
|
|
Matej Habrnal |
34c7e2 |
@@ -196,19 +241,80 @@ update_option_current_value(AbrtConfigWidget *self, enum AbrtOptions opid)
|
|
Matej Habrnal |
34c7e2 |
}
|
|
Matej Habrnal |
34c7e2 |
|
|
Matej Habrnal |
34c7e2 |
static void
|
|
Matej Habrnal |
34c7e2 |
+update_option_radio_button_current_value(AbrtConfigWidget *self, enum AbrtOptions opid)
|
|
Matej Habrnal |
34c7e2 |
+{
|
|
Matej Habrnal |
34c7e2 |
+ assert((opid >= _ABRT_RADIOBUTTON_OPT_BEGIN_ && opid < _ABRT_OPT_END_) || !"Out of range Option ID value");
|
|
Matej Habrnal |
34c7e2 |
+
|
|
Matej Habrnal |
34c7e2 |
+ AbrtConfigWidgetOption *option = &(self->priv->options[opid]);
|
|
Matej Habrnal |
34c7e2 |
+
|
|
Matej Habrnal |
34c7e2 |
+ const char *val = NULL;
|
|
Matej Habrnal |
34c7e2 |
+ if (option->config != NULL)
|
|
Matej Habrnal |
34c7e2 |
+ val = abrt_app_configuration_get_value(option->config, option->name);
|
|
Matej Habrnal |
34c7e2 |
+
|
|
Matej Habrnal |
34c7e2 |
+ if (val == NULL)
|
|
Matej Habrnal |
34c7e2 |
+ option->current_value = option->default_value;
|
|
Matej Habrnal |
34c7e2 |
+ else if (string_to_bool(val))
|
|
Matej Habrnal |
34c7e2 |
+ option->current_value = ABRT_RADIOBUTTON_OPT_ALWAYS;
|
|
Matej Habrnal |
34c7e2 |
+ else
|
|
Matej Habrnal |
34c7e2 |
+ option->current_value = ABRT_RADIOBUTTON_OPT_NEVER;
|
|
Matej Habrnal |
34c7e2 |
+}
|
|
Matej Habrnal |
34c7e2 |
+
|
|
Matej Habrnal |
34c7e2 |
+static void
|
|
Matej Habrnal |
34c7e2 |
connect_switch_with_option(AbrtConfigWidget *self, enum AbrtOptions opid, const char *switch_name)
|
|
Matej Habrnal |
34c7e2 |
{
|
|
Matej Habrnal |
34c7e2 |
- assert((opid >= _ABRT_OPT_BEGIN_ && opid < _ABRT_OPT_END_) || !"Out of range Option ID value");
|
|
Matej Habrnal |
34c7e2 |
+ assert((opid >= _ABRT_OPT_SWITCH_BEGIN_ && opid < _ABRT_OPT_SWITCH_END_) || !"Out of range Option ID value");
|
|
Matej Habrnal |
34c7e2 |
|
|
Matej Habrnal |
34c7e2 |
AbrtConfigWidgetOption *option = &(self->priv->options[opid]);
|
|
Matej Habrnal |
34c7e2 |
- update_option_current_value(self, opid);
|
|
Matej Habrnal |
34c7e2 |
+ update_option_switch_current_value(self, opid);
|
|
Matej Habrnal |
34c7e2 |
|
|
Matej Habrnal |
34c7e2 |
GtkSwitch *gsw = GTK_SWITCH(WID(switch_name));
|
|
Matej Habrnal |
34c7e2 |
- option->widget = gsw;
|
|
Matej Habrnal |
34c7e2 |
- gtk_switch_set_active(gsw, option->current_value);
|
|
Matej Habrnal |
34c7e2 |
+ option->switch_widget = gsw;
|
|
Matej Habrnal |
34c7e2 |
+ gtk_switch_set_active(gsw, (gboolean)option->current_value);
|
|
Matej Habrnal |
34c7e2 |
+
|
|
Matej Habrnal |
34c7e2 |
g_object_set_data(G_OBJECT(gsw), "abrt-option", option);
|
|
Matej Habrnal |
34c7e2 |
g_signal_connect(G_OBJECT(gsw), "notify::active",
|
|
Matej Habrnal |
34c7e2 |
G_CALLBACK(on_switch_activate), self);
|
|
Matej Habrnal |
34c7e2 |
+
|
|
Matej Habrnal |
34c7e2 |
+ /* If the option has no config, make the corresponding insensitive. */
|
|
Matej Habrnal |
34c7e2 |
+ gtk_widget_set_sensitive(GTK_WIDGET(gsw), option->config != NULL);
|
|
Matej Habrnal |
34c7e2 |
+}
|
|
Matej Habrnal |
34c7e2 |
+
|
|
Matej Habrnal |
34c7e2 |
+static void
|
|
Matej Habrnal |
34c7e2 |
+connect_radio_buttons_with_option(AbrtConfigWidget *self, enum AbrtOptions opid,
|
|
Matej Habrnal |
34c7e2 |
+ const char *btn_always_name, const char *btn_never_name,
|
|
Matej Habrnal |
34c7e2 |
+ const char *btn_ask_name)
|
|
Matej Habrnal |
34c7e2 |
+{
|
|
Matej Habrnal |
34c7e2 |
+ assert((opid >= _ABRT_RADIOBUTTON_OPT_BEGIN_ && opid < _ABRT_OPT_END_) || !"Out of range Option ID value");
|
|
Matej Habrnal |
34c7e2 |
+
|
|
Matej Habrnal |
34c7e2 |
+ AbrtConfigWidgetOption *option = &(self->priv->options[opid]);
|
|
Matej Habrnal |
34c7e2 |
+ update_option_radio_button_current_value(self, opid);
|
|
Matej Habrnal |
34c7e2 |
+
|
|
Matej Habrnal |
34c7e2 |
+ GtkWidget *btn_always = WID(btn_always_name);
|
|
Matej Habrnal |
34c7e2 |
+ GtkWidget *btn_never = WID(btn_never_name);
|
|
Matej Habrnal |
34c7e2 |
+ GtkWidget *btn_ask = WID(btn_ask_name);
|
|
Matej Habrnal |
34c7e2 |
+
|
|
Matej Habrnal |
34c7e2 |
+ option->radio_button_widget[ABRT_RADIOBUTTON_OPT_ALWAYS] = btn_always;
|
|
Matej Habrnal |
34c7e2 |
+ option->radio_button_widget[ABRT_RADIOBUTTON_OPT_NEVER] = btn_never;
|
|
Matej Habrnal |
34c7e2 |
+ option->radio_button_widget[ABRT_RADIOBUTTON_OPT_ASK] = btn_ask;
|
|
Matej Habrnal |
34c7e2 |
+
|
|
Matej Habrnal |
34c7e2 |
+ GtkWidget *active_button = option->radio_button_widget[option->current_value];
|
|
Matej Habrnal |
34c7e2 |
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(active_button), TRUE);
|
|
Matej Habrnal |
34c7e2 |
+
|
|
Matej Habrnal |
34c7e2 |
+ g_object_set_data(G_OBJECT(btn_always), "abrt-option", option);
|
|
Matej Habrnal |
34c7e2 |
+ g_object_set_data(G_OBJECT(btn_always), "abrt-triple-switch-value", (char *)"yes");
|
|
Matej Habrnal |
34c7e2 |
+ g_object_set_data(G_OBJECT(btn_never), "abrt-option", option);
|
|
Matej Habrnal |
34c7e2 |
+ g_object_set_data(G_OBJECT(btn_never), "abrt-triple-switch-value", (char *)"no");
|
|
Matej Habrnal |
34c7e2 |
+ g_object_set_data(G_OBJECT(btn_ask), "abrt-option", option);
|
|
Matej Habrnal |
34c7e2 |
+ g_object_set_data(G_OBJECT(btn_ask), "abrt-triple-switch-value", NULL);
|
|
Matej Habrnal |
34c7e2 |
+
|
|
Matej Habrnal |
34c7e2 |
+ g_signal_connect(btn_always, "toggled", G_CALLBACK(on_radio_button_toggle), self);
|
|
Matej Habrnal |
34c7e2 |
+ g_signal_connect(btn_never, "toggled", G_CALLBACK(on_radio_button_toggle), self);
|
|
Matej Habrnal |
34c7e2 |
+ g_signal_connect(btn_ask, "toggled", G_CALLBACK(on_radio_button_toggle), self);
|
|
Matej Habrnal |
34c7e2 |
+
|
|
Matej Habrnal |
34c7e2 |
+ /* If the option has no config, make the corresponding insensitive. */
|
|
Matej Habrnal |
34c7e2 |
+ gtk_widget_set_sensitive(GTK_WIDGET(btn_always), option->config != NULL);
|
|
Matej Habrnal |
34c7e2 |
+ gtk_widget_set_sensitive(GTK_WIDGET(btn_never), option->config != NULL);
|
|
Matej Habrnal |
34c7e2 |
+ gtk_widget_set_sensitive(GTK_WIDGET(btn_ask), option->config != NULL);
|
|
Matej Habrnal |
34c7e2 |
}
|
|
Matej Habrnal |
34c7e2 |
|
|
Matej Habrnal |
34c7e2 |
static void
|
|
Matej Habrnal |
34c7e2 |
@@ -246,8 +352,8 @@ abrt_config_widget_init(AbrtConfigWidget *self)
|
|
Matej Habrnal |
34c7e2 |
self->priv->options[ABRT_OPT_STEAL_DIRECTORY].default_value = TRUE;
|
|
Matej Habrnal |
34c7e2 |
self->priv->options[ABRT_OPT_STEAL_DIRECTORY].config = self->priv->report_gtk_conf;
|
|
Matej Habrnal |
34c7e2 |
|
|
Matej Habrnal |
34c7e2 |
- self->priv->options[ABRT_OPT_UPLOAD_COREDUMP].name = "abrt_analyze_smart_ask_upload_coredump";
|
|
Matej Habrnal |
34c7e2 |
- self->priv->options[ABRT_OPT_UPLOAD_COREDUMP].default_value = TRUE;
|
|
Matej Habrnal |
34c7e2 |
+ self->priv->options[ABRT_OPT_UPLOAD_COREDUMP].name = "abrt_analyze_upload_coredump";
|
|
Matej Habrnal |
34c7e2 |
+ self->priv->options[ABRT_OPT_UPLOAD_COREDUMP].default_value = ABRT_RADIOBUTTON_OPT_ASK;
|
|
Matej Habrnal |
34c7e2 |
self->priv->options[ABRT_OPT_UPLOAD_COREDUMP].config = self->priv->report_gtk_conf;
|
|
Matej Habrnal |
34c7e2 |
|
|
Matej Habrnal |
34c7e2 |
self->priv->options[ABRT_OPT_PRIVATE_TICKET].name = CREATE_PRIVATE_TICKET;
|
|
Matej Habrnal |
34c7e2 |
@@ -271,8 +377,11 @@ abrt_config_widget_init(AbrtConfigWidget *self)
|
|
Matej Habrnal |
34c7e2 |
self->priv->options[ABRT_OPT_NOTIFY_INCOMPLETE_PROBLEMS].default_value = FALSE;
|
|
Matej Habrnal |
34c7e2 |
self->priv->options[ABRT_OPT_NOTIFY_INCOMPLETE_PROBLEMS].config = self->priv->abrt_applet_conf;
|
|
Matej Habrnal |
34c7e2 |
|
|
Matej Habrnal |
34c7e2 |
+ /* Connect radio buttons with options */
|
|
Matej Habrnal |
34c7e2 |
+ connect_radio_buttons_with_option(self, ABRT_OPT_UPLOAD_COREDUMP,
|
|
Matej Habrnal |
34c7e2 |
+ "bg_always", "bg_never", "bg_ask" );
|
|
Matej Habrnal |
34c7e2 |
+
|
|
Matej Habrnal |
34c7e2 |
/* Connect widgets with options */
|
|
Matej Habrnal |
34c7e2 |
- connect_switch_with_option(self, ABRT_OPT_UPLOAD_COREDUMP, "switch_upload_coredump");
|
|
Matej Habrnal |
34c7e2 |
connect_switch_with_option(self, ABRT_OPT_STEAL_DIRECTORY, "switch_steal_directory");
|
|
Matej Habrnal |
34c7e2 |
connect_switch_with_option(self, ABRT_OPT_PRIVATE_TICKET, "switch_private_ticket");
|
|
Matej Habrnal |
34c7e2 |
connect_switch_with_option(self, ABRT_OPT_SEND_UREPORT, "switch_send_ureport");
|
|
Matej Habrnal |
34c7e2 |
@@ -302,6 +411,13 @@ abrt_config_widget_new()
|
|
Matej Habrnal |
34c7e2 |
void
|
|
Matej Habrnal |
34c7e2 |
abrt_config_widget_reset_to_defaults(AbrtConfigWidget *self)
|
|
Matej Habrnal |
34c7e2 |
{
|
|
Matej Habrnal |
34c7e2 |
- for(unsigned i = _ABRT_OPT_BEGIN_; i < _ABRT_OPT_END_; ++i)
|
|
Matej Habrnal |
34c7e2 |
- gtk_switch_set_active(self->priv->options[i].widget, self->priv->options[i].default_value);
|
|
Matej Habrnal |
34c7e2 |
+ for(unsigned i = _ABRT_OPT_SWITCH_BEGIN_; i < _ABRT_OPT_SWITCH_END_; ++i)
|
|
Matej Habrnal |
34c7e2 |
+ gtk_switch_set_active(self->priv->options[i].switch_widget, self->priv->options[i].default_value);
|
|
Matej Habrnal |
34c7e2 |
+
|
|
Matej Habrnal |
34c7e2 |
+ for(unsigned i = _ABRT_RADIOBUTTON_OPT_BEGIN_; i < _ABRT_OPT_END_; ++i)
|
|
Matej Habrnal |
34c7e2 |
+ {
|
|
Matej Habrnal |
34c7e2 |
+ unsigned default_value = self->priv->options[i].default_value;
|
|
Matej Habrnal |
34c7e2 |
+ GtkWidget *radio_button = self->priv->options[i].radio_button_widget[default_value];
|
|
Matej Habrnal |
34c7e2 |
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio_button), TRUE);
|
|
Matej Habrnal |
34c7e2 |
+ }
|
|
Matej Habrnal |
34c7e2 |
}
|
|
Matej Habrnal |
34c7e2 |
diff --git a/src/configuration-gui/abrt-config-widget.glade b/src/configuration-gui/abrt-config-widget.glade
|
|
Matej Habrnal |
34c7e2 |
index 3aa566c..30737ff 100644
|
|
Matej Habrnal |
34c7e2 |
--- a/src/configuration-gui/abrt-config-widget.glade
|
|
Matej Habrnal |
34c7e2 |
+++ b/src/configuration-gui/abrt-config-widget.glade
|
|
Matej Habrnal |
34c7e2 |
@@ -49,21 +49,6 @@
|
|
Matej Habrnal |
34c7e2 |
</packing>
|
|
Matej Habrnal |
34c7e2 |
</child>
|
|
Matej Habrnal |
34c7e2 |
<child>
|
|
Matej Habrnal |
34c7e2 |
- <object class="GtkSwitch" id="switch_upload_coredump">
|
|
Matej Habrnal |
34c7e2 |
- <property name="visible">True</property>
|
|
Matej Habrnal |
34c7e2 |
- <property name="can_focus">True</property>
|
|
Matej Habrnal |
34c7e2 |
- <property name="halign">end</property>
|
|
Matej Habrnal |
34c7e2 |
- <property name="valign">center</property>
|
|
Matej Habrnal |
34c7e2 |
- <property name="margin_left">10</property>
|
|
Matej Habrnal |
34c7e2 |
- </object>
|
|
Matej Habrnal |
34c7e2 |
- <packing>
|
|
Matej Habrnal |
34c7e2 |
- <property name="left_attach">1</property>
|
|
Matej Habrnal |
34c7e2 |
- <property name="top_attach">0</property>
|
|
Matej Habrnal |
34c7e2 |
- <property name="width">1</property>
|
|
Matej Habrnal |
34c7e2 |
- <property name="height">1</property>
|
|
Matej Habrnal |
34c7e2 |
- </packing>
|
|
Matej Habrnal |
34c7e2 |
- </child>
|
|
Matej Habrnal |
34c7e2 |
- <child>
|
|
Matej Habrnal |
34c7e2 |
<object class="GtkSwitch" id="switch_steal_directory">
|
|
Matej Habrnal |
34c7e2 |
<property name="visible">True</property>
|
|
Matej Habrnal |
34c7e2 |
<property name="can_focus">True</property>
|
|
Matej Habrnal |
34c7e2 |
@@ -163,7 +148,7 @@
|
|
Matej Habrnal |
34c7e2 |
<object class="GtkImage" id="image1">
|
|
Matej Habrnal |
34c7e2 |
<property name="visible">True</property>
|
|
Matej Habrnal |
34c7e2 |
<property name="can_focus">False</property>
|
|
Matej Habrnal |
34c7e2 |
- <property name="tooltip_text" translatable="yes">The coredump file is necessary for generating stack trace which is time and space consuming operation. ABRT provides a service which generates the stack trace from the coredump but you have to upload the coredump to this service. With this option disabled ABRT will upload the coredump without asking.</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="tooltip_text" translatable="yes">The coredump file is necessary for generating stack trace which is time and space consuming operation. ABRT provides a service which generates the stack trace from the coredump but you have to upload the coredump to this service. With option 'Always' ABRT will always upload the coredump without asking. With option 'Never' the stack trace will be always generated locally. With option 'Ask' ABRT will always ask the user.</property>
|
|
Matej Habrnal |
34c7e2 |
<property name="halign">end</property>
|
|
Matej Habrnal |
34c7e2 |
<property name="margin_left">5</property>
|
|
Matej Habrnal |
34c7e2 |
<property name="margin_right">1</property>
|
|
Matej Habrnal |
34c7e2 |
@@ -241,24 +226,6 @@
|
|
Matej Habrnal |
34c7e2 |
</packing>
|
|
Matej Habrnal |
34c7e2 |
</child>
|
|
Matej Habrnal |
34c7e2 |
<child>
|
|
Matej Habrnal |
34c7e2 |
- <object class="GtkLabel" id="label1">
|
|
Matej Habrnal |
34c7e2 |
- <property name="visible">True</property>
|
|
Matej Habrnal |
34c7e2 |
- <property name="can_focus">False</property>
|
|
Matej Habrnal |
34c7e2 |
- <property name="halign">start</property>
|
|
Matej Habrnal |
34c7e2 |
- <property name="hexpand">True</property>
|
|
Matej Habrnal |
34c7e2 |
- <property name="ypad">10</property>
|
|
Matej Habrnal |
34c7e2 |
- <property name="label" translatable="yes">Ask before uploading coredump</property>
|
|
Matej Habrnal |
34c7e2 |
- <signal name="enter-notify-event" handler="label_enter_notify_event_cb" swapped="no"/>
|
|
Matej Habrnal |
34c7e2 |
- <signal name="leave-notify-event" handler="label_leave_notify_event_cb" swapped="no"/>
|
|
Matej Habrnal |
34c7e2 |
- </object>
|
|
Matej Habrnal |
34c7e2 |
- <packing>
|
|
Matej Habrnal |
34c7e2 |
- <property name="left_attach">0</property>
|
|
Matej Habrnal |
34c7e2 |
- <property name="top_attach">0</property>
|
|
Matej Habrnal |
34c7e2 |
- <property name="width">1</property>
|
|
Matej Habrnal |
34c7e2 |
- <property name="height">1</property>
|
|
Matej Habrnal |
34c7e2 |
- </packing>
|
|
Matej Habrnal |
34c7e2 |
- </child>
|
|
Matej Habrnal |
34c7e2 |
- <child>
|
|
Matej Habrnal |
34c7e2 |
<object class="GtkImage" id="image6">
|
|
Matej Habrnal |
34c7e2 |
<property name="visible">True</property>
|
|
Matej Habrnal |
34c7e2 |
<property name="can_focus">False</property>
|
|
Matej Habrnal |
34c7e2 |
@@ -352,6 +319,90 @@
|
|
Matej Habrnal |
34c7e2 |
<property name="height">1</property>
|
|
Matej Habrnal |
34c7e2 |
</packing>
|
|
Matej Habrnal |
34c7e2 |
</child>
|
|
Matej Habrnal |
34c7e2 |
+ <child>
|
|
Matej Habrnal |
34c7e2 |
+ <object class="GtkButtonBox" id="bg_button_box">
|
|
Matej Habrnal |
34c7e2 |
+ <property name="visible">True</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="can_focus">False</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="halign">end</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="valign">center</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="hexpand">False</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="vexpand">False</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="resize_mode">immediate</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="layout_style">expand</property>
|
|
Matej Habrnal |
34c7e2 |
+ <child>
|
|
Matej Habrnal |
34c7e2 |
+ <object class="GtkRadioButton" id="bg_always">
|
|
Matej Habrnal |
34c7e2 |
+ <property name="label" translatable="yes">Always</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="visible">True</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="can_focus">True</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="receives_default">False</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="xalign">0</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="active">True</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="draw_indicator">False</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="group">bg_ask</property>
|
|
Matej Habrnal |
34c7e2 |
+ </object>
|
|
Matej Habrnal |
34c7e2 |
+ <packing>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="expand">True</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="fill">True</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="position">2</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="non_homogeneous">True</property>
|
|
Matej Habrnal |
34c7e2 |
+ </packing>
|
|
Matej Habrnal |
34c7e2 |
+ </child>
|
|
Matej Habrnal |
34c7e2 |
+ <child>
|
|
Matej Habrnal |
34c7e2 |
+ <object class="GtkRadioButton" id="bg_never">
|
|
Matej Habrnal |
34c7e2 |
+ <property name="label" translatable="yes">Never</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="visible">True</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="can_focus">True</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="receives_default">False</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="xalign">0</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="active">True</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="draw_indicator">False</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="group">bg_ask</property>
|
|
Matej Habrnal |
34c7e2 |
+ </object>
|
|
Matej Habrnal |
34c7e2 |
+ <packing>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="expand">True</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="fill">True</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="position">2</property>
|
|
Matej Habrnal |
34c7e2 |
+ </packing>
|
|
Matej Habrnal |
34c7e2 |
+ </child>
|
|
Matej Habrnal |
34c7e2 |
+ <child>
|
|
Matej Habrnal |
34c7e2 |
+ <object class="GtkRadioButton" id="bg_ask">
|
|
Matej Habrnal |
34c7e2 |
+ <property name="label" translatable="yes">Ask</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="visible">True</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="can_focus">True</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="receives_default">False</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="xalign">0</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="active">True</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="draw_indicator">False</property>
|
|
Matej Habrnal |
34c7e2 |
+ </object>
|
|
Matej Habrnal |
34c7e2 |
+ <packing>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="expand">False</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="fill">True</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="position">2</property>
|
|
Matej Habrnal |
34c7e2 |
+ </packing>
|
|
Matej Habrnal |
34c7e2 |
+ </child>
|
|
Matej Habrnal |
34c7e2 |
+ </object>
|
|
Matej Habrnal |
34c7e2 |
+ <packing>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="left_attach">1</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="top_attach">0</property>
|
|
Matej Habrnal |
34c7e2 |
+ </packing>
|
|
Matej Habrnal |
34c7e2 |
+ </child>
|
|
Matej Habrnal |
34c7e2 |
+ <child>
|
|
Matej Habrnal |
34c7e2 |
+ <object class="GtkLabel" id="label1">
|
|
Matej Habrnal |
34c7e2 |
+ <property name="visible">True</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="can_focus">False</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="halign">start</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="hexpand">True</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="ypad">10</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="label" translatable="yes">Upload coredump for backtrace generation</property>
|
|
Matej Habrnal |
34c7e2 |
+ </object>
|
|
Matej Habrnal |
34c7e2 |
+ <packing>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="left_attach">0</property>
|
|
Matej Habrnal |
34c7e2 |
+ <property name="top_attach">0</property>
|
|
Matej Habrnal |
34c7e2 |
+ </packing>
|
|
Matej Habrnal |
34c7e2 |
+ </child>
|
|
Matej Habrnal |
34c7e2 |
+ <child>
|
|
Matej Habrnal |
34c7e2 |
+ <placeholder/>
|
|
Matej Habrnal |
34c7e2 |
+ </child>
|
|
Matej Habrnal |
34c7e2 |
</object>
|
|
Matej Habrnal |
34c7e2 |
</child>
|
|
Matej Habrnal |
34c7e2 |
</object>
|
|
Matej Habrnal |
34c7e2 |
--
|
|
Matej Habrnal |
34c7e2 |
2.1.0
|
|
Matej Habrnal |
34c7e2 |
|