diff --git a/playitslowly/myGtk.py b/playitslowly/myGtk.py index f7d0b29..ab63b87 100644 --- a/playitslowly/myGtk.py +++ b/playitslowly/myGtk.py @@ -242,6 +242,9 @@ class ClockScale(Gtk.VBox): def __init__(self, *args): GObject.GObject.__init__(self) self.clocklabel = Gtk.Label() + + self.range_max = 0.0 + # slider self.scale = HScale(*args) self.scale.set_draw_value(False) @@ -249,21 +252,37 @@ def __init__(self, *args): self.get_value = self.scale.get_value self.get_adjustment = self.scale.get_adjustment self.set_adjustment = self.scale.set_adjustment - self.set_range = self.scale.set_range self.update_clock() self.scale.connect("value-changed", self.update_clock) self.pack_start(self.clocklabel, True, True, 0) self.pack_start(self.scale, True, True, 0) + def update_clock(self, sender=None): - self.clocklabel.set_markup(self.format(self.get_value())) - def format(self, value): - ms = str(timedelta(seconds=value))[8:11] - value = str(timedelta(seconds=value))[:7] + self.clocklabel.set_markup(self.format(self.get_value(), + self.range_max)) + + def format(self, value, max): + hms, ms = self.split_time(value) + max_hms, max_ms = self.split_time(max) + format_str = '{}.{}' + \ + ' / ' + \ + '{}.{}' + return format_str.format(hms, ms, max_hms, max_ms) + + def set_range(self, min, max): + "Set range for scale." + self.range_max = max + self.scale.set_range(min, max) + + def split_time(self, time): + """Split time into two parts, one is h:mm:ss and the other millisecond""" + hms = str(timedelta(seconds=time))[:7] + ms = str(timedelta(seconds=time))[8:11] if ms == '': ms = '000' - return '%s.%s' % (value, ms) + return hms, ms class TextScale(Gtk.HBox): format = "%.2f"