Works for me & looks alright.
On Tue, Oct 09, 2012 at 16:13:53 +0200, Jakub Filak wrote:
- If user wrote a comment or added a file, the selected event was
updated to the post-create event
- closes rhbz#861973
Signed-off-by: Jakub Filak <jfilak(a)redhat.com>
---
src/gui-wizard-gtk/main.c | 2 +-
src/gui-wizard-gtk/wizard.c | 10 +++++-----
src/gui-wizard-gtk/wizard.h | 16 +++++++++++++++-
3 files changed, 21 insertions(+), 7 deletions(-)
diff --git a/src/gui-wizard-gtk/main.c b/src/gui-wizard-gtk/main.c
index c09f6d8..4748eb8 100644
--- a/src/gui-wizard-gtk/main.c
+++ b/src/gui-wizard-gtk/main.c
@@ -146,7 +146,7 @@ int main(int argc, char **argv)
g_custom_logger = &show_error_as_msgbox;
- update_gui_state_from_problem_data();
+ update_gui_state_from_problem_data(UPDATE_SELECTED_EVENT);
/* Enter main loop */
gtk_main();
diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c
index 2bd8a63..7aef587 100644
--- a/src/gui-wizard-gtk/wizard.c
+++ b/src/gui-wizard-gtk/wizard.c
@@ -473,7 +473,7 @@ static void save_text_if_changed(const char *name, const char
*new_value)
//FIXME: else: what to do with still-unsaved data in the widget??
dd_close(dd);
problem_data_reload_from_dump_dir();
- update_gui_state_from_problem_data();
+ update_gui_state_from_problem_data(/* don't update selected event */ 0);
}
}
@@ -1292,7 +1292,7 @@ static void update_ls_details_checkboxes(void)
}
}
-void update_gui_state_from_problem_data(void)
+void update_gui_state_from_problem_data(int flags)
{
update_window_title();
remove_tabs_from_notebook(g_notebook);
@@ -1326,7 +1326,7 @@ void update_gui_state_from_problem_data(void)
G_CALLBACK(event_rb_was_toggled)
);
- if (g_expert_mode)
+ if (flags & UPDATE_SELECTED_EVENT && g_expert_mode)
{
/* Update the value of currently selected event */
free(g_event_selected);
@@ -1746,7 +1746,7 @@ static gboolean consume_cmd_output(GIOChannel *source, GIOCondition
condition, g
gtk_widget_set_sensitive(g_btn_next, true);
problem_data_reload_from_dump_dir();
- update_gui_state_from_problem_data();
+ update_gui_state_from_problem_data(UPDATE_SELECTED_EVENT);
if (retval)
{
@@ -2635,7 +2635,7 @@ static void on_btn_add_file(GtkButton *button)
if (!message)
{
problem_data_reload_from_dump_dir();
- update_gui_state_from_problem_data();
+ update_gui_state_from_problem_data(/* don't update selected
event */ 0);
/* Set flags for the new item */
update_ls_details_checkboxes();
}
diff --git a/src/gui-wizard-gtk/wizard.h b/src/gui-wizard-gtk/wizard.h
index a6bccf7..d2caaa6 100644
--- a/src/gui-wizard-gtk/wizard.h
+++ b/src/gui-wizard-gtk/wizard.h
@@ -22,7 +22,21 @@
#include "internal_libreport_gtk.h"
void create_assistant(void);
-void update_gui_state_from_problem_data(void);
+
+enum
+{
+ /*
+ * the selected event is updated to a first event wich can be applied on
+ * the current problem directory
+ */
+ UPDATE_SELECTED_EVENT = 1 << 0,
+};
+
+/* Loads problem's data and update GUI elements according to the data.
+ *
+ * @param flags Flags to alternate the update process
+ */
+void update_gui_state_from_problem_data(int flags);
void show_error_as_msgbox(const char *msg);
--
1.7.11.4