Fix a bug in logging, add "Repeat" button

Signed-off-by: Jakub Filak <jfilak@redhat.com>
This commit is contained in:
Jakub Filak 2014-08-19 15:13:53 +02:00
parent c64a4fb76b
commit ef61d27e19
13 changed files with 1946 additions and 7 deletions

View File

@ -0,0 +1,75 @@
From 7d30aa09f740b3559ba610022577189a46dce112 Mon Sep 17 00:00:00 2001
From: Jakub Filak <jfilak@redhat.com>
Date: Thu, 24 Jul 2014 13:34:50 +0200
Subject: [PATCH 09/20] logging: test log level at first step
Return from the logger immediately if message's log level is not
sufficient to write it to the log.
This patch is a workaround for rhbz#1122690 where we try to log a
'post'ed string which has 18MB of size. It is not worth to try to fix it
properly. We do not log such a big amount of data in non-debug mode, we
need to have the logging extremely fast and we can live with crashes in
debug mode.
Signed-off-by: Jakub Filak <jfilak@redhat.com>
---
src/lib/logging.c | 26 +++++++++++---------------
1 file changed, 11 insertions(+), 15 deletions(-)
diff --git a/src/lib/logging.c b/src/lib/logging.c
index 259a634..4b9dd87 100644
--- a/src/lib/logging.c
+++ b/src/lib/logging.c
@@ -66,7 +66,7 @@ static void log_handler(int level,
int line,
const char *func)
{
- if (!logmode)
+ if (!logmode || !should_log(level))
return;
/* This is ugly and costs +60 bytes compared to multiple
@@ -122,29 +122,25 @@ static void log_handler(int level,
strcpy(&msg[used], msg_eol);
if (flags & LOGMODE_STDIO) {
- if(should_log(level))
- full_write(STDERR_FILENO, msg, used + msgeol_len);
+ full_write(STDERR_FILENO, msg, used + msgeol_len);
}
msg[used] = '\0'; /* remove msg_eol (usually "\n") */
if (flags & LOGMODE_SYSLOG) {
- if(should_log(level))
- syslog(level, "%s", msg + prefix_len);
+ syslog(level, "%s", msg + prefix_len);
}
if ((flags & LOGMODE_CUSTOM) && g_custom_logger) {
- if(should_log(level))
- g_custom_logger(msg + prefix_len);
+ g_custom_logger(msg + prefix_len);
}
if (flags & LOGMODE_JOURNAL) {
- if(should_log(level))
- sd_journal_send("MESSAGE=%s", msg + prefix_len,
- "PRIORITY=%d", level,
- "CODE_FILE=%s", file,
- "CODE_LINE=%d", line,
- "CODE_FUNC=%s", func,
- "SYSLOG_FACILITY=1",
- NULL);
+ sd_journal_send("MESSAGE=%s", msg + prefix_len,
+ "PRIORITY=%d", level,
+ "CODE_FILE=%s", file,
+ "CODE_LINE=%d", line,
+ "CODE_FUNC=%s", func,
+ "SYSLOG_FACILITY=1",
+ NULL);
}
}
--
2.0.4

View File

@ -1,7 +1,7 @@
From 1cef1ddc28f327534cfdb433d1f2e10d01b10f44 Mon Sep 17 00:00:00 2001
From: Jakub Filak <jfilak@redhat.com>
Date: Thu, 24 Jul 2014 16:07:36 +0200
Subject: [PATCH] json: include json.h accordingly to json-c CFLAGS
Subject: [PATCH 10/20] json: include json.h accordingly to json-c CFLAGS
We use $(pkg-config --cflags json-c) but we include <json/json.h>. The
proper way to include the json-c header is to include <json.h>.
@ -30,5 +30,5 @@ index 08ffe8c..fc26bc6 100644
#include <satyr/abrt.h>
#include <satyr/report.h>
--
1.9.3
2.0.4

View File

@ -1,7 +1,7 @@
From cc36c5c2b109fa7ac864400e695c88808b19a5ed Mon Sep 17 00:00:00 2001
From: Jakub Filak <jfilak@redhat.com>
Date: Fri, 25 Jul 2014 12:39:28 +0200
Subject: [PATCH] ureport: include json.h accordingly to json-c CFLAGS
Subject: [PATCH 11/20] ureport: include json.h accordingly to json-c CFLAGS
commit 1cef1ddc28f327534cfdb433d1f2e10d01b10f44
@ -41,5 +41,5 @@ index e6237cc..063a1e7 100644
#include "ureport.h"
#include "libreport_curl.h"
--
1.9.3
2.0.4

View File

