@@ -99,10 +99,12 @@ void ProjectExportDialog::_notification(int p_what) {
99
99
case NOTIFICATION_VISIBILITY_CHANGED: {
100
100
if (!is_visible ()) {
101
101
EditorSettings::get_singleton ()->set_project_metadata (" dialog_bounds" , " export" , Rect2 (get_position (), get_size ()));
102
+ show_script_key->set_pressed (false );
102
103
}
103
104
} break ;
104
105
105
106
case NOTIFICATION_THEME_CHANGED: {
107
+ _script_encryption_key_visibility_changed (show_script_key->is_pressed ());
106
108
duplicate_preset->set_button_icon (presets->get_editor_theme_icon (SNAME (" Duplicate" )));
107
109
delete_preset->set_button_icon (presets->get_editor_theme_icon (SNAME (" Remove" )));
108
110
patch_add_btn->set_button_icon (get_editor_theme_icon (SNAME (" Add" )));
@@ -395,6 +397,7 @@ void ProjectExportDialog::_edit_preset(int p_index) {
395
397
enc_in_filters->set_editable (enc_pck_mode);
396
398
enc_ex_filters->set_editable (enc_pck_mode);
397
399
script_key->set_editable (enc_pck_mode);
400
+ show_script_key->set_disabled (!enc_pck_mode);
398
401
seed_input->set_editable (enc_pck_mode);
399
402
400
403
bool enc_directory_mode = current->get_enc_directory ();
@@ -597,6 +600,10 @@ void ProjectExportDialog::_enc_pck_changed(bool p_pressed) {
597
600
enc_in_filters->set_editable (p_pressed);
598
601
enc_ex_filters->set_editable (p_pressed);
599
602
script_key->set_editable (p_pressed);
603
+ show_script_key->set_disabled (!p_pressed);
604
+ if (!p_pressed) {
605
+ show_script_key->set_pressed (false );
606
+ }
600
607
601
608
_update_current_preset ();
602
609
}
@@ -644,6 +651,12 @@ void ProjectExportDialog::_script_encryption_key_changed(const String &p_key) {
644
651
updating_script_key = false ;
645
652
}
646
653
654
+ void ProjectExportDialog::_script_encryption_key_visibility_changed (bool p_visible) {
655
+ show_script_key->set_button_icon (get_editor_theme_icon (p_visible ? SNAME (" GuiVisibilityVisible" ) : SNAME (" GuiVisibilityHidden" )));
656
+ show_script_key->set_tooltip_text (p_visible ? TTRC (" Hide encryption key" ) : TTRC (" Show encryption key" ));
657
+ script_key->set_secret (!p_visible);
658
+ }
659
+
647
660
bool ProjectExportDialog::_validate_script_encryption_key (const String &p_key) {
648
661
bool is_valid = false ;
649
662
@@ -1699,13 +1712,24 @@ ProjectExportDialog::ProjectExportDialog() {
1699
1712
enc_ex_filters);
1700
1713
1701
1714
script_key = memnew (LineEdit);
1715
+ script_key->set_h_size_flags (Control::SIZE_EXPAND_FILL);
1702
1716
script_key->set_accessibility_name (TTRC (" Encryption Key (256-bits as hexadecimal):" ));
1703
1717
script_key->connect (SceneStringName (text_changed), callable_mp (this , &ProjectExportDialog::_script_encryption_key_changed));
1718
+ script_key->set_secret (true );
1719
+
1720
+ show_script_key = memnew (Button);
1721
+ show_script_key->set_toggle_mode (true );
1722
+ show_script_key->connect (SceneStringName (toggled), callable_mp (this , &ProjectExportDialog::_script_encryption_key_visibility_changed));
1723
+
1724
+ HBoxContainer *encryption_hb = memnew (HBoxContainer);
1725
+ encryption_hb->add_child (script_key);
1726
+ encryption_hb->add_child (show_script_key);
1727
+
1704
1728
script_key_error = memnew (Label);
1705
1729
script_key_error->set_focus_mode (Control::FOCUS_ACCESSIBILITY);
1706
1730
script_key_error->set_text (String::utf8 (" • " ) + TTR (" Invalid Encryption Key (must be 64 hexadecimal characters long)" ));
1707
1731
script_key_error->add_theme_color_override (SceneStringName (font_color), EditorNode::get_singleton ()->get_editor_theme ()->get_color (SNAME (" error_color" ), EditorStringName (Editor)));
1708
- sec_vb->add_margin_child (TTR (" Encryption Key (256-bits as hexadecimal):" ), script_key );
1732
+ sec_vb->add_margin_child (TTRC (" Encryption Key (256-bits as hexadecimal):" ), encryption_hb );
1709
1733
sec_vb->add_child (script_key_error);
1710
1734
sections->add_child (sec_scroll_container);
1711
1735
0 commit comments