1 parent
769623973a
commit
d4fd8817a2
3 files changed
+27
-11
No files matched your search
+10
-5
@@ -114,7 +114,7 @@ class KaTrainGui(Screen, KaTrainBase):
|
||||
self.message_queue = Queue()
|
||||
|
||||
self._keyboard = Window.request_keyboard(None, self, "")
|
||||
self._keyboard.bind(on_key_down=self._on_keyboard_down)
|
||||
self._keyboard.bind(on_key_down=self._on_keyboard_down,on_key_up=self._on_keyboard_up)
|
||||
Clock.schedule_interval(self.animate_pondering, 0.1)
|
||||
|
||||
def log(self, message, level=OUTPUT_INFO):
|
||||
@@ -549,11 +549,10 @@ class KaTrainGui(Screen, KaTrainBase):
|
||||
else:
|
||||
return
|
||||
shift_pressed = "shift" in modifiers
|
||||
alt_pressed = "alt" in modifiers
|
||||
shortcuts = self.shortcuts
|
||||
if keycode[1] == "tab":
|
||||
if keycode[1] == "tab" and not alt_pressed:
|
||||
self.play_mode.switch_ui_mode()
|
||||
elif keycode[1] == "alt":
|
||||
self.nav_drawer.set_state("toggle")
|
||||
elif keycode[1] == "spacebar":
|
||||
self.toggle_continuous_analysis()
|
||||
elif keycode[1] == "k":
|
||||
@@ -611,7 +610,13 @@ class KaTrainGui(Screen, KaTrainBase):
|
||||
filename = f"callgrind.{int(time.time())}.prof"
|
||||
stats.save(filename, type="callgrind")
|
||||
self.log(f"wrote profiling results to {filename}", OUTPUT_ERROR)
|
||||
return True
|
||||
|
||||
def _on_keyboard_up(self, _keyboard, keycode):
|
||||
if self.controls.note.focus or self.popup_open:
|
||||
return # when making notes, don't allow keyboard shortcuts
|
||||
if keycode[1] == "alt":
|
||||
self.nav_drawer.set_state("toggle")
|
||||
|
||||
|
||||
|
||||
class KaTrainApp(MDApp):
|
||||
|
||||
@@ -24,9 +24,9 @@ class PlayAnalyzeSelect(MDFloatLayout):
|
||||
self.katrain._config["ui_state"] = self.katrain._config.get("ui_state", {})
|
||||
self.katrain._config["ui_state"][self.mode] = {
|
||||
"analysis_controls": {
|
||||
id: checkbox.active
|
||||
for id, checkbox in self.katrain.analysis_controls.ids.items()
|
||||
if isinstance(checkbox, AnalysisToggle)
|
||||
id: toggle.active if not toggle.checkbox.slashed else None # troolean ftw
|
||||
for id, toggle in self.katrain.analysis_controls.ids.items()
|
||||
if isinstance(toggle, AnalysisToggle)
|
||||
},
|
||||
"panels": {
|
||||
id: (panel.state, panel.option_state)
|
||||
@@ -39,7 +39,12 @@ class PlayAnalyzeSelect(MDFloatLayout):
|
||||
def load_ui_state(self, _dt=None):
|
||||
state = self.katrain.config(f"ui_state/{self.mode}", {})
|
||||
for id, active in state.get("analysis_controls", {}).items():
|
||||
self.katrain.analysis_controls.ids[id].checkbox.active = active
|
||||
cb = self.katrain.analysis_controls.ids[id].checkbox
|
||||
cb.active = bool(active)
|
||||
print(cb,cb.tri_state,active)
|
||||
if cb.tri_state:
|
||||
cb.slashed = active is None
|
||||
cb.set_icon()
|
||||
for id, (panel_state, button_state) in state.get("panels", {}).items():
|
||||
self.katrain.controls.ids[id].set_option_state(button_state)
|
||||
self.katrain.controls.ids[id].state = panel_state
|
||||
|
||||
@@ -392,15 +392,21 @@ class TriStateMDCheckbox(MDCheckbox):
|
||||
if self.slashed:
|
||||
self.state = "normal"
|
||||
self.slashed = False
|
||||
self.icon = "checkbox-blank-outline"
|
||||
elif self.state == "down":
|
||||
self.state = "normal"
|
||||
self.slashed = True
|
||||
self.icon = "checkbox-blank-off-outline"
|
||||
else:
|
||||
self.state = "down"
|
||||
self.slashed = False
|
||||
self.set_icon()
|
||||
|
||||
def set_icon(self):
|
||||
if self.slashed:
|
||||
self.icon = "checkbox-blank-off-outline"
|
||||
elif self.state == "down":
|
||||
self.icon = "checkbox-marked-outline"
|
||||
else:
|
||||
self.icon = "checkbox-blank-outline"
|
||||
|
||||
|
||||
class AnalysisToggle(MDBoxLayout):
|
||||
|
||||
Reference in new issue
Block a user