Disable some task palette functionality when it is in dialog mode

This commit is contained in:
Serhii Snitsaruk 2023-12-14 23:38:02 +01:00
parent f94aca4433
commit 08a8ef9c77
3 changed files with 17 additions and 2 deletions

View File

@ -323,6 +323,7 @@ void LimboAIEditor::_action_selected(int p_id) {
rename_edit->grab_focus(); rename_edit->grab_focus();
} break; } break;
case ACTION_CHANGE_TYPE: { case ACTION_CHANGE_TYPE: {
change_type_palette->clear_filter();
change_type_palette->refresh(); change_type_palette->refresh();
Rect2 rect = Rect2(get_global_mouse_position(), Size2(400.0, 600.0) * EDSCALE); Rect2 rect = Rect2(get_global_mouse_position(), Size2(400.0, 600.0) * EDSCALE);
change_type_popup->popup(rect); change_type_popup->popup(rect);
@ -1092,6 +1093,7 @@ LimboAIEditor::LimboAIEditor() {
add_child(change_type_popup); add_child(change_type_popup);
change_type_palette = memnew(TaskPalette); change_type_palette = memnew(TaskPalette);
change_type_popup->add_child(change_type_palette); change_type_popup->add_child(change_type_palette);
change_type_palette->use_dialog_mode();
change_type_palette->connect("task_selected", callable_mp(this, &LimboAIEditor::_task_type_selected)); change_type_palette->connect("task_selected", callable_mp(this, &LimboAIEditor::_task_type_selected));
banners = memnew(VBoxContainer); banners = memnew(VBoxContainer);

View File

@ -179,6 +179,10 @@ void TaskPalette::_on_task_button_pressed(const String &p_task) {
} }
void TaskPalette::_on_task_button_rmb(const String &p_task) { void TaskPalette::_on_task_button_rmb(const String &p_task) {
if (dialog_mode) {
return;
}
ERR_FAIL_COND(p_task.is_empty()); ERR_FAIL_COND(p_task.is_empty());
context_task = p_task; context_task = p_task;
@ -415,14 +419,20 @@ void TaskPalette::refresh() {
sec->connect(SNAME("task_button_pressed"), callable_mp(this, &TaskPalette::_on_task_button_pressed)); sec->connect(SNAME("task_button_pressed"), callable_mp(this, &TaskPalette::_on_task_button_pressed));
sec->connect(SNAME("task_button_rmb"), callable_mp(this, &TaskPalette::_on_task_button_rmb)); sec->connect(SNAME("task_button_rmb"), callable_mp(this, &TaskPalette::_on_task_button_rmb));
sections->add_child(sec); sections->add_child(sec);
sec->set_collapsed(collapsed_sections.has(cat)); sec->set_collapsed(!dialog_mode && collapsed_sections.has(cat));
} }
if (!filter_edit->get_text().is_empty()) { if (!dialog_mode && !filter_edit->get_text().is_empty()) {
_apply_filter(filter_edit->get_text()); _apply_filter(filter_edit->get_text());
} }
} }
void TaskPalette::use_dialog_mode() {
tool_filters->hide();
tool_refresh->hide();
dialog_mode = true;
}
void TaskPalette::_update_theme_item_cache() { void TaskPalette::_update_theme_item_cache() {
PanelContainer::_update_theme_item_cache(); PanelContainer::_update_theme_item_cache();

View File

@ -118,6 +118,7 @@ private:
VBoxContainer *category_list; VBoxContainer *category_list;
String context_task; String context_task;
bool dialog_mode = false;
void _menu_action_selected(int p_id); void _menu_action_selected(int p_id);
void _on_task_button_pressed(const String &p_task); void _on_task_button_pressed(const String &p_task);
@ -149,6 +150,8 @@ protected:
public: public:
void refresh(); void refresh();
void use_dialog_mode();
void clear_filter() { filter_edit->set_text(""); }
TaskPalette(); TaskPalette();
~TaskPalette(); ~TaskPalette();