Blame 0009-GUI-remove-the-intermediate-configuration-dialog.patch

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