summaryrefslogtreecommitdiffstats
path: root/src/Applet/Applet.cpp
diff options
context:
space:
mode:
authorJiri Moskovcak <jmoskovc@redhat.com>2010-03-11 16:27:14 +0100
committerJiri Moskovcak <jmoskovc@redhat.com>2010-03-11 16:27:14 +0100
commitd3fff839380fa1e165b92d3dc79fb7eafaf2a976 (patch)
treeb004421f370a18e9d5079ac779b1123a3c1a184e /src/Applet/Applet.cpp
parentcf9b053459d4931210800b1ce397e1403c06f346 (diff)
downloadabrt-d3fff839380fa1e165b92d3dc79fb7eafaf2a976.tar.gz
abrt-d3fff839380fa1e165b92d3dc79fb7eafaf2a976.tar.xz
abrt-d3fff839380fa1e165b92d3dc79fb7eafaf2a976.zip
GUI: added action to applet to directly report last crash
Revieved by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'src/Applet/Applet.cpp')
-rw-r--r--src/Applet/Applet.cpp20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/Applet/Applet.cpp b/src/Applet/Applet.cpp
index 8972dcb..ccd6f39 100644
--- a/src/Applet/Applet.cpp
+++ b/src/Applet/Applet.cpp
@@ -47,7 +47,18 @@ static void Crash(DBusMessage* signal)
dbus_message_iter_init(signal, &in_iter);
const char* package_name;
r = load_val(&in_iter, package_name);
- /* Optional 2nd param: uid */
+ /* 2nd param: crash_id */
+ const char* crash_id = NULL;
+ if (r == ABRT_DBUS_MORE_FIELDS)
+ {
+ r = load_val(&in_iter, crash_id);
+ }
+ else
+ {
+ error_msg("dbus signal %s: parameter type mismatch", __func__);
+ return;
+ }
+ /* Optional 3rd param: uid */
const char* uid_str = NULL;
if (r == ABRT_DBUS_MORE_FIELDS)
{
@@ -80,7 +91,7 @@ static void Crash(DBusMessage* signal)
//applet->AddEvent(uid, package_name);
applet->SetIconTooltip(message, package_name);
applet->ShowIcon();
- applet->CrashNotify(message, package_name);
+ applet->CrashNotify(crash_id, message, package_name);
}
static void QuotaExceed(DBusMessage* signal)
@@ -99,7 +110,7 @@ static void QuotaExceed(DBusMessage* signal)
//if (m_pSessionDBus->has_name("com.redhat.abrt.gui"))
// return;
applet->ShowIcon();
- applet->CrashNotify("%s", str);
+ applet->MessageNotify("%s", str);
}
static void NameOwnerChanged(DBusMessage* signal)
@@ -178,6 +189,7 @@ static void die_if_dbus_error(bool error_flag, DBusError* err, const char* msg)
int main(int argc, char** argv)
{
+ const char * app_name = "abrt-gui";
/* I18n */
setlocale(LC_ALL, "");
#if ENABLE_NLS
@@ -237,7 +249,7 @@ int main(int argc, char** argv)
/* Initialize GUI stuff.
* Note: inside CApplet ctor, libnotify hooks session dbus
* to glib main loop */
- applet = new CApplet;
+ applet = new CApplet(app_name);
/* dbus_abrt cannot handle more than one bus, and we don't really need to.
* The only thing we want to do is to announce ourself on session dbus */
DBusConnection* session_conn = dbus_bus_get(DBUS_BUS_SESSION, &err);