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,
|
||||
):
|
||||
self.gui_general_settings_layout = f"-GENERALSETTINGSLAYOUT{widget_id}-"
|
||||
self.reset_button_key = f"RESET_SETTINGS{widget_id}"
|
||||
self.is_saving = False
|
||||
self.main_config = main_config
|
||||
self.config = main_config.settings
|
||||
@ -35,6 +36,7 @@ class BaseSettingsWidget:
|
||||
background_color="#424042",
|
||||
),
|
||||
],
|
||||
[sg.Button("Reset settings to default", key=self.reset_button_key)],
|
||||
]
|
||||
|
||||
self.cancellation_event = (
|
||||
@ -82,12 +84,13 @@ class BaseSettingsWidget:
|
||||
if errors:
|
||||
self._handle_errors(errors)
|
||||
|
||||
self.handle_events(event, window)
|
||||
|
||||
def _initialize_modules(self, settings_modules, widget_id):
|
||||
return [
|
||||
module(
|
||||
config=self.config,
|
||||
settings=self.main_config,
|
||||
settings_base_class=EyeTrackSettingsConfig,
|
||||
widget_id=widget_id,
|
||||
)
|
||||
for module in settings_modules
|
||||
@ -95,3 +98,26 @@ class BaseSettingsWidget:
|
||||
|
||||
def get_layout(self) -> Iterable:
|
||||
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):
|
||||
def __init__(self, config, widget_id, settings_base_class, **kwargs):
|
||||
super().__init__(config, widget_id, settings_base_class, **kwargs)
|
||||
def __init__(self, config, widget_id, **kwargs):
|
||||
super().__init__(config=config, widget_id=widget_id, **kwargs)
|
||||
self.validation_model = AdvancedTrackingAlgoSettingsValidationModel
|
||||
|
||||
self.gui_blob_maxsize = f"-BLOBMAXSIZE{widget_id}-"
|
||||
|
||||
@ -24,10 +24,9 @@ class ValidationResult(NamedTuple):
|
||||
|
||||
|
||||
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.config = config
|
||||
self.settings_base_class = settings_base_class
|
||||
self.widget_id = widget_id
|
||||
|
||||
def get_validation_model(self):
|
||||
@ -66,8 +65,5 @@ class BaseSettingsModule:
|
||||
def get_layout(self) -> Iterable:
|
||||
raise NotImplementedError
|
||||
|
||||
def get_defaults(self) -> dict:
|
||||
defaults = {}
|
||||
for field in self.validation_model.schema().keys():
|
||||
defaults[field] = getattr(self.settings_base_class, field)
|
||||
return defaults
|
||||
def get_key_for_panel_defaults(self) -> dict:
|
||||
return self.validation_model.schema().get("properties").keys()
|
||||
@ -15,8 +15,8 @@ class BlinkAlgoSettingsValidationModel(BaseValidationModel):
|
||||
|
||||
|
||||
class BlinkAlgoSettingsModule(BaseSettingsModule):
|
||||
def __init__(self, config, widget_id, settings_base_class, **kwargs):
|
||||
super().__init__(config, widget_id, settings_base_class, **kwargs)
|
||||
def __init__(self, config, widget_id, **kwargs):
|
||||
super().__init__(config=config, widget_id=widget_id, **kwargs)
|
||||
self.validation_model = BlinkAlgoSettingsValidationModel
|
||||
|
||||
self.gui_IBO = f"-IBO{widget_id}-"
|
||||
|
||||
@ -13,8 +13,8 @@ class GeneralSettingsValidationModel(BaseValidationModel):
|
||||
|
||||
|
||||
class GeneralSettingsModule(BaseSettingsModule):
|
||||
def __init__(self, config, widget_id, settings_base_class, **kwargs):
|
||||
super().__init__(config, widget_id, settings_base_class, **kwargs)
|
||||
def __init__(self, config, widget_id, **kwargs):
|
||||
super().__init__(config=config, widget_id=widget_id, **kwargs)
|
||||
self.validation_model = GeneralSettingsValidationModel
|
||||
self.gui_flip_x_axis_left = f"-FLIPXAXISLEFT{widget_id}-"
|
||||
self.gui_flip_x_axis_right = f"-FLIPXAXISRIGHT{widget_id}-"
|
||||
|
||||
@ -13,8 +13,8 @@ class OSCValidationModel(BaseValidationModel):
|
||||
|
||||
|
||||
class OSCSettingsModule(BaseSettingsModule):
|
||||
def __init__(self, config, widget_id, settings_base_class, **kwargs):
|
||||
super().__init__(config, widget_id, settings_base_class, **kwargs)
|
||||
def __init__(self, config, widget_id, **kwargs):
|
||||
super().__init__(config=config, widget_id=widget_id, **kwargs)
|
||||
self.validation_model = OSCValidationModel
|
||||
self.gui_osc_address = f"-OSCADDRESS{widget_id}-"
|
||||
self.gui_osc_port = f"-OSCPORT{widget_id}-"
|
||||
|
||||
@ -9,8 +9,8 @@ class OneEuroFilterValidationModel(BaseValidationModel):
|
||||
|
||||
|
||||
class OneEuroSettingsModule(BaseSettingsModule):
|
||||
def __init__(self, config, widget_id, settings_base_class, **kwargs):
|
||||
super().__init__(config, widget_id, settings_base_class, **kwargs)
|
||||
def __init__(self, config, widget_id, **kwargs):
|
||||
super().__init__(config=config, widget_id=widget_id, **kwargs)
|
||||
self.gui_speed_coefficient = f"-SPEEDCOEFFICIENT{widget_id}-"
|
||||
self.gui_min_cutoff = f"-MINCUTOFF{widget_id}-"
|
||||
self.validation_model = OneEuroFilterValidationModel
|
||||
|
||||
@ -20,8 +20,8 @@ class TrackingAlgorithmValidationModel(BaseValidationModel):
|
||||
|
||||
|
||||
class TrackingAlgorithmModule(BaseSettingsModule):
|
||||
def __init__(self, config, widget_id, settings_base_class, **kwargs):
|
||||
super().__init__(config, widget_id, settings_base_class, **kwargs)
|
||||
def __init__(self, config, widget_id, **kwargs):
|
||||
super().__init__(config=config, widget_id=widget_id, **kwargs)
|
||||
self.algo_count = ["1", "2", "3", "4", "5", "6"]
|
||||
self.validation_model = TrackingAlgorithmValidationModel
|
||||
self.gui_BLOB = f"-BLOBFALLBACK{widget_id}-"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user