@ -0,0 +1,432 @@
From 8190657d9fb808277f29e5535983a0a1f55badcf Mon Sep 17 00:00:00 2001
From: Jakub Filak <jfilak@redhat.com>
Date: Tue, 29 Jul 2014 18:59:31 +0200
Subject: [PATCH 12/20] gui: port to gtk-3.13
Signed-off-by: Jakub Filak <jfilak@redhat.com>
---
src/gtk-helpers/config_dialog.c | 7 ++++-
src/gtk-helpers/event_config_dialog.c | 24 +++++++++++++-
src/gtk-helpers/workflow_config_dialog.c | 7 ++++-
src/gui-wizard-gtk/wizard.c | 47 ++++++++++++++++++++++-----
src/gui-wizard-gtk/wizard.glade | 54 ++++++++++++++++----------------
5 files changed, 101 insertions(+), 38 deletions(-)
diff --git a/src/gtk-helpers/config_dialog.c b/src/gtk-helpers/config_dialog.c
index 2a723cc..5370fcb 100644
--- a/src/gtk-helpers/config_dialog.c
+++ b/src/gtk-helpers/config_dialog.c
@@ -366,7 +366,7 @@ GtkWindow *create_config_list_window(GHashTable *configs, GtkWindow *parent)
//buttons
GtkWidget *btn_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5);
GtkWidget *configure_btn = gtk_button_new_with_mnemonic(_("C_onfigure"));
- GtkWidget *align = gtk_alignment_new(0, 0, 0, 0);
+
GtkWidget *close_btn = gtk_button_new_with_mnemonic(_("_Close"));
GtkSizeGroup *sg = gtk_size_group_new(GTK_SIZE_GROUP_BOTH);
//force apply and close to have the same size
@@ -377,8 +377,13 @@ GtkWindow *create_config_list_window(GHashTable *configs, GtkWindow *parent)
g_signal_connect(close_btn, "clicked", (GCallback)on_close_cb, window);
gtk_box_pack_start(GTK_BOX(btn_box), close_btn, 0, 0, 5);
+#if ((GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION < 13) || (GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION == 13 && GTK_MICRO_VERSION < 5))
+ GtkWidget *align = gtk_alignment_new(0, 0, 0, 0);
gtk_box_pack_start(GTK_BOX(btn_box), align, true, true, 5);
gtk_box_pack_start(GTK_BOX(btn_box), configure_btn, 0, 0, 5);
+#else
+ gtk_box_pack_end(GTK_BOX(btn_box), configure_btn, 0, 0, 5);
+#endif
gtk_box_pack_start(GTK_BOX(main_vbox), btn_box, 0, 0, 0);
diff --git a/src/gtk-helpers/event_config_dialog.c b/src/gtk-helpers/event_config_dialog.c
index 3cc111c..e5ce612 100644
--- a/src/gtk-helpers/event_config_dialog.c
+++ b/src/gtk-helpers/event_config_dialog.c
@@ -35,9 +35,16 @@ static GtkWidget *gtk_label_new_justify_left(const gchar *label_str)
{
GtkWidget *label = gtk_label_new(label_str);
gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT);
+#if ((GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION < 13) || (GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION == 13 && GTK_MICRO_VERSION < 5))
gtk_misc_set_alignment(GTK_MISC(label), /*xalign:*/ 0, /*yalign:*/ 0.5);
/* Make some space between label and input field to the right of it: */
gtk_misc_set_padding(GTK_MISC(label), /*xpad:*/ 5, /*ypad:*/ 0);
+#else
+ gtk_widget_set_halign (label, GTK_ALIGN_START);
+ /* Make some space between label and input field to the right of it: */
+ gtk_widget_set_margin_start(label, 5);
+ gtk_widget_set_margin_end(label, 5);
+#endif
return label;
}
@@ -146,7 +153,12 @@ static void add_option_to_table(gpointer data, gpointer user_data)
case OPTION_TYPE_HINT_HTML:
label = gtk_label_new(option_label);
gtk_label_set_use_markup(GTK_LABEL(label), TRUE);
+#if ((GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION < 13) || (GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION == 13 && GTK_MICRO_VERSION < 5))
gtk_misc_set_alignment(GTK_MISC(label), /*x,yalign:*/ 0.0, 0.0);
+#else
+ gtk_widget_set_halign(label, GTK_ALIGN_START);
+ gtk_widget_set_valign(label, GTK_ALIGN_START);
+#endif
make_label_autowrap_on_resize(GTK_LABEL(label));
last_row = add_one_row_to_grid(option_table);
@@ -178,7 +190,12 @@ static void add_option_to_table(gpointer data, gpointer user_data)
{
label = gtk_label_new(option->eo_note_html);
gtk_label_set_use_markup(GTK_LABEL(label), TRUE);
+#if ((GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION < 13) || (GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION == 13 && GTK_MICRO_VERSION < 5))
gtk_misc_set_alignment(GTK_MISC(label), /*x,yalign:*/ 0.0, 0.0);
+#else
+ gtk_widget_set_halign(label, GTK_ALIGN_START);
+ gtk_widget_set_valign(label, GTK_ALIGN_START);
+#endif
make_label_autowrap_on_resize(GTK_LABEL(label));
last_row = add_one_row_to_grid(option_table);
@@ -194,9 +211,14 @@ static GtkWidget *create_event_config_grid()
{
GtkWidget *option_table = gtk_grid_new();
+#if ((GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION < 11) || (GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION == 11 && GTK_MICRO_VERSION < 2))
gtk_widget_set_margin_left(option_table, 5);
- gtk_widget_set_margin_top(option_table, 5);
gtk_widget_set_margin_right(option_table, 5);
+#else
+ gtk_widget_set_margin_start(option_table, 5);
+ gtk_widget_set_margin_end(option_table, 5);
+#endif
+ gtk_widget_set_margin_top(option_table, 5);
gtk_widget_set_margin_bottom(option_table, 5);
gtk_grid_set_row_homogeneous(GTK_GRID(option_table), FALSE);
diff --git a/src/gtk-helpers/workflow_config_dialog.c b/src/gtk-helpers/workflow_config_dialog.c
index d55f2f0..6ae130d 100644
--- a/src/gtk-helpers/workflow_config_dialog.c
+++ b/src/gtk-helpers/workflow_config_dialog.c
@@ -37,9 +37,14 @@ static void create_event_config_dialog_content_cb(event_config_t *ec, gpointer n
GtkWidget *ev_lbl = gtk_label_new(ec_get_screen_name(ec));
GtkWidget *content = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#if ((GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION < 11) || (GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION == 11 && GTK_MICRO_VERSION < 2))
gtk_widget_set_margin_left(content, 10);
- gtk_widget_set_margin_top(content, 5);
gtk_widget_set_margin_right(content, 10);
+#else
+ gtk_widget_set_margin_start(content, 10);
+ gtk_widget_set_margin_end(content, 10);
+#endif
+ gtk_widget_set_margin_top(content, 5);
gtk_widget_set_margin_bottom(content, 10);
config_dialog_t *cdialog = create_event_config_dialog_content(ec, (GtkWidget *)content);
diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c
index 0fde0f4..d442495 100644
--- a/src/gui-wizard-gtk/wizard.c
+++ b/src/gui-wizard-gtk/wizard.c
@@ -261,12 +261,19 @@ static void wrap_fixer(GtkWidget *widget, gpointer data_unused)
{
GtkLabel *label = (GtkLabel*)widget;
//const char *txt = gtk_label_get_label(label);
+#if ((GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION < 13) || (GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION == 13 && GTK_MICRO_VERSION < 5))
GtkMisc *misc = (GtkMisc*)widget;
gfloat yalign; // = 111;
gint ypad; // = 111;
if (gtk_label_get_line_wrap(label)
&& (gtk_misc_get_alignment(misc, NULL, &yalign), yalign == 0)
&& (gtk_misc_get_padding(misc, NULL, &ypad), ypad == 0)
+#else
+ if (gtk_label_get_line_wrap(label)
+ && (gtk_widget_get_halign(widget) == GTK_ALIGN_START)
+ && (gtk_widget_get_margin_top(widget) == 0)
+ && (gtk_widget_get_margin_bottom(widget) == 0)
+#endif
) {
//log("label '%s' set to autowrap", txt);
make_label_autowrap_on_resize(label);
@@ -942,7 +949,12 @@ static event_gui_data_t *add_event_buttons(GtkBox *box,
if (!event_name || !event_name[0])
{
GtkWidget *lbl = gtk_label_new(_("No reporting targets are defined for this problem. Check configuration in /etc/libreport/*"));
+#if ((GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION < 13) || (GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION == 13 && GTK_MICRO_VERSION < 5))
gtk_misc_set_alignment(GTK_MISC(lbl), /*x*/ 0.0, /*y*/ 0.0);
+#else
+ gtk_widget_set_halign (lbl, GTK_ALIGN_START);
+ gtk_widget_set_valign (lbl, GTK_ALIGN_END);
+#endif
make_label_autowrap_on_resize(GTK_LABEL(lbl));
gtk_box_pack_start(box, lbl, /*expand*/ true, /*fill*/ false, /*padding*/ 0);
return NULL;
@@ -1487,12 +1499,13 @@ static void hide_next_step_button()
/* 1. hide next button */
gtk_widget_hide(g_btn_next);
/* 2. move close button to the last position */
- gtk_box_reorder_child(g_box_buttons, g_btn_close, 3);
+ gtk_box_set_child_packing(g_box_buttons, g_btn_close, false, false, 5, GTK_PACK_END);
}
static void show_next_step_button()
{
- gtk_box_reorder_child(g_box_buttons, g_btn_close, 0);
+ gtk_box_set_child_packing(g_box_buttons, g_btn_close, false, false, 5, GTK_PACK_START);
+
gtk_widget_show(g_btn_next);
}
@@ -2044,7 +2057,12 @@ static void add_warning(const char *warning)
/* should be safe to free it, gtk calls strdup() to copy it */
free(label_str);
+#if ((GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION < 13) || (GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION == 13 && GTK_MICRO_VERSION < 5))
gtk_misc_set_alignment(GTK_MISC(warning_lbl), 0.0, 0.0);
+#else
+ gtk_widget_set_halign (warning_lbl, GTK_ALIGN_START);
+ gtk_widget_set_valign (warning_lbl, GTK_ALIGN_END);
+#endif
gtk_label_set_justify(GTK_LABEL(warning_lbl), GTK_JUSTIFY_LEFT);
gtk_label_set_line_wrap(GTK_LABEL(warning_lbl), TRUE);
@@ -3415,17 +3433,16 @@ void create_assistant(bool expert_mode)
gtk_box_pack_start(g_box_buttons, g_btn_stop, false, false, 5);
gtk_box_pack_start(g_box_buttons, g_btn_onfail, false, false, 5);
/* Btns above are to the left, the rest are to the right: */
+#if ((GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION < 13) || (GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION == 13 && GTK_MICRO_VERSION < 5))
GtkWidget *w = gtk_alignment_new(0.0, 0.0, 1.0, 1.0);
gtk_box_pack_start(g_box_buttons, w, true, true, 5);
gtk_box_pack_start(g_box_buttons, g_btn_next, false, false, 5);
+#else
+ gtk_widget_set_valign(GTK_WIDGET(g_btn_next), GTK_ALIGN_END);
+ gtk_box_pack_end(g_box_buttons, g_btn_next, false, false, 5);
+#endif
{ /* Warnings area widget definition start */
- GtkWidget *alignment_left = gtk_alignment_new(0.5,0.5,1,1);
- gtk_widget_set_visible(alignment_left, TRUE);
-
- GtkWidget *alignment_right = gtk_alignment_new(0.5,0.5,1,1);
- gtk_widget_set_visible(alignment_right, TRUE);
-
g_box_warning_labels = GTK_BOX(gtk_box_new(GTK_ORIENTATION_VERTICAL, 0));
gtk_widget_set_visible(GTK_WIDGET(g_box_warning_labels), TRUE);
@@ -3439,10 +3456,24 @@ void create_assistant(bool expert_mode)
g_widget_warnings_area = GTK_WIDGET(gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0));
gtk_widget_set_visible(g_widget_warnings_area, FALSE);
gtk_widget_set_no_show_all(g_widget_warnings_area, TRUE);
+
+#if ((GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION < 13) || (GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION == 13 && GTK_MICRO_VERSION < 5))
+ GtkWidget *alignment_left = gtk_alignment_new(0.5,0.5,1,1);
+ gtk_widget_set_visible(alignment_left, TRUE);
gtk_box_pack_start(GTK_BOX(g_widget_warnings_area), alignment_left, true, false, 0);
+#else
+ gtk_widget_set_valign(GTK_WIDGET(image), GTK_ALIGN_CENTER);
+ gtk_widget_set_valign(GTK_WIDGET(vbox), GTK_ALIGN_CENTER);
+#endif
+
gtk_box_pack_start(GTK_BOX(g_widget_warnings_area), image, false, false, 5);
gtk_box_pack_start(GTK_BOX(g_widget_warnings_area), GTK_WIDGET(vbox), false, false, 0);
+
+#if ((GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION < 13) || (GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION == 13 && GTK_MICRO_VERSION < 5))
gtk_box_pack_start(GTK_BOX(g_widget_warnings_area), alignment_right, true, false, 0);
+ GtkWidget *alignment_right = gtk_alignment_new(0.5,0.5,1,1);
+ gtk_widget_set_visible(alignment_right, TRUE);
+#endif
} /* Warnings area widget definition end */
g_box_assistant = GTK_BOX(gtk_box_new(GTK_ORIENTATION_VERTICAL, 0));
diff --git a/src/gui-wizard-gtk/wizard.glade b/src/gui-wizard-gtk/wizard.glade
index 2c1f99e..3ad43d6 100644
--- a/src/gui-wizard-gtk/wizard.glade
+++ b/src/gui-wizard-gtk/wizard.glade
@@ -31,8 +31,8 @@
<object class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="margin_left">4</property>
- <property name="stock">gtk-media-record</property>
+ <property name="margin_start">4</property>
+ <property name="icon_name">media-record</property>
<property name="icon-size">1</property>
</object>
<packing>
@@ -45,7 +45,7 @@
<object class="GtkLabel" id="label10">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="margin_left">6</property>
+ <property name="margin_start">6</property>
<property name="margin_top">3</property>
<property name="margin_bottom">3</property>
<property name="label" translatable="yes">Possible sensitive data detected, feel free to edit the report and remove them.</property>
@@ -81,7 +81,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
- <property name="xalign">0</property>
+ <property name="halign">start</property>
<property name="draw_indicator">True</property>
</object>
<packing>
@@ -151,8 +151,8 @@
<object class="GtkLabel" id="lbl_cd_reason">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0</property>
+ <property name="halign">start</property>
+ <property name="valign">start</property>
<property name="wrap">True</property>
<attributes>
<attribute name="style" value="normal"/>
@@ -170,8 +170,8 @@
<object class="GtkLabel" id="label7">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0</property>
+ <property name="halign">start</property>
+ <property name="valign">start</property>
<property name="label" translatable="yes">On the following screens, you will be asked to describe how the problem occurred, to choose how to analyze the problem (if needed), to review collected data, and to choose where the problem should be reported. Click 'Forward' to proceed.</property>
<property name="wrap">True</property>
</object>
@@ -230,8 +230,8 @@
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0</property>
+ <property name="halign">start</property>
+ <property name="valign">start</property>
<property name="label" translatable="yes">How did this problem happen (step-by-step)? How can it be reproduced? Any additional comments useful for diagnosing the problem? Please use English if possible.</property>
<property name="wrap">True</property>
</object>
@@ -282,8 +282,8 @@
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0</property>
+ <property name="halign">start</property>
+ <property name="valign">start</property>
<property name="label" translatable="yes">&lt;b&gt;Your comments are not private.&lt;/b&gt; They may be included into publicly visible problem reports.</property>
<property name="use_markup">True</property>
<property name="wrap">True</property>
@@ -302,7 +302,7 @@
<object class="GtkLabel" id="label9">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">1</property>
+ <property name="xalign">end</property>
<property name="label" translatable="yes">If you don't know how to describe it, you can</property>
</object>
<packing>
@@ -319,7 +319,7 @@
<property name="receives_default">True</property>
<property name="has_tooltip">True</property>
<property name="relief">none</property>
- <property name="xalign">0</property>
+ <property name="halign">start</property>
</object>
<packing>
<property name="expand">False</property>
@@ -340,7 +340,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
- <property name="xalign">0</property>
+ <property name="halign">start</property>
<property name="draw_indicator">True</property>
</object>
<packing>
@@ -486,8 +486,8 @@
<object class="GtkLabel" id="label8">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0</property>
+ <property name="halign">start</property>
+ <property name="valign">start</property>
<property name="label" translatable="yes">Please review the data before it gets reported. Depending on reporter chosen, it may end up publicly visible.</property>
<property name="wrap">True</property>
</object>
@@ -553,7 +553,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
- <property name="xalign">0</property>
+ <property name="halign">start</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
</object>
@@ -569,7 +569,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
- <property name="xalign">0</property>
+ <property name="halign">start</property>
<property name="draw_indicator">True</property>
<property name="group">rb_forbidden_words</property>
</object>
@@ -700,7 +700,7 @@
<object class="GtkLabel" id="label4">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
+ <property name="halign">start</property>
<property name="label" translatable="yes">Size:</property>
<property name="justify">right</property>
<attributes>
@@ -716,7 +716,7 @@
<object class="GtkLabel" id="lbl_size">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
+ <property name="halign">start</property>
</object>
<packing>
<property name="left_attach">1</property>
@@ -781,7 +781,7 @@
<property name="receives_default">False</property>
<property name="tooltip_text" translatable="yes">If you are reporting to a remote server, make sure you removed all private data (such as usernames and passwords). Backtrace, command line, environment variables are the typical items in need of examining.</property>
<property name="use_underline">True</property>
- <property name="xalign">0</property>
+ <property name="halign">start</property>
<property name="draw_indicator">True</property>
</object>
<packing>
@@ -835,7 +835,7 @@
<object class="GtkLabel" id="lbl_event_log">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
+ <property name="halign">start</property>
<property name="label" translatable="yes">Processing did not start yet</property>
<property name="use_markup">True</property>
<property name="justify">fill</property>
@@ -902,8 +902,8 @@
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0</property>
+ <property name="halign">start</property>
+ <property name="valign">start</property>
<property name="label" translatable="yes">Reporting has finished. You can close this window now.</property>
<property name="wrap">True</property>
</object>
@@ -917,8 +917,8 @@
<object class="GtkLabel" id="label6">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="yalign">0</property>
+ <property name="halign">start</property>
+ <property name="valign">start</property>
<property name="label" translatable="yes">If you want to report the problem to a different destination, collect additional information, or provide a better problem description and repeat reporting process, press 'Forward'.</property>
<property name="wrap">True</property>
</object>
--
2.0.4

View File

@ -0,0 +1,30 @@
From 4f5c37633628ddc5ade13ba8407c2e2c725aa206 Mon Sep 17 00:00:00 2001
From: Jakub Filak <jfilak@redhat.com>
Date: Wed, 30 Jul 2014 08:02:17 +0200
Subject: [PATCH 13/20] gui: fix build errors introduced in the previous commit
Fixes commit 8190657d9fb808277f29e5535983a0a1f55badcf
Signed-off-by: Jakub Filak <jfilak@redhat.com>
---
src/gui-wizard-gtk/wizard.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c
index d442495..993b602 100644
--- a/src/gui-wizard-gtk/wizard.c
+++ b/src/gui-wizard-gtk/wizard.c
@@ -3470,9 +3470,9 @@ void create_assistant(bool expert_mode)
gtk_box_pack_start(GTK_BOX(g_widget_warnings_area), GTK_WIDGET(vbox), false, false, 0);
#if ((GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION < 13) || (GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION == 13 && GTK_MICRO_VERSION < 5))
- gtk_box_pack_start(GTK_BOX(g_widget_warnings_area), alignment_right, true, false, 0);
GtkWidget *alignment_right = gtk_alignment_new(0.5,0.5,1,1);
gtk_widget_set_visible(alignment_right, TRUE);
+ gtk_box_pack_start(GTK_BOX(g_widget_warnings_area), alignment_right, true, false, 0);
#endif
} /* Warnings area widget definition end */
--
2.0.4

View File

@ -0,0 +1,542 @@
From 2f8a61ce9fcf8e83a6cc54b7e5b64c0baf91999f Mon Sep 17 00:00:00 2001
From: Jakub Filak <jfilak@redhat.com>
Date: Wed, 30 Jul 2014 08:28:54 +0200
Subject: [PATCH 14/20] gui: generate the glade file with glade-3.18
No code changes.
Signed-off-by: Jakub Filak <jfilak@redhat.com>
---
src/gui-wizard-gtk/wizard.glade | 447 ++++++++++++++++++++--------------------
1 file changed, 226 insertions(+), 221 deletions(-)
diff --git a/src/gui-wizard-gtk/wizard.glade b/src/gui-wizard-gtk/wizard.glade
index 3ad43d6..c4a86f1 100644
--- a/src/gui-wizard-gtk/wizard.glade
+++ b/src/gui-wizard-gtk/wizard.glade
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.18.3 -->
<interface>
- <!-- interface-requires gtk+ 3.0 -->
+ <requires lib="gtk+" version="3.0"/>
<object class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -16,6 +17,217 @@
<column type="gpointer"/>
</columns>
</object>
+ <object class="GtkWindow" id="window3">
+ <property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes">Use this button to generate more informative backtrace after you installed additional debug packages</property>
+ <child>
+ <object class="GtkVBox" id="page_3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="spacing">3</property>
+ <child>
+ <object class="GtkLabel" id="label8">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="valign">start</property>
+ <property name="label" translatable="yes">Please review the data before it gets reported. Depending on reporter chosen, it may end up publicly visible.</property>
+ <property name="wrap">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkPaned" id="paned1">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkNotebook" id="notebook_edit">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="scrollable">True</property>
+ <child>
+ <placeholder/>
+ </child>
+ <child type="tab">
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child type="tab">
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child type="tab">
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="resize">True</property>
+ <property name="shrink">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkExpander" id="expander_search">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="border_width">1</property>
+ <child>
+ <object class="GtkBox" id="box7">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkBox" id="box8">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkRadioButton" id="rb_forbidden_words">
+ <property name="label" translatable="yes">Sensitive words</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="halign">start</property>
+ <property name="xalign">0.5</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="rb_custom_search">
+ <property name="label" translatable="yes">Custom</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="halign">start</property>
+ <property name="xalign">0.5</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">rb_forbidden_words</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="entry_search_bt">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="has_tooltip">True</property>
+ <property name="invisible_char">●</property>
+ <property name="secondary_icon_name">edit-find</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="secondary_icon_tooltip_text" translatable="yes">Clear the search bar to see the list of security sensitive words.</property>
+ <property name="secondary_icon_tooltip_markup" translatable="yes">Clear the search bar to see the list of security sensitive words.</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScrolledWindow" id="scrolledwindow1">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="shadow_type">in</property>
+ <child>
+ <object class="GtkTreeView" id="tv_sensitive_words">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="model">ls_sensitive_words</property>
+ <property name="headers_visible">False</property>
+ <property name="headers_clickable">False</property>
+ <property name="enable_search">False</property>
+ <property name="search_column">0</property>
+ <property name="enable_grid_lines">both</property>
+ <property name="enable_tree_lines">True</property>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection" id="tv_sensitive_words_selection"/>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn1">
+ <property name="resizable">True</property>
+ <property name="title" translatable="yes">file</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext1"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn2">
+ <property name="resizable">True</property>
+ <property name="title" translatable="yes">data</property>
+ <child>
+ <object class="GtkCellRendererText" id="crt_sensitive_word_value"/>
+ <attributes>
+ <attribute name="markup">1</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="label12">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Search</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="resize">True</property>
+ <property name="shrink">True</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
<object class="GtkWindow" id="sensitiveDataWarning_w">
<property name="can_focus">False</property>
<child>
@@ -33,7 +245,7 @@
<property name="can_focus">False</property>
<property name="margin_start">4</property>
<property name="icon_name">media-record</property>
- <property name="icon-size">1</property>
+ <property name="icon_size">1</property>
</object>
<packing>
<property name="expand">False</property>
@@ -82,6 +294,7 @@
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="halign">start</property>
+ <property name="xalign">0.5</property>
<property name="draw_indicator">True</property>
</object>
<packing>
@@ -302,7 +515,7 @@
<object class="GtkLabel" id="label9">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">end</property>
+ <property name="halign">end</property>
<property name="label" translatable="yes">If you don't know how to describe it, you can</property>
</object>
<packing>
@@ -318,8 +531,8 @@
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="has_tooltip">True</property>
- <property name="relief">none</property>
<property name="halign">start</property>
+ <property name="relief">none</property>
</object>
<packing>
<property name="expand">False</property>
@@ -341,6 +554,7 @@
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="halign">start</property>
+ <property name="xalign">0.5</property>
<property name="draw_indicator">True</property>
</object>
<packing>
@@ -472,215 +686,11 @@
</object>
</child>
</object>
- <object class="GtkWindow" id="window3">
- <property name="can_focus">False</property>
- <property name="tooltip_text" translatable="yes">Use this button to generate more informative backtrace after you installed additional debug packages</property>
- <child>
- <object class="GtkVBox" id="page_3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="spacing">3</property>
- <child>
- <object class="GtkLabel" id="label8">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">start</property>
- <property name="valign">start</property>
- <property name="label" translatable="yes">Please review the data before it gets reported. Depending on reporter chosen, it may end up publicly visible.</property>
- <property name="wrap">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkPaned" id="paned1">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkNotebook" id="notebook_edit">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="vexpand">True</property>
- <property name="scrollable">True</property>
- <child>
- <placeholder/>
- </child>
- <child type="tab">
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child type="tab">
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child type="tab">
- <placeholder/>
- </child>
- </object>
- <packing>
- <property name="resize">True</property>
- <property name="shrink">True</property>
- </packing>
- </child>
- <child>
- <object class="GtkExpander" id="expander_search">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="border_width">1</property>
- <child>
- <object class="GtkBox" id="box7">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkBox" id="box8">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <object class="GtkRadioButton" id="rb_forbidden_words">
- <property name="label" translatable="yes">Sensitive words</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="halign">start</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkRadioButton" id="rb_custom_search">
- <property name="label" translatable="yes">Custom</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="halign">start</property>
- <property name="draw_indicator">True</property>
- <property name="group">rb_forbidden_words</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkEntry" id="entry_search_bt">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="can_focus">True</property>
- <property name="has_tooltip">True</property>
- <property name="invisible_char">●</property>
- <property name="invisible_char_set">True</property>
- <property name="secondary_icon_name">edit-find</property>
- <property name="primary_icon_activatable">False</property>
- <property name="secondary_icon_tooltip_text" translatable="yes">Clear the search bar to see the list of security sensitive words.</property>
- <property name="secondary_icon_tooltip_markup" translatable="yes">Clear the search bar to see the list of security sensitive words.</property>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkScrolledWindow" id="scrolledwindow1">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="shadow_type">in</property>
- <child>
- <object class="GtkTreeView" id="tv_sensitive_words">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="model">ls_sensitive_words</property>
- <property name="headers_visible">False</property>
- <property name="headers_clickable">False</property>
- <property name="enable_search">False</property>
- <property name="search_column">0</property>
- <property name="enable_grid_lines">both</property>
- <property name="enable_tree_lines">True</property>
- <child internal-child="selection">
- <object class="GtkTreeSelection" id="tv_sensitive_words_selection"/>
- </child>
- <child>
- <object class="GtkTreeViewColumn" id="treeviewcolumn1">
- <property name="resizable">True</property>
- <property name="title" translatable="yes">file</property>
- <child>
- <object class="GtkCellRendererText" id="cellrenderertext1"/>
- <attributes>
- <attribute name="text">0</attribute>
- </attributes>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkTreeViewColumn" id="treeviewcolumn2">
- <property name="resizable">True</property>
- <property name="title" translatable="yes">data</property>
- <child>
- <object class="GtkCellRendererText" id="crt_sensitive_word_value"/>
- <attributes>
- <attribute name="markup">1</attribute>
- </attributes>
- </child>
- </object>
- </child>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- </child>
- <child type="label">
- <object class="GtkLabel" id="label12">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">Search</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="resize">True</property>
- <property name="shrink">True</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- </child>
+ <object class="GtkSizeGroup" id="sizegroup1">
+ <widgets>
+ <widget name="alignment2"/>
+ <widget name="alignment1"/>
+ </widgets>
</object>
<object class="GtkWindow" id="window4">
<property name="can_focus">False</property>
@@ -780,8 +790,9 @@
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="tooltip_text" translatable="yes">If you are reporting to a remote server, make sure you removed all private data (such as usernames and passwords). Backtrace, command line, environment variables are the typical items in need of examining.</property>
- <property name="use_underline">True</property>
<property name="halign">start</property>
+ <property name="use_underline">True</property>
+ <property name="xalign">0.5</property>
<property name="draw_indicator">True</property>
</object>
<packing>
@@ -822,7 +833,7 @@
<property name="can_focus">False</property>
<property name="no_show_all">True</property>
<property name="icon_name">dialog-error</property>
- <property name="icon-size">1</property>
+ <property name="icon_size">1</property>
</object>
<packing>
<property name="expand">False</property>
@@ -954,10 +965,4 @@
</object>
</child>
</object>
- <object class="GtkSizeGroup" id="sizegroup1">
- <widgets>
- <widget name="alignment2"/>
- <widget name="alignment1"/>
- </widgets>
- </object>
</interface>
--
2.0.4

View File

@ -0,0 +1,126 @@
From 277b702a90a2d0406c8edb542d80d07f920362ae Mon Sep 17 00:00:00 2001
From: Jakub Filak <jfilak@redhat.com>
Date: Wed, 30 Jul 2014 08:33:37 +0200
Subject: [PATCH 15/20] gui: simplify the event selector page
Signed-off-by: Jakub Filak <jfilak@redhat.com>
---
src/gui-wizard-gtk/wizard.glade | 74 ++++++++++++-----------------------------
1 file changed, 21 insertions(+), 53 deletions(-)
diff --git a/src/gui-wizard-gtk/wizard.glade b/src/gui-wizard-gtk/wizard.glade
index c4a86f1..9e43cce 100644
--- a/src/gui-wizard-gtk/wizard.glade
+++ b/src/gui-wizard-gtk/wizard.glade
@@ -352,6 +352,7 @@
</object>
</child>
</object>
+ <object class="GtkSizeGroup" id="sizegroup1"/>
<object class="GtkWindow" id="window0">
<property name="can_focus">False</property>
<child>
@@ -575,67 +576,40 @@
<property name="border_width">10</property>
<property name="spacing">3</property>
<child>
- <object class="GtkBox" id="vb_workflows_aligned">
+ <object class="GtkBox" id="vb_workflows">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
- <object class="GtkAlignment" id="alignment2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <placeholder/>
- </child>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkBox" id="vb_workflows">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <child>
- <placeholder/>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkAlignment" id="alignment1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <placeholder/>
- </child>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
+ <placeholder/>
</child>
</object>
<packing>
- <property name="expand">True</property>
+ <property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
- <object class="GtkVBox" id="vb_events">
+ <object class="GtkScrolledWindow" id="scrolledwindow2">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
+ <property name="can_focus">True</property>
+ <property name="shadow_type">in</property>
<child>
- <placeholder/>
+ <object class="GtkViewport" id="viewport1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkVBox" id="vb_events">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="no_show_all">True</property>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ </child>
+ </object>
</child>
</object>
<packing>
@@ -686,12 +660,6 @@
</object>
</child>
</object>
- <object class="GtkSizeGroup" id="sizegroup1">
- <widgets>
- <widget name="alignment2"/>
- <widget name="alignment1"/>
- </widgets>
- </object>
<object class="GtkWindow" id="window4">
<property name="can_focus">False</property>
<child>
--
2.0.4

View File

@ -0,0 +1,238 @@
From b0462c5b29b78961e4ec4a8ee706baa25b936d43 Mon Sep 17 00:00:00 2001
From: Jakub Filak <jfilak@redhat.com>
Date: Wed, 30 Jul 2014 09:33:54 +0200
Subject: [PATCH 16/20] gui: conver report-gtk to GtkApplication
- improves compatibility with GNOME
- allows us to move "Preferences" to the application menu
Signed-off-by: Jakub Filak <jfilak@redhat.com>
---
src/gui-wizard-gtk/main.c | 60 ++++++++++++++++++++++++++++++++++++-----
src/gui-wizard-gtk/wizard.c | 26 ++++--------------
src/gui-wizard-gtk/wizard.glade | 39 ---------------------------
src/gui-wizard-gtk/wizard.h | 2 +-
4 files changed, 60 insertions(+), 67 deletions(-)
diff --git a/src/gui-wizard-gtk/main.c b/src/gui-wizard-gtk/main.c
index 0bfa45c..697b91f 100644
--- a/src/gui-wizard-gtk/main.c
+++ b/src/gui-wizard-gtk/main.c
@@ -72,6 +72,55 @@ void problem_data_reload_from_dump_dir(void)
g_cd = new_cd;
}
+static void
+preferences_activated(GSimpleAction *action,
+ GVariant *parameter,
+ gpointer data)
+{
+ GtkApplication *app = GTK_APPLICATION(data);
+ show_config_list_dialog(GTK_WINDOW(gtk_application_get_active_window(app)));
+}
+
+static void
+quit_activated(GSimpleAction *action,
+ GVariant *parameter,
+ gpointer data)
+{
+ g_application_quit(G_APPLICATION(data));
+}
+
+static GActionEntry app_entries[] =
+{
+ { "preferences", preferences_activated, NULL, NULL, NULL },
+ { "quit", quit_activated, NULL, NULL, NULL }
+};
+
+static void
+startup_wizard(GApplication *app,
+ gpointer user_data)
+{
+ g_action_map_add_action_entries(G_ACTION_MAP (app),
+ app_entries, G_N_ELEMENTS (app_entries),
+ app);
+
+ GMenu *app_menu = g_menu_new();
+ g_menu_append(app_menu, _("Preferences"), "app.preferences");
+
+ GMenu *service_app_menu_sec = g_menu_new();
+ g_menu_append(service_app_menu_sec, _("Quit"), "app.quit");
+ g_menu_append_section(app_menu, /*no title*/NULL, G_MENU_MODEL(service_app_menu_sec));
+
+ gtk_application_set_app_menu (GTK_APPLICATION (app), G_MENU_MODEL(app_menu));
+}
+
+static void
+activate_wizard(GApplication *app,
+ gpointer user_data)
+{
+ create_assistant(GTK_APPLICATION(app), (bool)user_data);
+ update_gui_state_from_problem_data(UPDATE_SELECTED_EVENT);
+}
+
int main(int argc, char **argv)
{
bool expert_mode = false;
@@ -166,14 +215,13 @@ int main(int argc, char **argv)
problem_data_reload_from_dump_dir();
- create_assistant(expert_mode);
-
g_custom_logger = &show_error_as_msgbox;
-
- update_gui_state_from_problem_data(UPDATE_SELECTED_EVENT);
-
+ GtkApplication *app = gtk_application_new("org.freedesktop.libreport.report", G_APPLICATION_FLAGS_NONE);
+ g_signal_connect(app, "activate", G_CALLBACK(activate_wizard), (gpointer)expert_mode);
+ g_signal_connect(app, "startup", G_CALLBACK(startup_wizard), NULL);
/* Enter main loop */
- gtk_main();
+ g_application_run(G_APPLICATION(app), argc, argv);
+ g_object_unref(app);
if (opts & OPT_d)
delete_dump_dir_possibly_using_abrtd(g_dump_dir_name);
diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c
index 993b602..5c4bd6a 100644
--- a/src/gui-wizard-gtk/wizard.c
+++ b/src/gui-wizard-gtk/wizard.c
@@ -2174,12 +2174,6 @@ static void on_log_changed(GtkTextBuffer *buffer, gpointer user_data)
gtk_widget_show(GTK_WIDGET(g_exp_report_log));
}
-
-static void on_show_event_list_cb(GtkWidget *button, gpointer user_data)
-{
- show_config_list_dialog(GTK_WINDOW(g_wnd_assistant));
-}
-
#if 0
static void log_ready_state(void)
{
@@ -3237,16 +3231,6 @@ static void add_pages(void)
gtk_widget_override_font(GTK_WIDGET(g_tv_event_log), g_monospace_font);
fix_all_wrapped_labels(GTK_WIDGET(g_assistant));
- /* Configure btn on select analyzers page */
- GtkWidget *img_config_btn = gtk_image_new_from_icon_name("preferences-system", GTK_ICON_SIZE_BUTTON);
- GtkWidget *config_btn = GTK_WIDGET(gtk_builder_get_object(g_builder, "button_cfg1"));
- if (config_btn)
- {
- g_signal_connect(G_OBJECT(config_btn), "clicked", G_CALLBACK(on_show_event_list_cb), NULL);
- gtk_button_set_image(GTK_BUTTON(config_btn), img_config_btn);
- gtk_button_set_image_position(GTK_BUTTON(config_btn), GTK_POS_RIGHT);
- }
-
g_signal_connect(g_cb_no_comment, "toggled", G_CALLBACK(on_no_comment_toggled), NULL);
g_signal_connect(g_rb_forbidden_words, "toggled", G_CALLBACK(on_forbidden_words_toggled), NULL);
@@ -3342,7 +3326,7 @@ static void assistant_quit_cb(void *obj, void *data)
g_loaded_texts = NULL;
}
- gtk_main_quit();
+ gtk_widget_destroy(GTK_WIDGET(data));
}
static void on_btn_startcast(GtkWidget *btn, gpointer user_data)
@@ -3398,7 +3382,7 @@ static bool is_screencast_available()
return status == 0;
}
-void create_assistant(bool expert_mode)
+void create_assistant(GtkApplication *app, bool expert_mode)
{
g_loaded_texts = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL);
@@ -3487,7 +3471,7 @@ void create_assistant(bool expert_mode)
gtk_widget_hide(g_btn_onfail);
gtk_widget_show(g_btn_next);
- g_wnd_assistant = GTK_WINDOW(gtk_window_new(GTK_WINDOW_TOPLEVEL));
+ g_wnd_assistant = GTK_WINDOW(gtk_application_window_new(app));
gtk_container_add(GTK_CONTAINER(g_wnd_assistant), GTK_WIDGET(g_box_assistant));
gtk_window_set_default_size(g_wnd_assistant, DEFAULT_WIDTH, DEFAULT_HEIGHT);
@@ -3502,12 +3486,12 @@ void create_assistant(bool expert_mode)
create_details_treeview();
- g_signal_connect(g_btn_close, "clicked", G_CALLBACK(assistant_quit_cb), NULL);
+ g_signal_connect(g_btn_close, "clicked", G_CALLBACK(assistant_quit_cb), g_wnd_assistant);
g_signal_connect(g_btn_stop, "clicked", G_CALLBACK(on_btn_cancel_event), NULL);
g_signal_connect(g_btn_onfail, "clicked", G_CALLBACK(on_btn_failed_cb), NULL);
g_signal_connect(g_btn_next, "clicked", G_CALLBACK(on_next_btn_cb), NULL);
- g_signal_connect(g_wnd_assistant, "destroy", G_CALLBACK(assistant_quit_cb), NULL);
+ g_signal_connect(g_wnd_assistant, "destroy", G_CALLBACK(assistant_quit_cb), g_wnd_assistant);
g_signal_connect(g_assistant, "switch-page", G_CALLBACK(on_page_prepare), NULL);
g_signal_connect(g_tb_approve_bt, "toggled", G_CALLBACK(on_bt_approve_toggle), NULL);
diff --git a/src/gui-wizard-gtk/wizard.glade b/src/gui-wizard-gtk/wizard.glade
index 9e43cce..854a402 100644
--- a/src/gui-wizard-gtk/wizard.glade
+++ b/src/gui-wizard-gtk/wizard.glade
@@ -618,45 +618,6 @@
<property name="position">1</property>
</packing>
</child>
- <child>
- <object class="GtkHBox" id="hbox2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <object class="GtkButton" id="button_cfg1">
- <property name="label">_Preferences</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_underline">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkAlignment" id="alignment3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <placeholder/>
- </child>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">2</property>
- </packing>
- </child>
</object>
</child>
</object>
diff --git a/src/gui-wizard-gtk/wizard.h b/src/gui-wizard-gtk/wizard.h
index a6d8b5d..4c891dc 100644
--- a/src/gui-wizard-gtk/wizard.h
+++ b/src/gui-wizard-gtk/wizard.h
@@ -21,7 +21,7 @@
#include "internal_libreport_gtk.h"
-void create_assistant(bool expert_mode);
+void create_assistant(GtkApplication *app, bool expert_mode);
enum
{
--
2.0.4

View File

@ -0,0 +1,53 @@
From 109702a42d08e52f54c5f740b370a3ec9a3a5d16 Mon Sep 17 00:00:00 2001
From: Jakub Filak <jfilak@redhat.com>
Date: Wed, 30 Jul 2014 13:44:02 +0200
Subject: [PATCH 17/20] gui: clear the sensitive cache between two event runs
Was causing a SIGSEGV.
Related to rhbz#1069917
Signed-off-by: Jakub Filak <jfilak@redhat.com>
---
src/gui-wizard-gtk/wizard.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c
index 5c4bd6a..fc44547 100644
--- a/src/gui-wizard-gtk/wizard.c
+++ b/src/gui-wizard-gtk/wizard.c
@@ -1123,6 +1123,31 @@ static void remove_tabs_from_notebook(GtkNotebook *notebook)
*/
gtk_notebook_remove_page(notebook, 0); //we need to always the page 0
}
+
+ /* Turn off the changed callback during the update */
+ g_signal_handler_block(g_tv_sensitive_sel, g_tv_sensitive_sel_hndlr);
+
+ g_current_highlighted_word = NULL;
+
+ GtkTreeIter iter;
+ gboolean valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(g_ls_sensitive_list), &iter);
+ while (valid)
+ {
+ char *text = NULL;
+ search_item_t *word = NULL;
+
+ gtk_tree_model_get(GTK_TREE_MODEL(g_ls_sensitive_list), &iter,
+ SEARCH_COLUMN_TEXT, &text,
+ SEARCH_COLUMN_ITEM, &word,
+ -1);
+
+ free(text);
+ free(word);
+
+ valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(g_ls_sensitive_list), &iter);
+ }
+ gtk_list_store_clear(g_ls_sensitive_list);
+ g_signal_handler_unblock(g_tv_sensitive_sel, g_tv_sensitive_sel_hndlr);
}
static void append_item_to_ls_details(gpointer name, gpointer value, gpointer data)
--
2.0.4

