Improve the editor window title for better usability

- Display the scene name, then the project name, then "Godot Engine".
- Display the "modified" mark before anytihng else.

Both of these changes ensure important, project-specific elements
can always be seen in the task bar which may truncate strings due to
its low per-item width.

- Use "Unnamed Project" if the project has no name (similar to the
  Project Manager).
This commit is contained in:
Hugo Locurcio 2021-08-22 08:59:42 +02:00
parent 16642e2838
commit 27e38b0f26
No known key found for this signature in database
GPG key ID: 39E8F8BE30B0A49C

View file

@ -359,14 +359,16 @@ void EditorNode::_version_control_menu_option(int p_idx) {
}
void EditorNode::_update_title() {
String appname = ProjectSettings::get_singleton()->get("application/config/name");
String title = appname.empty() ? String(VERSION_FULL_NAME) : String(VERSION_NAME + String(" - ") + appname);
String edited = editor_data.get_edited_scene_root() ? editor_data.get_edited_scene_root()->get_filename() : String();
const String appname = ProjectSettings::get_singleton()->get("application/config/name");
String title = (appname.empty() ? "Unnamed Project" : appname) + String(" - ") + VERSION_NAME;
const String edited = editor_data.get_edited_scene_root() ? editor_data.get_edited_scene_root()->get_filename() : String();
if (!edited.empty()) {
title += " - " + String(edited.get_file());
// Display the edited scene name before the program name so that it can be seen in the OS task bar.
title = vformat("%s - %s", edited.get_file(), title);
}
if (unsaved_cache) {
title += " (*)";
// Display the "modified" mark before anything else so that it can always be seen in the OS task bar.
title = vformat("(*) %s", title);
}
OS::get_singleton()->set_window_title(title);