[Update] Add UI and config: Overlay Rotation X,Y,Z.

This commit is contained in:
Sakamoto Shiina
2024-05-11 00:40:11 +09:00
parent ea21b1b644
commit 2e1d0591b7
4 changed files with 90 additions and 1 deletions

View File

@@ -770,7 +770,7 @@ class Config:
if isinstance(value, dict) and set(value.keys()) == set(self.OVERLAY_SMALL_LOG_SETTINGS.keys()):
for key, value in value.items():
match (key):
case "x_pos" | "y_pos" | "depth":
case "x_pos" | "y_pos" | "depth" | "x_rotation" | "y_rotation" | "z_rotation":
if isinstance(value, float):
self._OVERLAY_SMALL_LOG_SETTINGS[key] = value
case "display_duration" | "fadeout_duration":
@@ -1074,6 +1074,9 @@ class Config:
"x_pos": 0.0,
"y_pos": -0.41,
"depth": 1.0,
"x_rotation": 0.0,
"y_rotation": 0.0,
"z_rotation": 0.0,
"display_duration": 5,
"fadeout_duration": 2,
}

View File

@@ -903,6 +903,15 @@ def callbackSetOverlaySmallLogSettings(value, set_type:str):
model.updateOverlayPosition()
case "depth":
model.updateOverlayPosition()
case "x_rotation":
pass
# update rotation
case "y_rotation":
pass
# update rotation
case "z_rotation":
pass
# update rotation
case "display_duration":
model.updateOverlayTimes()
case "fadeout_duration":

19
view.py
View File

@@ -186,6 +186,25 @@ class View():
VAR_OVERLAY_SMALL_LOG_DEPTH=DoubleVar(value=config.OVERLAY_SMALL_LOG_SETTINGS["depth"]),
VAR_CURRENT_VALUE_OVERLAY_SMALL_LOG_DEPTH=StringVar(value=config.OVERLAY_SMALL_LOG_SETTINGS["depth"]),
VAR_LABEL_OVERLAY_SMALL_LOG_X_ROTATION=StringVar(value="x_rotation"),
SLIDER_RANGE_OVERLAY_SMALL_LOG_X_ROTATION=(-1, 1),
NUMBER_OF_STEPS_OVERLAY_SMALL_LOG_X_ROTATION=200,
VAR_OVERLAY_SMALL_LOG_X_ROTATION=DoubleVar(value=config.OVERLAY_SMALL_LOG_SETTINGS["x_rotation"]),
VAR_CURRENT_VALUE_OVERLAY_SMALL_LOG_X_ROTATION=StringVar(value=config.OVERLAY_SMALL_LOG_SETTINGS["x_rotation"]),
VAR_LABEL_OVERLAY_SMALL_LOG_Y_ROTATION=StringVar(value="y_rotation"),
SLIDER_RANGE_OVERLAY_SMALL_LOG_Y_ROTATION=(-1, 1),
NUMBER_OF_STEPS_OVERLAY_SMALL_LOG_Y_ROTATION=200,
VAR_OVERLAY_SMALL_LOG_Y_ROTATION=DoubleVar(value=config.OVERLAY_SMALL_LOG_SETTINGS["y_rotation"]),
VAR_CURRENT_VALUE_OVERLAY_SMALL_LOG_Y_ROTATION=StringVar(value=config.OVERLAY_SMALL_LOG_SETTINGS["y_rotation"]),
VAR_LABEL_OVERLAY_SMALL_LOG_Z_ROTATION=StringVar(value="z_rotation"),
SLIDER_RANGE_OVERLAY_SMALL_LOG_Z_ROTATION=(-1, 1),
NUMBER_OF_STEPS_OVERLAY_SMALL_LOG_Z_ROTATION=200,
VAR_OVERLAY_SMALL_LOG_Z_ROTATION=DoubleVar(value=config.OVERLAY_SMALL_LOG_SETTINGS["z_rotation"]),
VAR_CURRENT_VALUE_OVERLAY_SMALL_LOG_Z_ROTATION=StringVar(value=config.OVERLAY_SMALL_LOG_SETTINGS["z_rotation"]),
VAR_LABEL_OVERLAY_SMALL_LOG_DISPLAY_DURATION=StringVar(value=i18n.t("overlay_settings.display_duration")),
SLIDER_RANGE_OVERLAY_SMALL_LOG_DISPLAY_DURATION=(1, 60),
NUMBER_OF_STEPS_OVERLAY_SMALL_LOG_DISPLAY_DURATION=59,