View File

@ -0,0 +1,54 @@
From b4dbde9febbc85ead1d7c650df858936828e31a2 Mon Sep 17 00:00:00 2001
From: Jakub Filak <jfilak@redhat.com>
Date: Wed, 30 Jul 2014 13:46:57 +0200
Subject: [PATCH 18/20] gui: don't remove already removed GTimeoutSource
Was causing a GLib warning
Related to rhbz#1069917
Signed-off-by: Jakub Filak <jfilak@redhat.com>
---
src/gui-wizard-gtk/wizard.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c
index fc44547..c9d5926 100644
--- a/src/gui-wizard-gtk/wizard.c
+++ b/src/gui-wizard-gtk/wizard.c
@@ -2956,17 +2956,20 @@ static void on_sensitive_word_selection_changed(GtkTreeSelection *sel, gpointer
gtk_text_view_scroll_to_iter(new_word->tev, &(new_word->start), 0.0, false, 0, 0);
}
-static gboolean highlight_search(gpointer user_data)
+static void highlight_search(GtkEntry *entry)
{
- GtkEntry *entry = GTK_ENTRY(user_data);
-
g_search_text = gtk_entry_get_text(entry);
log_notice("searching: '%s'", g_search_text);
GList *words = g_list_append(NULL, (gpointer)g_search_text);
highligh_words_in_tabs(words, NULL, /*case insensitive*/true);
g_list_free(words);
+}
+static gboolean highlight_search_on_timeout(gpointer user_data)
+{
+ g_timeout = 0;
+ highlight_search(GTK_ENTRY(user_data));
/* returning false will make glib to remove this event */
return false;
}
@@ -2980,7 +2983,7 @@ static void search_timeout(GtkEntry *entry)
*/
if (g_timeout != 0)
g_source_remove(g_timeout);
- g_timeout = g_timeout_add(500, &highlight_search, (gpointer)entry);
+ g_timeout = g_timeout_add(500, &highlight_search_on_timeout, (gpointer)entry);
}
static void on_forbidden_words_toggled(GtkToggleButton *btn, gpointer user_data)
--
2.0.4

