summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNikola Pajkovsky <npajkovs@redhat.com>2011-03-10 17:41:55 +0100
committerNikola Pajkovsky <npajkovs@redhat.com>2011-03-11 11:30:12 +0100
commit2cf9c55560f7390d5364d182408cd4527700c53f (patch)
tree9842b6249b631457b5cda6b6946bcd12e3c3fab3 /src
parent3e5a7859cccf49acbb0bdd3ca841545e5ab0f4c5 (diff)
downloadabrt-2cf9c55560f7390d5364d182408cd4527700c53f.tar.gz
abrt-2cf9c55560f7390d5364d182408cd4527700c53f.tar.xz
abrt-2cf9c55560f7390d5364d182408cd4527700c53f.zip
override old gui by new one
Signed-off-by: Nikola Pajkovsky <npajkovs@redhat.com>
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.am2
-rw-r--r--src/applet/applet.c14
-rw-r--r--src/applet/applet_gtk.c11
-rw-r--r--src/applet/applet_gtk.h2
-rw-r--r--src/daemon/Daemon.cpp10
-rw-r--r--src/gui-gtk/Makefile.am13
-rw-r--r--src/gui-gtk/abrt.desktop.in (renamed from src/gui/abrt.desktop.in)0
7 files changed, 30 insertions, 22 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index c6d3abd9..066fadf2 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1 +1 @@
-SUBDIRS = include lib report-python hooks btparser daemon applet gui gui-gtk cli plugins gui-wizard-gtk retrace
+SUBDIRS = include lib report-python hooks btparser daemon applet gui-gtk cli plugins gui-wizard-gtk retrace
diff --git a/src/applet/applet.c b/src/applet/applet.c
index 1a2bf5c0..56266f12 100644
--- a/src/applet/applet.c
+++ b/src/applet/applet.c
@@ -46,8 +46,8 @@ static void Crash(DBusMessage* signal)
error_msg("dbus signal %s: parameter type mismatch", __func__);
return;
}
- const char* crash_id = NULL;
- r = load_charp(&in_iter, &crash_id);
+ const char* crash_dir = NULL;
+ r = load_charp(&in_iter, &crash_dir);
/* 3rd param: dir */
//dir parameter is not used for now, use is planned in the future
@@ -94,10 +94,10 @@ static void Crash(DBusMessage* signal)
*/
static time_t last_time = 0;
static char* last_package_name = NULL;
- static char* last_crash_id = NULL;
+ static char* last_crash_dir = NULL;
time_t cur_time = time(NULL);
if (last_package_name && strcmp(last_package_name, package_name) == 0
- && last_crash_id && strcmp(last_crash_id, crash_id) == 0
+ && last_crash_dir && strcmp(last_crash_dir, crash_dir) == 0
&& (unsigned)(cur_time - last_time) < 2 * 60 * 60
) {
log_msg("repeated crash in %s, not showing the notification", package_name);
@@ -106,10 +106,10 @@ static void Crash(DBusMessage* signal)
last_time = cur_time;
free(last_package_name);
last_package_name = xstrdup(package_name);
- free(last_crash_id);
- last_crash_id = xstrdup(crash_id);
+ free(last_crash_dir);
+ last_crash_dir = xstrdup(dir);
- show_crash_notification(applet, crash_id, message, package_name);
+ show_crash_notification(applet, dir, message, package_name);
}
static void QuotaExceeded(DBusMessage* signal)
diff --git a/src/applet/applet_gtk.c b/src/applet/applet_gtk.c
index d31328aa..04349648 100644
--- a/src/applet/applet_gtk.c
+++ b/src/applet/applet_gtk.c
@@ -65,12 +65,13 @@ static void action_report(NotifyNotification *notification, gchar *action, gpoin
perror_msg("vfork");
if (pid == 0)
{ /* child */
- char *buf = xasprintf("--report=%s", applet->ap_last_crash_id);
signal(SIGCHLD, SIG_DFL); /* undo SIG_IGN in abrt-applet */
- execl(BIN_DIR"/abrt-gui", "abrt-gui", buf, (char*) NULL);
+ execl(BIN_DIR"/bug-reporting-wizard", "bug-reporting-wizard",
+ applet->ap_last_crash_id, (char*) NULL);
/* Did not find abrt-gui in installation directory. Oh well */
/* Trying to find it in PATH */
- execlp("abrt-gui", "abrt-gui", buf, (char*) NULL);
+ execlp("bug-reporting-wizard", "bug-reporting-wizard",
+ applet->ap_last_crash_id, (char*) NULL);
perror_msg_and_die("Can't execute abrt-gui");
}
GError *err = NULL;
@@ -348,9 +349,9 @@ void set_icon_tooltip(struct applet *applet, const char *format, ...)
free(buf);
}
-void show_crash_notification(struct applet *applet, const char* crash_id, const char *format, ...)
+void show_crash_notification(struct applet *applet, const char* crash_dir, const char *format, ...)
{
- applet->ap_last_crash_id = crash_id;
+ applet->ap_last_crash_id = crash_dir;
va_list args;
va_start(args, format);
char *buf = xvasprintf(format, args);
diff --git a/src/applet/applet_gtk.h b/src/applet/applet_gtk.h
index 0bcf47b7..ca1a39c7 100644
--- a/src/applet/applet_gtk.h
+++ b/src/applet/applet_gtk.h
@@ -56,7 +56,7 @@ void applet_destroy(struct applet *applet);
void show_icon(struct applet *applet);
void hide_icon(struct applet *applet);
void set_icon_tooltip(struct applet *applet, const char *format, ...);
-void show_crash_notification(struct applet *applet, const char* crash_id, const char *format, ...);
+void show_crash_notification(struct applet *applet, const char* crash_dir, const char *format, ...);
void show_msg_notification(struct applet *applet, const char *format, ...);
void disable(struct applet *applet, const char *reason);
void enable(struct applet *applet, const char *reason);
diff --git a/src/daemon/Daemon.cpp b/src/daemon/Daemon.cpp
index 2d2c85ed..5555138c 100644
--- a/src/daemon/Daemon.cpp
+++ b/src/daemon/Daemon.cpp
@@ -382,6 +382,7 @@ static gboolean handle_inotify_cb(GIOChannel *gio, GIOCondition condition, gpoin
crash_data_t *crash_data = NULL;
fullname = concat_path_file(DEBUG_DUMPS_DIR, name);
mw_result_t res = LoadDebugDump(fullname, &crash_data);
+ const char *first = get_crash_item_content_or_NULL(crash_data, CD_DUMPDIR);
switch (res)
{
case MW_OK:
@@ -392,7 +393,6 @@ static gboolean handle_inotify_cb(GIOChannel *gio, GIOCondition condition, gpoin
{
if (res != MW_OK)
{
- const char *first = get_crash_item_content_or_NULL(crash_data, CD_DUMPDIR);
log("Deleting crash %s (dup of %s), sending dbus signal",
strrchr(fullname, '/') + 1,
strrchr(first, '/') + 1);
@@ -408,10 +408,12 @@ static gboolean handle_inotify_cb(GIOChannel *gio, GIOCondition condition, gpoin
get_crash_item_content_or_NULL(crash_data, FILENAME_UID),
get_crash_item_content_or_NULL(crash_data, FILENAME_UUID)
);
+ /* when dupe occurs we need to return first occure not the one which
+ * is deleted */
send_dbus_sig_Crash(get_crash_item_content_or_NULL(crash_data, FILENAME_PACKAGE),
- crash_id, //TODO: stop passing this param, it is unused
- fullname,
- uid_str
+ crash_id, //TODO: stop passing this param, it is unused
+ (first)? first: fullname,
+ uid_str
);
free(crash_id);
break;
diff --git a/src/gui-gtk/Makefile.am b/src/gui-gtk/Makefile.am
index 64754080..2c525245 100644
--- a/src/gui-gtk/Makefile.am
+++ b/src/gui-gtk/Makefile.am
@@ -1,10 +1,10 @@
-bin_PROGRAMS = abrt-gtk
+bin_PROGRAMS = abrt-gui
-abrt_gtk_SOURCES = \
+abrt_gui_SOURCES = \
abrt-gtk.h abrt-gtk.c \
event_config_dialog.h event_config_dialog.c \
main.c
-abrt_gtk_CFLAGS = \
+abrt_gui_CFLAGS = \
-I$(srcdir)/../include/report -I$(srcdir)/../include \
-I$(srcdir)/../lib \
-DBIN_DIR=\"$(bindir)\" \
@@ -22,7 +22,7 @@ abrt_gtk_CFLAGS = \
# -I/usr/lib/glib-2.0/include
# $(LIBNOTIFY_CFLAGS)
# $(DBUS_GLIB_CFLAGS)
-abrt_gtk_LDADD = \
+abrt_gui_LDADD = \
../lib/libreport.la \
../lib/libabrt_dbus.la \
-lglib-2.0 \
@@ -44,3 +44,8 @@ abrt_gtk_LDADD = \
DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@
@INTLTOOL_DESKTOP_RULE@
+desktopdir = $(datadir)/applications
+desktop_in_files = abrt.desktop.in
+desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
+
+EXTRA_DIST = $(desktop_in_files)
diff --git a/src/gui/abrt.desktop.in b/src/gui-gtk/abrt.desktop.in
index 99d7f8f8..99d7f8f8 100644
--- a/src/gui/abrt.desktop.in
+++ b/src/gui-gtk/abrt.desktop.in