Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/toolkit/temposlider.py
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/temposlider.py')
-rw-r--r--toolkit/temposlider.py34
1 files changed, 19 insertions, 15 deletions
diff --git a/toolkit/temposlider.py b/toolkit/temposlider.py
index d8e633d..d2bf3ad 100644
--- a/toolkit/temposlider.py
+++ b/toolkit/temposlider.py
@@ -17,8 +17,8 @@
import gi
from gi.repository import Gtk
from gi.repository import GdkPixbuf
+from gi.repository import Rsvg
-import rsvg
import cairo
from sugar3.graphics import style
@@ -48,8 +48,8 @@ class TempoSlider(Gtk.HBox):
slider.connect("button-press-event", self._press_cb)
slider.connect("button-release-event", self._release_cb)
- self.pack_start(slider, True, True)
- self.pack_end(self._image, False, False)
+ self.pack_start(slider, True, True, 0)
+ self.pack_end(self._image, False, False, 0)
def set_value(self, tempo, quiet = False):
@@ -75,16 +75,17 @@ class TempoSlider(Gtk.HBox):
return oupper
return olower + int((oupper-olower+1) * (value-ilower) /
- float(iupper-ilower))
+ float(iupper-ilower))
- img = map_range(tempo, self.adjustment.lower,
- self.adjustment.upper, 0, 7)
+ img = map_range(tempo, self.adjustment.get_lower(),
+ self.adjustment.get_upper(), 0, 7)
if not self._pixbuf[img]:
- svg = rsvg.Handle(data=IMAGE[img])
+ svg = Rsvg.Handle()
+ svg.new_from_data(IMAGE[img])
self._pixbuf[img] = _from_svg_at_size(handle=svg,
- width=style.STANDARD_ICON_SIZE,
- height=style.STANDARD_ICON_SIZE)
+ width=style.STANDARD_ICON_SIZE,
+ height=style.STANDARD_ICON_SIZE)
self._image.set_from_pixbuf(self._pixbuf[img])
@@ -103,13 +104,16 @@ def _from_svg_at_size(filename=None, width=None, height=None, handle=None,
""" import from pixbuf.py """
if not handle:
- handle = rsvg.Handle(filename)
+ svg = Rsvg.Handle()
+ svg.new_from_file(IMAGE[img])
- dimensions = handle.get_dimension_data()
- icon_width = dimensions[0]
- icon_height = dimensions[1]
-
- if icon_width != width or icon_height != height:
+ dimensions = handle.get_dimensions()
+ icon_width = dimensions.height
+ icon_height = dimensions.width
+
+ if (icon_width != width or icon_height != height) and \
+ icon_width != 0 and icon_height != 0:
+
ratio_width = float(width) / icon_width
ratio_height = float(height) / icon_height