Merge pull request #105547 from KoBeWi/default_ok_ok
Improve default OK text in AcceptDialog
This commit is contained in:
@ -151,7 +151,6 @@
|
|||||||
<member name="mode_overrides_title" type="bool" setter="set_mode_overrides_title" getter="is_mode_overriding_title" default="true">
|
<member name="mode_overrides_title" type="bool" setter="set_mode_overrides_title" getter="is_mode_overriding_title" default="true">
|
||||||
If [code]true[/code], changing the [member file_mode] property will set the window title accordingly (e.g. setting [member file_mode] to [constant FILE_MODE_OPEN_FILE] will change the window title to "Open a File").
|
If [code]true[/code], changing the [member file_mode] property will set the window title accordingly (e.g. setting [member file_mode] to [constant FILE_MODE_OPEN_FILE] will change the window title to "Open a File").
|
||||||
</member>
|
</member>
|
||||||
<member name="ok_button_text" type="String" setter="set_ok_button_text" getter="get_ok_button_text" overrides="AcceptDialog" default=""Save"" />
|
|
||||||
<member name="option_count" type="int" setter="set_option_count" getter="get_option_count" default="0">
|
<member name="option_count" type="int" setter="set_option_count" getter="get_option_count" default="0">
|
||||||
The number of additional [OptionButton]s and [CheckBox]es in the dialog.
|
The number of additional [OptionButton]s and [CheckBox]es in the dialog.
|
||||||
</member>
|
</member>
|
||||||
|
|||||||
@ -223,9 +223,10 @@ EditorPropertyText::EditorPropertyText() {
|
|||||||
add_child(hb);
|
add_child(hb);
|
||||||
|
|
||||||
text = memnew(LineEdit);
|
text = memnew(LineEdit);
|
||||||
|
text->set_h_size_flags(SIZE_EXPAND_FILL);
|
||||||
|
text->set_auto_translate_mode(AUTO_TRANSLATE_MODE_DISABLED); // Prevents translating placeholder.
|
||||||
hb->add_child(text);
|
hb->add_child(text);
|
||||||
add_focusable(text);
|
add_focusable(text);
|
||||||
text->set_h_size_flags(SIZE_EXPAND_FILL);
|
|
||||||
text->connect(SceneStringName(text_changed), callable_mp(this, &EditorPropertyText::_text_changed));
|
text->connect(SceneStringName(text_changed), callable_mp(this, &EditorPropertyText::_text_changed));
|
||||||
text->connect(SceneStringName(text_submitted), callable_mp(this, &EditorPropertyText::_text_submitted));
|
text->connect(SceneStringName(text_submitted), callable_mp(this, &EditorPropertyText::_text_submitted));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -261,7 +261,7 @@ void AcceptDialog::_update_child_rects() {
|
|||||||
|
|
||||||
void AcceptDialog::_update_ok_text() {
|
void AcceptDialog::_update_ok_text() {
|
||||||
String prev_text = ok_button->get_text();
|
String prev_text = ok_button->get_text();
|
||||||
String new_text = internal_ok_text;
|
String new_text = default_ok_text;
|
||||||
|
|
||||||
if (!ok_text.is_empty()) {
|
if (!ok_text.is_empty()) {
|
||||||
new_text = ok_text;
|
new_text = ok_text;
|
||||||
@ -315,9 +315,13 @@ Size2 AcceptDialog::_get_contents_minimum_size() const {
|
|||||||
return content_minsize;
|
return content_minsize;
|
||||||
}
|
}
|
||||||
|
|
||||||
void AcceptDialog::set_internal_ok_text(const String &p_text) {
|
void AcceptDialog::set_default_ok_text(const String &p_text) {
|
||||||
internal_ok_text = p_text;
|
if (default_ok_text == p_text) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
default_ok_text = p_text;
|
||||||
_update_ok_text();
|
_update_ok_text();
|
||||||
|
notify_property_list_changed();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AcceptDialog::_custom_action(const String &p_action) {
|
void AcceptDialog::_custom_action(const String &p_action) {
|
||||||
@ -441,7 +445,13 @@ void AcceptDialog::_bind_methods() {
|
|||||||
BIND_THEME_ITEM(Theme::DATA_TYPE_CONSTANT, AcceptDialog, buttons_min_height);
|
BIND_THEME_ITEM(Theme::DATA_TYPE_CONSTANT, AcceptDialog, buttons_min_height);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AcceptDialog::swap_cancel_ok = false;
|
void AcceptDialog::_validate_property(PropertyInfo &p_property) const {
|
||||||
|
if (p_property.name == "ok_button_text") {
|
||||||
|
p_property.hint = PROPERTY_HINT_PLACEHOLDER_TEXT;
|
||||||
|
p_property.hint_string = default_ok_text;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void AcceptDialog::set_swap_cancel_ok(bool p_swap) {
|
void AcceptDialog::set_swap_cancel_ok(bool p_swap) {
|
||||||
swap_cancel_ok = p_swap;
|
swap_cancel_ok = p_swap;
|
||||||
}
|
}
|
||||||
@ -472,7 +482,7 @@ AcceptDialog::AcceptDialog() {
|
|||||||
|
|
||||||
buttons_hbox->add_spacer();
|
buttons_hbox->add_spacer();
|
||||||
ok_button = memnew(Button);
|
ok_button = memnew(Button);
|
||||||
set_internal_ok_text(ETR("OK"));
|
set_default_ok_text(ETR("OK"));
|
||||||
buttons_hbox->add_child(ok_button);
|
buttons_hbox->add_child(ok_button);
|
||||||
buttons_hbox->add_spacer();
|
buttons_hbox->add_spacer();
|
||||||
|
|
||||||
|
|||||||
@ -52,7 +52,7 @@ class AcceptDialog : public Window {
|
|||||||
|
|
||||||
bool popped_up = false;
|
bool popped_up = false;
|
||||||
String ok_text;
|
String ok_text;
|
||||||
String internal_ok_text;
|
String default_ok_text;
|
||||||
|
|
||||||
bool hide_on_ok = true;
|
bool hide_on_ok = true;
|
||||||
bool close_on_escape = true;
|
bool close_on_escape = true;
|
||||||
@ -69,7 +69,7 @@ class AcceptDialog : public Window {
|
|||||||
void _update_child_rects();
|
void _update_child_rects();
|
||||||
void _update_ok_text();
|
void _update_ok_text();
|
||||||
|
|
||||||
static bool swap_cancel_ok;
|
inline static bool swap_cancel_ok = false;
|
||||||
|
|
||||||
void _parent_focused();
|
void _parent_focused();
|
||||||
|
|
||||||
@ -80,12 +80,13 @@ protected:
|
|||||||
|
|
||||||
void _notification(int p_what);
|
void _notification(int p_what);
|
||||||
static void _bind_methods();
|
static void _bind_methods();
|
||||||
|
void _validate_property(PropertyInfo &p_property) const;
|
||||||
|
|
||||||
virtual void ok_pressed() {}
|
virtual void ok_pressed() {}
|
||||||
virtual void cancel_pressed() {}
|
virtual void cancel_pressed() {}
|
||||||
virtual void custom_action(const String &) {}
|
virtual void custom_action(const String &) {}
|
||||||
|
|
||||||
void set_internal_ok_text(const String &p_text);
|
void set_default_ok_text(const String &p_text);
|
||||||
|
|
||||||
// Not private since used by derived classes signal.
|
// Not private since used by derived classes signal.
|
||||||
void _text_submitted(const String &p_text);
|
void _text_submitted(const String &p_text);
|
||||||
|
|||||||
@ -596,16 +596,16 @@ void FileDialog::deselect_all() {
|
|||||||
switch (mode) {
|
switch (mode) {
|
||||||
case FILE_MODE_OPEN_FILE:
|
case FILE_MODE_OPEN_FILE:
|
||||||
case FILE_MODE_OPEN_FILES:
|
case FILE_MODE_OPEN_FILES:
|
||||||
set_internal_ok_text(ETR("Open"));
|
set_default_ok_text(ETR("Open"));
|
||||||
break;
|
break;
|
||||||
case FILE_MODE_OPEN_DIR:
|
case FILE_MODE_OPEN_DIR:
|
||||||
set_internal_ok_text(ETR("Select Current Folder"));
|
set_default_ok_text(ETR("Select Current Folder"));
|
||||||
break;
|
break;
|
||||||
case FILE_MODE_OPEN_ANY:
|
case FILE_MODE_OPEN_ANY:
|
||||||
set_ok_button_text(ETR("Open"));
|
set_default_ok_text(ETR("Open"));
|
||||||
break;
|
break;
|
||||||
case FILE_MODE_SAVE_FILE:
|
case FILE_MODE_SAVE_FILE:
|
||||||
set_ok_button_text(ETR("Save"));
|
set_default_ok_text(ETR("Save"));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -629,14 +629,14 @@ void FileDialog::_file_list_selected(int p_item) {
|
|||||||
if (!d["dir"]) {
|
if (!d["dir"]) {
|
||||||
filename_edit->set_text(d["name"]);
|
filename_edit->set_text(d["name"]);
|
||||||
if (mode == FILE_MODE_SAVE_FILE) {
|
if (mode == FILE_MODE_SAVE_FILE) {
|
||||||
set_internal_ok_text(ETR("Save"));
|
set_default_ok_text(ETR("Save"));
|
||||||
} else {
|
} else {
|
||||||
set_internal_ok_text(ETR("Open"));
|
set_default_ok_text(ETR("Open"));
|
||||||
}
|
}
|
||||||
} else if (mode == FILE_MODE_OPEN_DIR || mode == FILE_MODE_OPEN_ANY || !dir_access->file_exists(filename_edit->get_text())) {
|
} else if (mode == FILE_MODE_OPEN_DIR || mode == FILE_MODE_OPEN_ANY || !dir_access->file_exists(filename_edit->get_text())) {
|
||||||
filename_edit->set_text("");
|
filename_edit->set_text("");
|
||||||
if (mode == FILE_MODE_OPEN_DIR || mode == FILE_MODE_OPEN_ANY) {
|
if (mode == FILE_MODE_OPEN_DIR || mode == FILE_MODE_OPEN_ANY) {
|
||||||
set_internal_ok_text(ETR("Select This Folder"));
|
set_default_ok_text(ETR("Select This Folder"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1138,35 +1138,35 @@ void FileDialog::set_file_mode(FileMode p_mode) {
|
|||||||
mode = p_mode;
|
mode = p_mode;
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case FILE_MODE_OPEN_FILE:
|
case FILE_MODE_OPEN_FILE:
|
||||||
set_internal_ok_text(ETR("Open"));
|
set_default_ok_text(ETR("Open"));
|
||||||
if (mode_overrides_title) {
|
if (mode_overrides_title) {
|
||||||
set_title(ETR("Open a File"));
|
set_title(ETR("Open a File"));
|
||||||
}
|
}
|
||||||
make_dir_button->hide();
|
make_dir_button->hide();
|
||||||
break;
|
break;
|
||||||
case FILE_MODE_OPEN_FILES:
|
case FILE_MODE_OPEN_FILES:
|
||||||
set_internal_ok_text(ETR("Open"));
|
set_default_ok_text(ETR("Open"));
|
||||||
if (mode_overrides_title) {
|
if (mode_overrides_title) {
|
||||||
set_title(ETR("Open File(s)"));
|
set_title(ETR("Open File(s)"));
|
||||||
}
|
}
|
||||||
make_dir_button->hide();
|
make_dir_button->hide();
|
||||||
break;
|
break;
|
||||||
case FILE_MODE_OPEN_DIR:
|
case FILE_MODE_OPEN_DIR:
|
||||||
set_internal_ok_text(ETR("Select Current Folder"));
|
set_default_ok_text(ETR("Select Current Folder"));
|
||||||
if (mode_overrides_title) {
|
if (mode_overrides_title) {
|
||||||
set_title(ETR("Open a Directory"));
|
set_title(ETR("Open a Directory"));
|
||||||
}
|
}
|
||||||
make_dir_button->show();
|
make_dir_button->show();
|
||||||
break;
|
break;
|
||||||
case FILE_MODE_OPEN_ANY:
|
case FILE_MODE_OPEN_ANY:
|
||||||
set_internal_ok_text(ETR("Open"));
|
set_default_ok_text(ETR("Open"));
|
||||||
if (mode_overrides_title) {
|
if (mode_overrides_title) {
|
||||||
set_title(ETR("Open a File or Directory"));
|
set_title(ETR("Open a File or Directory"));
|
||||||
}
|
}
|
||||||
make_dir_button->show();
|
make_dir_button->show();
|
||||||
break;
|
break;
|
||||||
case FILE_MODE_SAVE_FILE:
|
case FILE_MODE_SAVE_FILE:
|
||||||
set_internal_ok_text(ETR("Save"));
|
set_default_ok_text(ETR("Save"));
|
||||||
if (mode_overrides_title) {
|
if (mode_overrides_title) {
|
||||||
set_title(ETR("Save a File"));
|
set_title(ETR("Save a File"));
|
||||||
}
|
}
|
||||||
@ -1644,7 +1644,7 @@ FileDialog::FileDialog() {
|
|||||||
set_title(ETR("Save a File"));
|
set_title(ETR("Save a File"));
|
||||||
set_hide_on_ok(false);
|
set_hide_on_ok(false);
|
||||||
set_size(Size2(640, 360));
|
set_size(Size2(640, 360));
|
||||||
set_internal_ok_text(ETR("Save")); // Default mode text.
|
set_default_ok_text(ETR("Save")); // Default mode text.
|
||||||
|
|
||||||
show_hidden_files = default_show_hidden_files;
|
show_hidden_files = default_show_hidden_files;
|
||||||
dir_access = DirAccess::create(DirAccess::ACCESS_RESOURCES);
|
dir_access = DirAccess::create(DirAccess::ACCESS_RESOURCES);
|
||||||
|
|||||||
Reference in New Issue
Block a user