changeset 1990:93e3a00b7cfc

KC had a new DoubleVar bug where setting from 0 to 1 would result in 0.000 Ignore-this: 30e08a24aef112c79cde7c9b62d1e45a
author Drew Perttula <drewp@bigasterisk.com>
date Sun, 09 Jun 2019 06:32:54 +0000
parents 8b887918c008
children b5dc4f1c4a83
files bin/keyboardcomposer light9/Fadable.py
diffstat 2 files changed, 10 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/bin/keyboardcomposer	Sun Jun 09 05:58:09 2019 +0000
+++ b/bin/keyboardcomposer	Sun Jun 09 06:32:54 2019 +0000
@@ -50,8 +50,8 @@
         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,
--- a/light9/Fadable.py	Sun Jun 09 05:58:09 2019 +0000
+++ b/light9/Fadable.py	Sun Jun 09 06:32:54 2019 +0000
@@ -76,6 +76,10 @@
         # 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
@@ -131,7 +135,7 @@
             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):
@@ -146,12 +150,12 @@
         """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