Пример #1
0
void EditorQuickOpen::_update_search() {

	search_options->clear();
	TreeItem *root = search_options->create_item();
	EditorFileSystemDirectory *efsd = EditorFileSystem::get_singleton()->get_filesystem();
	Vector< Pair< String, Ref<Texture> > > list;

	_parse_fs(efsd, list);

	for (int i = 0; i < list.size(); i++) {
		TreeItem *ti = search_options->create_item(root);
		ti->set_text(0, list[i].first);
		ti->set_icon(0, list[i].second);
	}

	if (root->get_children()) {
		TreeItem *ti = root->get_children();

		ti->select(0);
		ti->set_as_cursor(0);
	}

	get_ok()->set_disabled(root->get_children()==NULL);

}
Пример #2
0
	NewProjectDialog() {


		VBoxContainer *vb = memnew( VBoxContainer );
		add_child(vb);
		set_child_rect(vb);

		Label* l = memnew(Label);
		l->set_text("Project Path:");
		vb->add_child(l);
		pp=l;

		project_path = memnew( LineEdit );
		MarginContainer *mc = memnew( MarginContainer );
		vb->add_child(mc);
		HBoxContainer *pphb = memnew( HBoxContainer );
		mc->add_child(pphb);
		pphb->add_child(project_path);
		project_path->set_h_size_flags(SIZE_EXPAND_FILL);

		Button* browse = memnew( Button );
		pphb->add_child(browse);
		browse->set_text("Browse");
		browse->connect("pressed", this,"_browse_path");

		l = memnew(Label);
		l->set_text("Project Name:");
		l->set_pos(Point2(5,50));
		vb->add_child(l);
		pn=l;

		project_name = memnew( LineEdit );
		mc = memnew( MarginContainer );
		vb->add_child(mc);
		mc->add_child(project_name);
		project_name->set_text("New Game Project");


		l = memnew(Label);
		l->set_text("That's a BINGO!");
		vb->add_child(l);
		error=l;
		l->add_color_override("font_color",Color(1,0.4,0.3,0.8));
		l->set_align(Label::ALIGN_CENTER);

		get_ok()->set_text("Create");
		DirAccess *d = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
		project_path->set_text(d->get_current_dir());
		memdelete(d);

		fdialog = memnew( FileDialog );
		add_child(fdialog);
		fdialog->set_access(FileDialog::ACCESS_FILESYSTEM);
		project_name->connect("text_changed", this,"_text_changed");
		project_path->connect("text_changed", this,"_path_text_changed");
		fdialog->connect("dir_selected", this,"_path_selected");
		fdialog->connect("file_selected", this,"_file_selected");
		set_hide_on_ok(false);
		import_mode=false;
	}
