Updating branch refs/heads/bluesabre/gtk3 to dea0a2e1675b778b69abffb397622c70938bdccc (commit) from bde5e5b8f297e66b0ee5026f0a6b70574fa521ad (commit)
commit dea0a2e1675b778b69abffb397622c70938bdccc Author: Sean Davis <smd.seanda...@gmail.com> Date: Sun Sep 15 22:23:22 2013 -0400 Make previous/next sensitive only when n_items > 1 src/parole-medialist.c | 13 +++++++++++++ src/parole-medialist.h | 3 +++ src/parole-player.c | 9 +++++---- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/parole-medialist.c b/src/parole-medialist.c index afd783b..f309d47 100644 --- a/src/parole-medialist.c +++ b/src/parole-medialist.c @@ -249,6 +249,19 @@ parole_media_list_set_playlist_count (ParoleMediaList *list, gint n_items) g_signal_emit (G_OBJECT (list), signals [MEDIA_CURSOR_CHANGED], 0, n_items != 0); } +gint +parole_media_list_get_playlist_count (ParoleMediaList *list) +{ + if (gtk_notebook_get_current_page(GTK_NOTEBOOK(list->priv->playlist_notebook)) == 0) + { + return gtk_tree_model_iter_n_children(GTK_TREE_MODEL(list->priv->store), NULL); + } + else + { + return gtk_tree_model_iter_n_children(GTK_TREE_MODEL(list->priv->disc_store), NULL); + } +} + /** * parole_media_list_add: * @ParoleMediaList: a #ParoleMediaList diff --git a/src/parole-medialist.h b/src/parole-medialist.h index 7d7fa1b..649d4f6 100644 --- a/src/parole-medialist.h +++ b/src/parole-medialist.h @@ -108,6 +108,9 @@ parole_media_list_is_selected_row (ParoleMediaList *list); gboolean parole_media_list_is_empty (ParoleMediaList *list); +gint +parole_media_list_get_playlist_count (ParoleMediaList *list); + GtkTreeRowReference *parole_media_list_get_first_row (ParoleMediaList *list); diff --git a/src/parole-player.c b/src/parole-player.c index 1b9d572..1443671 100644 --- a/src/parole-player.c +++ b/src/parole-player.c @@ -1219,6 +1219,11 @@ parole_player_media_cursor_changed_cb (ParoleMediaList *list, gboolean media_sel gtk_action_set_sensitive (player->priv->media_playpause_action, media_selected || !parole_media_list_is_empty (player->priv->list)); } + + gtk_action_set_sensitive (player->priv->media_previous_action, + parole_media_list_get_playlist_count (player->priv->list) > 1); + gtk_action_set_sensitive (player->priv->media_next_action, + parole_media_list_get_playlist_count (player->priv->list) > 1); } static void @@ -1352,10 +1357,6 @@ parole_player_playing (ParolePlayer *player, const ParoleStream *stream) gtk_action_set_sensitive (player->priv->media_playpause_action, TRUE); - /* FIXME: Better detection for when previous/next should be enabled */ - gtk_action_set_sensitive (player->priv->media_previous_action, TRUE); - gtk_action_set_sensitive (player->priv->media_next_action, TRUE); - parole_player_set_playpause_button_from_stock (player, "gtk-media-pause"); gtk_widget_set_sensitive (player->priv->range, seekable); _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits