Color Pickers Respect Settings
Updated editor_node with function that sets up color pickers throughout Godot to respect editor's settings.
This commit is contained in:
parent
976cb7ea9f
commit
1b8652e86a
@ -3588,6 +3588,13 @@ void EditorNode::set_current_scene(int p_idx) {
|
||||
call_deferred(SNAME("_set_main_scene_state"), state, get_edited_scene()); // Do after everything else is done setting up.
|
||||
}
|
||||
|
||||
void EditorNode::setup_color_picker(ColorPicker *picker) {
|
||||
int default_color_mode = EDITOR_GET("interface/inspector/default_color_picker_mode");
|
||||
int picker_shape = EDITOR_GET("interface/inspector/default_color_picker_shape");
|
||||
picker->set_color_mode((ColorPicker::ColorModeType)default_color_mode);
|
||||
picker->set_picker_shape((ColorPicker::PickerShapeType)picker_shape);
|
||||
}
|
||||
|
||||
bool EditorNode::is_scene_open(const String &p_path) {
|
||||
for (int i = 0; i < editor_data.get_edited_scene_count(); i++) {
|
||||
if (editor_data.get_scene_path(i) == p_path) {
|
||||
|
@ -783,6 +783,8 @@ public:
|
||||
void set_current_version(uint64_t p_version);
|
||||
void set_current_scene(int p_idx);
|
||||
|
||||
void setup_color_picker(ColorPicker *picker);
|
||||
|
||||
void request_instance_scene(const String &p_path);
|
||||
void request_instantiate_scenes(const Vector<String> &p_files);
|
||||
|
||||
|
@ -3007,14 +3007,6 @@ void EditorPropertyColor::_popup_closed() {
|
||||
}
|
||||
}
|
||||
|
||||
void EditorPropertyColor::_picker_created() {
|
||||
// get default color picker mode from editor settings
|
||||
int default_color_mode = EDITOR_GET("interface/inspector/default_color_picker_mode");
|
||||
picker->get_picker()->set_color_mode((ColorPicker::ColorModeType)default_color_mode);
|
||||
int picker_shape = EDITOR_GET("interface/inspector/default_color_picker_shape");
|
||||
picker->get_picker()->set_picker_shape((ColorPicker::PickerShapeType)picker_shape);
|
||||
}
|
||||
|
||||
void EditorPropertyColor::_picker_opening() {
|
||||
last_color = picker->get_pick_color();
|
||||
}
|
||||
@ -3059,7 +3051,7 @@ EditorPropertyColor::EditorPropertyColor() {
|
||||
picker->set_flat(true);
|
||||
picker->connect("color_changed", callable_mp(this, &EditorPropertyColor::_color_changed));
|
||||
picker->connect("popup_closed", callable_mp(this, &EditorPropertyColor::_popup_closed));
|
||||
picker->connect("picker_created", callable_mp(this, &EditorPropertyColor::_picker_created));
|
||||
picker->get_popup()->connect("about_to_popup", callable_mp(EditorNode::get_singleton(), &EditorNode::setup_color_picker), varray(picker->get_picker()));
|
||||
picker->get_popup()->connect("about_to_popup", callable_mp(this, &EditorPropertyColor::_picker_opening));
|
||||
}
|
||||
|
||||
|
@ -85,6 +85,7 @@ void GradientEditor::reverse_gradient() {
|
||||
}
|
||||
|
||||
GradientEditor::GradientEditor() {
|
||||
GradientEdit::get_popup()->connect("about_to_popup", callable_mp(EditorNode::get_singleton(), &EditorNode::setup_color_picker), varray(GradientEdit::get_picker()));
|
||||
editing = false;
|
||||
}
|
||||
|
||||
|
@ -8028,6 +8028,7 @@ void fragment() {
|
||||
sun_color->set_edit_alpha(false);
|
||||
sun_vb->add_margin_child(TTR("Sun Color"), sun_color);
|
||||
sun_color->connect("color_changed", callable_mp(this, &Node3DEditor::_preview_settings_changed).unbind(1));
|
||||
sun_color->get_popup()->connect("about_to_popup", callable_mp(EditorNode::get_singleton(), &EditorNode::setup_color_picker), varray(sun_color->get_picker()));
|
||||
|
||||
sun_energy = memnew(EditorSpinSlider);
|
||||
sun_vb->add_margin_child(TTR("Sun Energy"), sun_energy);
|
||||
@ -8073,10 +8074,12 @@ void fragment() {
|
||||
environ_sky_color = memnew(ColorPickerButton);
|
||||
environ_sky_color->set_edit_alpha(false);
|
||||
environ_sky_color->connect("color_changed", callable_mp(this, &Node3DEditor::_preview_settings_changed).unbind(1));
|
||||
environ_sky_color->get_popup()->connect("about_to_popup", callable_mp(EditorNode::get_singleton(), &EditorNode::setup_color_picker), varray(environ_sky_color->get_picker()));
|
||||
environ_vb->add_margin_child(TTR("Sky Color"), environ_sky_color);
|
||||
environ_ground_color = memnew(ColorPickerButton);
|
||||
environ_ground_color->connect("color_changed", callable_mp(this, &Node3DEditor::_preview_settings_changed).unbind(1));
|
||||
environ_ground_color->set_edit_alpha(false);
|
||||
environ_ground_color->get_popup()->connect("about_to_popup", callable_mp(EditorNode::get_singleton(), &EditorNode::setup_color_picker), varray(environ_ground_color->get_picker()));
|
||||
environ_vb->add_margin_child(TTR("Ground Color"), environ_ground_color);
|
||||
environ_energy = memnew(EditorSpinSlider);
|
||||
environ_energy->connect("value_changed", callable_mp(this, &Node3DEditor::_preview_settings_changed).unbind(1));
|
||||
|
@ -1862,16 +1862,10 @@ void ScriptTextEditor::_enable_code_editor() {
|
||||
color_picker = memnew(ColorPicker);
|
||||
color_picker->set_deferred_mode(true);
|
||||
color_picker->connect("color_changed", callable_mp(this, &ScriptTextEditor::_color_changed));
|
||||
color_panel->connect("about_to_popup", callable_mp(EditorNode::get_singleton(), &EditorNode::setup_color_picker), varray(color_picker));
|
||||
|
||||
color_panel->add_child(color_picker);
|
||||
|
||||
// get default color picker mode from editor settings
|
||||
int default_color_mode = EDITOR_GET("interface/inspector/default_color_picker_mode");
|
||||
color_picker->set_color_mode((ColorPicker::ColorModeType)default_color_mode);
|
||||
|
||||
int picker_shape = EDITOR_GET("interface/inspector/default_color_picker_shape");
|
||||
color_picker->set_picker_shape((ColorPicker::PickerShapeType)picker_shape);
|
||||
|
||||
quick_open = memnew(ScriptEditorQuickOpen);
|
||||
quick_open->connect("goto_line", callable_mp(this, &ScriptTextEditor::_goto_line));
|
||||
add_child(quick_open);
|
||||
|
@ -2492,6 +2492,7 @@ void ThemeTypeEditor::_update_type_items() {
|
||||
if (E.value) {
|
||||
item_editor->set_pick_color(edited_theme->get_color(E.key, edited_type));
|
||||
item_editor->connect("color_changed", callable_mp(this, &ThemeTypeEditor::_color_item_changed), varray(E.key));
|
||||
item_editor->get_popup()->connect("about_to_popup", callable_mp(EditorNode::get_singleton(), &EditorNode::setup_color_picker), varray(item_editor->get_picker()));
|
||||
} else {
|
||||
item_editor->set_pick_color(Theme::get_default()->get_color(E.key, edited_type));
|
||||
item_editor->set_disabled(true);
|
||||
|
@ -828,13 +828,7 @@ bool CustomPropertyEditor::edit(Object *p_owner, const String &p_name, Variant::
|
||||
value_vbox->add_child(color_picker);
|
||||
color_picker->hide();
|
||||
color_picker->connect("color_changed", callable_mp(this, &CustomPropertyEditor::_color_changed));
|
||||
|
||||
// get default color picker mode from editor settings
|
||||
int default_color_mode = EDITOR_GET("interface/inspector/default_color_picker_mode");
|
||||
color_picker->set_color_mode((ColorPicker::ColorModeType)default_color_mode);
|
||||
|
||||
int picker_shape = EDITOR_GET("interface/inspector/default_color_picker_shape");
|
||||
color_picker->set_picker_shape((ColorPicker::PickerShapeType)picker_shape);
|
||||
color_picker->connect("show", callable_mp(EditorNode::get_singleton(), &EditorNode::setup_color_picker), varray(color_picker));
|
||||
}
|
||||
|
||||
color_picker->show();
|
||||
|
@ -437,6 +437,10 @@ ColorPicker *GradientEdit::get_picker() {
|
||||
return picker;
|
||||
}
|
||||
|
||||
PopupPanel *GradientEdit::get_popup() {
|
||||
return popup;
|
||||
}
|
||||
|
||||
void GradientEdit::_bind_methods() {
|
||||
ADD_SIGNAL(MethodInfo("ramp_changed"));
|
||||
}
|
||||
|
@ -75,6 +75,7 @@ public:
|
||||
void set_interpolation_mode(Gradient::InterpolationMode p_interp_mode);
|
||||
Gradient::InterpolationMode get_interpolation_mode();
|
||||
ColorPicker *get_picker();
|
||||
PopupPanel *get_popup();
|
||||
|
||||
virtual Size2 get_minimum_size() const override;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user