Пример #3
0
ReparentDialog::ReparentDialog() {

	set_title("Reparent Node");

	VBoxContainer *vbc = memnew( VBoxContainer );
	add_child(vbc);
	set_child_rect(vbc);

	tree = memnew( SceneTreeEditor(false) );
	tree->set_show_enabled_subscene(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->set_pos( Point2( 15,8) );
	//label->set_text("Reparent Location (Select new Parent):");

	node_only = memnew( CheckButton );
	add_child(node_only);
	node_only->hide();

	//vbc->add_margin_child("Options:",node_only);;

	//cancel->connect("pressed", this,"_cancel");

	get_ok()->set_text("Reparent");
}
Пример #4
0
OrphanResourcesDialog::OrphanResourcesDialog() {

	VBoxContainer *vbc = memnew(VBoxContainer);
	add_child(vbc);

	files = memnew(Tree);
	files->set_columns(2);
	files->set_column_titles_visible(true);
	files->set_column_min_width(1, 100);
	files->set_column_expand(0, true);
	files->set_column_expand(1, false);
	files->set_column_title(0, TTR("Resource"));
	files->set_column_title(1, TTR("Owns"));
	files->set_hide_root(true);
	vbc->add_margin_child(TTR("Resources Without Explicit Ownership:"), files, true);
	set_title(TTR("Orphan Resource Explorer"));
	delete_confirm = memnew(ConfirmationDialog);
	delete_confirm->set_text(TTR("Delete selected files?"));
	get_ok()->set_text(TTR("Delete"));
	add_child(delete_confirm);
	dep_edit = memnew(DependencyEditor);
	add_child(dep_edit);
	files->connect("button_pressed", this, "_button_pressed");
	delete_confirm->connect("confirmed", this, "_delete_confirm");
	set_hide_on_ok(false);
}
Пример #5
0
ReparentDialog::ReparentDialog() {

	set_title(TTR("Reparent Node"));

	VBoxContainer *vbc = memnew(VBoxContainer);
	add_child(vbc);
	//set_child_rect(vbc);

	tree = memnew(SceneTreeEditor(false));
	tree->set_show_enabled_subscene(true);

	vbc->add_margin_child(TTR("Reparent Location (Select new Parent):"), tree, true);

	tree->get_scene_tree()->connect("item_activated", this, "_reparent");

	//Label *label = memnew( Label );
	//label->set_position( Point2( 15,8) );
	//label->set_text("Reparent Location (Select new Parent):");

	keep_transform = memnew(CheckBox);
	keep_transform->set_text(TTR("Keep Global Transform"));
	keep_transform->set_pressed(true);
	vbc->add_child(keep_transform);

	//vbc->add_margin_child("Options:",node_only);

	//cancel->connect("pressed", this,"_cancel");

	get_ok()->set_text(TTR("Reparent"));
}
Пример #6
0
void EditorFileDialog::set_mode(Mode p_mode) {

	mode=p_mode;
	switch(mode) {

		case MODE_OPEN_FILE: get_ok()->set_text("Open"); set_title("Open a File"); makedir->hide(); break;
		case MODE_OPEN_FILES: get_ok()->set_text("Open"); set_title("Open File(s)"); makedir->hide(); break;
		case MODE_SAVE_FILE: get_ok()->set_text("Save"); set_title("Save a File"); makedir->show(); break;
		case MODE_OPEN_DIR: get_ok()->set_text("Open"); set_title("Open a Directory"); makedir->show(); break;
	}

	if (mode==MODE_OPEN_FILES) {
		item_list->set_select_mode(ItemList::SELECT_MULTI);
	} else {
		item_list->set_select_mode(ItemList::SELECT_SINGLE);
	}
}
Пример #7
0
	void _path_selected(const String& p_path) {

		String p = p_path;
		String sp = p.simplify_path();
		project_path->set_text(sp);
		_path_text_changed(p);
		get_ok()->call_deferred("grab_focus");
	}
Пример #8
0
/*
Called each time a target node is selected within the target node tree.
*/
void ConnectDialog::_tree_node_selected() {

	Node *current = tree->get_selected();

	if (!current)
		return;

	dst_path = source->get_path_to(current);
	get_ok()->set_disabled(false);
}
Пример #9
0
void FileDialog::set_mode(Mode p_mode) {

	mode = p_mode;
	switch (mode) {

		case MODE_OPEN_FILE:
			get_ok()->set_text(RTR("Open"));
			if (mode_overrides_title)
				set_title(RTR("Open a File"));
			makedir->hide();
			break;
		case MODE_OPEN_FILES:
			get_ok()->set_text(RTR("Open"));
			if (mode_overrides_title)
				set_title(RTR("Open File(s)"));
			makedir->hide();
			break;
		case MODE_OPEN_DIR:
			get_ok()->set_text(RTR("Select Current Folder"));
			if (mode_overrides_title)
				set_title(RTR("Open a Directory"));
			makedir->show();
			break;
		case MODE_OPEN_ANY:
			get_ok()->set_text(RTR("Open"));
			if (mode_overrides_title)
				set_title(RTR("Open a File or Directory"));
			makedir->show();
			break;
		case MODE_SAVE_FILE:
			get_ok()->set_text(RTR("Save"));
			if (mode_overrides_title)
				set_title(RTR("Save a File"));
			makedir->show();
			break;
	}

	if (mode == MODE_OPEN_FILES) {
		tree->set_select_mode(Tree::SELECT_MULTI);
	} else {
		tree->set_select_mode(Tree::SELECT_SINGLE);
	}
}
Пример #10
0
void EditorQuickOpen::_update_search() {


    search_options->clear();
    TreeItem *root = search_options->create_item();
    _parse_fs(EditorFileSystem::get_singleton()->get_filesystem());

    get_ok()->set_disabled(root->get_children()==NULL);

}
Пример #11
0
EditorQuickOpen::EditorQuickOpen() {


    VBoxContainer *vbc = memnew( VBoxContainer );
    add_child(vbc);
    set_child_rect(vbc);
    search_box = memnew( LineEdit );
    vbc->add_margin_child("Search:",search_box);
    search_box->connect("text_changed",this,"_text_changed");
    search_box->connect("input_event",this,"_sbox_input");
    search_options = memnew( Tree );
    vbc->add_margin_child("Matches:",search_options,true);
    get_ok()->set_text("Open");
    get_ok()->set_disabled(true);
    register_text_enter(search_box);
    set_hide_on_ok(false);
    search_options->connect("item_activated",this,"_confirmed");
    search_options->set_hide_root(true);
}
Пример #12
0
	String _test_path() {

		error->set_text("");
		get_ok()->set_disabled(true);
		DirAccess *d = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
		String valid_path;
		if (d->change_dir(project_path->get_text())==OK){
			valid_path=project_path->get_text();
		} else if (d->change_dir(project_path->get_text().strip_edges())==OK) {
			valid_path=project_path->get_text().strip_edges();
		}

		if (valid_path == "") {
			error->set_text(TTR("Invalid project path, the path must exist!"));
			memdelete(d);
			return "";
		}

		if (mode!=MODE_IMPORT) {

			if (d->file_exists("godot.cfg")) {

				error->set_text(TTR("Invalid project path, godot.cfg must not exist."));
				memdelete(d);
				return "";
			}

		} else {

			if (valid_path != "" && !d->file_exists("godot.cfg")) {

				error->set_text(TTR("Invalid project path, godot.cfg must exist."));
				memdelete(d);
				return "";
			}
		}

		memdelete(d);
		get_ok()->set_disabled(false);
		return valid_path;

	}
Пример #13
0
	void show_dialog() {


		project_path->clear();
		project_name->clear();

		if (mode==MODE_IMPORT) {
			set_title(TTR("Import Existing Project"));
			get_ok()->set_text(TTR("Import"));
			pp->set_text(TTR("Project Path (Must Exist):"));
			pn->set_text(TTR("Project Name:"));
			pn->hide();
			project_name->hide();

			popup_centered(Size2(500,125)*EDSCALE);

		} else if (mode==MODE_NEW){

			set_title(TTR("Create New Project"));
			get_ok()->set_text(TTR("Create"));
			pp->set_text(TTR("Project Path:"));
			pn->set_text(TTR("Project Name:"));
			pn->show();
			project_name->show();

			popup_centered(Size2(500,145)*EDSCALE);
		} else if (mode==MODE_INSTALL){

			set_title(TTR("Install Project:")+" "+zip_title);
			get_ok()->set_text(TTR("Install"));
			pp->set_text(TTR("Project Path:"));
			pn->hide();
			project_name->hide();

			popup_centered(Size2(500,125)*EDSCALE);

		}


		_test_path();
	}
Пример #14
0
void FileDialog::deselect_items() {

	// Clear currently selected items in file manager.
	tree->deselect_all();

	// And change get_ok title.
	if (!tree->is_anything_selected()) {
		get_ok()->set_disabled(_is_open_should_be_disabled());

		switch (mode) {

			case MODE_OPEN_FILE:
			case MODE_OPEN_FILES:
				get_ok()->set_text(RTR("Open"));
				break;
			case MODE_OPEN_DIR:
				get_ok()->set_text(RTR("Select Current Folder"));
				break;
		}
	}
}
Пример #15
0
CreateDialog::CreateDialog() {


    VBoxContainer *vbc = memnew( VBoxContainer );
    add_child(vbc);
    set_child_rect(vbc);
    search_box = memnew( LineEdit );
    vbc->add_margin_child(TTR("Search:"),search_box);
    search_box->connect("text_changed",this,"_text_changed");
    search_box->connect("input_event",this,"_sbox_input");
    search_options = memnew( Tree );
    vbc->add_margin_child(TTR("Matches:"),search_options,true);
    get_ok()->set_text(TTR("Create"));
    get_ok()->set_disabled(true);
    register_text_enter(search_box);
    set_hide_on_ok(false);
    search_options->connect("item_activated",this,"_confirmed");
//	search_options->set_hide_root(true);
    base_type="Object";

}
EditorAssetLibraryItemDescription::EditorAssetLibraryItemDescription() {

	VBoxContainer *vbox = memnew( VBoxContainer );
	add_child(vbox);
	set_child_rect(vbox);


	HBoxContainer *hbox = memnew( HBoxContainer);
	vbox->add_child(hbox);
	vbox->add_constant_override("separation",15);
	VBoxContainer *desc_vbox = memnew( VBoxContainer );
	hbox->add_child(desc_vbox);
	hbox->add_constant_override("separation",15);

	item = memnew( EditorAssetLibraryItem );

	desc_vbox->add_child(item);
	desc_vbox->set_custom_minimum_size(Size2(300,0));


	PanelContainer * desc_bg = memnew( PanelContainer );
	desc_vbox->add_child(desc_bg);
	desc_bg->set_v_size_flags(SIZE_EXPAND_FILL);

	description = memnew( RichTextLabel );
	description->connect("meta_clicked",this,"_link_click");
	//desc_vbox->add_child(description);
	desc_bg->add_child(description);
	desc_bg->add_style_override("panel",get_stylebox("normal","TextEdit"));

	preview = memnew( TextureFrame );
	preview->set_custom_minimum_size(Size2(640,345));
	hbox->add_child(preview);

	PanelContainer * previews_bg = memnew( PanelContainer );
	vbox->add_child(previews_bg);
	previews_bg->set_custom_minimum_size(Size2(0,85));
	previews_bg->add_style_override("panel",get_stylebox("normal","TextEdit"));

	previews = memnew( ScrollContainer );
	previews_bg->add_child(previews);
	previews->set_enable_v_scroll(false);
	previews->set_enable_h_scroll(true);
	preview_hb = memnew( HBoxContainer );
	preview_hb->set_v_size_flags(SIZE_EXPAND_FILL);

	previews->add_child(preview_hb);
	get_ok()->set_text("Install");
	get_cancel()->set_text("Close");



}
void EditorReImportDialog::popup_reimport() {

	if (EditorFileSystem::get_singleton()->is_scanning()) {
		error->set_text(TTR("Please wait for scan to complete"));
		error->popup_centered_minsize();
		return;
	}

	tree->clear();
	items.clear();
	List<String> ril;
	EditorFileSystem::get_singleton()->get_changed_sources(&ril);

	scene_must_save=false;


	TreeItem *root = tree->create_item();
	for(List<String>::Element *E=ril.front();E;E=E->next()) {

		TreeItem *item = tree->create_item(root);
		item->set_cell_mode(0,TreeItem::CELL_MODE_CHECK);
		item->set_metadata(0,E->get());
		item->set_text(0,E->get().replace_first("res://",""));
		item->set_tooltip(0,E->get());
		item->set_checked(0,true);
		item->set_editable(0,true);
		items.push_back(item);

		String name = E->get();

		if (EditorFileSystem::get_singleton()->get_file_type(name)=="PackedScene" && EditorNode::get_singleton()->is_scene_in_use(name)) {

			scene_must_save=true;
		}
	}


	if (scene_must_save) {
		if (EditorNode::get_singleton()->get_edited_scene() && EditorNode::get_singleton()->get_edited_scene()->get_filename()=="") {

			error->set_text(TTR("Current scene must be saved to re-import."));
			error->popup_centered_minsize();
			get_ok()->set_text(TTR("Re-Import"));
			get_ok()->set_disabled(true);
			return;

		}
		get_ok()->set_disabled(false);
		get_ok()->set_text(TTR("Save & Re-Import"));
	} else {
		get_ok()->set_text(TTR("Re-Import"));
		get_ok()->set_disabled(false);
	}

	popup_centered(Size2(600,400));


}
Пример #18
0
DependencyRemoveDialog::DependencyRemoveDialog() {

	VBoxContainer *vb = memnew(VBoxContainer);
	add_child(vb);

	text = memnew(Label);
	vb->add_child(text);

	owners = memnew(Tree);
	owners->set_hide_root(true);
	vb->add_child(owners);
	owners->set_v_size_flags(SIZE_EXPAND_FILL);
	get_ok()->set_text(TTR("Remove"));
}
Пример #19
0
	void _file_selected(const String& p_path) {

		String p = p_path;
		if (mode==MODE_IMPORT) {
			if (p.ends_with("engine.cfg")) {

				p=p.get_base_dir();
			}
		}
		String sp = p.simplify_path();
		project_path->set_text(sp);
		_path_text_changed(p);
		get_ok()->call_deferred("grab_focus");
	}
Пример #20
0
void ConnectionsDialog::ok_pressed() {
	

	TreeItem *item = tree->get_selected();
	if (!item) {
		//no idea how this happened, but disable
		get_ok()->set_disabled(true);
		return;
	}
	if (item->get_parent()==tree->get_root()) {
		//a signal - connect
		String signal=item->get_metadata(0).operator Dictionary()["name"];
		String signalname=signal;
		String midname=node->get_name();
		for(int i=0;i<midname.length();i++) {
			CharType c = midname[i];
			if  ((c>='a' && c<='z') || (c>='A' && c<='Z') || (c>='0' && c<='9') || c=='_') {
				//all good
			} else if (c==' ') {
				c='_';
			} else {
				midname.remove(i);
				i--;
				continue;
			}

			midname[i]=c;
		}

		connect_dialog->edit(node);
		connect_dialog->popup_centered_ratio();
		connect_dialog->set_dst_method("_on_"+midname+"_"+signal);
		connect_dialog->set_dst_node(node->get_owner()?node->get_owner():node);

	} else {
		//a slot- disconnect
		Connection c=item->get_metadata(0);
		ERR_FAIL_COND(c.source!=node); //shouldn't happen but...bugcheck

		undo_redo->create_action("Create Subscription");
		undo_redo->add_do_method(node,"disconnect",c.signal,c.target,c.method);
		undo_redo->add_undo_method(node,"connect",c.signal,c.target,c.method,Vector<Variant>(),c.flags);
		undo_redo->add_do_method(this,"update_tree");
		undo_redo->add_undo_method(this,"update_tree");
		undo_redo->commit_action();

		c.source->disconnect(c.signal,c.target,c.method);
		update_tree();
	}
}
Пример #21
0
void FindReplaceDialog::popup_replace() {


	set_title(TTR("Replace"));
	bool do_selection=(text_edit->is_selection_active() && text_edit->get_selection_from_line() < text_edit->get_selection_to_line());

	set_replace_selection_only(do_selection);

	if (!do_selection && text_edit->is_selection_active()) {
		search_text->set_text(text_edit->get_selection_text());
	}

	replace_mc->show();
	replace_label->show();
	replace_vb->show();
	popup_centered(Point2(300,300));
	if (search_text->get_text()!="" && replace_text->get_text()=="") {
		search_text->select(0,0);
		replace_text->grab_focus();
	} else {
		search_text->grab_focus();
		search_text->select_all();
	}
	error_label->set_text("");

	if (prompt->is_pressed()) {
		skip->show();
		get_ok()->set_text(TTR("Next"));
		selection_only->set_disabled(true);

	} else {
		skip->hide();
		get_ok()->set_text(TTR("Replace"));
		selection_only->set_disabled(false);
	}

}
Пример #22
0
EditorHelpIndex::EditorHelpIndex() {


	VBoxContainer *vbc = memnew( VBoxContainer );
	add_child(vbc);
	set_child_rect(vbc);

	class_list = memnew( Tree );
	vbc->add_margin_child("Class List: ",class_list,true);
	class_list->set_v_size_flags(SIZE_EXPAND_FILL);


	class_list->connect("item_activated",this,"_tree_item_selected");


	get_ok()->set_text("Open");
}
Пример #23
0
void CreateDialog::_item_selected() {

	TreeItem *item = search_options->get_selected();
	if (!item)
		return;

	String name = item->get_text(0);

	favorite->set_disabled(false);
	favorite->set_pressed(favorite_list.find(name) != -1);

	if (!EditorHelp::get_doc_data()->class_list.has(name))
		return;

	help_bit->set_text(EditorHelp::get_doc_data()->class_list[name].brief_description);

	get_ok()->set_disabled(false);
}
Пример #24
0
void FindReplaceDialog::popup_search() {

	set_title(TTR("Search"));
	replace_mc->hide();
	replace_label->hide();
	replace_vb->hide();
	skip->hide();
	popup_centered(Point2(300, 190));
	get_ok()->set_text(TTR("Find"));
	search_text->grab_focus();
	if (text_edit->is_selection_active() && (text_edit->get_selection_from_line() == text_edit->get_selection_to_line())) {

		search_text->set_text(text_edit->get_selection_text());
	}
	search_text->select_all();

	error_label->set_text("");
}
Пример #25
0
EditorAssetInstaller::EditorAssetInstaller() {

	VBoxContainer *vb = memnew(VBoxContainer);
	add_child(vb);

	tree = memnew(Tree);
	vb->add_margin_child("Package Contents:", tree, true);
	tree->connect("item_edited", this, "_item_edited");

	error = memnew(AcceptDialog);
	add_child(error);
	get_ok()->set_text(TTR("Install"));
	set_title(TTR("Package Installer"));

	updating = false;

	set_hide_on_ok(true);
}
Пример #26
0
EditorAssetLibraryItemDescription::EditorAssetLibraryItemDescription() {

	VBoxContainer *vbox = memnew(VBoxContainer);
	add_child(vbox);

	HBoxContainer *hbox = memnew(HBoxContainer);
	vbox->add_child(hbox);
	vbox->add_constant_override("separation", 15 * EDSCALE);
	VBoxContainer *desc_vbox = memnew(VBoxContainer);
	hbox->add_child(desc_vbox);
	hbox->add_constant_override("separation", 15 * EDSCALE);

	item = memnew(EditorAssetLibraryItem);

	desc_vbox->add_child(item);
	desc_vbox->set_custom_minimum_size(Size2(300 * EDSCALE, 0));

	desc_bg = memnew(PanelContainer);
	desc_vbox->add_child(desc_bg);
	desc_bg->set_v_size_flags(SIZE_EXPAND_FILL);

	description = memnew(RichTextLabel);
	description->connect("meta_clicked", this, "_link_click");
	desc_bg->add_child(description);

	preview = memnew(TextureRect);
	preview->set_custom_minimum_size(Size2(640 * EDSCALE, 345 * EDSCALE));
	hbox->add_child(preview);

	previews_bg = memnew(PanelContainer);
	vbox->add_child(previews_bg);
	previews_bg->set_custom_minimum_size(Size2(0, 101 * EDSCALE));

	previews = memnew(ScrollContainer);
	previews_bg->add_child(previews);
	previews->set_enable_v_scroll(false);
	previews->set_enable_h_scroll(true);
	preview_hb = memnew(HBoxContainer);
	preview_hb->set_v_size_flags(SIZE_EXPAND_FILL);

	previews->add_child(preview_hb);
	get_ok()->set_text(TTR("Download"));
	get_cancel()->set_text(TTR("Close"));
}
Пример #27
0
DependencyErrorDialog::DependencyErrorDialog() {

	VBoxContainer *vb = memnew(VBoxContainer);
	add_child(vb);
	set_child_rect(vb);

	files = memnew(Tree);
	files->set_hide_root(true);
	vb->add_margin_child(TTR("Scene failed to load due to missing dependencies:"), files, true);
	files->set_v_size_flags(SIZE_EXPAND_FILL);
	get_ok()->set_text(TTR("Open Anyway"));

	text = memnew(Label);
	vb->add_child(text);
	text->set_text(TTR("Which action should be taken?"));

	fdep = add_button(TTR("Fix Dependencies"), true, "fixdeps");

	set_title(TTR("Errors loading!"));
}
Пример #28
0
CreateDialog::CreateDialog() {

	VBoxContainer *vbc = memnew(VBoxContainer);
	add_child(vbc);
	set_child_rect(vbc);

	get_ok()->set_text("Create");

	tree = memnew(Tree);
	vbc->add_margin_child("Type:", tree, true);
	//tree->set_hide_root(true);

	filter = memnew(LineEdit);
	vbc->add_margin_child("Filter:", filter);

	base = "Node";
	set_as_toplevel(true);

	tree->connect("item_activated", this, "_create");
	filter->connect("text_changed", this, "_text_changed");
}
Пример #29
0
void ScriptEditorQuickOpen::_update_search() {


	search_options->clear();
	TreeItem *root = search_options->create_item();

	for(int i=0;i<functions.size();i++) {

		String file = functions[i];
		if ((search_box->get_text()=="" || file.findn(search_box->get_text())!=-1)) {

			TreeItem *ti = search_options->create_item(root);
			ti->set_text(0,file);
			if (root->get_children()==ti)
				ti->select(0);

		}
	}

	get_ok()->set_disabled(root->get_children()==NULL);

}
Пример #30
0
EditorHelpIndex::EditorHelpIndex() {

	VBoxContainer *vbc = memnew( VBoxContainer );
	add_child(vbc);
	set_child_rect(vbc);

	search_box = memnew( LineEdit );
	vbc->add_margin_child(TTR("Search:"), search_box);
	search_box->set_h_size_flags(SIZE_EXPAND_FILL);

	register_text_enter(search_box);

	search_box->connect("text_changed", this, "_text_changed");
	search_box->connect("input_event", this, "_sbox_input");

	class_list = memnew( Tree );
	vbc->add_margin_child(TTR("Class List:")+" ", class_list, true);
	class_list->set_v_size_flags(SIZE_EXPAND_FILL);

	class_list->connect("item_activated",this,"_tree_item_selected");

	get_ok()->set_text(TTR("Open"));
}