Not sure why you removed the return in me-service-gwibber.c ;) review approve On Wed, 2010-03-10 at 14:43 +0000, David Barth wrote: > David Barth has proposed merging lp:~dbarth/indicator-me/add-account-entries-if-programs-present into lp:indicator-me. > > Requested reviews: > Indicator Applet Developers (indicator-applet-developers) > > > add account setup entries only if programs present > differences between files attachment (review-diff.txt) > === modified file 'src/me-service-gwibber.c' > --- src/me-service-gwibber.c 2010-02-04 20:52:03 +0000 > +++ src/me-service-gwibber.c 2010-03-10 14:43:13 +0000 > @@ -82,4 +82,3 @@ > > return; > } > - > > === modified file 'src/me-service.c' > --- src/me-service.c 2010-02-25 18:26:01 +0000 > +++ src/me-service.c 2010-03-10 14:43:13 +0000 > @@ -155,34 +155,50 @@ > } > } > > +static gboolean > +program_is_installed (gchar *program) > +{ > + gchar *cmd = g_find_program_in_path(program); > + if (cmd != NULL) { > + g_free(cmd); > + return TRUE; > + } > + > + return FALSE; > +} > + > static void > build_accounts_menuitems (gpointer data) > { > DbusmenuMenuitem * root = DBUSMENU_MENUITEM(data); > g_return_if_fail(root != NULL); > > - /* FIXME: find cmd line parameters with ken-vandine */ > - DbusmenuMenuitem *im_accounts_mi = dbusmenu_menuitem_new(); > - dbusmenu_menuitem_property_set(im_accounts_mi, DBUSMENU_MENUITEM_PROP_LABEL, > - _("Chat Accounts...")); > - dbusmenu_menuitem_child_append(root, im_accounts_mi); > - g_signal_connect(G_OBJECT(im_accounts_mi), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, > - G_CALLBACK(spawn_on_activate_cb), "empathy-accounts"); > - > - DbusmenuMenuitem *tw_accounts_mi = dbusmenu_menuitem_new(); > - dbusmenu_menuitem_property_set(tw_accounts_mi, DBUSMENU_MENUITEM_PROP_LABEL, > - _("Broadcast Accounts...")); > - dbusmenu_menuitem_child_append(root, tw_accounts_mi); > - g_signal_connect(G_OBJECT(tw_accounts_mi), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, > - G_CALLBACK(spawn_on_activate_cb), "gwibber-accounts"); > - > - DbusmenuMenuitem *u1_accounts_mi = dbusmenu_menuitem_new(); > - dbusmenu_menuitem_property_set(u1_accounts_mi, DBUSMENU_MENUITEM_PROP_LABEL, > - _("Ubuntu One...")); > - dbusmenu_menuitem_child_append(root, u1_accounts_mi); > - g_signal_connect(G_OBJECT(u1_accounts_mi), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, > - G_CALLBACK(spawn_on_activate_cb), "ubuntuone-preferences"); > - > + if (program_is_installed ("empathy-accounts")) { > + DbusmenuMenuitem *im_accounts_mi = dbusmenu_menuitem_new(); > + dbusmenu_menuitem_property_set(im_accounts_mi, DBUSMENU_MENUITEM_PROP_LABEL, > + _("Chat Accounts...")); > + dbusmenu_menuitem_child_append(root, im_accounts_mi); > + g_signal_connect(G_OBJECT(im_accounts_mi), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, > + G_CALLBACK(spawn_on_activate_cb), "empathy-accounts"); > + } > + > + if (program_is_installed ("gwibber-accounts")) { > + DbusmenuMenuitem *tw_accounts_mi = dbusmenu_menuitem_new(); > + dbusmenu_menuitem_property_set(tw_accounts_mi, DBUSMENU_MENUITEM_PROP_LABEL, > + _("Broadcast Accounts....")); > + dbusmenu_menuitem_child_append(root, tw_accounts_mi); > + g_signal_connect(G_OBJECT(tw_accounts_mi), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, > + G_CALLBACK(spawn_on_activate_cb), "gwibber-accounts"); > + } > + > + if (program_is_installed ("ubuntuone-preferences")) { > + DbusmenuMenuitem *u1_accounts_mi = dbusmenu_menuitem_new(); > + dbusmenu_menuitem_property_set(u1_accounts_mi, DBUSMENU_MENUITEM_PROP_LABEL, > + _("Ubuntu One...")); > + dbusmenu_menuitem_child_append(root, u1_accounts_mi); > + g_signal_connect(G_OBJECT(u1_accounts_mi), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, > + G_CALLBACK(spawn_on_activate_cb), "ubuntuone-preferences"); > + } > } > > static gboolean >