diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/playlists-menu-item.vala | 17 | ||||
-rw-r--r-- | src/sound-service-dbus.c | 5 | ||||
-rw-r--r-- | src/sound-service.c | 2 |
3 files changed, 19 insertions, 5 deletions
diff --git a/src/playlists-menu-item.vala b/src/playlists-menu-item.vala index f4d7233..b3fd7c6 100644 --- a/src/playlists-menu-item.vala +++ b/src/playlists-menu-item.vala @@ -47,7 +47,12 @@ public class PlaylistsMenuitem : PlayerItem Dbusmenu.Menuitem menuitem = new Menuitem(); menuitem.property_set (MENUITEM_PROP_LABEL, detail.name); - menuitem.property_set (MENUITEM_PROP_ICON_NAME, detail.icon_path); + var result = this.parse_icon_path (detail.icon_path); + + if (result != null) { + menuitem.property_set (MENUITEM_PROP_ICON_NAME, result); + } + menuitem.property_set (MENUITEM_PATH, (string)detail.path); menuitem.property_set_bool (MENUITEM_PROP_VISIBLE, true); menuitem.property_set_bool (MENUITEM_PROP_ENABLED, true); @@ -77,12 +82,20 @@ public class PlaylistsMenuitem : PlayerItem } } + private string? parse_icon_path (string path) + { + return ( path == "" ? null : Path.get_basename(path).split(".")[0] ); + } + public void update_individual_playlist (PlaylistDetails new_detail) { foreach ( Dbusmenu.Menuitem item in this.current_playlists.values ){ if (new_detail.path == item.property_get (MENUITEM_PATH)){ item.property_set (MENUITEM_PROP_LABEL, new_detail.name); - item.property_set (MENUITEM_PROP_ICON_NAME, new_detail.icon_path); + var result = this.parse_icon_path (new_detail.icon_path); + if (result != null) { + item.property_set (MENUITEM_PROP_ICON_NAME, result); + } } } // If its active make sure the name is updated on the root item. diff --git a/src/sound-service-dbus.c b/src/sound-service-dbus.c index 43d7360..8d0cc0b 100644 --- a/src/sound-service-dbus.c +++ b/src/sound-service-dbus.c @@ -149,7 +149,10 @@ sound_service_dbus_create_root_item (SoundServiceDbus* self) SoundServiceDbusPrivate * priv = SOUND_SERVICE_DBUS_GET_PRIVATE(self); priv->root_menuitem = dbusmenu_menuitem_new(); g_debug("Root ID: %d", dbusmenu_menuitem_get_id(priv->root_menuitem)); - DbusmenuServer *server = dbusmenu_server_new(INDICATOR_SOUND_MENU_DBUS_OBJECT_PATH); + DbusmenuServer *server = dbusmenu_server_new (INDICATOR_SOUND_MENU_DBUS_OBJECT_PATH); + const gchar* paths[] = {"/usr/share/banshee-1/icons", NULL}; + dbusmenu_server_set_icon_paths (server, + paths); dbusmenu_server_set_root (server, priv->root_menuitem); g_object_unref (priv->root_menuitem); priv->active_sink = active_sink_new (self); diff --git a/src/sound-service.c b/src/sound-service.c index c79b9f6..cfc0b7e 100644 --- a/src/sound-service.c +++ b/src/sound-service.c @@ -39,10 +39,8 @@ service_shutdown (IndicatorService *service, gpointer user_data) { if (mainloop != NULL) { g_debug("Service shutdown !"); - close_pulse_activites(); g_main_loop_quit(mainloop); - } return; } |