mirror of https://github.com/godotengine/godot
Auto select custom property value field when pop up, user can start typing to change value right away.
This commit is contained in:
parent
a65edb4caa
commit
8fb19e5843
|
|
@ -748,6 +748,11 @@ bool LineEdit::is_secret() const {
|
||||||
|
|
||||||
void LineEdit::select(int p_from, int p_to) {
|
void LineEdit::select(int p_from, int p_to) {
|
||||||
|
|
||||||
|
if (p_from==0 && p_to==0) {
|
||||||
|
selection_clear();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
int len = text.length();
|
int len = text.length();
|
||||||
if (p_from<0)
|
if (p_from<0)
|
||||||
p_from=0;
|
p_from=0;
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ void CustomPropertyEditor::_notification(int p_what) {
|
||||||
|
|
||||||
VisualServer::get_singleton()->canvas_item_add_rect(ci, Rect2( 10,10,60, get_size().height-20 ), v );
|
VisualServer::get_singleton()->canvas_item_add_rect(ci, Rect2( 10,10,60, get_size().height-20 ), v );
|
||||||
}*/
|
}*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1397,6 +1397,53 @@ void CustomPropertyEditor::_modified(String p_string) {
|
||||||
updating=false;
|
updating=false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CustomPropertyEditor::_focus_enter() {
|
||||||
|
switch(type) {
|
||||||
|
case Variant::REAL:
|
||||||
|
case Variant::STRING:
|
||||||
|
case Variant::VECTOR2:
|
||||||
|
case Variant::RECT2:
|
||||||
|
case Variant::VECTOR3:
|
||||||
|
case Variant::PLANE:
|
||||||
|
case Variant::QUAT:
|
||||||
|
case Variant::_AABB:
|
||||||
|
case Variant::MATRIX32:
|
||||||
|
case Variant::MATRIX3:
|
||||||
|
case Variant::TRANSFORM: {
|
||||||
|
for (int i=0;i<MAX_VALUE_EDITORS;++i) {
|
||||||
|
if (value_editor[i]->has_focus()) {
|
||||||
|
value_editor[i]->select_all();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} break;
|
||||||
|
default: {}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void CustomPropertyEditor::_focus_exit() {
|
||||||
|
switch(type) {
|
||||||
|
case Variant::REAL:
|
||||||
|
case Variant::STRING:
|
||||||
|
case Variant::VECTOR2:
|
||||||
|
case Variant::RECT2:
|
||||||
|
case Variant::VECTOR3:
|
||||||
|
case Variant::PLANE:
|
||||||
|
case Variant::QUAT:
|
||||||
|
case Variant::_AABB:
|
||||||
|
case Variant::MATRIX32:
|
||||||
|
case Variant::MATRIX3:
|
||||||
|
case Variant::TRANSFORM: {
|
||||||
|
for (int i=0;i<MAX_VALUE_EDITORS;++i) {
|
||||||
|
value_editor[i]->select(0, 0);
|
||||||
|
}
|
||||||
|
} break;
|
||||||
|
default: {}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void CustomPropertyEditor::config_action_buttons(const List<String>& p_strings) {
|
void CustomPropertyEditor::config_action_buttons(const List<String>& p_strings) {
|
||||||
|
|
||||||
int w=100;
|
int w=100;
|
||||||
|
|
@ -1456,6 +1503,8 @@ void CustomPropertyEditor::config_value_editors(int p_amount, int p_columns,int
|
||||||
|
|
||||||
void CustomPropertyEditor::_bind_methods() {
|
void CustomPropertyEditor::_bind_methods() {
|
||||||
|
|
||||||
|
ObjectTypeDB::bind_method("_focus_enter", &CustomPropertyEditor::_focus_enter);
|
||||||
|
ObjectTypeDB::bind_method("_focus_exit", &CustomPropertyEditor::_focus_exit);
|
||||||
ObjectTypeDB::bind_method("_modified",&CustomPropertyEditor::_modified);
|
ObjectTypeDB::bind_method("_modified",&CustomPropertyEditor::_modified);
|
||||||
ObjectTypeDB::bind_method("_scroll_modified",&CustomPropertyEditor::_scroll_modified);
|
ObjectTypeDB::bind_method("_scroll_modified",&CustomPropertyEditor::_scroll_modified);
|
||||||
ObjectTypeDB::bind_method("_action_pressed",&CustomPropertyEditor::_action_pressed);
|
ObjectTypeDB::bind_method("_action_pressed",&CustomPropertyEditor::_action_pressed);
|
||||||
|
|
@ -1487,6 +1536,8 @@ CustomPropertyEditor::CustomPropertyEditor() {
|
||||||
value_editor[i]->hide();
|
value_editor[i]->hide();
|
||||||
value_label[i]->hide();
|
value_label[i]->hide();
|
||||||
value_editor[i]->connect("text_entered", this,"_modified");
|
value_editor[i]->connect("text_entered", this,"_modified");
|
||||||
|
value_editor[i]->connect("focus_enter", this, "_focus_enter");
|
||||||
|
value_editor[i]->connect("focus_exit", this, "_focus_exit");
|
||||||
}
|
}
|
||||||
|
|
||||||
for(int i=0;i<4;i++) {
|
for(int i=0;i<4;i++) {
|
||||||
|
|
|
||||||
|
|
@ -105,6 +105,8 @@ class CustomPropertyEditor : public Popup {
|
||||||
void _file_selected(String p_file);
|
void _file_selected(String p_file);
|
||||||
void _scroll_modified(double p_value);
|
void _scroll_modified(double p_value);
|
||||||
void _modified(String p_string);
|
void _modified(String p_string);
|
||||||
|
void _focus_enter();
|
||||||
|
void _focus_exit();
|
||||||
void _action_pressed(int p_which);
|
void _action_pressed(int p_which);
|
||||||
void _type_create_selected(int p_idx);
|
void _type_create_selected(int p_idx);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue