Merge lp:~ted/indicator-messages/list-add-error into lp:~indicator-applet-developers/indicator-messages/trunk.13.10

Proposed by Ted Gould
Status: Merged
Approved by: Charles Kerr
Approved revision: 412
Merged at revision: 357
Proposed branch: lp:~ted/indicator-messages/list-add-error
Merge into: lp:~indicator-applet-developers/indicator-messages/trunk.13.10
Prerequisite: lp:~indicator-applet-developers/indicator-messages/consolidate
Diff against target: 89 lines (+19/-5)
3 files modified
src/im-application-list.c (+5/-3)
src/im-application-list.h (+1/-1)
src/messages-service.c (+13/-1)
To merge this branch: bzr merge lp:~ted/indicator-messages/list-add-error
Reviewer Review Type Date Requested Status
Charles Kerr (community) Approve
PS Jenkins bot (community) continuous-integration Approve
Review via email: mp+180906@code.launchpad.net

Commit message

Add a DBus error for list_add()

Description of the change

Takes the error that we can't find the desktop file and passes is back through DBus so that app developers can see it.

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Charles Kerr (charlesk) wrote :

Looks good.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/im-application-list.c'
2--- src/im-application-list.c 2013-08-19 16:27:04 +0000
3+++ src/im-application-list.c 2013-08-19 16:27:05 +0000
4@@ -576,7 +576,7 @@
5 g_desktop_app_info_launch_action (app->info, g_action_get_name (G_ACTION (action)), NULL);
6 }
7
8-void
9+gboolean
10 im_application_list_add (ImApplicationList *list,
11 const gchar *desktop_id)
12 {
13@@ -590,13 +590,13 @@
14 g_return_if_fail (desktop_id != NULL);
15
16 if (im_application_list_lookup (list, desktop_id))
17- return;
18+ return TRUE;
19
20 info = g_desktop_app_info_new (desktop_id);
21 if (!info)
22 {
23 g_warning ("an application with id '%s' is not installed", desktop_id);
24- return;
25+ return FALSE;
26 }
27
28 id = g_app_info_get_id (G_APP_INFO (info));
29@@ -645,6 +645,8 @@
30
31 g_object_unref (launch_action);
32 g_object_unref (actions);
33+
34+ return TRUE;
35 }
36
37 void
38
39=== modified file 'src/im-application-list.h'
40--- src/im-application-list.h 2013-08-19 16:27:04 +0000
41+++ src/im-application-list.h 2013-08-19 16:27:05 +0000
42@@ -36,7 +36,7 @@
43
44 ImApplicationList * im_application_list_new (void);
45
46-void im_application_list_add (ImApplicationList *list,
47+gboolean im_application_list_add (ImApplicationList *list,
48 const gchar *desktop_id);
49
50 void im_application_list_remove (ImApplicationList *list,
51
52=== modified file 'src/messages-service.c'
53--- src/messages-service.c 2013-08-19 16:27:04 +0000
54+++ src/messages-service.c 2013-08-19 16:27:05 +0000
55@@ -43,6 +43,12 @@
56 static GHashTable *menus;
57 static GSettings *settings;
58
59+enum {
60+ DBUS_ERROR_BAD_DESKTOP_FILE,
61+};
62+
63+G_DEFINE_QUARK(indicator_messages_dbus_error, dbus_error);
64+
65 static void
66 register_application (IndicatorMessagesService *service,
67 GDBusMethodInvocation *invocation,
68@@ -53,7 +59,10 @@
69 GDBusConnection *bus;
70 const gchar *sender;
71
72- im_application_list_add (applications, desktop_id);
73+ if (!im_application_list_add (applications, desktop_id)) {
74+ g_dbus_method_invocation_return_error(invocation, dbus_error_quark(), DBUS_ERROR_BAD_DESKTOP_FILE, "Unable to find or parse desktop file for application '%s'", desktop_id);
75+ return;
76+ }
77
78 bus = g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (service));
79 sender = g_dbus_method_invocation_get_sender (invocation);
80@@ -125,6 +134,9 @@
81 const gchar *profile;
82 ImMenu *menu;
83
84+ /* Register some errors */
85+ g_dbus_error_register_error (dbus_error_quark(), DBUS_ERROR_BAD_DESKTOP_FILE, "BadDesktopFile");
86+
87 g_dbus_connection_export_action_group (bus, INDICATOR_MESSAGES_DBUS_OBJECT,
88 im_application_list_get_action_group (applications),
89 &error);

Subscribers

People subscribed via source and target branches