mirror of
https://github.com/godotengine/godot.git
synced 2025-10-19 16:03:29 +00:00
Don't instantiate ColorPicker
in EditorPropertyColor
constructor
This commit is contained in:
parent
1b7b009674
commit
3376ba6688
2 changed files with 14 additions and 9 deletions
|
@ -2599,6 +2599,17 @@ void EditorPropertyColor::_color_changed(const Color &p_color) {
|
||||||
get_edited_object()->set(get_edited_property(), p_color);
|
get_edited_object()->set(get_edited_property(), p_color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void EditorPropertyColor::_picker_created() {
|
||||||
|
picker->get_popup()->connect("about_to_popup", callable_mp(this, &EditorPropertyColor::_popup_opening));
|
||||||
|
picker->connect("popup_closed", callable_mp(this, &EditorPropertyColor::_popup_closed), CONNECT_DEFERRED);
|
||||||
|
}
|
||||||
|
|
||||||
|
void EditorPropertyColor::_popup_opening() {
|
||||||
|
EditorNode::get_singleton()->setup_color_picker(picker->get_picker());
|
||||||
|
last_color = picker->get_pick_color();
|
||||||
|
was_checked = !is_checkable() || is_checked();
|
||||||
|
}
|
||||||
|
|
||||||
void EditorPropertyColor::_popup_closed() {
|
void EditorPropertyColor::_popup_closed() {
|
||||||
get_edited_object()->set(get_edited_property(), was_checked ? Variant(last_color) : Variant());
|
get_edited_object()->set(get_edited_property(), was_checked ? Variant(last_color) : Variant());
|
||||||
if (!picker->get_pick_color().is_equal_approx(last_color)) {
|
if (!picker->get_pick_color().is_equal_approx(last_color)) {
|
||||||
|
@ -2606,11 +2617,6 @@ void EditorPropertyColor::_popup_closed() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditorPropertyColor::_picker_opening() {
|
|
||||||
last_color = picker->get_pick_color();
|
|
||||||
was_checked = !is_checkable() || is_checked();
|
|
||||||
}
|
|
||||||
|
|
||||||
void EditorPropertyColor::_notification(int p_what) {
|
void EditorPropertyColor::_notification(int p_what) {
|
||||||
switch (p_what) {
|
switch (p_what) {
|
||||||
case NOTIFICATION_ENTER_TREE:
|
case NOTIFICATION_ENTER_TREE:
|
||||||
|
@ -2654,9 +2660,7 @@ EditorPropertyColor::EditorPropertyColor() {
|
||||||
add_child(picker);
|
add_child(picker);
|
||||||
picker->set_flat(true);
|
picker->set_flat(true);
|
||||||
picker->connect("color_changed", callable_mp(this, &EditorPropertyColor::_color_changed));
|
picker->connect("color_changed", callable_mp(this, &EditorPropertyColor::_color_changed));
|
||||||
picker->connect("popup_closed", callable_mp(this, &EditorPropertyColor::_popup_closed), CONNECT_DEFERRED);
|
picker->connect("picker_created", callable_mp(this, &EditorPropertyColor::_picker_created), CONNECT_ONE_SHOT);
|
||||||
picker->get_popup()->connect("about_to_popup", callable_mp(EditorNode::get_singleton(), &EditorNode::setup_color_picker).bind(picker->get_picker()));
|
|
||||||
picker->get_popup()->connect("about_to_popup", callable_mp(this, &EditorPropertyColor::_picker_opening));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////// NODE PATH //////////////////////
|
////////////// NODE PATH //////////////////////
|
||||||
|
|
|
@ -593,8 +593,9 @@ class EditorPropertyColor : public EditorProperty {
|
||||||
GDCLASS(EditorPropertyColor, EditorProperty);
|
GDCLASS(EditorPropertyColor, EditorProperty);
|
||||||
ColorPickerButton *picker = nullptr;
|
ColorPickerButton *picker = nullptr;
|
||||||
void _color_changed(const Color &p_color);
|
void _color_changed(const Color &p_color);
|
||||||
|
void _picker_created();
|
||||||
|
void _popup_opening();
|
||||||
void _popup_closed();
|
void _popup_closed();
|
||||||
void _picker_opening();
|
|
||||||
|
|
||||||
Color last_color;
|
Color last_color;
|
||||||
bool live_changes_enabled = true;
|
bool live_changes_enabled = true;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue