Skip to content

Commit a6b094c

Browse files
authoredAug 29, 2019
Merge pull request #31748 from Calinou/add-project-description
Add a project description setting
2 parents 65d5003 + 5bd01bf commit a6b094c

File tree

3 files changed

+11
-1
lines changed

3 files changed

+11
-1
lines changed
 

‎core/project_settings.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -1000,6 +1000,8 @@ ProjectSettings::ProjectSettings() {
10001000
Ref<InputEventJoypadButton> joyb;
10011001

10021002
GLOBAL_DEF("application/config/name", "");
1003+
GLOBAL_DEF("application/config/description", "");
1004+
custom_prop_info["application/config/description"] = PropertyInfo(Variant::STRING, "application/config/description", PROPERTY_HINT_MULTILINE_TEXT);
10031005
GLOBAL_DEF("application/run/main_scene", "");
10041006
custom_prop_info["application/run/main_scene"] = PropertyInfo(Variant::STRING, "application/run/main_scene", PROPERTY_HINT_FILE, "*.tscn,*.scn,*.res");
10051007
GLOBAL_DEF("application/run/disable_stdout", false);

‎doc/classes/ProjectSettings.xml

+3
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,9 @@
180180
This user directory is used for storing persistent data ([code]user://[/code] filesystem). If left empty, [code]user://[/code] resolves to a project-specific folder in Godot's own configuration folder (see [method OS.get_user_data_dir]). If a custom directory name is defined, this name will be used instead and appended to the system-specific user data directory (same parent folder as the Godot configuration folder documented in [method OS.get_user_data_dir]).
181181
The [member application/config/use_custom_user_dir] setting must be enabled for this to take effect.
182182
</member>
183+
<member name="application/config/description" type="String" setter="" getter="" default="&quot;&quot;">
184+
The project's description, displayed as a tooltip in the Project Manager when hovering the project.
185+
</member>
183186
<member name="application/config/icon" type="String" setter="" getter="" default="&quot;&quot;">
184187
Icon used for the project, set when project loads. Exporters will also use this icon when possible.
185188
</member>

‎editor/project_manager.cpp

+6-1
Original file line numberDiff line numberDiff line change
@@ -955,6 +955,7 @@ class ProjectList : public ScrollContainer {
955955
struct Item {
956956
String project_key;
957957
String project_name;
958+
String description;
958959
String path;
959960
String icon;
960961
String main_scene;
@@ -970,6 +971,7 @@ class ProjectList : public ScrollContainer {
970971

971972
Item(const String &p_project,
972973
const String &p_name,
974+
const String &p_description,
973975
const String &p_path,
974976
const String &p_icon,
975977
const String &p_main_scene,
@@ -981,6 +983,7 @@ class ProjectList : public ScrollContainer {
981983

982984
project_key = p_project;
983985
project_name = p_name;
986+
description = p_description;
984987
path = p_path;
985988
icon = p_icon;
986989
main_scene = p_main_scene;
@@ -1149,6 +1152,7 @@ void ProjectList::load_project_data(const String &p_property_key, Item &p_item,
11491152
grayed = true;
11501153
}
11511154

1155+
String description = cf->get_value("application", "config/description", "");
11521156
String icon = cf->get_value("application", "config/icon", "");
11531157
String main_scene = cf->get_value("application", "run/main_scene", "");
11541158

@@ -1170,7 +1174,7 @@ void ProjectList::load_project_data(const String &p_property_key, Item &p_item,
11701174

11711175
String project_key = p_property_key.get_slice("/", 1);
11721176

1173-
p_item = Item(project_key, project_name, path, icon, main_scene, last_modified, p_favorite, grayed, missing, config_version);
1177+
p_item = Item(project_key, project_name, description, path, icon, main_scene, last_modified, p_favorite, grayed, missing, config_version);
11741178
}
11751179

11761180
void ProjectList::load_projects() {
@@ -1249,6 +1253,7 @@ void ProjectList::create_project_item_control(int p_index) {
12491253
hb->connect("draw", this, "_panel_draw", varray(hb));
12501254
hb->connect("gui_input", this, "_panel_input", varray(hb));
12511255
hb->add_constant_override("separation", 10 * EDSCALE);
1256+
hb->set_tooltip(item.description);
12521257

12531258
VBoxContainer *favorite_box = memnew(VBoxContainer);
12541259
favorite_box->set_name("FavoriteBox");

0 commit comments

Comments
 (0)
Please sign in to comment.