summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDenys Vlasenko <dvlasenk@redhat.com>2011-02-22 17:46:46 +0100
committerDenys Vlasenko <dvlasenk@redhat.com>2011-02-22 17:46:46 +0100
commit6706eab0e92f9efde29a00b03e5cff2aa496dcf2 (patch)
treeb17d04e60b89818c6495c8087a2d13c2385e4ef4 /src
parentb4550d04f21db269666e4125593dd14503ccdc33 (diff)
downloadabrt-6706eab0e92f9efde29a00b03e5cff2aa496dcf2.tar.gz
abrt-6706eab0e92f9efde29a00b03e5cff2aa496dcf2.tar.xz
abrt-6706eab0e92f9efde29a00b03e5cff2aa496dcf2.zip
gui-wizard-gtk: fix the problem with "missing" reporter checkboxes
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Diffstat (limited to 'src')
-rw-r--r--src/gui-wizard-gtk/main.c9
-rw-r--r--src/gui-wizard-gtk/wizard.c38
-rw-r--r--src/gui-wizard-gtk/wizard.h3
3 files changed, 29 insertions, 21 deletions
diff --git a/src/gui-wizard-gtk/main.c b/src/gui-wizard-gtk/main.c
index 5f062b41..aabd84d6 100644
--- a/src/gui-wizard-gtk/main.c
+++ b/src/gui-wizard-gtk/main.c
@@ -130,6 +130,11 @@ VERB2 log("g_report_events:'%s'", g_report_events);
}
add_event_buttons(g_box_reporters, g_report_events, /*callback:*/ NULL, /*radio:*/ false);
+
+ /* We can't just do gtk_widget_show_all once in main:
+ * We created new widgets (buttons). Need to make them visible.
+ */
+ gtk_widget_show_all(GTK_WIDGET(g_assistant));
}
int main(int argc, char **argv)
@@ -166,12 +171,10 @@ int main(int argc, char **argv)
g_dump_dir_name = argv[0];
- GtkWidget *assistant = create_assistant();
+ create_assistant();
reload_dump_dir();
- gtk_widget_show_all(assistant);
-
/* Enter main loop */
gtk_main();
diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c
index 63b63757..a8a39a16 100644
--- a/src/gui-wizard-gtk/wizard.c
+++ b/src/gui-wizard-gtk/wizard.c
@@ -5,6 +5,7 @@
#define DEFAULT_WIDTH 800
#define DEFAULT_HEIGHT 500
+GtkAssistant *g_assistant;
GtkLabel *g_lbl_cd_reason;
GtkLabel *g_lbl_analyze_log;
GtkBox *g_box_analyzers;
@@ -14,7 +15,6 @@ GtkTextView *g_tv_backtrace;
GtkTreeView *g_tv_details;
GtkListStore *g_ls_details;
-static GtkWidget *assistant;
static GtkBuilder *builder;
/* THE PAGE FLOW
@@ -143,7 +143,7 @@ static gboolean consume_cmd_output(GIOChannel *source, GIOCondition condition, g
free(msg);
reload_dump_dir();
/* Unfreeze assistant */
- gtk_assistant_set_page_complete(GTK_ASSISTANT(assistant),
+ gtk_assistant_set_page_complete(g_assistant,
pages[PAGENO_ANALYZE_PROGRESS].page_widget, true);
return FALSE; /* "please remove this event" */
}
@@ -201,7 +201,7 @@ static void next_page(GtkAssistant *assistant, gpointer user_data)
);
gtk_label_set_text(g_lbl_analyze_log, _("Analyzing..."));
/* Freeze assistant so it can't move away from the page until analyzing is done */
- gtk_assistant_set_page_complete(GTK_ASSISTANT(assistant),
+ gtk_assistant_set_page_complete(g_assistant,
pages[PAGENO_ANALYZE_PROGRESS].page_widget, false);
}
}
@@ -274,12 +274,12 @@ static void add_pages()
pages[i].page_widget = page;
- gtk_assistant_append_page(GTK_ASSISTANT(assistant), page);
+ gtk_assistant_append_page(g_assistant, page);
//FIXME: shouldn't be complete until something is selected!
- gtk_assistant_set_page_complete(GTK_ASSISTANT(assistant), page, true);
+ gtk_assistant_set_page_complete(g_assistant, page, true);
- gtk_assistant_set_page_title(GTK_ASSISTANT(assistant), page, pages[i].title);
- gtk_assistant_set_page_type(GTK_ASSISTANT(assistant), page, pages[i].type);
+ gtk_assistant_set_page_title(g_assistant, page, pages[i].title);
+ gtk_assistant_set_page_type(g_assistant, page, pages[i].type);
VERB1 log("added page: %s", page_names[i]);
}
@@ -294,23 +294,27 @@ static void add_pages()
g_tv_details = GTK_TREE_VIEW(gtk_builder_get_object(builder, "tv_details"));
}
-GtkWidget *create_assistant()
+void create_assistant()
{
- assistant = gtk_assistant_new();
- gtk_window_set_default_size(GTK_WINDOW(assistant), DEFAULT_WIDTH, DEFAULT_HEIGHT);
- gtk_window_set_title(GTK_WINDOW(assistant), g_dump_dir_name);
- gtk_window_set_icon_name(GTK_WINDOW(assistant), "abrt");
+ g_assistant = GTK_ASSISTANT(gtk_assistant_new());
- g_signal_connect(G_OBJECT(assistant), "cancel", G_CALLBACK(gtk_main_quit), NULL);
- g_signal_connect(G_OBJECT(assistant), "close", G_CALLBACK(gtk_main_quit), NULL);
- g_signal_connect(G_OBJECT(assistant), "apply", G_CALLBACK(next_page), NULL);
+ GtkWindow *wnd_assistant = GTK_WINDOW(g_assistant);
+ gtk_window_set_default_size(wnd_assistant, DEFAULT_WIDTH, DEFAULT_HEIGHT);
+ gtk_window_set_title(wnd_assistant, g_dump_dir_name);
+ gtk_window_set_icon_name(wnd_assistant, "abrt");
+
+ GObject *obj_assistant = G_OBJECT(g_assistant);
+ g_signal_connect(obj_assistant, "cancel", G_CALLBACK(gtk_main_quit), NULL);
+ g_signal_connect(obj_assistant, "close", G_CALLBACK(gtk_main_quit), NULL);
+ g_signal_connect(obj_assistant, "apply", G_CALLBACK(next_page), NULL);
builder = gtk_builder_new();
+
add_pages();
+
create_details_treeview();
g_ls_details = gtk_list_store_new(DETAIL_NUM_COLUMNS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
gtk_tree_view_set_model(g_tv_details, GTK_TREE_MODEL(g_ls_details));
- gtk_builder_connect_signals(builder, NULL);
- return assistant;
+ gtk_builder_connect_signals(builder, NULL);
}
diff --git a/src/gui-wizard-gtk/wizard.h b/src/gui-wizard-gtk/wizard.h
index af134f64..06916198 100644
--- a/src/gui-wizard-gtk/wizard.h
+++ b/src/gui-wizard-gtk/wizard.h
@@ -8,6 +8,7 @@ enum {
PAGENO_REPORT,
PAGENO_REPORT_PROGRESS,
};
+extern GtkAssistant *g_assistant;
extern GtkLabel *g_lbl_cd_reason;
extern GtkLabel *g_lbl_analyze_log;
extern GtkBox *g_box_analyzers;
@@ -22,7 +23,7 @@ enum
};
extern GtkTreeView *g_tv_details;
extern GtkListStore *g_ls_details;
-GtkWidget *create_assistant(void);
+void create_assistant(void);
extern char *g_glade_file;