Changeset - ce6bd8ff49e2
[Not reviewed]
default
0 1 0
Drew Perttula - 6 years ago 2019-05-28 06:55:35
drewp@bigasterisk.com
KC mark a dead subbox with a new attribute, since it's awkward to make self.scale an Optional
Ignore-this: 7f0c1c6a8b3a349329cffb1c2849dba4
1 file changed with 4 insertions and 3 deletions:
0 comments (0 inline, 0 general)
bin/keyboardcomposer
Show inline comments
 
@@ -94,24 +94,25 @@ class SubmasterBox(tk.Frame):
 
        rgb = webcolors.hex_to_rgb(bg)
 
        hsv = colorsys.rgb_to_hsv(*[x / 255 for x in rgb])
 
        darkBg = webcolors.rgb_to_hex(
 
            tuple([
 
                int(x * 255) for x in colorsys.hsv_to_rgb(hsv[0], hsv[1], .2)
 
            ]))
 
        tk.Frame.__init__(self, master, bd=1, relief='raised', bg=bg)
 
        self.name = self.graph.label(sub)
 
        self._val = 0.0
 
        self.slider_var = tk.DoubleVar()
 
        self.pauseTrace = False
 
        self.scale = SubScale(self, variable=self.slider_var, width=20)
 
        self.dead = False
 

	
 
        self.namelabel = tk.Label(self,
 
                                  font="Arial 9",
 
                                  bg=darkBg,
 
                                  fg='white',
 
                                  pady=0)
 
        self.graph.addHandler(self.updateName)
 

	
 
        self.namelabel.pack(side=tk.TOP)
 
        self.levellabel = tk.Label(self,
 
                                   textvariable=self.slider_var,
 
                                   font="Arial 6",
 
@@ -126,33 +127,33 @@ class SubmasterBox(tk.Frame):
 

	
 
        self._slider_var_trace = self.slider_var.trace('w', self.slider_changed)
 

	
 
        self.graph.addHandler(self.updateLevelFromGraph)
 

	
 
        # initial position
 
        # stil need? dispatcher.send("send_to_hw", sub=sub.uri, hwCol=col + 1)
 

	
 
    def getVal(self) -> float:
 
        return self._val
 

	
 
    def setVal(self, newVal: float) -> None:
 
        if self.scale is None:
 
        if self.dead:
 
            return
 
        try:
 
            self.scale.set(newVal)
 
            self.levellabel.config(text=str(newVal))
 
        except Exception:
 
            log.warn("disabling handlers on broken subbox")
 
            self.scale = None
 
        
 
            self.dead = True
 

	
 
    def cleanup(self):
 
        self.slider_var.trace_vdelete('w', self._slider_var_trace)
 

	
 
    def slider_changed(self, *args):
 
        self._val = self.scale.get()
 
        self.scale.draw_indicator_colors()
 

	
 
        if self.pauseTrace:
 
            return
 
        self.updateGraphWithLevel(self.sub, self.getVal())
 

	
 
        # needs fixing: plan is to use dispatcher or a method call to tell a hardware-mapping object who changed, and then it can make io if that's a current hw slider
0 comments (0 inline, 0 general)