Scrollbars has been chosen instead of displaying an event configuration
in a separate tab because any event option can expand dialog size to
enormous size. Therefore separate tabs requires scrollbars too.
Even more the tabs are less clear than displaying all options on a
single window.
Signed-off-by: Jakub Filak <jfilak(a)redhat.com>
---
src/gtk-helpers/event_config_dialog.c | 5 +++++
src/gtk-helpers/workflow_config_dialog.c | 11 +++++++++--
2 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/src/gtk-helpers/event_config_dialog.c
b/src/gtk-helpers/event_config_dialog.c
index 82d07df..238c84b 100644
--- a/src/gtk-helpers/event_config_dialog.c
+++ b/src/gtk-helpers/event_config_dialog.c
@@ -202,6 +202,11 @@ config_dialog_t *create_event_config_dialog_content(event_config_t
*event, GtkWi
gtk_grid_set_row_spacing(GTK_GRID(option_table), 2);
g_object_set_data(G_OBJECT(option_table), "n-rows", (gpointer)-1);
+ gtk_widget_set_hexpand(option_table, TRUE);
+ gtk_widget_set_vexpand(option_table, TRUE);
+ gtk_widget_set_halign(option_table, GTK_ALIGN_FILL);
+ gtk_widget_set_valign(option_table, GTK_ALIGN_FILL);
+
/* table to hold advanced options
* hidden in expander which is visible only if there's at least
* one advanced option
diff --git a/src/gtk-helpers/workflow_config_dialog.c
b/src/gtk-helpers/workflow_config_dialog.c
index 93dd622..32be2fa 100644
--- a/src/gtk-helpers/workflow_config_dialog.c
+++ b/src/gtk-helpers/workflow_config_dialog.c
@@ -80,7 +80,7 @@ config_dialog_t *create_workflow_config_dialog(const char
*workflow_name, GtkWin
NULL);
gtk_window_set_resizable(GTK_WINDOW(dialog), true);
- gtk_window_set_default_size(GTK_WINDOW(dialog), 450, -1);
+ gtk_window_set_default_size(GTK_WINDOW(dialog), 450, 450);
if (parent_window != NULL)
{
@@ -88,11 +88,18 @@ config_dialog_t *create_workflow_config_dialog(const char
*workflow_name, GtkWin
gtk_window_get_icon_name(parent_window));
}
- GtkWidget *content = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
+ GtkWidget *scrolled = gtk_scrolled_window_new(NULL, NULL);
+ GtkWidget *content = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+ gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled), content);
+
+ GtkWidget *dialog_box = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
+ gtk_box_pack_start(GTK_BOX(dialog_box), scrolled, false, true, 0);
g_events_options = NULL;
g_list_foreach(events, (GFunc)create_event_config_dialog_content_cb, content);
+ gtk_widget_show_all(GTK_WIDGET(scrolled));
+
config_dialog_t *cdialog = new_config_dialog(dialog,
g_events_options,
(config_save_fun_t)save_data_from_worfklow_dialog);
--
1.8.1.4
Show replies by date
Scrollbars has been chosen instead of displaying an event configuration
in a separate tab because any event option can expand dialog size to
enormous size. Therefore separate tabs requires scrollbars too.
Even more the tabs are less clear than displaying all options on a
single window.
Closes #957997
Signed-off-by: Jakub Filak <jfilak(a)redhat.com>
---
src/gtk-helpers/event_config_dialog.c | 5 +++++
src/gtk-helpers/workflow_config_dialog.c | 11 +++++++++--
2 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/src/gtk-helpers/event_config_dialog.c
b/src/gtk-helpers/event_config_dialog.c
index 82d07df..238c84b 100644
--- a/src/gtk-helpers/event_config_dialog.c
+++ b/src/gtk-helpers/event_config_dialog.c
@@ -202,6 +202,11 @@ config_dialog_t *create_event_config_dialog_content(event_config_t
*event, GtkWi
gtk_grid_set_row_spacing(GTK_GRID(option_table), 2);
g_object_set_data(G_OBJECT(option_table), "n-rows", (gpointer)-1);
+ gtk_widget_set_hexpand(option_table, TRUE);
+ gtk_widget_set_vexpand(option_table, TRUE);
+ gtk_widget_set_halign(option_table, GTK_ALIGN_FILL);
+ gtk_widget_set_valign(option_table, GTK_ALIGN_FILL);
+
/* table to hold advanced options
* hidden in expander which is visible only if there's at least
* one advanced option
diff --git a/src/gtk-helpers/workflow_config_dialog.c
b/src/gtk-helpers/workflow_config_dialog.c
index 93dd622..32be2fa 100644
--- a/src/gtk-helpers/workflow_config_dialog.c
+++ b/src/gtk-helpers/workflow_config_dialog.c
@@ -80,7 +80,7 @@ config_dialog_t *create_workflow_config_dialog(const char
*workflow_name, GtkWin
NULL);
gtk_window_set_resizable(GTK_WINDOW(dialog), true);
- gtk_window_set_default_size(GTK_WINDOW(dialog), 450, -1);
+ gtk_window_set_default_size(GTK_WINDOW(dialog), 450, 450);
if (parent_window != NULL)
{
@@ -88,11 +88,18 @@ config_dialog_t *create_workflow_config_dialog(const char
*workflow_name, GtkWin
gtk_window_get_icon_name(parent_window));
}
- GtkWidget *content = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
+ GtkWidget *scrolled = gtk_scrolled_window_new(NULL, NULL);
+ GtkWidget *content = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+ gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled), content);
+
+ GtkWidget *dialog_box = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
+ gtk_box_pack_start(GTK_BOX(dialog_box), scrolled, false, true, 0);
g_events_options = NULL;
g_list_foreach(events, (GFunc)create_event_config_dialog_content_cb, content);
+ gtk_widget_show_all(GTK_WIDGET(scrolled));
+
config_dialog_t *cdialog = new_config_dialog(dialog,
g_events_options,
(config_save_fun_t)save_data_from_worfklow_dialog);
--
1.8.1.4
Works as expected - pushed, thanks!