Merge pull request #3061 from TheHX/pr-tree-dialogs

Double-click item for reparent and choose a node in NodePath dialog
This commit is contained in:
Rémi Verschelde 2015-12-14 07:39:51 +01:00
commit 7155f75e22
2 changed files with 10 additions and 11 deletions

View file

@ -36,12 +36,12 @@
void ReparentDialog::_notification(int p_what) { void ReparentDialog::_notification(int p_what) {
if (p_what==NOTIFICATION_ENTER_TREE) { if (p_what==NOTIFICATION_ENTER_TREE) {
connect("confirmed", this,"_reparent"); connect("confirmed", this,"_reparent");
} }
if (p_what==NOTIFICATION_EXIT_TREE) { if (p_what==NOTIFICATION_EXIT_TREE) {
disconnect("confirmed", this,"_reparent"); disconnect("confirmed", this,"_reparent");
} }
@ -83,29 +83,29 @@ void ReparentDialog::_bind_methods() {
ReparentDialog::ReparentDialog() { ReparentDialog::ReparentDialog() {
set_title("Reparent Node"); set_title("Reparent Node");
VBoxContainer *vbc = memnew( VBoxContainer ); VBoxContainer *vbc = memnew( VBoxContainer );
add_child(vbc); add_child(vbc);
set_child_rect(vbc); set_child_rect(vbc);
tree = memnew( SceneTreeEditor(false) ); tree = memnew( SceneTreeEditor(false) );
tree->set_show_enabled_subscene(true);
vbc->add_margin_child("Reparent Location (Select new Parent):",tree,true); vbc->add_margin_child("Reparent Location (Select new Parent):",tree,true);
tree->get_scene_tree()->connect("item_activated",this,"_reparent");
//Label *label = memnew( Label ); //Label *label = memnew( Label );
//label->set_pos( Point2( 15,8) ); //label->set_pos( Point2( 15,8) );
//label->set_text("Reparent Location (Select new Parent):"); //label->set_text("Reparent Location (Select new Parent):");
node_only = memnew( CheckButton ); node_only = memnew( CheckButton );
add_child(node_only); add_child(node_only);
node_only->hide(); node_only->hide();
tree->set_show_enabled_subscene(true);
//vbc->add_margin_child("Options:",node_only);; //vbc->add_margin_child("Options:",node_only);;
//cancel->connect("pressed", this,"_cancel"); //cancel->connect("pressed", this,"_cancel");

View file

@ -928,7 +928,7 @@ void SceneTreeDialog::_cancel() {
void SceneTreeDialog::_select() { void SceneTreeDialog::_select() {
if (tree->get_selected()) { if (tree->get_selected()) {
emit_signal("selected",tree->get_selected()->get_path()); emit_signal("selected",tree->get_selected()->get_path());
hide(); hide();
} }
} }
@ -939,7 +939,6 @@ void SceneTreeDialog::_bind_methods() {
ObjectTypeDB::bind_method("_cancel",&SceneTreeDialog::_cancel); ObjectTypeDB::bind_method("_cancel",&SceneTreeDialog::_cancel);
ADD_SIGNAL( MethodInfo("selected",PropertyInfo(Variant::NODE_PATH,"path"))); ADD_SIGNAL( MethodInfo("selected",PropertyInfo(Variant::NODE_PATH,"path")));
} }
@ -951,7 +950,7 @@ SceneTreeDialog::SceneTreeDialog() {
add_child(tree); add_child(tree);
set_child_rect(tree); set_child_rect(tree);
tree->get_scene_tree()->connect("item_activated",this,"_select");
} }