BlackboardPlanEditor: Focus on added var and autofill name
This commit is contained in:
parent
174810fb34
commit
87a1687c74
|
@ -48,10 +48,10 @@ void BlackboardPlanEditor::_add_var() {
|
||||||
ERR_FAIL_NULL(plan);
|
ERR_FAIL_NULL(plan);
|
||||||
|
|
||||||
int suffix = 1;
|
int suffix = 1;
|
||||||
String name = "var" + itos(suffix);
|
String name = default_var_name;
|
||||||
while (plan->has_var(name)) {
|
while (plan->has_var(name)) {
|
||||||
suffix += 1;
|
suffix += 1;
|
||||||
name = "var" + itos(suffix);
|
name = default_var_name + itos(suffix);
|
||||||
}
|
}
|
||||||
|
|
||||||
BBVariable var(Variant::Type::FLOAT);
|
BBVariable var(Variant::Type::FLOAT);
|
||||||
|
@ -127,6 +127,12 @@ void BlackboardPlanEditor::edit_plan(const Ref<BlackboardPlan> &p_plan) {
|
||||||
_refresh();
|
_refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BlackboardPlanEditor::set_next_var_name(const String &p_name) {
|
||||||
|
if (p_name.is_valid_identifier()) {
|
||||||
|
default_var_name = p_name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void BlackboardPlanEditor::_show_button_popup(Button *p_button, PopupMenu *p_popup, int p_index) {
|
void BlackboardPlanEditor::_show_button_popup(Button *p_button, PopupMenu *p_popup, int p_index) {
|
||||||
ERR_FAIL_NULL(p_button);
|
ERR_FAIL_NULL(p_button);
|
||||||
ERR_FAIL_NULL(p_popup);
|
ERR_FAIL_NULL(p_popup);
|
||||||
|
@ -160,6 +166,13 @@ void BlackboardPlanEditor::_hint_chosen(int id) {
|
||||||
_change_var_hint(PropertyHint(id), last_index);
|
_change_var_hint(PropertyHint(id), last_index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BlackboardPlanEditor::_add_var_pressed() {
|
||||||
|
_add_var();
|
||||||
|
LineEdit *name_edit = _get_name_edit(rows_vbox->get_child_count() - 1);
|
||||||
|
name_edit->grab_focus();
|
||||||
|
name_edit->select_all();
|
||||||
|
}
|
||||||
|
|
||||||
void BlackboardPlanEditor::_drag_button_down(Control *p_row) {
|
void BlackboardPlanEditor::_drag_button_down(Control *p_row) {
|
||||||
drag_index = p_row->get_index();
|
drag_index = p_row->get_index();
|
||||||
drag_start = drag_index;
|
drag_start = drag_index;
|
||||||
|
@ -212,6 +225,7 @@ void BlackboardPlanEditor::_drag_button_gui_input(const Ref<InputEvent> &p_event
|
||||||
void BlackboardPlanEditor::_visibility_changed() {
|
void BlackboardPlanEditor::_visibility_changed() {
|
||||||
if (!is_visible() && plan.is_valid()) {
|
if (!is_visible() && plan.is_valid()) {
|
||||||
plan->notify_property_list_changed();
|
plan->notify_property_list_changed();
|
||||||
|
default_var_name = "var";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -324,7 +338,7 @@ void BlackboardPlanEditor::_notification(int p_what) {
|
||||||
ADD_STYLEBOX_OVERRIDE(header_row, LW_NAME(panel), theme_cache.header_style);
|
ADD_STYLEBOX_OVERRIDE(header_row, LW_NAME(panel), theme_cache.header_style);
|
||||||
} break;
|
} break;
|
||||||
case NOTIFICATION_ENTER_TREE: {
|
case NOTIFICATION_ENTER_TREE: {
|
||||||
add_var_tool->connect(LW_NAME(pressed), callable_mp(this, &BlackboardPlanEditor::_add_var));
|
add_var_tool->connect(LW_NAME(pressed), callable_mp(this, &BlackboardPlanEditor::_add_var_pressed));
|
||||||
connect(LW_NAME(visibility_changed), callable_mp(this, &BlackboardPlanEditor::_visibility_changed));
|
connect(LW_NAME(visibility_changed), callable_mp(this, &BlackboardPlanEditor::_visibility_changed));
|
||||||
type_menu->connect(LW_NAME(id_pressed), callable_mp(this, &BlackboardPlanEditor::_type_chosen));
|
type_menu->connect(LW_NAME(id_pressed), callable_mp(this, &BlackboardPlanEditor::_type_chosen));
|
||||||
hint_menu->connect(LW_NAME(id_pressed), callable_mp(this, &BlackboardPlanEditor::_hint_chosen));
|
hint_menu->connect(LW_NAME(id_pressed), callable_mp(this, &BlackboardPlanEditor::_hint_chosen));
|
||||||
|
@ -344,6 +358,8 @@ void BlackboardPlanEditor::_notification(int p_what) {
|
||||||
}
|
}
|
||||||
|
|
||||||
BlackboardPlanEditor::BlackboardPlanEditor() {
|
BlackboardPlanEditor::BlackboardPlanEditor() {
|
||||||
|
default_var_name = "var";
|
||||||
|
|
||||||
set_title(TTR("Manage Blackboard Plan"));
|
set_title(TTR("Manage Blackboard Plan"));
|
||||||
|
|
||||||
VBoxContainer *vbox = memnew(VBoxContainer);
|
VBoxContainer *vbox = memnew(VBoxContainer);
|
||||||
|
|
|
@ -56,6 +56,7 @@ private:
|
||||||
int drag_index = -1;
|
int drag_index = -1;
|
||||||
|
|
||||||
Ref<BlackboardPlan> plan;
|
Ref<BlackboardPlan> plan;
|
||||||
|
String default_var_name;
|
||||||
|
|
||||||
VBoxContainer *rows_vbox;
|
VBoxContainer *rows_vbox;
|
||||||
Button *add_var_tool;
|
Button *add_var_tool;
|
||||||
|
@ -76,6 +77,7 @@ private:
|
||||||
void _show_button_popup(Button *p_button, PopupMenu *p_popup, int p_index);
|
void _show_button_popup(Button *p_button, PopupMenu *p_popup, int p_index);
|
||||||
void _type_chosen(int id);
|
void _type_chosen(int id);
|
||||||
void _hint_chosen(int id);
|
void _hint_chosen(int id);
|
||||||
|
void _add_var_pressed();
|
||||||
|
|
||||||
void _drag_button_down(Control *p_row);
|
void _drag_button_down(Control *p_row);
|
||||||
void _drag_button_up();
|
void _drag_button_up();
|
||||||
|
@ -93,6 +95,7 @@ public:
|
||||||
_FORCE_INLINE_ static BlackboardPlanEditor *get_singleton() { return singleton; }
|
_FORCE_INLINE_ static BlackboardPlanEditor *get_singleton() { return singleton; }
|
||||||
|
|
||||||
void edit_plan(const Ref<BlackboardPlan> &p_plan);
|
void edit_plan(const Ref<BlackboardPlan> &p_plan);
|
||||||
|
void set_next_var_name(const String &p_name);
|
||||||
|
|
||||||
BlackboardPlanEditor();
|
BlackboardPlanEditor();
|
||||||
};
|
};
|
||||||
|
|
|
@ -79,6 +79,10 @@ void EditorPropertyVariableName::_update_status() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditorPropertyVariableName::_status_pressed() {
|
void EditorPropertyVariableName::_status_pressed() {
|
||||||
|
ERR_FAIL_NULL(plan);
|
||||||
|
if (!plan->has_var(name_edit->get_text())) {
|
||||||
|
BlackboardPlanEditor::get_singleton()->set_next_var_name(name_edit->get_text());
|
||||||
|
}
|
||||||
BlackboardPlanEditor::get_singleton()->edit_plan(plan);
|
BlackboardPlanEditor::get_singleton()->edit_plan(plan);
|
||||||
BlackboardPlanEditor::get_singleton()->popup_centered();
|
BlackboardPlanEditor::get_singleton()->popup_centered();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue