From 2cf9c55560f7390d5364d182408cd4527700c53f Mon Sep 17 00:00:00 2001 From: Nikola Pajkovsky Date: Thu, 10 Mar 2011 17:41:55 +0100 Subject: override old gui by new one Signed-off-by: Nikola Pajkovsky --- src/Makefile.am | 2 +- src/applet/applet.c | 14 +++++++------- src/applet/applet_gtk.c | 11 ++++++----- src/applet/applet_gtk.h | 2 +- src/daemon/Daemon.cpp | 10 ++++++---- src/gui-gtk/Makefile.am | 13 +++++++++---- src/gui-gtk/abrt.desktop.in | 11 +++++++++++ src/gui/abrt.desktop.in | 11 ----------- 8 files changed, 41 insertions(+), 33 deletions(-) create mode 100644 src/gui-gtk/abrt.desktop.in delete mode 100644 src/gui/abrt.desktop.in (limited to 'src') 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-gtk/abrt.desktop.in b/src/gui-gtk/abrt.desktop.in new file mode 100644 index 00000000..99d7f8f8 --- /dev/null +++ b/src/gui-gtk/abrt.desktop.in @@ -0,0 +1,11 @@ +[Desktop Entry] +Encoding=UTF-8 +_Name=Automatic Bug Reporting Tool +_Comment=View and report application crashes +Exec=abrt-gui +Icon=abrt +Terminal=false +Type=Application +Categories=System;X-Red-Hat-Base; +StartupNotify=true +X-Desktop-File-Install-Version=0.15 diff --git a/src/gui/abrt.desktop.in b/src/gui/abrt.desktop.in deleted file mode 100644 index 99d7f8f8..00000000 --- a/src/gui/abrt.desktop.in +++ /dev/null @@ -1,11 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -_Name=Automatic Bug Reporting Tool -_Comment=View and report application crashes -Exec=abrt-gui -Icon=abrt -Terminal=false -Type=Application -Categories=System;X-Red-Hat-Base; -StartupNotify=true -X-Desktop-File-Install-Version=0.15 -- cgit