summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Locurcio <hugo.locurcio@hugo.pro>2023-04-10 21:06:02 +0200
committerYuri Sizov <yuris@humnom.net>2023-04-24 16:28:26 +0200
commit8a349e4fa973a10e26ba4300fe02228ebc1a793a (patch)
treea08003e3d35bdf30305c23f77982dce0ea72b0d7
parent25518aad2742e8314c270a963c50d679f694fdc6 (diff)
Allow entering named colors in ColorPicker's hex field
This also makes the hex field wider to allow displaying 9-character hex code (`#rrggbbaa`) in full, even when using a custom font. (cherry picked from commit 517dc3654a80e30021b8468ef87d0327200963db)
-rw-r--r--scene/gui/color_picker.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/scene/gui/color_picker.cpp b/scene/gui/color_picker.cpp
index 48e3759981..cea60f375a 100644
--- a/scene/gui/color_picker.cpp
+++ b/scene/gui/color_picker.cpp
@@ -500,8 +500,9 @@ void ColorPicker::_html_submitted(const String &p_html) {
return;
}
- Color previous_color = color;
- color = Color::html(p_html);
+ const Color previous_color = color;
+ color = Color::from_string(p_html, previous_color);
+
if (!is_editing_alpha()) {
color.a = previous_color.a;
}
@@ -601,13 +602,13 @@ void ColorPicker::_text_type_toggled() {
text_type->set_icon(get_theme_icon(SNAME("Script"), SNAME("EditorIcons")));
c_text->set_editable(false);
- c_text->set_h_size_flags(SIZE_EXPAND_FILL);
+ c_text->set_tooltip_text(RTR("Copy this constructor in a script."));
} else {
text_type->set_text("#");
text_type->set_icon(nullptr);
c_text->set_editable(true);
- c_text->set_h_size_flags(SIZE_FILL);
+ c_text->set_tooltip_text(RTR("Enter a hex code (\"#ff0000\") or named color (\"red\")."));
}
_update_color();
}
@@ -1754,7 +1755,10 @@ ColorPicker::ColorPicker() {
c_text = memnew(LineEdit);
hex_hbc->add_child(c_text);
+ c_text->set_h_size_flags(SIZE_EXPAND_FILL);
c_text->set_select_all_on_focus(true);
+ c_text->set_tooltip_text(RTR("Enter a hex code (\"#ff0000\") or named color (\"red\")."));
+ c_text->set_placeholder(RTR("Hex code or named color"));
c_text->connect("text_submitted", callable_mp(this, &ColorPicker::_html_submitted));
c_text->connect("text_changed", callable_mp(this, &ColorPicker::_text_changed));
c_text->connect("focus_exited", callable_mp(this, &ColorPicker::_html_focus_exit));