comparison bin/keyboardcomposer @ 1886:ce6bd8ff49e2

KC mark a dead subbox with a new attribute, since it's awkward to make self.scale an Optional Ignore-this: 7f0c1c6a8b3a349329cffb1c2849dba4
author Drew Perttula <drewp@bigasterisk.com>
date Tue, 28 May 2019 06:55:35 +0000
parents 17bee25a20cb
children 9e6596b7f1a2
comparison
equal deleted inserted replaced
1885:7bafb8213b4b 1886:ce6bd8ff49e2
101 self.name = self.graph.label(sub) 101 self.name = self.graph.label(sub)
102 self._val = 0.0 102 self._val = 0.0
103 self.slider_var = tk.DoubleVar() 103 self.slider_var = tk.DoubleVar()
104 self.pauseTrace = False 104 self.pauseTrace = False
105 self.scale = SubScale(self, variable=self.slider_var, width=20) 105 self.scale = SubScale(self, variable=self.slider_var, width=20)
106 self.dead = False
106 107
107 self.namelabel = tk.Label(self, 108 self.namelabel = tk.Label(self,
108 font="Arial 9", 109 font="Arial 9",
109 bg=darkBg, 110 bg=darkBg,
110 fg='white', 111 fg='white',
133 134
134 def getVal(self) -> float: 135 def getVal(self) -> float:
135 return self._val 136 return self._val
136 137
137 def setVal(self, newVal: float) -> None: 138 def setVal(self, newVal: float) -> None:
138 if self.scale is None: 139 if self.dead:
139 return 140 return
140 try: 141 try:
141 self.scale.set(newVal) 142 self.scale.set(newVal)
142 self.levellabel.config(text=str(newVal)) 143 self.levellabel.config(text=str(newVal))
143 except Exception: 144 except Exception:
144 log.warn("disabling handlers on broken subbox") 145 log.warn("disabling handlers on broken subbox")
145 self.scale = None 146 self.dead = True
146 147
147 def cleanup(self): 148 def cleanup(self):
148 self.slider_var.trace_vdelete('w', self._slider_var_trace) 149 self.slider_var.trace_vdelete('w', self._slider_var_trace)
149 150
150 def slider_changed(self, *args): 151 def slider_changed(self, *args):
151 self._val = self.scale.get() 152 self._val = self.scale.get()