View File

@@ -163,6 +163,64 @@ class QuickSettingsWindow(CTkToplevel):
self.qsb__overlay_small_log_settings_depth.grid(row=row)
row+=1
def overlaySmallLogSettingsXRotationSliderCallback(e):
value = round(e,2)
callFunctionIfCallable(view_variable.CALLBACK_SET_OVERLAY_SMALL_LOG_SETTINGS, value, "x_rotation")
view_variable.VAR_CURRENT_VALUE_OVERLAY_SMALL_LOG_X_ROTATION.set(str(value))
self.qsb__overlay_small_log_settings_x_rotation = createSettingBoxSlider(
for_var_label_text=view_variable.VAR_LABEL_OVERLAY_SMALL_LOG_X_ROTATION,
for_var_current_value=view_variable.VAR_CURRENT_VALUE_OVERLAY_SMALL_LOG_X_ROTATION,
slider_attr_name="qsb__overlay_small_log_settings_x_rotation_slider",
slider_range=view_variable.SLIDER_RANGE_OVERLAY_SMALL_LOG_X_ROTATION,
slider_number_of_steps=view_variable.NUMBER_OF_STEPS_OVERLAY_SMALL_LOG_X_ROTATION,
command=overlaySmallLogSettingsXRotationSliderCallback,
variable=view_variable.VAR_OVERLAY_SMALL_LOG_X_ROTATION,
)
self.qsb__overlay_small_log_settings_x_rotation.grid(row=row)
row+=1
def overlaySmallLogSettingsYRotationSliderCallback(e):
value = round(e,2)
callFunctionIfCallable(view_variable.CALLBACK_SET_OVERLAY_SMALL_LOG_SETTINGS, value, "y_rotation")
view_variable.VAR_CURRENT_VALUE_OVERLAY_SMALL_LOG_Y_ROTATION.set(str(value))
self.qsb__overlay_small_log_settings_y_rotation = createSettingBoxSlider(
for_var_label_text=view_variable.VAR_LABEL_OVERLAY_SMALL_LOG_Y_ROTATION,
for_var_current_value=view_variable.VAR_CURRENT_VALUE_OVERLAY_SMALL_LOG_Y_ROTATION,
slider_attr_name="qsb__overlay_small_log_settings_y_rotation_slider",
slider_range=view_variable.SLIDER_RANGE_OVERLAY_SMALL_LOG_Y_ROTATION,
slider_number_of_steps=view_variable.NUMBER_OF_STEPS_OVERLAY_SMALL_LOG_Y_ROTATION,
command=overlaySmallLogSettingsYRotationSliderCallback,
variable=view_variable.VAR_OVERLAY_SMALL_LOG_Y_ROTATION,
)
self.qsb__overlay_small_log_settings_y_rotation.grid(row=row)
row+=1
def overlaySmallLogSettingsZRotationSliderCallback(e):
value = round(e,2)
callFunctionIfCallable(view_variable.CALLBACK_SET_OVERLAY_SMALL_LOG_SETTINGS, value, "z_rotation")
view_variable.VAR_CURRENT_VALUE_OVERLAY_SMALL_LOG_Z_ROTATION.set(str(value))
self.qsb__overlay_small_log_settings_z_rotation = createSettingBoxSlider(
for_var_label_text=view_variable.VAR_LABEL_OVERLAY_SMALL_LOG_Z_ROTATION,
for_var_current_value=view_variable.VAR_CURRENT_VALUE_OVERLAY_SMALL_LOG_Z_ROTATION,
slider_attr_name="qsb__overlay_small_log_settings_z_rotation_slider",
slider_range=view_variable.SLIDER_RANGE_OVERLAY_SMALL_LOG_Z_ROTATION,
slider_number_of_steps=view_variable.NUMBER_OF_STEPS_OVERLAY_SMALL_LOG_Z_ROTATION,
command=overlaySmallLogSettingsZRotationSliderCallback,
variable=view_variable.VAR_OVERLAY_SMALL_LOG_Z_ROTATION,
)
self.qsb__overlay_small_log_settings_z_rotation.grid(row=row)
row+=1
def overlaySmallLogSettingsDisplayDurationSliderCallback(e):
value = int(e)