mirror of
https://github.com/EyeTrackVR/EyeTrackVR.git
synced 2025-11-04 14:39:42 +08:00
Add config reset, clean-up modules
This commit is contained in:
parent
aa3be78f54
commit
3190364a72
@ -15,6 +15,7 @@ class BaseSettingsWidget:
|
|||||||
settings_modules: Iterable,
|
settings_modules: Iterable,
|
||||||
):
|
):
|
||||||
self.gui_general_settings_layout = f"-GENERALSETTINGSLAYOUT{widget_id}-"
|
self.gui_general_settings_layout = f"-GENERALSETTINGSLAYOUT{widget_id}-"
|
||||||
|
self.reset_button_key = f"RESET_SETTINGS{widget_id}"
|
||||||
self.is_saving = False
|
self.is_saving = False
|
||||||
self.main_config = main_config
|
self.main_config = main_config
|
||||||
self.config = main_config.settings
|
self.config = main_config.settings
|
||||||
@ -35,6 +36,7 @@ class BaseSettingsWidget:
|
|||||||
background_color="#424042",
|
background_color="#424042",
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
[sg.Button("Reset settings to default", key=self.reset_button_key)],
|
||||||
]
|
]
|
||||||
|
|
||||||
self.cancellation_event = (
|
self.cancellation_event = (
|
||||||
@ -82,12 +84,13 @@ class BaseSettingsWidget:
|
|||||||
if errors:
|
if errors:
|
||||||
self._handle_errors(errors)
|
self._handle_errors(errors)
|
||||||
|
|
||||||
|
self.handle_events(event, window)
|
||||||
|
|
||||||
def _initialize_modules(self, settings_modules, widget_id):
|
def _initialize_modules(self, settings_modules, widget_id):
|
||||||
return [
|
return [
|
||||||
module(
|
module(
|
||||||
config=self.config,
|
config=self.config,
|
||||||
settings=self.main_config,
|
settings=self.main_config,
|
||||||
settings_base_class=EyeTrackSettingsConfig,
|
|
||||||
widget_id=widget_id,
|
widget_id=widget_id,
|
||||||
)
|
)
|
||||||
for module in settings_modules
|
for module in settings_modules
|
||||||
@ -95,3 +98,26 @@ class BaseSettingsWidget:
|
|||||||
|
|
||||||
def get_layout(self) -> Iterable:
|
def get_layout(self) -> Iterable:
|
||||||
return self.widget_layout
|
return self.widget_layout
|
||||||
|
|
||||||
|
def handle_events(self, event, window):
|
||||||
|
if event == "__TIMEOUT__":
|
||||||
|
return
|
||||||
|
|
||||||
|
if event == self.reset_button_key:
|
||||||
|
self.reset_config(window)
|
||||||
|
|
||||||
|
def reset_config(self, window):
|
||||||
|
|
||||||
|
default_values = {}
|
||||||
|
base_settings = EyeTrackSettingsConfig()
|
||||||
|
|
||||||
|
print(f"\033[92m[INFO] Resetting config to defaults\033[0m")
|
||||||
|
for module in self.initialized_modules:
|
||||||
|
for key in module.get_key_for_panel_defaults():
|
||||||
|
default_val = getattr(base_settings, key)
|
||||||
|
widget_key = getattr(module, key)
|
||||||
|
default_values[key] = default_val
|
||||||
|
window[widget_key].update(default_val)
|
||||||
|
print(f"\033[92m[INFO] Config reset, saving\033[0m")
|
||||||
|
|
||||||
|
self._update_and_save_config(default_values)
|
||||||
|
|||||||
@ -15,8 +15,8 @@ class AdvancedTrackingAlgoSettingsValidationModel(BaseValidationModel):
|
|||||||
|
|
||||||
|
|
||||||
class AdvancedTrackingAlgoSettingsModule(BaseSettingsModule):
|
class AdvancedTrackingAlgoSettingsModule(BaseSettingsModule):
|
||||||
def __init__(self, config, widget_id, settings_base_class, **kwargs):
|
def __init__(self, config, widget_id, **kwargs):
|
||||||
super().__init__(config, widget_id, settings_base_class, **kwargs)
|
super().__init__(config=config, widget_id=widget_id, **kwargs)
|
||||||
self.validation_model = AdvancedTrackingAlgoSettingsValidationModel
|
self.validation_model = AdvancedTrackingAlgoSettingsValidationModel
|
||||||
|
|
||||||
self.gui_blob_maxsize = f"-BLOBMAXSIZE{widget_id}-"
|
self.gui_blob_maxsize = f"-BLOBMAXSIZE{widget_id}-"
|
||||||
|
|||||||
@ -24,10 +24,9 @@ class ValidationResult(NamedTuple):
|
|||||||
|
|
||||||
|
|
||||||
class BaseSettingsModule:
|
class BaseSettingsModule:
|
||||||
def __init__(self, config: EyeTrackSettingsConfig, settings_base_class, widget_id, **kwargs):
|
def __init__(self, config: EyeTrackSettingsConfig, widget_id, **kwargs):
|
||||||
self.validation_model: BaseValidationModel = BaseValidationModel # noqa
|
self.validation_model: BaseValidationModel = BaseValidationModel # noqa
|
||||||
self.config = config
|
self.config = config
|
||||||
self.settings_base_class = settings_base_class
|
|
||||||
self.widget_id = widget_id
|
self.widget_id = widget_id
|
||||||
|
|
||||||
def get_validation_model(self):
|
def get_validation_model(self):
|
||||||
@ -66,8 +65,5 @@ class BaseSettingsModule:
|
|||||||
def get_layout(self) -> Iterable:
|
def get_layout(self) -> Iterable:
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
def get_defaults(self) -> dict:
|
def get_key_for_panel_defaults(self) -> dict:
|
||||||
defaults = {}
|
return self.validation_model.schema().get("properties").keys()
|
||||||
for field in self.validation_model.schema().keys():
|
|
||||||
defaults[field] = getattr(self.settings_base_class, field)
|
|
||||||
return defaults
|
|
||||||
@ -15,8 +15,8 @@ class BlinkAlgoSettingsValidationModel(BaseValidationModel):
|
|||||||
|
|
||||||
|
|
||||||
class BlinkAlgoSettingsModule(BaseSettingsModule):
|
class BlinkAlgoSettingsModule(BaseSettingsModule):
|
||||||
def __init__(self, config, widget_id, settings_base_class, **kwargs):
|
def __init__(self, config, widget_id, **kwargs):
|
||||||
super().__init__(config, widget_id, settings_base_class, **kwargs)
|
super().__init__(config=config, widget_id=widget_id, **kwargs)
|
||||||
self.validation_model = BlinkAlgoSettingsValidationModel
|
self.validation_model = BlinkAlgoSettingsValidationModel
|
||||||
|
|
||||||
self.gui_IBO = f"-IBO{widget_id}-"
|
self.gui_IBO = f"-IBO{widget_id}-"
|
||||||
|
|||||||
@ -13,8 +13,8 @@ class GeneralSettingsValidationModel(BaseValidationModel):
|
|||||||
|
|
||||||
|
|
||||||
class GeneralSettingsModule(BaseSettingsModule):
|
class GeneralSettingsModule(BaseSettingsModule):
|
||||||
def __init__(self, config, widget_id, settings_base_class, **kwargs):
|
def __init__(self, config, widget_id, **kwargs):
|
||||||
super().__init__(config, widget_id, settings_base_class, **kwargs)
|
super().__init__(config=config, widget_id=widget_id, **kwargs)
|
||||||
self.validation_model = GeneralSettingsValidationModel
|
self.validation_model = GeneralSettingsValidationModel
|
||||||
self.gui_flip_x_axis_left = f"-FLIPXAXISLEFT{widget_id}-"
|
self.gui_flip_x_axis_left = f"-FLIPXAXISLEFT{widget_id}-"
|
||||||
self.gui_flip_x_axis_right = f"-FLIPXAXISRIGHT{widget_id}-"
|
self.gui_flip_x_axis_right = f"-FLIPXAXISRIGHT{widget_id}-"
|
||||||
|
|||||||
@ -13,8 +13,8 @@ class OSCValidationModel(BaseValidationModel):
|
|||||||
|
|
||||||
|
|
||||||
class OSCSettingsModule(BaseSettingsModule):
|
class OSCSettingsModule(BaseSettingsModule):
|
||||||
def __init__(self, config, widget_id, settings_base_class, **kwargs):
|
def __init__(self, config, widget_id, **kwargs):
|
||||||
super().__init__(config, widget_id, settings_base_class, **kwargs)
|
super().__init__(config=config, widget_id=widget_id, **kwargs)
|
||||||
self.validation_model = OSCValidationModel
|
self.validation_model = OSCValidationModel
|
||||||
self.gui_osc_address = f"-OSCADDRESS{widget_id}-"
|
self.gui_osc_address = f"-OSCADDRESS{widget_id}-"
|
||||||
self.gui_osc_port = f"-OSCPORT{widget_id}-"
|
self.gui_osc_port = f"-OSCPORT{widget_id}-"
|
||||||
|
|||||||
@ -9,8 +9,8 @@ class OneEuroFilterValidationModel(BaseValidationModel):
|
|||||||
|
|
||||||
|
|
||||||
class OneEuroSettingsModule(BaseSettingsModule):
|
class OneEuroSettingsModule(BaseSettingsModule):
|
||||||
def __init__(self, config, widget_id, settings_base_class, **kwargs):
|
def __init__(self, config, widget_id, **kwargs):
|
||||||
super().__init__(config, widget_id, settings_base_class, **kwargs)
|
super().__init__(config=config, widget_id=widget_id, **kwargs)
|
||||||
self.gui_speed_coefficient = f"-SPEEDCOEFFICIENT{widget_id}-"
|
self.gui_speed_coefficient = f"-SPEEDCOEFFICIENT{widget_id}-"
|
||||||
self.gui_min_cutoff = f"-MINCUTOFF{widget_id}-"
|
self.gui_min_cutoff = f"-MINCUTOFF{widget_id}-"
|
||||||
self.validation_model = OneEuroFilterValidationModel
|
self.validation_model = OneEuroFilterValidationModel
|
||||||
|
|||||||
@ -20,8 +20,8 @@ class TrackingAlgorithmValidationModel(BaseValidationModel):
|
|||||||
|
|
||||||
|
|
||||||
class TrackingAlgorithmModule(BaseSettingsModule):
|
class TrackingAlgorithmModule(BaseSettingsModule):
|
||||||
def __init__(self, config, widget_id, settings_base_class, **kwargs):
|
def __init__(self, config, widget_id, **kwargs):
|
||||||
super().__init__(config, widget_id, settings_base_class, **kwargs)
|
super().__init__(config=config, widget_id=widget_id, **kwargs)
|
||||||
self.algo_count = ["1", "2", "3", "4", "5", "6"]
|
self.algo_count = ["1", "2", "3", "4", "5", "6"]
|
||||||
self.validation_model = TrackingAlgorithmValidationModel
|
self.validation_model = TrackingAlgorithmValidationModel
|
||||||
self.gui_BLOB = f"-BLOBFALLBACK{widget_id}-"
|
self.gui_BLOB = f"-BLOBFALLBACK{widget_id}-"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user