Fix ColorPicker load/save swatches button interactions
This commit is contained in:
@ -1770,13 +1770,6 @@ void ColorPicker::_pick_finished() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ColorPicker::_update_menu_items() {
|
void ColorPicker::_update_menu_items() {
|
||||||
if (!options_menu) {
|
|
||||||
options_menu = memnew(PopupMenu);
|
|
||||||
add_child(options_menu, false, INTERNAL_MODE_FRONT);
|
|
||||||
options_menu->force_parent_owned();
|
|
||||||
options_menu->connect("id_pressed", callable_mp(this, &ColorPicker::_options_menu_cbk));
|
|
||||||
}
|
|
||||||
|
|
||||||
options_menu->clear();
|
options_menu->clear();
|
||||||
options_menu->reset_size();
|
options_menu->reset_size();
|
||||||
|
|
||||||
@ -1802,16 +1795,6 @@ void ColorPicker::_update_menu_items() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ColorPicker::_update_menu() {
|
|
||||||
_update_menu_items();
|
|
||||||
Rect2 gt = menu_btn->get_screen_rect();
|
|
||||||
menu_btn->reset_size();
|
|
||||||
int min_size = menu_btn->get_minimum_size().width;
|
|
||||||
Vector2 popup_pos = gt.get_end() - Vector2(min_size, 0);
|
|
||||||
options_menu->set_position(popup_pos);
|
|
||||||
options_menu->popup();
|
|
||||||
}
|
|
||||||
|
|
||||||
void ColorPicker::_options_menu_cbk(int p_which) {
|
void ColorPicker::_options_menu_cbk(int p_which) {
|
||||||
if (!file_dialog) {
|
if (!file_dialog) {
|
||||||
file_dialog = memnew(FileDialog);
|
file_dialog = memnew(FileDialog);
|
||||||
@ -2369,13 +2352,15 @@ ColorPicker::ColorPicker() {
|
|||||||
btn_preset->connect(SceneStringName(toggled), callable_mp(this, &ColorPicker::_show_hide_preset).bind(btn_preset, preset_container));
|
btn_preset->connect(SceneStringName(toggled), callable_mp(this, &ColorPicker::_show_hide_preset).bind(btn_preset, preset_container));
|
||||||
palette_box->add_child(btn_preset);
|
palette_box->add_child(btn_preset);
|
||||||
|
|
||||||
menu_btn = memnew(Button);
|
menu_btn = memnew(MenuButton);
|
||||||
menu_btn->set_flat(true);
|
menu_btn->set_flat(true);
|
||||||
menu_btn->set_tooltip_text(ETR("Show all options available."));
|
menu_btn->set_tooltip_text(ETR("Show all options available."));
|
||||||
menu_btn->set_focus_mode(FOCUS_NONE);
|
menu_btn->connect("about_to_popup", callable_mp(this, &ColorPicker::_update_menu_items));
|
||||||
menu_btn->connect(SceneStringName(pressed), callable_mp(this, &ColorPicker::_update_menu));
|
|
||||||
palette_box->add_child(menu_btn);
|
palette_box->add_child(menu_btn);
|
||||||
|
|
||||||
|
options_menu = menu_btn->get_popup();
|
||||||
|
options_menu->connect(SceneStringName(id_pressed), callable_mp(this, &ColorPicker::_options_menu_cbk));
|
||||||
|
|
||||||
palette_name = memnew(Label);
|
palette_name = memnew(Label);
|
||||||
palette_name->hide();
|
palette_name->hide();
|
||||||
palette_name->set_mouse_filter(MOUSE_FILTER_PASS);
|
palette_name->set_mouse_filter(MOUSE_FILTER_PASS);
|
||||||
|
|||||||
@ -144,7 +144,7 @@ private:
|
|||||||
TextureRect *picker_texture_rect = nullptr;
|
TextureRect *picker_texture_rect = nullptr;
|
||||||
Color picker_color;
|
Color picker_color;
|
||||||
FileDialog *file_dialog = nullptr;
|
FileDialog *file_dialog = nullptr;
|
||||||
Button *menu_btn = nullptr;
|
MenuButton *menu_btn = nullptr;
|
||||||
PopupMenu *options_menu = nullptr;
|
PopupMenu *options_menu = nullptr;
|
||||||
|
|
||||||
MarginContainer *internal_margin = nullptr;
|
MarginContainer *internal_margin = nullptr;
|
||||||
@ -305,7 +305,6 @@ private:
|
|||||||
void _target_gui_input(const Ref<InputEvent> &p_event);
|
void _target_gui_input(const Ref<InputEvent> &p_event);
|
||||||
void _pick_finished();
|
void _pick_finished();
|
||||||
void _update_menu_items();
|
void _update_menu_items();
|
||||||
void _update_menu();
|
|
||||||
void _options_menu_cbk(int p_which);
|
void _options_menu_cbk(int p_which);
|
||||||
|
|
||||||
// Legacy color picking.
|
// Legacy color picking.
|
||||||
|
|||||||
Reference in New Issue
Block a user