Skip to content

Commit e09cb44

Browse files
committed
Add Show Encryption Key toggle
1 parent 00a0512 commit e09cb44

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

editor/export/project_export.cpp

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,10 +99,12 @@ void ProjectExportDialog::_notification(int p_what) {
9999
case NOTIFICATION_VISIBILITY_CHANGED: {
100100
if (!is_visible()) {
101101
EditorSettings::get_singleton()->set_project_metadata("dialog_bounds", "export", Rect2(get_position(), get_size()));
102+
show_script_key->set_pressed(false);
102103
}
103104
} break;
104105

105106
case NOTIFICATION_THEME_CHANGED: {
107+
_script_encryption_key_visibility_changed(show_script_key->is_pressed());
106108
duplicate_preset->set_button_icon(presets->get_editor_theme_icon(SNAME("Duplicate")));
107109
delete_preset->set_button_icon(presets->get_editor_theme_icon(SNAME("Remove")));
108110
patch_add_btn->set_button_icon(get_editor_theme_icon(SNAME("Add")));
@@ -395,6 +397,7 @@ void ProjectExportDialog::_edit_preset(int p_index) {
395397
enc_in_filters->set_editable(enc_pck_mode);
396398
enc_ex_filters->set_editable(enc_pck_mode);
397399
script_key->set_editable(enc_pck_mode);
400+
show_script_key->set_disabled(!enc_pck_mode);
398401
seed_input->set_editable(enc_pck_mode);
399402

400403
bool enc_directory_mode = current->get_enc_directory();
@@ -597,6 +600,10 @@ void ProjectExportDialog::_enc_pck_changed(bool p_pressed) {
597600
enc_in_filters->set_editable(p_pressed);
598601
enc_ex_filters->set_editable(p_pressed);
599602
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+
}
600607

601608
_update_current_preset();
602609
}
@@ -644,6 +651,12 @@ void ProjectExportDialog::_script_encryption_key_changed(const String &p_key) {
644651
updating_script_key = false;
645652
}
646653

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+
647660
bool ProjectExportDialog::_validate_script_encryption_key(const String &p_key) {
648661
bool is_valid = false;
649662

@@ -1699,13 +1712,24 @@ ProjectExportDialog::ProjectExportDialog() {
16991712
enc_ex_filters);
17001713

17011714
script_key = memnew(LineEdit);
1715+
script_key->set_h_size_flags(Control::SIZE_EXPAND_FILL);
17021716
script_key->set_accessibility_name(TTRC("Encryption Key (256-bits as hexadecimal):"));
17031717
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+
17041728
script_key_error = memnew(Label);
17051729
script_key_error->set_focus_mode(Control::FOCUS_ACCESSIBILITY);
17061730
script_key_error->set_text(String::utf8("") + TTR("Invalid Encryption Key (must be 64 hexadecimal characters long)"));
17071731
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);
17091733
sec_vb->add_child(script_key_error);
17101734
sections->add_child(sec_scroll_container);
17111735

editor/export/project_export.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ class ProjectExportDialog : public ConfirmationDialog {
117117
RichTextLabel *custom_feature_display = nullptr;
118118

119119
LineEdit *script_key = nullptr;
120+
Button *show_script_key = nullptr;
120121
Label *script_key_error = nullptr;
121122

122123
ProjectExportTextureFormatError *export_texture_format_error = nullptr;
@@ -200,6 +201,7 @@ class ProjectExportDialog : public ConfirmationDialog {
200201
void _enc_filters_changed(const String &p_text);
201202
void _seed_input_changed(const String &p_text);
202203
void _script_encryption_key_changed(const String &p_key);
204+
void _script_encryption_key_visibility_changed(bool p_visible);
203205
bool _validate_script_encryption_key(const String &p_key);
204206

205207
void _script_export_mode_changed(int p_mode);

0 commit comments

Comments
 (0)