|
Jakub Filak |
96251e8 |
From 3767a3665339aaf6da005f4ac8ba7e1091f5fd7f Mon Sep 17 00:00:00 2001
|
|
Jakub Filak |
96251e8 |
From: Jakub Filak <jfilak@redhat.com>
|
|
Jakub Filak |
96251e8 |
Date: Tue, 29 Apr 2014 12:43:27 +0200
|
|
Jakub Filak |
96251e8 |
Subject: [LIBREPORT PATCH 09/10] GUI: remove the intermediate configuration
|
|
Jakub Filak |
96251e8 |
dialog
|
|
Jakub Filak |
96251e8 |
|
|
Jakub Filak |
96251e8 |
Get rid of the dialog stating that something is not configured properly
|
|
Jakub Filak |
96251e8 |
and show the configuration dialog instead.
|
|
Jakub Filak |
96251e8 |
|
|
Jakub Filak |
96251e8 |
Related to #259
|
|
Jakub Filak |
96251e8 |
|
|
Jakub Filak |
96251e8 |
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
Jakub Filak |
96251e8 |
---
|
|
Jakub Filak |
96251e8 |
src/gtk-helpers/event_config_dialog.c | 7 +++-
|
|
Jakub Filak |
96251e8 |
src/gtk-helpers/workflow_config_dialog.c | 7 +++-
|
|
Jakub Filak |
96251e8 |
src/gui-wizard-gtk/wizard.c | 72 +++-----------------------------
|
|
Jakub Filak |
96251e8 |
3 files changed, 17 insertions(+), 69 deletions(-)
|
|
Jakub Filak |
96251e8 |
|
|
Jakub Filak |
96251e8 |
diff --git a/src/gtk-helpers/event_config_dialog.c b/src/gtk-helpers/event_config_dialog.c
|
|
Jakub Filak |
96251e8 |
index 655abb6..0c65f80 100644
|
|
Jakub Filak |
96251e8 |
--- a/src/gtk-helpers/event_config_dialog.c
|
|
Jakub Filak |
96251e8 |
+++ b/src/gtk-helpers/event_config_dialog.c
|
|
Jakub Filak |
96251e8 |
@@ -299,8 +299,11 @@ config_dialog_t *create_event_config_dialog(const char *event_name, GtkWindow *p
|
|
Jakub Filak |
96251e8 |
|
|
Jakub Filak |
96251e8 |
GtkWindow *parent_window = parent ? parent : g_event_list_window;
|
|
Jakub Filak |
96251e8 |
|
|
Jakub Filak |
96251e8 |
+ char *window_title = xasprintf("%s - Reporting Configuration",
|
|
Jakub Filak |
96251e8 |
+ ec_get_screen_name(event) ? ec_get_screen_name(event) : event_name);
|
|
Jakub Filak |
96251e8 |
+
|
|
Jakub Filak |
96251e8 |
GtkWidget *dialog = gtk_dialog_new_with_buttons(
|
|
Jakub Filak |
96251e8 |
- /*title:*/ec_get_screen_name(event) ? ec_get_screen_name(event) : event_name,
|
|
Jakub Filak |
96251e8 |
+ window_title,
|
|
Jakub Filak |
96251e8 |
parent_window,
|
|
Jakub Filak |
96251e8 |
GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
|
|
Jakub Filak |
96251e8 |
_("_Cancel"),
|
|
Jakub Filak |
96251e8 |
@@ -309,6 +312,8 @@ config_dialog_t *create_event_config_dialog(const char *event_name, GtkWindow *p
|
|
Jakub Filak |
96251e8 |
GTK_RESPONSE_APPLY,
|
|
Jakub Filak |
96251e8 |
NULL);
|
|
Jakub Filak |
96251e8 |
|
|
Jakub Filak |
96251e8 |
+ free(window_title);
|
|
Jakub Filak |
96251e8 |
+
|
|
Jakub Filak |
96251e8 |
/* Allow resize?
|
|
Jakub Filak |
96251e8 |
* W/o resize, e.g. upload configuration hint looks awfully
|
|
Jakub Filak |
96251e8 |
* line wrapped.
|
|
Jakub Filak |
96251e8 |
diff --git a/src/gtk-helpers/workflow_config_dialog.c b/src/gtk-helpers/workflow_config_dialog.c
|
|
Jakub Filak |
96251e8 |
index 7c399e4..e6e48c9 100644
|
|
Jakub Filak |
96251e8 |
--- a/src/gtk-helpers/workflow_config_dialog.c
|
|
Jakub Filak |
96251e8 |
+++ b/src/gtk-helpers/workflow_config_dialog.c
|
|
Jakub Filak |
96251e8 |
@@ -71,8 +71,11 @@ config_dialog_t *create_workflow_config_dialog(const char *workflow_name, GtkWin
|
|
Jakub Filak |
96251e8 |
|
|
Jakub Filak |
96251e8 |
GtkWindow *parent_window = parent ? parent : g_parent_window;
|
|
Jakub Filak |
96251e8 |
|
|
Jakub Filak |
96251e8 |
+ char *window_title = xasprintf("%s - Reporting Configuration",
|
|
Jakub Filak |
96251e8 |
+ wf_get_screen_name(workflow) ? wf_get_screen_name(workflow) : workflow_name);
|
|
Jakub Filak |
96251e8 |
+
|
|
Jakub Filak |
96251e8 |
GtkWidget *dialog = gtk_dialog_new_with_buttons(
|
|
Jakub Filak |
96251e8 |
- /*title:*/ wf_get_screen_name(workflow) ? wf_get_screen_name(workflow) : workflow_name,
|
|
Jakub Filak |
96251e8 |
+ window_title,
|
|
Jakub Filak |
96251e8 |
parent_window,
|
|
Jakub Filak |
96251e8 |
GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
|
|
Jakub Filak |
96251e8 |
_("_Cancel"),
|
|
Jakub Filak |
96251e8 |
@@ -81,6 +84,8 @@ config_dialog_t *create_workflow_config_dialog(const char *workflow_name, GtkWin
|
|
Jakub Filak |
96251e8 |
GTK_RESPONSE_APPLY,
|
|
Jakub Filak |
96251e8 |
NULL);
|
|
Jakub Filak |
96251e8 |
|
|
Jakub Filak |
96251e8 |
+ free(window_title);
|
|
Jakub Filak |
96251e8 |
+
|
|
Jakub Filak |
96251e8 |
gtk_window_set_resizable(GTK_WINDOW(dialog), true);
|
|
Jakub Filak |
96251e8 |
gtk_window_set_default_size(GTK_WINDOW(dialog), 450, 450);
|
|
Jakub Filak |
96251e8 |
|
|
Jakub Filak |
96251e8 |
diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c
|
|
Jakub Filak |
96251e8 |
index e6f6ee7..8895d0e 100644
|
|
Jakub Filak |
96251e8 |
--- a/src/gui-wizard-gtk/wizard.c
|
|
Jakub Filak |
96251e8 |
+++ b/src/gui-wizard-gtk/wizard.c
|
|
Jakub Filak |
96251e8 |
@@ -289,59 +289,6 @@ static void remove_child_widget(GtkWidget *widget, gpointer unused)
|
|
Jakub Filak |
96251e8 |
gtk_widget_destroy(widget);
|
|
Jakub Filak |
96251e8 |
}
|
|
Jakub Filak |
96251e8 |
|
|
Jakub Filak |
96251e8 |
-static void on_configure_event_cb(GtkWidget *button, gpointer user_data)
|
|
Jakub Filak |
96251e8 |
-{
|
|
Jakub Filak |
96251e8 |
- char *event_name = (char *)user_data;
|
|
Jakub Filak |
96251e8 |
- if (event_name != NULL)
|
|
Jakub Filak |
96251e8 |
- {
|
|
Jakub Filak |
96251e8 |
- int result = show_event_config_dialog(event_name, GTK_WINDOW(g_top_most_window));
|
|
Jakub Filak |
96251e8 |
- if (result == GTK_RESPONSE_APPLY)
|
|
Jakub Filak |
96251e8 |
- {
|
|
Jakub Filak |
96251e8 |
- GHashTable *errors = validate_event(event_name);
|
|
Jakub Filak |
96251e8 |
- if (errors == NULL)
|
|
Jakub Filak |
96251e8 |
- {
|
|
Jakub Filak |
96251e8 |
- gtk_widget_destroy(g_top_most_window);
|
|
Jakub Filak |
96251e8 |
- g_top_most_window = NULL;
|
|
Jakub Filak |
96251e8 |
- }
|
|
Jakub Filak |
96251e8 |
- }
|
|
Jakub Filak |
96251e8 |
- }
|
|
Jakub Filak |
96251e8 |
-}
|
|
Jakub Filak |
96251e8 |
-
|
|
Jakub Filak |
96251e8 |
-static void show_event_opt_error_dialog(const char *event_name)
|
|
Jakub Filak |
96251e8 |
-{
|
|
Jakub Filak |
96251e8 |
- event_config_t *ec = get_event_config(event_name);
|
|
Jakub Filak |
96251e8 |
- char *message = xasprintf(_("%s is not properly configured. You can configure it now or provide the required information later.\n\n"
|
|
Jakub Filak |
96251e8 |
- "Read more about the configuration at: https://fedorahosted.org/abrt/wiki/AbrtConfiguration"),
|
|
Jakub Filak |
96251e8 |
- ec_get_screen_name(ec));
|
|
Jakub Filak |
96251e8 |
- char *markup_message = xasprintf(_("%s is not properly configured. You can configure it now or provide the required information later.\n\n"
|
|
Jakub Filak |
96251e8 |
- "Read more about the configuration"),
|
|
Jakub Filak |
96251e8 |
- ec_get_screen_name(ec));
|
|
Jakub Filak |
96251e8 |
- GtkWidget *wrong_settings = g_top_most_window = gtk_message_dialog_new(GTK_WINDOW(g_wnd_assistant),
|
|
Jakub Filak |
96251e8 |
- GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
|
|
Jakub Filak |
96251e8 |
- GTK_MESSAGE_WARNING,
|
|
Jakub Filak |
96251e8 |
- GTK_BUTTONS_CLOSE,
|
|
Jakub Filak |
96251e8 |
- message);
|
|
Jakub Filak |
96251e8 |
-
|
|
Jakub Filak |
96251e8 |
- gtk_window_set_transient_for(GTK_WINDOW(wrong_settings), GTK_WINDOW(g_wnd_assistant));
|
|
Jakub Filak |
96251e8 |
- gtk_message_dialog_set_markup(GTK_MESSAGE_DIALOG(wrong_settings),
|
|
Jakub Filak |
96251e8 |
- markup_message);
|
|
Jakub Filak |
96251e8 |
- free(message);
|
|
Jakub Filak |
96251e8 |
- free(markup_message);
|
|
Jakub Filak |
96251e8 |
-
|
|
Jakub Filak |
96251e8 |
- GtkWidget *act_area = gtk_dialog_get_content_area(GTK_DIALOG(wrong_settings));
|
|
Jakub Filak |
96251e8 |
- char * conf_btn_lbl = xasprintf(_("Con_figure %s"), ec_get_screen_name(ec));
|
|
Jakub Filak |
96251e8 |
- GtkWidget *configure_event_btn = gtk_button_new_with_mnemonic(conf_btn_lbl);
|
|
Jakub Filak |
96251e8 |
- g_signal_connect(configure_event_btn, "clicked", G_CALLBACK(on_configure_event_cb), (gpointer)event_name);
|
|
Jakub Filak |
96251e8 |
- free(conf_btn_lbl);
|
|
Jakub Filak |
96251e8 |
-
|
|
Jakub Filak |
96251e8 |
- gtk_box_pack_start(GTK_BOX(act_area), configure_event_btn, false, false, 0);
|
|
Jakub Filak |
96251e8 |
- gtk_widget_show(configure_event_btn);
|
|
Jakub Filak |
96251e8 |
-
|
|
Jakub Filak |
96251e8 |
-
|
|
Jakub Filak |
96251e8 |
- gtk_dialog_run(GTK_DIALOG(wrong_settings));
|
|
Jakub Filak |
96251e8 |
- if (g_top_most_window)
|
|
Jakub Filak |
96251e8 |
- gtk_widget_destroy(wrong_settings);
|
|
Jakub Filak |
96251e8 |
-}
|
|
Jakub Filak |
96251e8 |
|
|
Jakub Filak |
96251e8 |
static void update_window_title(void)
|
|
Jakub Filak |
96251e8 |
{
|
|
Jakub Filak |
96251e8 |
@@ -906,16 +853,14 @@ static gint find_by_button(gconstpointer a, gconstpointer button)
|
|
Jakub Filak |
96251e8 |
return (evdata->toggle_button != button);
|
|
Jakub Filak |
96251e8 |
}
|
|
Jakub Filak |
96251e8 |
|
|
Jakub Filak |
96251e8 |
-static int check_event_config(const char *event_name)
|
|
Jakub Filak |
96251e8 |
+static void check_event_config(const char *event_name)
|
|
Jakub Filak |
96251e8 |
{
|
|
Jakub Filak |
96251e8 |
GHashTable *errors = validate_event(event_name);
|
|
Jakub Filak |
96251e8 |
if (errors != NULL)
|
|
Jakub Filak |
96251e8 |
{
|
|
Jakub Filak |
96251e8 |
g_hash_table_unref(errors);
|
|
Jakub Filak |
96251e8 |
- show_event_opt_error_dialog(event_name);
|
|
Jakub Filak |
96251e8 |
- return 1;
|
|
Jakub Filak |
96251e8 |
+ show_event_config_dialog(event_name, GTK_WINDOW(g_top_most_window));
|
|
Jakub Filak |
96251e8 |
}
|
|
Jakub Filak |
96251e8 |
- return 0;
|
|
Jakub Filak |
96251e8 |
}
|
|
Jakub Filak |
96251e8 |
|
|
Jakub Filak |
96251e8 |
static void event_rb_was_toggled(GtkButton *button, gpointer user_data)
|
|
Jakub Filak |
96251e8 |
@@ -2850,18 +2795,11 @@ static gint select_next_page_no(gint current_page_no, gpointer data)
|
|
Jakub Filak |
96251e8 |
goto again;
|
|
Jakub Filak |
96251e8 |
}
|
|
Jakub Filak |
96251e8 |
|
|
Jakub Filak |
96251e8 |
- /* must set g_event_selected otherwise if the event was not
|
|
Jakub Filak |
96251e8 |
- * configured the reporting process will be terminated even if a
|
|
Jakub Filak |
96251e8 |
- * user configured the event on report-gtk's demand from
|
|
Jakub Filak |
96251e8 |
- * check_event_config() function
|
|
Jakub Filak |
96251e8 |
- */
|
|
Jakub Filak |
96251e8 |
g_event_selected = event;
|
|
Jakub Filak |
96251e8 |
|
|
Jakub Filak |
96251e8 |
- if (check_event_config(g_event_selected) != 0)
|
|
Jakub Filak |
96251e8 |
- {
|
|
Jakub Filak |
96251e8 |
- /* don't know what is the difference between this <<< */
|
|
Jakub Filak |
96251e8 |
- goto again;
|
|
Jakub Filak |
96251e8 |
- }
|
|
Jakub Filak |
96251e8 |
+ /* Notify a user that some configuration options miss values, but */
|
|
Jakub Filak |
96251e8 |
+ /* don't force him to provide them. */
|
|
Jakub Filak |
96251e8 |
+ check_event_config(g_event_selected);
|
|
Jakub Filak |
96251e8 |
|
|
Jakub Filak |
96251e8 |
/* >>> and this but this is clearer
|
|
Jakub Filak |
96251e8 |
* because it does exactly the same thing
|
|
Jakub Filak |
96251e8 |
--
|
|
Jakub Filak |
96251e8 |
1.8.3.1
|
|
Jakub Filak |
96251e8 |
|