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.message_queue = Queue()
|
||||||
|
|
||||||
self._keyboard = Window.request_keyboard(None, self, "")
|
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)
|
Clock.schedule_interval(self.animate_pondering, 0.1)
|
||||||
|
|
||||||
def log(self, message, level=OUTPUT_INFO):
|
def log(self, message, level=OUTPUT_INFO):
|
||||||
@@ -549,11 +549,10 @@ class KaTrainGui(Screen, KaTrainBase):
|
|||||||
else:
|
else:
|
||||||
return
|
return
|
||||||
shift_pressed = "shift" in modifiers
|
shift_pressed = "shift" in modifiers
|
||||||
|
alt_pressed = "alt" in modifiers
|
||||||
shortcuts = self.shortcuts
|
shortcuts = self.shortcuts
|
||||||
if keycode[1] == "tab":
|
if keycode[1] == "tab" and not alt_pressed:
|
||||||
self.play_mode.switch_ui_mode()
|
self.play_mode.switch_ui_mode()
|
||||||
elif keycode[1] == "alt":
|
|
||||||
self.nav_drawer.set_state("toggle")
|
|
||||||
elif keycode[1] == "spacebar":
|
elif keycode[1] == "spacebar":
|
||||||
self.toggle_continuous_analysis()
|
self.toggle_continuous_analysis()
|
||||||
elif keycode[1] == "k":
|
elif keycode[1] == "k":
|
||||||
@@ -611,7 +610,13 @@ class KaTrainGui(Screen, KaTrainBase):
|
|||||||
filename = f"callgrind.{int(time.time())}.prof"
|
filename = f"callgrind.{int(time.time())}.prof"
|
||||||
stats.save(filename, type="callgrind")
|
stats.save(filename, type="callgrind")
|
||||||
self.log(f"wrote profiling results to {filename}", OUTPUT_ERROR)
|
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):
|
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.katrain._config.get("ui_state", {})
|
||||||
self.katrain._config["ui_state"][self.mode] = {
|
self.katrain._config["ui_state"][self.mode] = {
|
||||||
"analysis_controls": {
|
"analysis_controls": {
|
||||||
id: checkbox.active
|
id: toggle.active if not toggle.checkbox.slashed else None # troolean ftw
|
||||||
for id, checkbox in self.katrain.analysis_controls.ids.items()
|
for id, toggle in self.katrain.analysis_controls.ids.items()
|
||||||
if isinstance(checkbox, AnalysisToggle)
|
if isinstance(toggle, AnalysisToggle)
|
||||||
},
|
},
|
||||||
"panels": {
|
"panels": {
|
||||||
id: (panel.state, panel.option_state)
|
id: (panel.state, panel.option_state)
|
||||||
@@ -39,7 +39,12 @@ class PlayAnalyzeSelect(MDFloatLayout):
|
|||||||
def load_ui_state(self, _dt=None):
|
def load_ui_state(self, _dt=None):
|
||||||
state = self.katrain.config(f"ui_state/{self.mode}", {})
|
state = self.katrain.config(f"ui_state/{self.mode}", {})
|
||||||
for id, active in state.get("analysis_controls", {}).items():
|
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():
|
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].set_option_state(button_state)
|
||||||
self.katrain.controls.ids[id].state = panel_state
|
self.katrain.controls.ids[id].state = panel_state
|
||||||
|
|||||||
@@ -392,15 +392,21 @@ class TriStateMDCheckbox(MDCheckbox):
|
|||||||
if self.slashed:
|
if self.slashed:
|
||||||
self.state = "normal"
|
self.state = "normal"
|
||||||
self.slashed = False
|
self.slashed = False
|
||||||
self.icon = "checkbox-blank-outline"
|
|
||||||
elif self.state == "down":
|
elif self.state == "down":
|
||||||
self.state = "normal"
|
self.state = "normal"
|
||||||
self.slashed = True
|
self.slashed = True
|
||||||
self.icon = "checkbox-blank-off-outline"
|
|
||||||
else:
|
else:
|
||||||
self.state = "down"
|
self.state = "down"
|
||||||
self.slashed = False
|
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"
|
self.icon = "checkbox-marked-outline"
|
||||||
|
else:
|
||||||
|
self.icon = "checkbox-blank-outline"
|
||||||
|
|
||||||
|
|
||||||
class AnalysisToggle(MDBoxLayout):
|
class AnalysisToggle(MDBoxLayout):
|
||||||
|
|||||||
Reference in new issue
Block a user