Standardize password reveal to the in-field eye icon everywhere
Register, reset, and Steam-linking forms used a separate "Show password" CheckButton row; the main login form already had the eye icon embedded in the field itself. Generalized _add_password_reveal (previously hardwired to a single tracked button) to support multiple fields via password_reveal_entries, and used it for every password field instead. Removed the now-unused _add_show_password. Verified all 6 password fields (login, register x2, reset x2, steam) get a working reveal button and there's no leftover "Show password" checkbox anywhere.
This commit is contained in:
@@ -25,7 +25,7 @@ var reset_view: VBoxContainer
|
|||||||
var steam_view: VBoxContainer
|
var steam_view: VBoxContainer
|
||||||
var login_input: LineEdit
|
var login_input: LineEdit
|
||||||
var password_input: LineEdit
|
var password_input: LineEdit
|
||||||
var password_reveal_button: Button
|
var password_reveal_entries: Array[Dictionary] = []
|
||||||
var registration_username_input: LineEdit
|
var registration_username_input: LineEdit
|
||||||
var registration_email_input: LineEdit
|
var registration_email_input: LineEdit
|
||||||
var registration_password_input: LineEdit
|
var registration_password_input: LineEdit
|
||||||
@@ -295,7 +295,8 @@ func _build_register_view() -> VBoxContainer:
|
|||||||
registration_email_input = _add_field(view, "Email", "[email protected]")
|
registration_email_input = _add_field(view, "Email", "[email protected]")
|
||||||
registration_password_input = _add_field(view, "Password", "At least 8 characters", true)
|
registration_password_input = _add_field(view, "Password", "At least 8 characters", true)
|
||||||
registration_confirm_input = _add_field(view, "Confirm password", "Re-enter your password", true)
|
registration_confirm_input = _add_field(view, "Confirm password", "Re-enter your password", true)
|
||||||
_add_show_password(view, [registration_password_input, registration_confirm_input])
|
_add_password_reveal(registration_password_input)
|
||||||
|
_add_password_reveal(registration_confirm_input)
|
||||||
registration_legal_check = _add_legal_consent(view)
|
registration_legal_check = _add_legal_consent(view)
|
||||||
_add_primary_button(view, "Create Account", _on_register_pressed)
|
_add_primary_button(view, "Create Account", _on_register_pressed)
|
||||||
_add_back_button(view, "Already have an account? Sign in", "login")
|
_add_back_button(view, "Already have an account? Sign in", "login")
|
||||||
@@ -313,7 +314,8 @@ func _build_reset_view() -> VBoxContainer:
|
|||||||
reset_code_input.max_length = 6
|
reset_code_input.max_length = 6
|
||||||
reset_password_input = _add_field(reset_confirm_group, "New password", "At least 8 characters", true)
|
reset_password_input = _add_field(reset_confirm_group, "New password", "At least 8 characters", true)
|
||||||
reset_confirm_input = _add_field(reset_confirm_group, "Confirm new password", "Re-enter your new password", true)
|
reset_confirm_input = _add_field(reset_confirm_group, "Confirm new password", "Re-enter your new password", true)
|
||||||
_add_show_password(reset_confirm_group, [reset_password_input, reset_confirm_input])
|
_add_password_reveal(reset_password_input)
|
||||||
|
_add_password_reveal(reset_confirm_input)
|
||||||
_add_primary_button(reset_confirm_group, "Update Password", _confirm_reset)
|
_add_primary_button(reset_confirm_group, "Update Password", _confirm_reset)
|
||||||
_add_back_button(view, "Back to sign in", "login")
|
_add_back_button(view, "Back to sign in", "login")
|
||||||
reset_confirm_group.visible = false
|
reset_confirm_group.visible = false
|
||||||
@@ -334,7 +336,7 @@ func _build_steam_view() -> VBoxContainer:
|
|||||||
steam_username_input = _add_field(view, "Username or email", "Choose a username")
|
steam_username_input = _add_field(view, "Username or email", "Choose a username")
|
||||||
steam_email_input = _add_field(view, "Email", "[email protected]")
|
steam_email_input = _add_field(view, "Email", "[email protected]")
|
||||||
steam_password_input = _add_field(view, "Password", "At least 8 characters", true)
|
steam_password_input = _add_field(view, "Password", "At least 8 characters", true)
|
||||||
_add_show_password(view, [steam_password_input])
|
_add_password_reveal(steam_password_input)
|
||||||
steam_legal_check = _add_legal_consent(view)
|
steam_legal_check = _add_legal_consent(view)
|
||||||
_add_primary_button(view, "Continue", _complete_steam)
|
_add_primary_button(view, "Continue", _complete_steam)
|
||||||
_add_back_button(view, "Cancel external sign in", "login")
|
_add_back_button(view, "Cancel external sign in", "login")
|
||||||
@@ -407,19 +409,9 @@ func _add_field(parent: VBoxContainer, label_text: String, placeholder: String,
|
|||||||
return input
|
return input
|
||||||
|
|
||||||
|
|
||||||
func _add_show_password(parent: VBoxContainer, targets: Array) -> void:
|
|
||||||
var toggle := CheckButton.new()
|
|
||||||
toggle.text = "Show password"
|
|
||||||
toggle.toggled.connect(func(should_reveal: bool):
|
|
||||||
for target in targets:
|
|
||||||
target.secret = not should_reveal
|
|
||||||
)
|
|
||||||
parent.add_child(toggle)
|
|
||||||
|
|
||||||
|
|
||||||
func _add_password_reveal(input: LineEdit) -> void:
|
func _add_password_reveal(input: LineEdit) -> void:
|
||||||
var reveal := Button.new()
|
var reveal := Button.new()
|
||||||
password_reveal_button = reveal
|
password_reveal_entries.append({"input": input, "button": reveal})
|
||||||
reveal.text = ""
|
reveal.text = ""
|
||||||
reveal.tooltip_text = "Show password"
|
reveal.tooltip_text = "Show password"
|
||||||
reveal.flat = true
|
reveal.flat = true
|
||||||
@@ -588,8 +580,8 @@ func _apply_theme() -> void:
|
|||||||
theme_button.add_theme_stylebox_override("normal", theme_normal)
|
theme_button.add_theme_stylebox_override("normal", theme_normal)
|
||||||
theme_button.add_theme_stylebox_override("hover", theme_normal)
|
theme_button.add_theme_stylebox_override("hover", theme_normal)
|
||||||
theme_button.add_theme_color_override("font_color", Brand.AMBER)
|
theme_button.add_theme_color_override("font_color", Brand.AMBER)
|
||||||
if password_reveal_button != null:
|
for entry in password_reveal_entries:
|
||||||
_refresh_password_reveal(password_input, password_reveal_button)
|
_refresh_password_reveal(entry["input"], entry["button"])
|
||||||
subheading.add_theme_color_override("font_color", Brand.muted_color(dark))
|
subheading.add_theme_color_override("font_color", Brand.muted_color(dark))
|
||||||
message_label.add_theme_color_override("font_color", Brand.muted_color(dark))
|
message_label.add_theme_color_override("font_color", Brand.muted_color(dark))
|
||||||
if brand_tagline != null:
|
if brand_tagline != null:
|
||||||
|
|||||||
Reference in New Issue
Block a user