void CreateDialog::_update_favorite_list() { favorites->clear(); TreeItem *root = favorites->create_item(); for (int i = 0; i < favorite_list.size(); i++) { String l = favorite_list[i]; String name = l.split(" ")[0]; if (!(ClassDB::class_exists(name) || ScriptServer::is_global_class(name))) continue; TreeItem *ti = favorites->create_item(root); ti->set_text(0, l); ti->set_icon(0, EditorNode::get_singleton()->get_class_icon(l, base_type)); } emit_signal("favorites_updated"); }
void FindInFiles::start() { if (_pattern == "") { print_verbose("Nothing to search, pattern is empty"); emit_signal(SIGNAL_FINISHED); return; } if (_extension_filter.size() == 0) { print_verbose("Nothing to search, filter matches no files"); emit_signal(SIGNAL_FINISHED); return; } // Init search _current_dir = ""; PoolStringArray init_folder; init_folder.append(_root_dir); _folders_stack.clear(); _folders_stack.push_back(init_folder); _initial_files_count = 0; _searching = true; set_process(true); }
Error Object::emit_signal(const StringName &p_name, VARIANT_ARG_DECLARE) { VARIANT_ARGPTRS; int argc = 0; for (int i = 0; i < VARIANT_ARG_MAX; i++) { if (argptr[i]->get_type() == Variant::NIL) break; argc++; } return emit_signal(p_name, argptr, argc); }
void GeometryInstance::set_flag(Flags p_flag,bool p_value) { ERR_FAIL_INDEX(p_flag,FLAG_MAX); if (flags[p_flag]==p_value) return; flags[p_flag]=p_value; VS::get_singleton()->instance_geometry_set_flag(get_instance(),(VS::InstanceFlags)p_flag,p_value); if (p_flag==FLAG_VISIBLE) { _change_notify("geometry/visible"); emit_signal(SceneStringNames::get_singleton()->visibility_changed); } }
void SceneTreeEditor::drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_from) { if (!can_drop_data_fw(p_point, p_data, p_from)) return; TreeItem *item = tree->get_item_at_pos(p_point); if (!item) return; int section = tree->get_drop_section_at_pos(p_point); if (section < -1) return; NodePath np = item->get_metadata(0); Node *n = get_node(np); if (!n) return; Dictionary d = p_data; if (String(d["type"]) == "nodes") { Array nodes = d["nodes"]; emit_signal("nodes_rearranged", nodes, np, section); } if (String(d["type"]) == "files") { Vector<String> files = d["files"]; String ftype = EditorFileSystem::get_singleton()->get_file_type(files[0]); if (_is_script_type(ftype)) { emit_signal("script_dropped", files[0], np); } else { emit_signal("files_dropped", files, np, section); } } }
void EditorSubScene::ok_pressed() { TreeItem *s = tree->get_selected(); if (!s) return; Node *selnode = s->get_metadata(0); if (!selnode) return; emit_signal("subscene_selected"); hide(); clear(); }
void SplitContainer::_gui_input(const Ref<InputEvent> &p_event) { if (collapsed || !_getch(0) || !_getch(1) || dragger_visibility != DRAGGER_VISIBLE) return; Ref<InputEventMouseButton> mb = p_event; if (mb.is_valid()) { if (mb->get_button_index() == BUTTON_LEFT) { if (mb->is_pressed()) { int sep = get_constant("separation"); if (vertical) { if (mb->get_position().y > middle_sep && mb->get_position().y < middle_sep + sep) { dragging = true; drag_from = mb->get_position().y; drag_ofs = expand_ofs; } } else { if (mb->get_position().x > middle_sep && mb->get_position().x < middle_sep + sep) { dragging = true; drag_from = mb->get_position().x; drag_ofs = expand_ofs; } } } else { dragging = false; } } } Ref<InputEventMouseMotion> mm = p_event; if (mm.is_valid() && dragging) { expand_ofs = drag_ofs + ((vertical ? mm->get_position().y : mm->get_position().x) - drag_from); queue_sort(); emit_signal("dragged", get_split_offset()); } }
void Node::_propagate_enter_tree() { // this needs to happen to all childs before any enter_tree if (data.parent) { data.tree=data.parent->data.tree; data.depth=data.parent->data.depth+1; } else { data.depth=1; } data.viewport = cast_to<Viewport>(); if (!data.viewport) data.viewport = data.parent->data.viewport; data.inside_tree=true; const StringName *K=NULL; while ((K=data.grouped.next(K))) { data.tree->add_to_group(*K,this); } notification(NOTIFICATION_ENTER_TREE); if (get_script_instance()) { Variant::CallError err; get_script_instance()->call_multilevel_reversed(SceneStringNames::get_singleton()->_enter_tree,NULL,0); } emit_signal(SceneStringNames::get_singleton()->enter_tree); data.blocked++; //block while adding children for (int i=0;i<data.children.size();i++) { if (!data.children[i]->is_inside_tree()) // could have been added in enter_tree data.children[i]->_propagate_enter_tree(); } data.blocked--; // enter groups }
void Popup::popup() { emit_signal("about_to_show"); show_modal(exclusive); _fix_size(); Control *focusable = find_next_valid_focus(); if (focusable) focusable->grab_focus(); _post_popup(); notification(NOTIFICATION_POST_POPUP); }
void ColorPicker::_value_changed(double) { if (updating) return; for(int i=0;i<4;i++) { color.components[i] = scroll[i]->get_val()/(raw_mode_enabled?1.0:255.0); } set_color(color); _update_text_value(); emit_signal("color_changed",color); }
void StreamPlayer::stop() { if (!is_inside_tree()) return; if (playback.is_null()) return; //_THREAD_SAFE_METHOD_ AudioServer::get_singleton()->stream_set_active(stream_rid,false); stop_request=false; playback->stop(); resampler.flush(); emit_signal("finished"); //set_idle_process(false); }
void EditorFileSystem::reimport_files(const Vector<String> &p_files) { importing = true; EditorProgress pr("reimport", TTR("(Re)Importing Assets"), p_files.size()); for (int i = 0; i < p_files.size(); i++) { pr.step(p_files[i].get_file(), i); _reimport_file(p_files[i]); } _save_filesystem_cache(); importing = false; if (!is_scanning()) { emit_signal("filesystem_changed"); } }
void ScriptTextEditor::set_edited_script(const Ref<Script>& p_script) { ERR_FAIL_COND(!script.is_null()); script=p_script; _load_theme_settings(); code_editor->get_text_edit()->set_text(script->get_source_code()); code_editor->get_text_edit()->clear_undo_history(); code_editor->get_text_edit()->tag_saved_version(); emit_signal("name_changed"); code_editor->update_line_and_column(); }
void ColorPicker::_html_entered(const String &p_html) { if (updating) return; float last_alpha = color.a; color = Color::html(p_html); if (!is_editing_alpha()) color.a = last_alpha; if (!is_inside_tree()) return; set_pick_color(color); emit_signal("color_changed", color); }
void ARVRServer::add_interface(const Ref<ARVRInterface> &p_interface) { ERR_FAIL_COND(p_interface.is_null()); for (int i = 0; i < interfaces.size(); i++) { if (interfaces[i] == p_interface) { ERR_PRINT("Interface was already added"); return; }; }; print_line("ARVR: Registered interface: " + p_interface->get_name()); interfaces.push_back(p_interface); emit_signal("interface_added", p_interface->get_name()); };
void EditorAudioBus::_gui_input(const Ref<InputEvent> &p_event) { Ref<InputEventKey> k = p_event; if (k.is_valid() && k->is_pressed() && k->get_scancode() == KEY_DELETE && !k->is_echo()) { accept_event(); emit_signal("delete_request"); } Ref<InputEventMouseButton> mb = p_event; if (mb.is_valid() && mb->get_button_index() == 2 && mb->is_pressed()) { Vector2 pos = Vector2(mb->get_position().x, mb->get_position().y); bus_popup->set_position(get_global_position() + pos); bus_popup->popup(); } }
void ScriptEditorDebugger::stop(){ set_process(false); server->stop(); ppeer->set_stream_peer(Ref<StreamPeer>()); if (connection.is_valid()) { EditorNode::get_log()->add_message("** Debug Process Stopped **"); connection.unref(); } pending_in_queue=0; message.clear(); if (log_forced_visible) { //EditorNode::get_singleton()->make_bottom_panel_item_visible(this); if (EditorNode::get_log()->is_visible()) EditorNode::get_singleton()->hide_bottom_panel(); log_forced_visible=false; } node_path_cache.clear(); res_path_cache.clear(); profiler_signature.clear(); le_clear->set_disabled(false); le_set->set_disabled(true); profiler->set_enabled(true); inspect_properties->edit(NULL); inspect_scene_tree->clear(); EditorNode::get_singleton()->get_pause_button()->set_pressed(false); EditorNode::get_singleton()->get_pause_button()->set_disabled(true); if (hide_on_stop) { if (is_visible()) EditorNode::get_singleton()->hide_bottom_panel(); emit_signal("show_debugger",false); } }
void SceneTreeEditor::_selected_changed() { TreeItem *s = tree->get_selected(); ERR_FAIL_COND(!s); NodePath np = s->get_metadata(0); Node *n = get_node(np); if (n == selected) return; selected = get_node(np); blocked++; emit_signal("node_selected"); blocked--; }
void Tabs::remove_tab(int p_idx) { ERR_FAIL_INDEX(p_idx,tabs.size()); tabs.remove(p_idx); if (current>=p_idx) current--; update(); minimum_size_changed(); if (current<0) current=0; if (current>=tabs.size()) current=tabs.size()-1; emit_signal("tab_changed",current); }
void TileMap::set_tileset(const Ref<TileSet>& p_tileset) { if (tile_set.is_valid()) tile_set->disconnect("changed",this,"_recreate_quadrants"); _clear_quadrants(); tile_set=p_tileset; if (tile_set.is_valid()) tile_set->connect("changed",this,"_recreate_quadrants"); else clear(); _recreate_quadrants(); emit_signal("settings_changed"); }
void ColorPicker::_value_changed(double) { if (updating) return; for(int i=0;i<3;i++) { color.components[i] = scroll[i]->get_val()/(raw_mode_enabled?1.0:255.0); } color.components[3] = scroll[3]->get_val()/255.0; set_color(color); c_text->set_text(color.to_html(edit_alpha && color.a<1)); emit_signal("color_changed",color); }
void PopupMenu::activate_item(int p_item) { ERR_FAIL_INDEX(p_item,items.size()); ERR_FAIL_COND(items[p_item].separator); emit_signal("item_pressed",items[p_item].ID); //hide all parent PopupMenue's Node *next = get_parent(); PopupMenu *pop = next->cast_to<PopupMenu>(); while (pop) { pop->hide(); next = next->get_parent(); pop = next->cast_to<PopupMenu>(); } hide(); }
void SceneTreeEditor::_node_removed(Node *p_node) { if (p_node->is_connected("script_changed",this,"_node_script_changed")) p_node->disconnect("script_changed",this,"_node_script_changed"); if (p_node->is_type("Spatial") || p_node->is_type("CanvasItem")) { if (p_node->is_connected("visibility_changed",this,"_node_visibility_changed")) p_node->disconnect("visibility_changed",this,"_node_visibility_changed"); } if (p_node==selected) { selected=NULL; emit_signal("node_selected"); } }
void ScriptCreateDialog::_create_new() { if (class_name->is_editable() && !_validate(class_name->get_text())) { alert->set_text(TTR("Class name is invalid!")); alert->popup_centered_minsize(); return; } if (!_validate(parent_name->get_text())) { alert->set_text(TTR("Parent class name is invalid!")); alert->popup_centered_minsize(); return; } String cname; if (class_name->is_editable()) cname=class_name->get_text(); Ref<Script> scr = ScriptServer::get_language( language_menu->get_selected() )->get_template(cname,parent_name->get_text()); String selected_language = language_menu->get_item_text(language_menu->get_selected()); editor_settings->set_last_selected_language(selected_language); if (cname!="") scr->set_name(cname); if (!internal->is_pressed()) { String lpath = Globals::get_singleton()->localize_path(file_path->get_text()); scr->set_path(lpath); if (!path_valid) { alert->set_text(TTR("Invalid path!")); alert->popup_centered_minsize(); return; } Error err = ResourceSaver::save(lpath,scr,ResourceSaver::FLAG_CHANGE_PATH); if (err!=OK) { alert->set_text(TTR("Could not create script in filesystem.")); alert->popup_centered_minsize(); return; } } hide(); emit_signal("script_created",scr); }
void ScriptCreateDialog::_create_new() { String cname_param; if (has_named_classes) { cname_param = class_name->get_text(); } else { cname_param = ProjectSettings::get_singleton()->localize_path(file_path->get_text()).get_file().get_basename(); } Ref<Script> scr; if (script_template != "") { scr = ResourceLoader::load(script_template); if (scr.is_null()) { alert->get_ok()->set_text(TTR("OK")); alert->set_text(vformat(TTR("Error loading template '%s'"), script_template)); alert->popup_centered(); return; } scr = scr->duplicate(); ScriptServer::get_language(language_menu->get_selected())->make_template(cname_param, parent_name->get_text(), scr); } else { scr = ScriptServer::get_language(language_menu->get_selected())->get_template(cname_param, parent_name->get_text()); } if (has_named_classes) { String cname = class_name->get_text(); if (cname.length()) scr->set_name(cname); } if (!is_built_in) { String lpath = ProjectSettings::get_singleton()->localize_path(file_path->get_text()); scr->set_path(lpath); Error err = ResourceSaver::save(lpath, scr, ResourceSaver::FLAG_CHANGE_PATH); if (err != OK) { alert->set_text(TTR("Error - Could not create script in filesystem.")); alert->popup_centered(); return; } } hide(); emit_signal("script_created", scr); }
void EditorRunNative::_run_native(int p_idx,const String& p_platform) { Ref<EditorExportPlatform> eep = EditorImportExport::get_singleton()->get_export_platform(p_platform); ERR_FAIL_COND(eep.is_null()); emit_signal("native_run"); int flags=0; if (deploy_debug_remote) flags|=EditorExportPlatform::EXPORT_REMOTE_DEBUG; if (deploy_dumb) flags|=EditorExportPlatform::EXPORT_DUMB_CLIENT; if (debug_collisions) flags|=EditorExportPlatform::EXPORT_VIEW_COLLISONS; if (debug_navigation) flags|=EditorExportPlatform::EXPORT_VIEW_NAVIGATION; eep->run(p_idx,flags); }
void Spatial::_propagate_visibility_changed() { notification(NOTIFICATION_VISIBILITY_CHANGED); emit_signal(SceneStringNames::get_singleton()->visibility_changed); _change_notify("visibility/visible"); #ifdef TOOLS_ENABLED if (data.gizmo.is_valid()) _update_gizmo(); #endif for (List<Spatial*>::Element*E=data.children.front();E;E=E->next()) { Spatial *c=E->get(); if (!c || !c->data.visible) continue; c->_propagate_visibility_changed(); } }
void ARVRServer::remove_tracker(ARVRPositionalTracker *p_tracker) { ERR_FAIL_NULL(p_tracker); int idx = -1; for (int i = 0; i < trackers.size(); i++) { if (trackers[i] == p_tracker) { idx = i; break; }; }; ERR_FAIL_COND(idx == -1); emit_signal("tracker_removed", p_tracker->get_name(), p_tracker->get_type(), p_tracker->get_tracker_id()); trackers.remove(idx); };
void Sprite::set_texture(const Ref<Texture> &p_texture) { if (p_texture == texture) return; if (texture.is_valid()) texture->remove_change_receptor(this); texture = p_texture; if (texture.is_valid()) texture->add_change_receptor(this); update(); emit_signal("texture_changed"); item_rect_changed(); _change_notify("texture"); }
void SceneTreeEditor::_node_removed(Node *p_node) { if (EditorNode::get_singleton()->is_exiting()) return; //speed up exit if (p_node->is_connected("script_changed", this, "_node_script_changed")) p_node->disconnect("script_changed", this, "_node_script_changed"); if (p_node->is_class("Spatial") || p_node->is_class("CanvasItem")) { if (p_node->is_connected("visibility_changed", this, "_node_visibility_changed")) p_node->disconnect("visibility_changed", this, "_node_visibility_changed"); } if (p_node == selected) { selected = NULL; emit_signal("node_selected"); } }