Implemented shrink override setting.

This commit is contained in:
Relintai 2022-12-11 11:46:31 +01:00
parent 7c4da899f7
commit f2814b332d
4 changed files with 84 additions and 22 deletions

View File

@ -10,6 +10,13 @@ func hide_all() -> void:
_settings.hide()
_sort.hide()
func apply_shink() -> void:
if !ProjectSettings.get("display/window/stretch/shrink_override"):
get_tree().set_screen_stretch(SceneTree.STRETCH_MODE_DISABLED, SceneTree.STRETCH_ASPECT_IGNORE, Vector2(900, 1000), clamp(OS.get_screen_dpi() / 72.0, 1, 3))
else:
var shrink_override_value : float = ProjectSettings.get("display/window/stretch/shrink_override_value")
get_tree().set_screen_stretch(SceneTree.STRETCH_MODE_DISABLED, SceneTree.STRETCH_ASPECT_IGNORE, Vector2(900, 1000), shrink_override_value)
func _on_Sort_pressed() -> void:
if !_sort.validate_folders():
_folder_setup_error_popup.popup_centered()
@ -24,8 +31,6 @@ func _on_Settings_pressed() -> void:
func _notification(what: int) -> void:
if what == NOTIFICATION_READY:
get_tree().set_screen_stretch(SceneTree.STRETCH_MODE_DISABLED, SceneTree.STRETCH_ASPECT_IGNORE, Vector2(900, 1000), clamp(OS.get_screen_dpi() / 72.0, 1, 3))
_menu = get_node("Menu")
_settings = get_node("Settings")
_sort = get_node("Sort")

View File

@ -24,6 +24,8 @@ window/size/width=900
window/size/height=1000
window/energy_saving/keep_screen_on=false
window/handheld/orientation="sensor"
window/stretch/shrink_override=false
window/stretch/shrink_override_value=1.0
[editor_plugins]

View File

@ -6,6 +6,8 @@ signal back
var _sort_folder_line_edit : LineEdit
var _target_folder_line_edit : LineEdit
var _shrink_override_cb : CheckButton
var _shrink_override_value_slider : HSlider
func load_settings() -> void:
var config_file : ConfigFile = ConfigFile.new()
@ -18,12 +20,20 @@ func load_settings() -> void:
var sort_folder : String = config_file.get_value("default", "sort_folder", "")
var target_folder : String = config_file.get_value("default", "target_folder", "")
var shrink_override : bool = config_file.get_value("default", "shrink_override", false)
var shrink_override_value : float = config_file.get_value("default", "shrink_override_value", 1)
ProjectSettings.set("application/config/sort_folder", sort_folder)
ProjectSettings.set("application/config/target_folder", target_folder)
ProjectSettings.set("display/window/stretch/shrink_override", shrink_override)
ProjectSettings.set("display/window/stretch/shrink_override_value", shrink_override_value)
_sort_folder_line_edit.text = sort_folder
_target_folder_line_edit.text = target_folder
_shrink_override_cb.pressed = shrink_override
_shrink_override_value_slider.value = shrink_override_value
get_parent().apply_shink()
func save_settings() -> void:
@ -31,12 +41,18 @@ func save_settings() -> void:
var sort_folder : String = _sort_folder_line_edit.text
var target_folder : String = _target_folder_line_edit.text
var shrink_override : bool = _shrink_override_cb.pressed
var shrink_override_value : float = _shrink_override_value_slider.value
config_file.set_value("default", "sort_folder", sort_folder)
config_file.set_value("default", "target_folder", target_folder)
config_file.set_value("default", "shrink_override", shrink_override)
config_file.set_value("default", "shrink_override_value", shrink_override_value)
ProjectSettings.set("application/config/sort_folder", sort_folder)
ProjectSettings.set("application/config/target_folder", target_folder)
ProjectSettings.set("display/window/stretch/shrink_override", shrink_override)
ProjectSettings.set("display/window/stretch/shrink_override_value", shrink_override_value)
var error : int = config_file.save(settings_file)
@ -44,6 +60,8 @@ func save_settings() -> void:
# print("Failed to load the settings file! Error code %s" % error)
return
get_parent().apply_shink()
func _on_Button_pressed() -> void:
save_settings()
emit_signal("back")
@ -52,4 +70,7 @@ func _notification(what: int) -> void:
if what == NOTIFICATION_READY:
_sort_folder_line_edit = get_node("VBoxContainer/SortFolder") as LineEdit
_target_folder_line_edit = get_node("VBoxContainer/TargetFolder") as LineEdit
_shrink_override_cb = get_node("VBoxContainer/ShrinkOverride") as CheckButton
_shrink_override_value_slider = get_node("VBoxContainer/ShrinkOverrideValue") as HSlider
load_settings()

View File

@ -3,41 +3,75 @@
[ext_resource path="res://settings/Settings.gd" type="Script" id=1]
[node name="Settings" type="MarginContainer"]
margin_right = 1024.0
margin_bottom = 600.0
anchor_right = 1.0
anchor_bottom = 1.0
script = ExtResource( 1 )
[node name="VBoxContainer" type="VBoxContainer" parent="."]
margin_right = 1024.0
margin_bottom = 600.0
margin_right = 900.0
margin_bottom = 1000.0
custom_constants/separation = 10
alignment = 1
[node name="Label" type="Label" parent="VBoxContainer"]
margin_top = 244.0
margin_right = 1024.0
margin_bottom = 258.0
margin_top = 368.0
margin_right = 900.0
margin_bottom = 382.0
text = "Sort folder"
[node name="SortFolder" type="LineEdit" parent="VBoxContainer"]
margin_top = 262.0
margin_right = 1024.0
margin_bottom = 286.0
margin_top = 392.0
margin_right = 900.0
margin_bottom = 416.0
[node name="Label2" type="Label" parent="VBoxContainer"]
margin_top = 290.0
margin_right = 1024.0
margin_bottom = 304.0
margin_top = 426.0
margin_right = 900.0
margin_bottom = 440.0
text = "Target folder"
[node name="TargetFolder" type="LineEdit" parent="VBoxContainer"]
margin_top = 308.0
margin_right = 1024.0
margin_bottom = 332.0
margin_top = 450.0
margin_right = 900.0
margin_bottom = 474.0
[node name="HSeparator" type="HSeparator" parent="VBoxContainer"]
margin_top = 484.0
margin_right = 900.0
margin_bottom = 488.0
[node name="ShrinkOverride" type="CheckButton" parent="VBoxContainer"]
margin_top = 498.0
margin_right = 900.0
margin_bottom = 538.0
text = "Shrink Override"
[node name="Label3" type="Label" parent="VBoxContainer"]
margin_top = 548.0
margin_right = 900.0
margin_bottom = 562.0
text = "Shrink Override Value"
[node name="ShrinkOverrideValue" type="HSlider" parent="VBoxContainer"]
margin_top = 572.0
margin_right = 900.0
margin_bottom = 588.0
min_value = 0.2
max_value = 10.0
step = 0.0
value = 1.0
tick_count = 11
ticks_on_borders = true
[node name="HSeparator2" type="HSeparator" parent="VBoxContainer"]
margin_top = 598.0
margin_right = 900.0
margin_bottom = 602.0
[node name="BackButton" type="Button" parent="VBoxContainer"]
margin_top = 336.0
margin_right = 1024.0
margin_bottom = 356.0
margin_top = 612.0
margin_right = 900.0
margin_bottom = 632.0
text = "<- Back"
[connection signal="pressed" from="VBoxContainer/BackButton" to="." method="_on_Button_pressed"]