Blame 0008-refactoring-unify-event-configuration-dialogs.patch

Jakub Filak 96251e8
From c134783d5c9fc8ba6691408ce9b3015ab368ad16 Mon Sep 17 00:00:00 2001
Jakub Filak 96251e8
From: Jakub Filak <jfilak@redhat.com>
Jakub Filak 96251e8
Date: Tue, 29 Apr 2014 09:49:23 +0200
Jakub Filak 96251e8
Subject: [LIBREPORT PATCH 08/10] refactoring: unify event configuration
Jakub Filak 96251e8
 dialogs
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/config_dialog.c          | 40 ++++++++++++++-----------
Jakub Filak 96251e8
 src/gtk-helpers/event_config_dialog.c    | 51 +++-----------------------------
Jakub Filak 96251e8
 src/gtk-helpers/internal_libreport_gtk.h |  1 +
Jakub Filak 96251e8
 3 files changed, 28 insertions(+), 64 deletions(-)
Jakub Filak 96251e8
Jakub Filak 96251e8
diff --git a/src/gtk-helpers/config_dialog.c b/src/gtk-helpers/config_dialog.c
Jakub Filak 96251e8
index 6cc4be9..6de08e3 100644
Jakub Filak 96251e8
--- a/src/gtk-helpers/config_dialog.c
Jakub Filak 96251e8
+++ b/src/gtk-helpers/config_dialog.c
Jakub Filak 96251e8
@@ -83,6 +83,28 @@ gpointer cdialog_get_data(config_dialog_t *cdialog)
Jakub Filak 96251e8
     return cdialog->data;
Jakub Filak 96251e8
 }
Jakub Filak 96251e8
 
Jakub Filak 96251e8
+int cdialog_run(config_dialog_t *cdialog, const char *name)
Jakub Filak 96251e8
+{
Jakub Filak 96251e8
+    if (cdialog == NULL || cdialog->dialog == NULL)
Jakub Filak 96251e8
+    {
Jakub Filak 96251e8
+        log("There is no configurable option for: '%s'", name);
Jakub Filak 96251e8
+        return GTK_RESPONSE_REJECT;
Jakub Filak 96251e8
+    }
Jakub Filak 96251e8
+
Jakub Filak 96251e8
+    const int result = gtk_dialog_run(GTK_DIALOG(cdialog->dialog));
Jakub Filak 96251e8
+    if (result == GTK_RESPONSE_APPLY)
Jakub Filak 96251e8
+    {
Jakub Filak 96251e8
+        if (cdialog->save_data)
Jakub Filak 96251e8
+            cdialog->save_data(cdialog->data, name);
Jakub Filak 96251e8
+    }
Jakub Filak 96251e8
+    else if (result == GTK_RESPONSE_CANCEL)
Jakub Filak 96251e8
+        log_notice("Cancelling on user request");
Jakub Filak 96251e8
+
Jakub Filak 96251e8
+    gtk_widget_hide(GTK_WIDGET(cdialog->dialog));
Jakub Filak 96251e8
+
Jakub Filak 96251e8
+    return result;
Jakub Filak 96251e8
+}
Jakub Filak 96251e8
+
Jakub Filak 96251e8
 static const void *get_column_value_from_row(GtkTreeView *treeview, int column, int type)
Jakub Filak 96251e8
 {
Jakub Filak 96251e8
     GtkTreeSelection *selection = gtk_tree_view_get_selection(treeview);
Jakub Filak 96251e8
@@ -246,23 +268,7 @@ static void on_configure_cb(GtkWidget *btn, gpointer user_data)
Jakub Filak 96251e8
     config_dialog_t *cdialog = (config_dialog_t *)get_column_value_from_row(tv, CONFIG_DIALOG, TYPE_POINTER);
Jakub Filak 96251e8
     const char *name = (const char *)get_column_value_from_row(tv, COLUMN_NAME, TYPE_STR);
Jakub Filak 96251e8
 
Jakub Filak 96251e8
-
Jakub Filak 96251e8
-    if (cdialog == NULL || cdialog->dialog == NULL)
Jakub Filak 96251e8
-    {
Jakub Filak 96251e8
-        log("There is no configurable option for: '%s'", name);
Jakub Filak 96251e8
-        return;
Jakub Filak 96251e8
-    }
Jakub Filak 96251e8
-
Jakub Filak 96251e8
-    int result = gtk_dialog_run(GTK_DIALOG(cdialog->dialog));
Jakub Filak 96251e8
-    if (result == GTK_RESPONSE_APPLY)
Jakub Filak 96251e8
-    {
Jakub Filak 96251e8
-        if (cdialog->save_data)
Jakub Filak 96251e8
-            cdialog->save_data(cdialog->data, name);
Jakub Filak 96251e8
-    }
Jakub Filak 96251e8
-    else if (result == GTK_RESPONSE_CANCEL)
Jakub Filak 96251e8
-        log_notice("Cancelling on user request");
Jakub Filak 96251e8
-
Jakub Filak 96251e8
-    gtk_widget_hide(GTK_WIDGET(cdialog->dialog));
Jakub Filak 96251e8
+    cdialog_run(cdialog, name);
Jakub Filak 96251e8
 }
Jakub Filak 96251e8
 
