Changeset - 93e3a00b7cfc
[Not reviewed]
default
0 2 0
Drew Perttula - 6 years ago 2019-06-09 06:32:54
drewp@bigasterisk.com
KC had a new DoubleVar bug where setting from 0 to 1 would result in 0.000
Ignore-this: 30e08a24aef112c79cde7c9b62d1e45a
2 files changed with 10 insertions and 6 deletions:
0 comments (0 inline, 0 general)
bin/keyboardcomposer
Show inline comments
 
@@ -47,14 +47,14 @@ class DummySliders:
 
class SubScale(tk.Scale, Fadable):
 

	
 
    def __init__(self, master, *args, **kw):
 
        self.scale_var = kw.get('variable') or tk.DoubleVar()
 
        kw.update({
 
            'variable': self.scale_var,
 
            'from': 1,
 
            'to': 0,
 
            'from': 1.,
 
            'to': 0.,
 
            'showvalue': 0,
 
            'sliderlength': 15,
 
            'res': 0.001,
 
            'width': 40,
 
            'troughcolor': 'black',
 
            'bg': 'grey40',
light9/Fadable.py
Show inline comments
 
@@ -73,12 +73,16 @@ class Fadable:
 
        # this was just to make the display not look so weird, but it
 
        # could actually affect the speed of really slow fades. If
 
        # that's a problem, do a real trace_write hook for the
 
        # variable's display instead of using Label(textvariable=var)
 
        # and format it there.
 
        self.fade_var.set(round(value, 7))
 
        if self.fade_var.get() != value:
 
            self.fade_var.set(value)
 
        if self.fade_var.get() != value:
 
            raise ValueError("doublevar won't set")
 

	
 
    def fade(self, value, length=0.5, step_time=10):
 
        """Fade to value in length seconds with steps every step_time
 
        milliseconds"""
 
        if length == 0:  # 0 seconds fades happen right away and prevents
 
            # and prevents us from entering the fade loop,
 
@@ -128,13 +132,13 @@ class Fadable:
 
        is true, it do this as a fade over length time."""
 
        amount = self.wheel_step * multiplier
 
        if self.fading:
 
            newlevel = self.fade_end_level - amount
 
        else:
 
            newlevel = self.fade_var.get() - amount
 
        newlevel = max(0, newlevel)
 
        newlevel = max(0., newlevel)
 
        self.set_volume(newlevel, length)
 

	
 
    def set_volume(self, newlevel, length=0.3):
 
        """Sets the volume to newlevel, performing a fade of length if
 
        use_fades is true."""
 
        if self.use_fades:
 
@@ -143,17 +147,17 @@ class Fadable:
 
            self.set_var_rounded(newlevel)
 

	
 
    def toggle_mute(self):
 
        """Toggles whether the volume is being muted."""
 
        if self.last_level is None:
 
            self.last_level = self.fade_var.get()
 
            if self.last_level == 0:  # we don't want last_level to be zero,
 
            if self.last_level == 0.:  # we don't want last_level to be zero,
 
                # since it will make us toggle between 0
 
                # and 0
 
                newlevel = 1
 
                newlevel = 1.
 
            else:
 
                newlevel = 0
 
                newlevel = 0.
 
        else:
 
            newlevel = self.last_level
 
            self.last_level = None
 

	
 
        self.set_var_rounded(newlevel)
0 comments (0 inline, 0 general)