View File

@ -0,0 +1,130 @@
From aa8b6220a83dbccc9df31f988c1b8dcfef8833b5 Mon Sep 17 00:00:00 2001
From: Jakub Filak <jfilak@redhat.com>
Date: Wed, 30 Jul 2014 13:48:59 +0200
Subject: [PATCH 19/20] gui: reload destroyed sensitive data warn widgets from
the galde
clear_warnings() destroys the warning widgets. The sensitive data
widgets needs to be reloaded as GtkBuilder does not return clones of
object but the instances from its cache.
Related to rhbz#1069917
Signed-off-by: Jakub Filak <jfilak@redhat.com>
---
src/gui-wizard-gtk/wizard.c | 75 +++++++++++++++++++++++++++------------------
1 file changed, 46 insertions(+), 29 deletions(-)
diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c
index c9d5926..e803394 100644
--- a/src/gui-wizard-gtk/wizard.c
+++ b/src/gui-wizard-gtk/wizard.c
@@ -229,6 +229,45 @@ static bool check_minimal_bt_rating(const char *event_name);
static char *get_next_processed_event(GList **events_list);
static void on_next_btn_cb(GtkWidget *btn, gpointer user_data);
+/* wizard.glade file as a string WIZARD_GLADE_CONTENTS: */
+#include "wizard_glade.c"
+
+static GtkBuilder *make_builder()
+{
+ GError *error = NULL;
+ GtkBuilder *builder = gtk_builder_new();
+ if (!g_glade_file)
+ {
+ /* load additional widgets from glade */
+ gtk_builder_add_objects_from_string(builder,
+ WIZARD_GLADE_CONTENTS, sizeof(WIZARD_GLADE_CONTENTS) - 1,
+ (gchar**)misc_widgets,
+ &error);
+ if (error != NULL)
+ error_msg_and_die("Error loading glade data: %s", error->message);
+ /* Load pages from internal string */
+ gtk_builder_add_objects_from_string(builder,
+ WIZARD_GLADE_CONTENTS, sizeof(WIZARD_GLADE_CONTENTS) - 1,
+ (gchar**)page_names,
+ &error);
+ if (error != NULL)
+ error_msg_and_die("Error loading glade data: %s", error->message);
+ }
+ else
+ {
+ /* -g FILE: load UI from it */
+ /* load additional widgets from glade */
+ gtk_builder_add_objects_from_file(builder, g_glade_file, (gchar**)misc_widgets, &error);
+ if (error != NULL)
+ error_msg_and_die("Can't load %s: %s", g_glade_file, error->message);
+ gtk_builder_add_objects_from_file(builder, g_glade_file, (gchar**)page_names, &error);
+ if (error != NULL)
+ error_msg_and_die("Can't load %s: %s", g_glade_file, error->message);
+ }
+
+ return builder;
+}
+
static void label_wrapper(GtkWidget *widget, gpointer data_unused)
{
if (GTK_IS_CONTAINER(widget))
@@ -2108,11 +2147,15 @@ static void on_sensitive_ticket_clicked_cb(GtkWidget *button, gpointer user_data
static void add_sensitive_data_warning(void)
{
- GtkWidget *sens_data_warn = GTK_WIDGET(gtk_builder_get_object(g_builder, SENSITIVE_DATA_WARN));
- GtkButton *sens_ticket_cb = GTK_BUTTON(gtk_builder_get_object(g_builder, PRIVATE_TICKET_CB));
+ GtkBuilder *builder = make_builder();
+
+ GtkWidget *sens_data_warn = GTK_WIDGET(gtk_builder_get_object(builder, SENSITIVE_DATA_WARN));
+ GtkButton *sens_ticket_cb = GTK_BUTTON(gtk_builder_get_object(builder, PRIVATE_TICKET_CB));
g_signal_connect(sens_ticket_cb, "toggled", G_CALLBACK(on_sensitive_ticket_clicked_cb), NULL);
add_widget_to_warning_area(GTK_WIDGET(sens_data_warn));
+
+ g_object_unref(builder);
}
static void show_warnings(void)
@@ -3173,9 +3216,6 @@ static gint on_key_press_event_in_item_list(GtkTreeView *treeview, GdkEventKey *
/* Initialization */
-/* wizard.glade file as a string WIZARD_GLADE_CONTENTS: */
-#include "wizard_glade.c"
-
static void on_next_btn_cb(GtkWidget *btn, gpointer user_data)
{
gint current_page_no = gtk_notebook_get_current_page(g_assistant);
@@ -3190,30 +3230,7 @@ static void on_next_btn_cb(GtkWidget *btn, gpointer user_data)
static void add_pages(void)
{
- GError *error = NULL;
- g_builder = gtk_builder_new();
- if (!g_glade_file)
- {
- /* load additional widgets from glade */
- gtk_builder_add_objects_from_string(g_builder,
- WIZARD_GLADE_CONTENTS, sizeof(WIZARD_GLADE_CONTENTS) - 1,
- (gchar**)misc_widgets,
- &error);
- /* Load pages from internal string */
- gtk_builder_add_objects_from_string(g_builder,
- WIZARD_GLADE_CONTENTS, sizeof(WIZARD_GLADE_CONTENTS) - 1,
- (gchar**)page_names,
- &error);
- if (error != NULL)
- error_msg_and_die("Error loading glade data: %s", error->message);
- }
- else
- {
- /* -g FILE: load IU from it */
- gtk_builder_add_objects_from_file(g_builder, g_glade_file, (gchar**)page_names, &error);
- if (error != NULL)
- error_msg_and_die("Can't load %s: %s", g_glade_file, error->message);
- }
+ g_builder = make_builder();
int i;
int page_no = 0;
--
2.0.4

View File

@ -0,0 +1,244 @@
From 8db880a2c6add7137aac9f8562ae73aef3e1e436 Mon Sep 17 00:00:00 2001
From: Jakub Filak <jfilak@redhat.com>
Date: Wed, 30 Jul 2014 13:53:02 +0200
Subject: [PATCH 20/20] gui: add "Repeat" button
If an event run fails, the button allows users to modify the
configuration and re-run the event.
v2:
- add a help text explaining what to do before clicking "Repeat" button
Related to rhbz#1069917
Signed-off-by: Jakub Filak <jfilak@redhat.com>
---
src/gui-wizard-gtk/wizard.c | 83 ++++++++++++++++++++++++++++++++++-----------
1 file changed, 63 insertions(+), 20 deletions(-)
diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c
index e803394..e4718bf 100644
--- a/src/gui-wizard-gtk/wizard.c
+++ b/src/gui-wizard-gtk/wizard.c
@@ -68,6 +68,7 @@ static GtkWidget *g_btn_stop;
static GtkWidget *g_btn_close;
static GtkWidget *g_btn_next;
static GtkWidget *g_btn_onfail;
+static GtkWidget *g_btn_repeat;
static GtkBox *g_box_events;
static GtkBox *g_box_workflows;
@@ -1573,24 +1574,31 @@ static void show_next_step_button()
gtk_widget_show(g_btn_next);
}
-static void terminate_event_chain()
+enum {
+ TERMINATE_NOFLAGS = 0,
+ TERMINATE_WITH_RERUN = 1 << 0,
+};
+
+static void terminate_event_chain(int flags)
{
if (g_expert_mode)
return;
+ hide_next_step_button();
+ if ((flags & TERMINATE_WITH_RERUN))
+ return;
+
free(g_event_selected);
g_event_selected = NULL;
g_list_free_full(g_auto_event_list, free);
g_auto_event_list = NULL;
-
- hide_next_step_button();
}
-static void cancel_processing(GtkLabel *status_label, const char *message)
+static void cancel_processing(GtkLabel *status_label, const char *message, int terminate_flags)
{
gtk_label_set_text(status_label, message ? message : _("Processing was canceled"));
- terminate_event_chain();
+ terminate_event_chain(terminate_flags);
}
static void update_command_run_log(const char* message, struct analyze_event_data *evd)
@@ -1755,6 +1763,25 @@ static void on_btn_failed_cb(GtkButton *button)
gtk_widget_hide(GTK_WIDGET(button));
}
+static gint select_next_page_no(gint current_page_no, gpointer data);
+static void on_page_prepare(GtkNotebook *assistant, GtkWidget *page, gpointer user_data);
+
+static void on_btn_repeat_cb(GtkButton *button)
+{
+ g_auto_event_list = g_list_prepend(g_auto_event_list, g_event_selected);
+ g_event_selected = NULL;
+
+ show_next_step_button();
+ clear_warnings();
+
+ const gint current_page_no = gtk_notebook_get_current_page(g_assistant);
+ const int next_page_no = select_next_page_no(pages[PAGENO_SUMMARY].page_no, NULL);
+ if (current_page_no == next_page_no)
+ on_page_prepare(g_assistant, gtk_notebook_get_nth_page(g_assistant, next_page_no), NULL);
+ else
+ gtk_notebook_set_current_page(g_assistant, next_page_no);
+}
+
static void on_failed_event(const char *event_name)
{
/* Don't show the 'on failure' button if the processed event
@@ -1764,14 +1791,25 @@ static void on_failed_event(const char *event_name)
return;
add_warning(
-_("Processing of the problem failed. This can have many reasons but there are two most common:\n"\
+_("Processing of the problem failed. This can have many reasons but there are three most common:\n"\
"\t▫ <b>network connection problems</b>\n"\
-"\t▫ <b>corrupted problem data</b>\n"));
+"\t▫ <b>corrupted problem data</b>\n"\
+"\t▫ <b>invalid configuration</b>"
+));
+
+ if (!g_expert_mode)
+ {
+ add_warning(
+_("If you want to update the configuration and try to report again, please open <b>Preferences</b> item\n"
+"in the application menu and after applying the configuration changes click <b>Repeat</b> button."));
+ gtk_widget_show(g_btn_repeat);
+ }
add_warning(
-_("If you want to help us, please click on the upload button and provide all problem data for a deep analysis.\n"\
-"<i>Before you do that, please consider the security risks. Problem data may contain sensitive information like passwords.\n"\
-"The uploaded data are stored in a protected storage and only a limited number of persons can read them.</i>"));
+_("If you are sure that this problem is not caused by network problems neither by invalid configuration\n"
+"and want to help us, please click on the upload button and provide all problem data for a deep analysis.\n"\
+"<i>Before you do that, please consider the security risks. Problem data may contain sensitive information like\n"\
+"passwords. The uploaded data are stored in a protected storage and only a limited number of persons can read them.</i>"));
show_warnings();
@@ -1798,7 +1836,7 @@ static gboolean consume_cmd_output(GIOChannel *source, GIOCondition condition, g
retval = 0;
run_state->process_status = 0;
stop_requested = true;
- terminate_event_chain();
+ terminate_event_chain(TERMINATE_NOFLAGS);
}
unexport_event_config(evd->env_list);
@@ -1887,17 +1925,17 @@ static gboolean consume_cmd_output(GIOChannel *source, GIOCondition condition, g
gtk_widget_show(GTK_WIDGET(g_img_process_fail));
/* 256 means NOT_REPORTABLE */
if (retval == 256)
- cancel_processing(g_lbl_event_log, _("Processing was interrupted because the problem is not reportable."));
+ cancel_processing(g_lbl_event_log, _("Processing was interrupted because the problem is not reportable."), TERMINATE_NOFLAGS);
else
{
/* We use SIGTERM to stop event processing on user's request.
* So SIGTERM is not a failure.
*/
if (retval == EXIT_CANCEL_BY_USER || WTERMSIG(run_state->process_status) == SIGTERM)
- cancel_processing(g_lbl_event_log, /* default message */ NULL);
+ cancel_processing(g_lbl_event_log, /* default message */ NULL, TERMINATE_NOFLAGS);
else
{
- cancel_processing(g_lbl_event_log, _("Processing failed."));
+ cancel_processing(g_lbl_event_log, _("Processing failed."), TERMINATE_WITH_RERUN);
on_failed_event(evd->event_name);
}
}
@@ -2036,7 +2074,7 @@ static void start_event_run(const char *event_name)
char *msg = xasprintf(_("No processing for event '%s' is defined"), event_name);
append_to_textview(g_tv_event_log, msg);
free(msg);
- cancel_processing(g_lbl_event_log, _("Processing failed."));
+ cancel_processing(g_lbl_event_log, _("Processing failed."), TERMINATE_NOFLAGS);
return;
}
@@ -2047,7 +2085,7 @@ static void start_event_run(const char *event_name)
free_run_event_state(state);
if (!g_expert_mode)
{
- cancel_processing(g_lbl_event_log, _("Processing interrupted: can't continue without writable directory."));
+ cancel_processing(g_lbl_event_log, _("Processing interrupted: can't continue without writable directory."), TERMINATE_NOFLAGS);
}
return; /* user refused to steal, or write error, etc... */
}
@@ -2534,8 +2572,6 @@ static gboolean highlight_forbidden(void)
return result;
}
-static gint select_next_page_no(gint current_page_no, gpointer data);
-
static char *get_next_processed_event(GList **events_list)
{
if (!events_list || !*events_list)
@@ -2647,6 +2683,8 @@ static void on_page_prepare(GtkNotebook *assistant, GtkWidget *page, gpointer us
}
gtk_widget_hide(g_btn_onfail);
+ if (!g_expert_mode)
+ gtk_widget_hide(g_btn_repeat);
/* Save text fields if changed */
/* Must be called before any GUI operation because the following two
* functions causes recreating of the text items tabs, thus all updates to
@@ -2867,7 +2905,7 @@ static gint select_next_page_no(gint current_page_no, gpointer data)
{
free(event);
- cancel_processing(g_lbl_event_log, /* default message */ NULL);
+ cancel_processing(g_lbl_event_log, /* default message */ NULL, TERMINATE_NOFLAGS);
current_page_no = pages[PAGENO_EVENT_PROGRESS].page_no - 1;
goto again;
}
@@ -2880,7 +2918,7 @@ static gint select_next_page_no(gint current_page_no, gpointer data)
"(it is likely a known problem). %s"),
problem_data_get_content_or_NULL(g_cd, FILENAME_NOT_REPORTABLE)
);
- cancel_processing(g_lbl_event_log, msg);
+ cancel_processing(g_lbl_event_log, msg, TERMINATE_NOFLAGS);
free(msg);
current_page_no = pages[PAGENO_EVENT_PROGRESS].page_no - 1;
goto again;
@@ -3453,6 +3491,8 @@ void create_assistant(GtkApplication *app, bool expert_mode)
g_btn_onfail = gtk_button_new_with_label(_("Upload for analysis"));
gtk_button_set_image(GTK_BUTTON(g_btn_onfail), gtk_image_new_from_icon_name("go-up", GTK_ICON_SIZE_BUTTON));
gtk_widget_set_no_show_all(g_btn_onfail, true); /* else gtk_widget_hide won't work */
+ g_btn_repeat = gtk_button_new_with_label(_("Repeat"));
+ gtk_widget_set_no_show_all(g_btn_repeat, true); /* else gtk_widget_hide won't work */
g_btn_next = gtk_button_new_with_mnemonic(_("_Forward"));
gtk_button_set_image(GTK_BUTTON(g_btn_next), gtk_image_new_from_icon_name("go-next", GTK_ICON_SIZE_BUTTON));
gtk_widget_set_no_show_all(g_btn_next, true); /* else gtk_widget_hide won't work */
@@ -3461,6 +3501,7 @@ void create_assistant(GtkApplication *app, bool expert_mode)
gtk_box_pack_start(g_box_buttons, g_btn_close, false, false, 5);
gtk_box_pack_start(g_box_buttons, g_btn_stop, false, false, 5);
gtk_box_pack_start(g_box_buttons, g_btn_onfail, false, false, 5);
+ gtk_box_pack_start(g_box_buttons, g_btn_repeat, false, false, 5);
/* Btns above are to the left, the rest are to the right: */
#if ((GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION < 13) || (GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION == 13 && GTK_MICRO_VERSION < 5))
GtkWidget *w = gtk_alignment_new(0.0, 0.0, 1.0, 1.0);
@@ -3514,6 +3555,7 @@ void create_assistant(GtkApplication *app, bool expert_mode)
gtk_widget_show_all(GTK_WIDGET(g_box_buttons));
gtk_widget_hide(g_btn_stop);
gtk_widget_hide(g_btn_onfail);
+ gtk_widget_hide(g_btn_repeat);
gtk_widget_show(g_btn_next);
g_wnd_assistant = GTK_WINDOW(gtk_application_window_new(app));
@@ -3534,6 +3576,7 @@ void create_assistant(GtkApplication *app, bool expert_mode)
g_signal_connect(g_btn_close, "clicked", G_CALLBACK(assistant_quit_cb), g_wnd_assistant);
g_signal_connect(g_btn_stop, "clicked", G_CALLBACK(on_btn_cancel_event), NULL);
g_signal_connect(g_btn_onfail, "clicked", G_CALLBACK(on_btn_failed_cb), NULL);
+ g_signal_connect(g_btn_repeat, "clicked", G_CALLBACK(on_btn_repeat_cb), NULL);
g_signal_connect(g_btn_next, "clicked", G_CALLBACK(on_next_btn_cb), NULL);
g_signal_connect(g_wnd_assistant, "destroy", G_CALLBACK(assistant_quit_cb), g_wnd_assistant);
--
2.0.4