Jakub Filak 96251e8
 static void on_close_cb(GtkWidget *btn, gpointer config_list_w)
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 ff3e38b..655abb6 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
@@ -319,7 +319,7 @@ config_dialog_t *create_event_config_dialog(const char *event_name, GtkWindow *p
Jakub Filak 96251e8
     if (parent_window != NULL)
Jakub Filak 96251e8
     {
Jakub Filak 96251e8
         gtk_window_set_icon_name(GTK_WINDOW(dialog),
Jakub Filak 96251e8
-        gtk_window_get_icon_name(parent_window));
Jakub Filak 96251e8
+                                 gtk_window_get_icon_name(parent_window));
Jakub Filak 96251e8
     }
Jakub Filak 96251e8
 
Jakub Filak 96251e8
     GtkWidget *content = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
Jakub Filak 96251e8
@@ -349,53 +349,10 @@ int show_event_config_dialog(const char *event_name, GtkWindow *parent)
Jakub Filak 96251e8
 {
Jakub Filak 96251e8
     INITIALIZE_LIBREPORT();
Jakub Filak 96251e8
 
Jakub Filak 96251e8
-    event_config_t *event = get_event_config(event_name);
Jakub Filak 96251e8
-
Jakub Filak 96251e8
-    GtkWindow *parent_window = parent ? parent : g_event_list_window;
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
-                        parent_window,
Jakub Filak 96251e8
-                        GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
Jakub Filak 96251e8
-                        _("_Cancel"),
Jakub Filak 96251e8
-                        GTK_RESPONSE_CANCEL,
Jakub Filak 96251e8
-                        _("_OK"),
Jakub Filak 96251e8
-                        GTK_RESPONSE_APPLY,
Jakub Filak 96251e8
-                        NULL);
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
-     * With resize, there are some somewhat not nice effects:
Jakub Filak 96251e8
-     * for one, opening an expander will enlarge window,
Jakub Filak 96251e8
-     * but won't contract it back when expander is closed.
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, -1);
Jakub Filak 96251e8
+    config_dialog_t *dialog = create_event_config_dialog(event_name, parent);
Jakub Filak 96251e8
+    const int result = cdialog_run(dialog, event_name);
Jakub Filak 96251e8
+    free(dialog);
Jakub Filak 96251e8
 
Jakub Filak 96251e8
-    if (parent_window != NULL)
Jakub Filak 96251e8
-    {
Jakub Filak 96251e8
-        gtk_window_set_icon_name(GTK_WINDOW(dialog),
Jakub Filak 96251e8
-                gtk_window_get_icon_name(parent_window));
Jakub Filak 96251e8
-    }
Jakub Filak 96251e8
-
Jakub Filak 96251e8
-    GtkWidget *content = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
Jakub Filak 96251e8
-    content = cdialog_get_widget(create_event_config_dialog_content(event, content));
Jakub Filak 96251e8
-
Jakub Filak 96251e8
-    gtk_widget_show_all(content);
Jakub Filak 96251e8
-
Jakub Filak 96251e8
-    int result = gtk_dialog_run(GTK_DIALOG(dialog));
Jakub Filak 96251e8
-    if (result == GTK_RESPONSE_APPLY)
Jakub Filak 96251e8
-    {
Jakub Filak 96251e8
-        dehydrate_config_dialog(g_option_list);
Jakub Filak 96251e8
-        const char *const store_passwords_s = get_user_setting("store_passwords");
Jakub Filak 96251e8
-        save_event_config_data_to_user_storage(event_name,
Jakub Filak 96251e8
-                                               get_event_config(event_name),
Jakub Filak 96251e8
-                                               !(store_passwords_s && !strcmp(store_passwords_s, "no")));
Jakub Filak 96251e8
-    }
Jakub Filak 96251e8
-    //else if (result == GTK_RESPONSE_CANCEL)
Jakub Filak 96251e8
-    //    log("log");
Jakub Filak 96251e8
-    gtk_widget_destroy(dialog);
Jakub Filak 96251e8
     return result;
Jakub Filak 96251e8
 }
Jakub Filak 96251e8
 
Jakub Filak 96251e8
diff --git a/src/gtk-helpers/internal_libreport_gtk.h b/src/gtk-helpers/internal_libreport_gtk.h
Jakub Filak 96251e8
index dc1ef31..f8f1c13 100644
Jakub Filak 96251e8
--- a/src/gtk-helpers/internal_libreport_gtk.h
Jakub Filak 96251e8
+++ b/src/gtk-helpers/internal_libreport_gtk.h
Jakub Filak 96251e8
@@ -80,6 +80,7 @@ void load_workflow_config_data_from_user_storage(GHashTable *workflows);
Jakub Filak 96251e8
 void cdialog_set_widget(config_dialog_t *cdialog, GtkWidget *widget);
Jakub Filak 96251e8
 GtkWidget *cdialog_get_widget(config_dialog_t *cdialog);
Jakub Filak 96251e8
 gpointer cdialog_get_data(config_dialog_t *cdialog);
Jakub Filak 96251e8
+int cdialog_run(config_dialog_t *cdialog, const char *name);
Jakub Filak 96251e8
 
Jakub Filak 96251e8
 void dehydrate_config_dialog(GList *option_widgets);
Jakub Filak 96251e8
 
Jakub Filak 96251e8
-- 
Jakub Filak 96251e8
1.8.3.1
Jakub Filak 96251e8