[Xfce4-commits] <parole:master> Play the first row if no row selected
Ali Abdallah
noreply at xfce.org
Tue Sep 29 11:58:01 CEST 2009
Updating branch refs/heads/master
to 4c516026911d35ba6a8d9f30bdecb4996a3e3c3b (commit)
from 9ed4c72d9422cb432271af63e6f749ad77095fc4 (commit)
commit 4c516026911d35ba6a8d9f30bdecb4996a3e3c3b
Author: Ali Abdallah <ali at ali-xfce.org>
Date: Tue Sep 29 11:57:06 2009 +0000
Play the first row if no row selected
parole/parole-medialist.c | 20 ++++++++++++++++++++
parole/parole-medialist.h | 4 ++++
parole/parole-player.c | 15 ++++++++++-----
3 files changed, 34 insertions(+), 5 deletions(-)
diff --git a/parole/parole-medialist.c b/parole/parole-medialist.c
index 19cf63c..d4a7ae5 100644
--- a/parole/parole-medialist.c
+++ b/parole/parole-medialist.c
@@ -1203,6 +1203,26 @@ gboolean parole_media_list_is_selected_row (ParoleMediaList *list)
return gtk_tree_selection_count_selected_rows (list->priv->sel) > 0;
}
+gboolean parole_media_list_is_empty (ParoleMediaList *list)
+{
+ GtkTreeIter iter;
+
+ return !gtk_tree_model_get_iter_first (GTK_TREE_MODEL (list->priv->store), &iter);
+}
+
+GtkTreeRowReference *parole_media_list_get_first_row (ParoleMediaList *list)
+{
+ GtkTreeRowReference *row = NULL;
+ GtkTreeIter iter;
+
+ if ( gtk_tree_model_get_iter_first (GTK_TREE_MODEL (list->priv->store), &iter) )
+ {
+ row = parole_media_list_get_row_reference_from_iter (list, &iter, TRUE);
+ }
+
+ return row;
+}
+
GtkTreeRowReference *parole_media_list_get_selected_row (ParoleMediaList *list)
{
return parole_media_list_get_first_selected_row (list);
diff --git a/parole/parole-medialist.h b/parole/parole-medialist.h
index 4d0a922..692144a 100644
--- a/parole/parole-medialist.h
+++ b/parole/parole-medialist.h
@@ -71,6 +71,10 @@ void parole_media_list_load (ParoleMediaList *list);
gboolean parole_media_list_is_selected_row (ParoleMediaList *list);
+gboolean parole_media_list_is_empty (ParoleMediaList *list);
+
+GtkTreeRowReference *parole_media_list_get_first_row (ParoleMediaList *list);
+
GtkTreeRowReference *parole_media_list_get_selected_row (ParoleMediaList *list);
GtkTreeRowReference *parole_media_list_get_next_row (ParoleMediaList *list,
diff --git a/parole/parole-player.c b/parole/parole-player.c
index 391d211..1289592 100644
--- a/parole/parole-player.c
+++ b/parole/parole-player.c
@@ -381,8 +381,11 @@ parole_player_uri_opened_cb (ParoleMediaList *list, const gchar *uri, ParolePlay
static void
parole_player_media_cursor_changed_cb (ParoleMediaList *list, gboolean media_selected, ParolePlayer *player)
{
- if (player->priv->state != PAROLE_MEDIA_STATE_PLAYING)
- gtk_widget_set_sensitive (player->priv->play_pause, media_selected);
+ if (player->priv->state < PAROLE_MEDIA_STATE_PAUSED)
+ {
+ gtk_widget_set_sensitive (player->priv->play_pause,
+ media_selected || !parole_media_list_is_empty (player->priv->list));
+ }
}
static void
@@ -564,7 +567,8 @@ parole_player_stopped (ParolePlayer *player)
player->priv->state = PAROLE_MEDIA_STATE_STOPPED;
gtk_widget_set_sensitive (player->priv->play_pause,
- parole_media_list_is_selected_row (player->priv->list));
+ parole_media_list_is_selected_row (player->priv->list) ||
+ !parole_media_list_is_empty (player->priv->list));
/*
* Set the stop widget insensitive only if we are not going to got to playing
@@ -599,10 +603,11 @@ parole_player_play_selected_row (ParolePlayer *player)
row = parole_media_list_get_selected_row (player->priv->list);
+ if ( row == NULL )
+ row = parole_media_list_get_first_row (player->priv->list);
+
if ( row )
- {
parole_player_media_activated_cb (player->priv->list, row, player);
- }
}
static void
More information about the Xfce4-commits
mailing list