Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/controls.py
diff options
context:
space:
mode:
authorManuel Kaufmann <humitos@gmail.com>2013-01-24 19:37:21 (GMT)
committer Gonzalo Odiard <godiard@gmail.com>2013-01-25 13:59:27 (GMT)
commitafedc32335628f023aa2f90dc0c3e6c34122b7dc (patch)
tree4a76957138ddc6d0ae3859a5dbe5e147f1192149 /controls.py
parent5ab425e6aa455c65a0566b1f0044d537b8a316b3 (diff)
Proper sensitive on control buttons
When there is no streams in the playlist we set the sensitive to False for all the control buttons on the toolbar. If one stream is added Play button is enabled and will play the first stream of the playlist. Signed-off-by: Manuel Kaufmann <humitos@gmail.com>
Diffstat (limited to 'controls.py')
-rw-r--r--controls.py33
1 files changed, 26 insertions, 7 deletions
diff --git a/controls.py b/controls.py
index 775e30a..0ad105d 100644
--- a/controls.py
+++ b/controls.py
@@ -117,7 +117,7 @@ class Controls(GObject.GObject):
total_time.show()
self.toolbar.insert(total_time, -1)
- self.activity.connect('no-stream', self.__no_stream_cb)
+ self.activity.connect('playlist-finished', self.__playlist_finished_cb)
self.activity.player.connect('play', self.__player_play)
def __player_play(self, widget):
@@ -132,6 +132,7 @@ class Controls(GObject.GObject):
def __erase_playlist_entry_clicked_cb(self, widget):
self.activity.playlist_widget.delete_selected_items()
+ self.check_if_next_prev()
def show_picker_cb(self, button=None):
jobject = None
@@ -163,14 +164,25 @@ class Controls(GObject.GObject):
def check_if_next_prev(self):
current_playing = self.activity.playlist_widget._current_playing
- if current_playing == 0:
+ if len(self.activity.playlist_widget._items) == 0:
+ # There is no media in the playlist
self.prev_button.set_sensitive(False)
- else:
- self.prev_button.set_sensitive(True)
- if current_playing == len(self.activity.playlist_widget._items) - 1:
+ self.button.set_sensitive(False)
self.next_button.set_sensitive(False)
else:
- self.next_button.set_sensitive(True)
+ self.button.set_sensitive(True)
+
+ current_playing = self.activity.playlist_widget._current_playing
+ if current_playing == 0:
+ self.prev_button.set_sensitive(False)
+ else:
+ self.prev_button.set_sensitive(True)
+
+ items = len(self.activity.playlist_widget._items)
+ if current_playing == items - 1:
+ self.next_button.set_sensitive(False)
+ else:
+ self.next_button.set_sensitive(True)
def _button_clicked_cb(self, widget):
self.set_enabled()
@@ -183,6 +195,13 @@ class Controls(GObject.GObject):
if self.activity.player.error:
self.set_disabled()
else:
+ if self.activity.player.player.props.current_uri is None:
+ # There is no stream selected to be played
+ # yet. Select the first one
+ path = self.activity.playlist_widget._items[0]['path']
+ self.activity.playlist_widget._current_playing = 0
+ self.activity.player.set_uri(path)
+
self.activity.player.play()
self.activity._switch_canvas(True)
self._scale_update_id = GObject.timeout_add(
@@ -272,7 +291,7 @@ class Controls(GObject.GObject):
return True
- def __no_stream_cb(self, widget):
+ def __playlist_finished_cb(self, widget):
self.activity.player.stop()
self.set_button_play()
self.check_if_next_prev()