View File

@ -7,7 +7,7 @@
Summary: Generic library for reporting various problems
Name: libreport
Version: 2.2.3
Release: 4%{?dist}
Release: 5%{?dist}
License: GPLv2+
Group: System Environment/Libraries
URL: https://fedorahosted.org/abrt/
@ -22,8 +22,18 @@ Patch5: 0005-wizard-fix-help-text-for-screencasting.patch
Patch6: 0006-gui-support-Enter-2Click-in-Preferences-list.patch
Patch7: 0007-gui-apply-configuration-dialogues-changes-on-Enter-k.patch
Patch8: 0008-gui-close-ask-dialogues-on-Enter-key.patch
Patch9: 0001-json-include-json.h-accordingly-to-json-c-CFLAGS.patch
Patch10: 0001-ureport-include-json.h-accordingly-to-json-c-CFLAGS.patch
Patch9: 0009-logging-test-log-level-at-first-step.patch
Patch10: 0010-json-include-json.h-accordingly-to-json-c-CFLAGS.patch
Patch11: 0011-ureport-include-json.h-accordingly-to-json-c-CFLAGS.patch
Patch12: 0012-gui-port-to-gtk-3.13.patch
Patch13: 0013-gui-fix-build-errors-introduced-in-the-previous-comm.patch
Patch14: 0014-gui-generate-the-glade-file-with-glade-3.18.patch
Patch15: 0015-gui-simplify-the-event-selector-page.patch
Patch16: 0016-gui-conver-report-gtk-to-GtkApplication.patch
Patch17: 0017-gui-clear-the-sensitive-cache-between-two-event-runs.patch
Patch18: 0018-gui-don-t-remove-already-removed-GTimeoutSource.patch
Patch19: 0019-gui-reload-destroyed-sensitive-data-warn-widgets-fro.patch
Patch20: 0020-gui-add-Repeat-button.patch
# git is need for '%%autosetup -S git' which automatically applies all the
# patches above. Please, be aware that the patches must be generated
@ -662,6 +672,11 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%changelog
* Tue Aug 19 2014 Jakub Filak <jfilak@redhat.com> 2.2.3-5
- add the "Repeat" button to the reporting wizard
- a bunch of GUI improvements
- fix a bug in logging causing reporter-ureport to crash
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.2.3-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild