godot/editor/project_manager/project_list.cpp

/**************************************************************************/
/*  project_list.cpp                                                      */
/**************************************************************************/
/*                         This file is part of:                          */
/*                             GODOT ENGINE                               */
/*                        https://godotengine.org                         */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur.                  */
/*                                                                        */
/* Permission is hereby granted, free of charge, to any person obtaining  */
/* a copy of this software and associated documentation files (the        */
/* "Software"), to deal in the Software without restriction, including    */
/* without limitation the rights to use, copy, modify, merge, publish,    */
/* distribute, sublicense, and/or sell copies of the Software, and to     */
/* permit persons to whom the Software is furnished to do so, subject to  */
/* the following conditions:                                              */
/*                                                                        */
/* The above copyright notice and this permission notice shall be         */
/* included in all copies or substantial portions of the Software.        */
/*                                                                        */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,        */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF     */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY   */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,   */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE      */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                 */
/**************************************************************************/

#include "project_list.h"

#include "core/config/project_settings.h"
#include "core/io/dir_access.h"
#include "core/os/time.h"
#include "core/version.h"
#include "editor/editor_paths.h"
#include "editor/editor_settings.h"
#include "editor/editor_string_names.h"
#include "editor/project_manager.h"
#include "editor/project_manager/project_tag.h"
#include "editor/themes/editor_scale.h"
#include "scene/gui/button.h"
#include "scene/gui/label.h"
#include "scene/gui/line_edit.h"
#include "scene/gui/texture_button.h"
#include "scene/gui/texture_rect.h"
#include "scene/resources/image_texture.h"

void ProjectListItemControl::_notification(int p_what) {}

void ProjectListItemControl::_favorite_button_pressed() {}

void ProjectListItemControl::_explore_button_pressed() {}

void ProjectListItemControl::set_project_title(const String &p_title) {}

void ProjectListItemControl::set_project_path(const String &p_path) {}

void ProjectListItemControl::set_tags(const PackedStringArray &p_tags, ProjectList *p_parent_list) {}

void ProjectListItemControl::set_project_icon(const Ref<Texture2D> &p_icon) {}

void ProjectListItemControl::set_last_edited_info(const String &p_info) {}

void ProjectListItemControl::set_project_version(const String &p_info) {}

void ProjectListItemControl::set_unsupported_features(PackedStringArray p_features) {}

bool ProjectListItemControl::should_load_project_icon() const {}

void ProjectListItemControl::set_selected(bool p_selected) {}

void ProjectListItemControl::set_is_favorite(bool p_favorite) {}

void ProjectListItemControl::set_is_missing(bool p_missing) {}

void ProjectListItemControl::set_is_grayed(bool p_grayed) {}

void ProjectListItemControl::_bind_methods() {}

ProjectListItemControl::ProjectListItemControl() {}

struct ProjectListComparator {};

const char *ProjectList::SIGNAL_LIST_CHANGED =;
const char *ProjectList::SIGNAL_SELECTION_CHANGED =;
const char *ProjectList::SIGNAL_PROJECT_ASK_OPEN =;

// Helpers.

bool ProjectList::project_feature_looks_like_version(const String &p_feature) {}

// Notifications.

void ProjectList::_notification(int p_what) {}

// Initialization & loading.

void ProjectList::_migrate_config() {}

void ProjectList::save_config() {}

// Load project data from p_property_key and return it in a ProjectList::Item.
// p_favorite is passed directly into the Item.
ProjectList::Item ProjectList::load_project_data(const String &p_path, bool p_favorite) {}

void ProjectList::_update_icons_async() {}

void ProjectList::_load_project_icon(int p_index) {}

// Project list updates.

void ProjectList::update_project_list() {}

void ProjectList::sort_projects() {}

int ProjectList::get_project_count() const {}

void ProjectList::find_projects(const String &p_path) {}

void ProjectList::find_projects_multiple(const PackedStringArray &p_paths) {}

void ProjectList::load_project_list() {}

void ProjectList::_scan_folder_recursive(const String &p_path, List<String> *r_projects) {}

// Project list items.

void ProjectList::add_project(const String &dir_path, bool favorite) {}

void ProjectList::set_project_version(const String &p_project_path, int p_version) {}

int ProjectList::refresh_project(const String &dir_path) {}

void ProjectList::ensure_project_visible(int p_index) {}

void ProjectList::_create_project_item_control(int p_index) {}

void ProjectList::_toggle_project(int p_index) {}

void ProjectList::_remove_project(int p_index, bool p_update_config) {}

void ProjectList::_list_item_input(const Ref<InputEvent> &p_ev, Node *p_hb) {}

void ProjectList::_on_favorite_pressed(Node *p_hb) {}

void ProjectList::_on_explore_pressed(const String &p_path) {}

// Project list selection.

void ProjectList::_clear_project_selection() {}

void ProjectList::_select_project_nocheck(int p_index) {}

void ProjectList::_deselect_project_nocheck(int p_index) {}

inline void _sort_project_range(int &a, int &b) {}

void ProjectList::_select_project_range(int p_begin, int p_end) {}

void ProjectList::select_project(int p_index) {}

void ProjectList::select_first_visible_project() {}

Vector<ProjectList::Item> ProjectList::get_selected_projects() const {}

const HashSet<String> &ProjectList::get_selected_project_keys() const {}

int ProjectList::get_single_selected_index() const {}

void ProjectList::erase_selected_projects(bool p_delete_project_contents) {}

// Missing projects.

bool ProjectList::is_any_project_missing() const {}

void ProjectList::erase_missing_projects() {}

// Project list sorting and filtering.

void ProjectList::set_search_term(String p_search_term) {}

void ProjectList::add_search_tag(const String &p_tag) {}

void ProjectList::set_order_option(int p_option) {}

// Global menu integration.

void ProjectList::update_dock_menu() {}

void ProjectList::_global_menu_new_window(const Variant &p_tag) {}

void ProjectList::_global_menu_open_project(const Variant &p_tag) {}

// Object methods.

void ProjectList::_bind_methods() {}

ProjectList::ProjectList() {}