=== modified file 'src/players/__init__.py' --- src/players/__init__.py 2011-01-09 04:54:24 +0000 +++ src/players/__init__.py 2011-01-10 20:02:25 +0000 @@ -216,7 +216,7 @@ class MPRISPlayer(GenericPlayer): DBUS_OBJECT = '/Player' - capabilities = ('rating', 'time', 'seek', 'volume') + capabilities = ('time', 'seek', 'volume') iface = None === modified file 'src/ui.py' --- src/ui.py 2010-12-19 19:57:16 +0000 +++ src/ui.py 2011-01-10 21:03:03 +0000 @@ -419,6 +419,7 @@ rating = HRating(size,spacing, src_star, src_nostar, src_hover, src_pressed) + rating.set_clickable('rating' in self.cg.player.capabilities) rating.connect('set_rating', self.rating_clicked) reflect = domitem.getAttribute("reflect") === modified file 'src/widgets/rating.py' --- src/widgets/rating.py 2010-10-30 20:07:36 +0000 +++ src/widgets/rating.py 2011-01-10 21:00:12 +0000 @@ -51,6 +51,8 @@ _hovered = False _reflect = None + + _clickable = False def __init__(self, size, spacing, star, nostar, hover, pressed): super(Rating,self).__init__(size) @@ -112,40 +114,42 @@ raise NotImplementedError def do_button_press_event(self, event): - if self._pressed: + if self._pressed and self._clickable: self._current = self._pressed self.queue_draw() return True def do_button_release_event(self, event): - rating = self.check_rating(event) - self.set_rating(rating) - self.emit('set_rating', rating) - if self._pressed: - if self._hovered: - self._current = self._hover - else: - self._current = self._star - self.queue_draw() + if self._clickable: + rating = self.check_rating(event) + self.set_rating(rating) + self.emit('set_rating', rating) + if self._pressed: + if self._hovered: + self._current = self._hover + else: + self._current = self._star + self.queue_draw() return True def do_enter_notify_event(self, event): self.hovered = True - if self._hover: + if self._hover and self._clickable: self._current = self._hover self.queue_draw() return True def do_leave_notify_event(self, event): self._hovered = False - if self._hover: + if self._hover and self._clickable: self._current = self._star self.queue_draw() self.set_rating(self._old_rating) return True def do_motion_notify_event(self, event): - self.set_rating(self.check_rating(event), True) + if self._clickable: + self.set_rating(self.check_rating(event), True) return True def set_rating(self, rating, tmp=False): @@ -173,6 +177,9 @@ #self.h = self.get_height() #self.set_size_request(self.w, self.h) + def set_clickable(self, clickable): + self._clickable = clickable + class HRating(Rating): def do_expose_event(self, event): cr = self.window.cairo_create()