summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/input/input_event.cpp35
-rw-r--r--core/math/delaunay_2d.h127
-rw-r--r--core/object/message_queue.cpp6
-rw-r--r--core/os/keyboard.cpp10
-rw-r--r--doc/classes/OS.xml1
-rw-r--r--drivers/gles3/storage/material_storage.cpp2
-rw-r--r--editor/SCsub2
-rw-r--r--editor/animation_track_editor.cpp8
-rw-r--r--editor/animation_track_editor.h19
-rw-r--r--editor/connections_dialog.cpp9
-rw-r--r--editor/connections_dialog.h20
-rw-r--r--editor/debugger/editor_debugger_tree.cpp2
-rw-r--r--editor/debugger/editor_file_server.cpp (renamed from editor/fileserver/editor_file_server.cpp)0
-rw-r--r--editor/debugger/editor_file_server.h (renamed from editor/fileserver/editor_file_server.h)0
-rw-r--r--editor/debugger/script_editor_debugger.cpp2
-rw-r--r--editor/dependency_editor.cpp2
-rw-r--r--editor/editor_audio_buses.cpp4
-rw-r--r--editor/editor_autoload_settings.cpp4
-rw-r--r--editor/editor_build_profile.cpp2
-rw-r--r--editor/editor_feature_profile.cpp2
-rw-r--r--editor/editor_inspector.cpp26
-rw-r--r--editor/editor_log.cpp2
-rw-r--r--editor/editor_node.cpp6
-rw-r--r--editor/editor_node.h52
-rw-r--r--editor/editor_plugin.cpp1
-rw-r--r--editor/editor_properties.cpp5
-rw-r--r--editor/editor_properties_array_dict.cpp2
-rw-r--r--editor/editor_properties_array_dict.h5
-rw-r--r--editor/editor_resource_picker.cpp2
-rw-r--r--editor/editor_sectioned_inspector.cpp3
-rw-r--r--editor/editor_settings.cpp24
-rw-r--r--editor/editor_themes.cpp41
-rw-r--r--editor/event_listener_line_edit.cpp10
-rw-r--r--editor/export/project_export.cpp3
-rw-r--r--editor/fbx_importer_manager.h2
-rw-r--r--editor/filesystem_dock.cpp5
-rw-r--r--editor/filesystem_dock.h10
-rw-r--r--editor/groups_editor.cpp6
-rw-r--r--editor/groups_editor.h11
-rw-r--r--editor/gui/SCsub (renamed from editor/fileserver/SCsub)0
-rw-r--r--editor/gui/editor_dir_dialog.cpp (renamed from editor/editor_dir_dialog.cpp)0
-rw-r--r--editor/gui/editor_dir_dialog.h (renamed from editor/editor_dir_dialog.h)0
-rw-r--r--editor/gui/editor_file_dialog.cpp (renamed from editor/editor_file_dialog.cpp)2
-rw-r--r--editor/gui/editor_file_dialog.h (renamed from editor/editor_file_dialog.h)0
-rw-r--r--editor/gui/editor_object_selector.cpp (renamed from editor/editor_path.cpp)32
-rw-r--r--editor/gui/editor_object_selector.h (renamed from editor/editor_path.h)14
-rw-r--r--editor/gui/editor_spin_slider.cpp (renamed from editor/editor_spin_slider.cpp)6
-rw-r--r--editor/gui/editor_spin_slider.h (renamed from editor/editor_spin_slider.h)0
-rw-r--r--editor/gui/editor_title_bar.cpp (renamed from editor/editor_title_bar.cpp)2
-rw-r--r--editor/gui/editor_title_bar.h (renamed from editor/editor_title_bar.h)0
-rw-r--r--editor/gui/editor_toaster.cpp (renamed from editor/editor_toaster.cpp)0
-rw-r--r--editor/gui/editor_toaster.h (renamed from editor/editor_toaster.h)0
-rw-r--r--editor/gui/editor_zoom_widget.cpp (renamed from editor/editor_zoom_widget.cpp)0
-rw-r--r--editor/gui/editor_zoom_widget.h (renamed from editor/editor_zoom_widget.h)0
-rw-r--r--editor/gui/scene_tree_editor.cpp (renamed from editor/scene_tree_editor.cpp)2
-rw-r--r--editor/gui/scene_tree_editor.h (renamed from editor/scene_tree_editor.h)0
-rw-r--r--editor/import/dynamic_font_import_settings.cpp2
-rw-r--r--editor/import/scene_import_settings.cpp2
-rw-r--r--editor/inspector_dock.cpp15
-rw-r--r--editor/inspector_dock.h4
-rw-r--r--editor/localization_editor.cpp2
-rw-r--r--editor/plugins/abstract_polygon_2d_editor.cpp2
-rw-r--r--editor/plugins/abstract_polygon_2d_editor.h1
-rw-r--r--editor/plugins/animation_blend_space_1d_editor.cpp2
-rw-r--r--editor/plugins/animation_blend_space_2d_editor.cpp2
-rw-r--r--editor/plugins/animation_blend_tree_editor_plugin.cpp2
-rw-r--r--editor/plugins/animation_library_editor.cpp2
-rw-r--r--editor/plugins/animation_player_editor_plugin.cpp2
-rw-r--r--editor/plugins/animation_state_machine_editor.cpp2
-rw-r--r--editor/plugins/animation_tree_editor_plugin.cpp2
-rw-r--r--editor/plugins/asset_library_editor_plugin.cpp2
-rw-r--r--editor/plugins/canvas_item_editor_plugin.cpp5
-rw-r--r--editor/plugins/cpu_particles_2d_editor_plugin.cpp2
-rw-r--r--editor/plugins/cpu_particles_3d_editor_plugin.cpp2
-rw-r--r--editor/plugins/debugger_editor_plugin.cpp2
-rw-r--r--editor/plugins/gpu_particles_2d_editor_plugin.cpp2
-rw-r--r--editor/plugins/gpu_particles_collision_sdf_editor_plugin.cpp2
-rw-r--r--editor/plugins/gradient_texture_2d_editor_plugin.cpp2
-rw-r--r--editor/plugins/gradient_texture_2d_editor_plugin.h4
-rw-r--r--editor/plugins/lightmap_gi_editor_plugin.cpp2
-rw-r--r--editor/plugins/material_editor_plugin.cpp6
-rw-r--r--editor/plugins/material_editor_plugin.h9
-rw-r--r--editor/plugins/mesh_instance_3d_editor_plugin.cpp4
-rw-r--r--editor/plugins/mesh_instance_3d_editor_plugin.h2
-rw-r--r--editor/plugins/mesh_library_editor_plugin.cpp4
-rw-r--r--editor/plugins/multimesh_editor_plugin.cpp4
-rw-r--r--editor/plugins/node_3d_editor_plugin.cpp9
-rw-r--r--editor/plugins/occluder_instance_3d_editor_plugin.cpp2
-rw-r--r--editor/plugins/polygon_2d_editor_plugin.cpp3
-rw-r--r--editor/plugins/polygon_2d_editor_plugin.h1
-rw-r--r--editor/plugins/polygon_3d_editor_plugin.cpp4
-rw-r--r--editor/plugins/resource_preloader_editor_plugin.cpp2
-rw-r--r--editor/plugins/root_motion_editor_plugin.cpp2
-rw-r--r--editor/plugins/root_motion_editor_plugin.h3
-rw-r--r--editor/plugins/script_editor_plugin.cpp2
-rw-r--r--editor/plugins/skeleton_2d_editor_plugin.cpp4
-rw-r--r--editor/plugins/skeleton_2d_editor_plugin.h1
-rw-r--r--editor/plugins/skeleton_3d_editor_plugin.cpp1
-rw-r--r--editor/plugins/skeleton_3d_editor_plugin.h4
-rw-r--r--editor/plugins/skeleton_ik_3d_editor_plugin.cpp1
-rw-r--r--editor/plugins/skeleton_ik_3d_editor_plugin.h1
-rw-r--r--editor/plugins/sprite_frames_editor_plugin.cpp2
-rw-r--r--editor/plugins/theme_editor_plugin.cpp9
-rw-r--r--editor/plugins/theme_editor_plugin.h13
-rw-r--r--editor/plugins/theme_editor_preview.cpp4
-rw-r--r--editor/plugins/theme_editor_preview.h8
-rw-r--r--editor/plugins/tiles/atlas_merging_dialog.cpp3
-rw-r--r--editor/plugins/tiles/tile_atlas_view.h2
-rw-r--r--editor/plugins/tiles/tile_set_scenes_collection_source_editor.cpp2
-rw-r--r--editor/plugins/tiles/tile_set_scenes_collection_source_editor.h6
-rw-r--r--editor/plugins/voxel_gi_editor_plugin.cpp2
-rw-r--r--editor/project_manager.cpp2
-rw-r--r--editor/register_editor_types.cpp3
-rw-r--r--editor/rename_dialog.cpp4
-rw-r--r--editor/rename_dialog.h16
-rw-r--r--editor/reparent_dialog.cpp4
-rw-r--r--editor/reparent_dialog.h8
-rw-r--r--editor/scene_tree_dock.cpp2
-rw-r--r--editor/scene_tree_dock.h3
-rw-r--r--editor/script_create_dialog.cpp2
-rw-r--r--editor/shader_create_dialog.cpp2
-rw-r--r--logo_outlined.pngbin17898 -> 25859 bytes
-rw-r--r--logo_outlined.svg59
-rw-r--r--methods.py2
-rw-r--r--modules/gltf/editor/editor_scene_exporter_gltf_plugin.cpp2
-rw-r--r--modules/gltf/editor/editor_scene_importer_blend.cpp2
-rw-r--r--modules/gridmap/editor/grid_map_editor_plugin.cpp2
-rw-r--r--modules/multiplayer/editor/replication_editor.cpp2
-rw-r--r--modules/navigation/editor/navigation_mesh_editor_plugin.cpp3
-rw-r--r--modules/navigation/editor/navigation_mesh_editor_plugin.h2
-rw-r--r--modules/openxr/doc_classes/OpenXRInterface.xml3
-rw-r--r--modules/openxr/editor/openxr_action_map_editor.cpp2
-rw-r--r--modules/openxr/openxr_api.cpp12
-rw-r--r--modules/openxr/openxr_api.h5
-rw-r--r--modules/openxr/openxr_interface.cpp21
-rw-r--r--modules/openxr/openxr_interface.h3
-rw-r--r--modules/text_server_adv/text_server_adv.cpp98
-rw-r--r--modules/text_server_adv/text_server_adv.h4
-rw-r--r--platform/android/tts_android.h1
-rw-r--r--platform/ios/tts_ios.h2
-rw-r--r--platform/linuxbsd/tts_linux.h2
-rw-r--r--platform/linuxbsd/x11/display_server_x11.cpp13
-rw-r--r--platform/macos/display_server_macos.mm13
-rw-r--r--platform/macos/export/export_plugin.cpp2
-rw-r--r--platform/macos/tts_macos.h2
-rw-r--r--platform/web/display_server_web.cpp13
-rw-r--r--platform/web/godot_js.h1
-rw-r--r--platform/web/js/libs/library_godot_os.js22
-rw-r--r--platform/web/os_web.cpp3
-rw-r--r--platform/windows/display_server_windows.cpp14
-rw-r--r--platform/windows/tts_windows.cpp22
-rw-r--r--platform/windows/tts_windows.h4
-rw-r--r--scene/gui/code_edit.cpp7
-rw-r--r--scene/gui/color_picker.cpp12
-rw-r--r--scene/gui/rich_text_label.cpp26
-rw-r--r--scene/gui/rich_text_label.h1
-rw-r--r--scene/main/scene_tree.cpp2
-rw-r--r--scene/resources/default_theme/default_theme.cpp18
-rw-r--r--servers/audio/audio_stream.cpp2
-rw-r--r--servers/rendering/renderer_rd/environment/sky.cpp2
-rw-r--r--servers/rendering/renderer_rd/shaders/environment/sky.glsl8
-rw-r--r--servers/rendering_server.cpp6
162 files changed, 681 insertions, 503 deletions
diff --git a/core/input/input_event.cpp b/core/input/input_event.cpp
index 9d5d84a508..46f07fe041 100644
--- a/core/input/input_event.cpp
+++ b/core/input/input_event.cpp
@@ -33,6 +33,7 @@
#include "core/input/input_map.h"
#include "core/input/shortcut.h"
#include "core/os/keyboard.h"
+#include "core/os/os.h"
const int InputEvent::DEVICE_ID_EMULATION = -1;
const int InputEvent::DEVICE_ID_INTERNAL = -2;
@@ -145,13 +146,13 @@ int64_t InputEventFromWindow::get_window_id() const {
void InputEventWithModifiers::set_command_or_control_autoremap(bool p_enabled) {
command_or_control_autoremap = p_enabled;
if (command_or_control_autoremap) {
-#ifdef MACOS_ENABLED
- ctrl_pressed = false;
- meta_pressed = true;
-#else
- ctrl_pressed = true;
- meta_pressed = false;
-#endif
+ if (OS::get_singleton()->has_feature("macos") || OS::get_singleton()->has_feature("web_macos") || OS::get_singleton()->has_feature("web_ios")) {
+ ctrl_pressed = false;
+ meta_pressed = true;
+ } else {
+ ctrl_pressed = true;
+ meta_pressed = false;
+ }
} else {
ctrl_pressed = false;
meta_pressed = false;
@@ -164,11 +165,11 @@ bool InputEventWithModifiers::is_command_or_control_autoremap() const {
}
bool InputEventWithModifiers::is_command_or_control_pressed() const {
-#ifdef MACOS_ENABLED
- return meta_pressed;
-#else
- return ctrl_pressed;
-#endif
+ if (OS::get_singleton()->has_feature("macos") || OS::get_singleton()->has_feature("web_macos") || OS::get_singleton()->has_feature("web_ios")) {
+ return meta_pressed;
+ } else {
+ return ctrl_pressed;
+ }
}
void InputEventWithModifiers::set_shift_pressed(bool p_enabled) {
@@ -231,11 +232,11 @@ BitField<KeyModifierMask> InputEventWithModifiers::get_modifiers_mask() const {
mask.set_flag(KeyModifierMask::META);
}
if (is_command_or_control_autoremap()) {
-#ifdef MACOS_ENABLED
- mask.set_flag(KeyModifierMask::META);
-#else
- mask.set_flag(KeyModifierMask::CTRL);
-#endif
+ if (OS::get_singleton()->has_feature("macos") || OS::get_singleton()->has_feature("web_macos") || OS::get_singleton()->has_feature("web_ios")) {
+ mask.set_flag(KeyModifierMask::META);
+ } else {
+ mask.set_flag(KeyModifierMask::CTRL);
+ }
}
return mask;
}
diff --git a/core/math/delaunay_2d.h b/core/math/delaunay_2d.h
index 8d602da241..cf7ba8d48e 100644
--- a/core/math/delaunay_2d.h
+++ b/core/math/delaunay_2d.h
@@ -38,7 +38,8 @@ class Delaunay2D {
public:
struct Triangle {
int points[3];
- bool bad = false;
+ Vector2 circum_center;
+ real_t circum_radius_squared;
Triangle() {}
Triangle(int p_a, int p_b, int p_c) {
points[0] = p_a;
@@ -48,117 +49,109 @@ public:
};
struct Edge {
- int edge[2];
+ int points[2];
bool bad = false;
Edge() {}
Edge(int p_a, int p_b) {
- edge[0] = p_a;
- edge[1] = p_b;
+ // Store indices in a sorted manner to avoid having to check both orientations later.
+ if (p_a > p_b) {
+ points[0] = p_b;
+ points[1] = p_a;
+ } else {
+ points[0] = p_a;
+ points[1] = p_b;
+ }
}
};
- static bool circum_circle_contains(const Vector<Vector2> &p_vertices, const Triangle &p_triangle, int p_vertex) {
- Vector2 p1 = p_vertices[p_triangle.points[0]];
- Vector2 p2 = p_vertices[p_triangle.points[1]];
- Vector2 p3 = p_vertices[p_triangle.points[2]];
+ static Triangle create_triangle(const Vector<Vector2> &p_vertices, const int &p_a, const int &p_b, const int &p_c) {
+ Triangle triangle = Triangle(p_a, p_b, p_c);
- real_t ab = p1.x * p1.x + p1.y * p1.y;
- real_t cd = p2.x * p2.x + p2.y * p2.y;
- real_t ef = p3.x * p3.x + p3.y * p3.y;
+ // Get the values of the circumcircle and store them inside the triangle object.
+ Vector2 a = p_vertices[p_b] - p_vertices[p_a];
+ Vector2 b = p_vertices[p_c] - p_vertices[p_a];
- Vector2 circum(
- (ab * (p3.y - p2.y) + cd * (p1.y - p3.y) + ef * (p2.y - p1.y)) / (p1.x * (p3.y - p2.y) + p2.x * (p1.y - p3.y) + p3.x * (p2.y - p1.y)),
- (ab * (p3.x - p2.x) + cd * (p1.x - p3.x) + ef * (p2.x - p1.x)) / (p1.y * (p3.x - p2.x) + p2.y * (p1.x - p3.x) + p3.y * (p2.x - p1.x)));
+ Vector2 O = (b * a.length_squared() - a * b.length_squared()).orthogonal() / (a.cross(b) * 2.0f);
- circum *= 0.5;
- float r = p1.distance_squared_to(circum);
- float d = p_vertices[p_vertex].distance_squared_to(circum);
- return d <= r;
- }
+ triangle.circum_radius_squared = O.length_squared();
+ triangle.circum_center = O + p_vertices[p_a];
- static bool edge_compare(const Vector<Vector2> &p_vertices, const Edge &p_a, const Edge &p_b) {
- if (p_vertices[p_a.edge[0]].is_equal_approx(p_vertices[p_b.edge[0]]) && p_vertices[p_a.edge[1]].is_equal_approx(p_vertices[p_b.edge[1]])) {
- return true;
- }
-
- if (p_vertices[p_a.edge[0]].is_equal_approx(p_vertices[p_b.edge[1]]) && p_vertices[p_a.edge[1]].is_equal_approx(p_vertices[p_b.edge[0]])) {
- return true;
- }
-
- return false;
+ return triangle;
}
static Vector<Triangle> triangulate(const Vector<Vector2> &p_points) {
Vector<Vector2> points = p_points;
Vector<Triangle> triangles;
- Rect2 rect;
- for (int i = 0; i < p_points.size(); i++) {
- if (i == 0) {
- rect.position = p_points[i];
- } else {
- rect.expand_to(p_points[i]);
- }
+ int point_count = p_points.size();
+ if (point_count <= 2) {
+ return triangles;
}
- float delta_max = MAX(rect.size.width, rect.size.height);
+ // Get a bounding rectangle.
+ Rect2 rect = Rect2(p_points[0], Size2());
+ for (int i = 1; i < point_count; i++) {
+ rect.expand_to(p_points[i]);
+ }
+
+ real_t delta_max = MAX(rect.size.width, rect.size.height);
Vector2 center = rect.get_center();
- points.push_back(Vector2(center.x - 20 * delta_max, center.y - delta_max));
- points.push_back(Vector2(center.x, center.y + 20 * delta_max));
- points.push_back(Vector2(center.x + 20 * delta_max, center.y - delta_max));
+ // Construct a bounding triangle around the rectangle.
+ points.push_back(Vector2(center.x - delta_max * 16, center.y - delta_max));
+ points.push_back(Vector2(center.x, center.y + delta_max * 16));
+ points.push_back(Vector2(center.x + delta_max * 16, center.y - delta_max));
- triangles.push_back(Triangle(p_points.size() + 0, p_points.size() + 1, p_points.size() + 2));
+ Triangle bounding_triangle = create_triangle(points, point_count + 0, point_count + 1, point_count + 2);
+ triangles.push_back(bounding_triangle);
- for (int i = 0; i < p_points.size(); i++) {
+ for (int i = 0; i < point_count; i++) {
Vector<Edge> polygon;
- for (int j = 0; j < triangles.size(); j++) {
- if (circum_circle_contains(points, triangles[j], i)) {
- triangles.write[j].bad = true;
+ // Save the edges of the triangles whose circumcircles contain the i-th vertex. Delete the triangles themselves.
+ for (int j = triangles.size() - 1; j >= 0; j--) {
+ if (points[i].distance_squared_to(triangles[j].circum_center) < triangles[j].circum_radius_squared) {
polygon.push_back(Edge(triangles[j].points[0], triangles[j].points[1]));
polygon.push_back(Edge(triangles[j].points[1], triangles[j].points[2]));
polygon.push_back(Edge(triangles[j].points[2], triangles[j].points[0]));
- }
- }
- for (int j = 0; j < triangles.size(); j++) {
- if (triangles[j].bad) {
triangles.remove_at(j);
- j--;
}
}
+ // Create a triangle for every unique edge.
for (int j = 0; j < polygon.size(); j++) {
+ if (polygon[j].bad) {
+ continue;
+ }
+
for (int k = j + 1; k < polygon.size(); k++) {
- if (edge_compare(points, polygon[j], polygon[k])) {
+ // Compare the edges.
+ if (polygon[k].points[0] == polygon[j].points[0] && polygon[k].points[1] == polygon[j].points[1]) {
polygon.write[j].bad = true;
polygon.write[k].bad = true;
+
+ break; // Since no more than two triangles can share an edge, no more than two edges can share vertices.
}
}
- }
- for (int j = 0; j < polygon.size(); j++) {
- if (polygon[j].bad) {
- continue;
+ // Create triangles out of good edges.
+ if (!polygon[j].bad) {
+ triangles.push_back(create_triangle(points, polygon[j].points[0], polygon[j].points[1], i));
}
- triangles.push_back(Triangle(polygon[j].edge[0], polygon[j].edge[1], i));
}
}
- for (int i = 0; i < triangles.size(); i++) {
- bool invalid = false;
- for (int j = 0; j < 3; j++) {
- if (triangles[i].points[j] >= p_points.size()) {
- invalid = true;
- break;
- }
- }
- if (invalid) {
- triangles.remove_at(i);
- i--;
+ // Filter out the triangles containing vertices of the bounding triangle.
+ int preserved_count = 0;
+ Triangle *triangles_ptrw = triangles.ptrw();
+ for (int i = 0; i < triangles.size() - 1; i++) {
+ if (!(triangles[i].points[0] >= point_count || triangles[i].points[1] >= point_count || triangles[i].points[2] >= point_count)) {
+ triangles_ptrw[preserved_count] = triangles[i];
+ preserved_count++;
}
}
+ triangles.resize(preserved_count);
return triangles;
}
diff --git a/core/object/message_queue.cpp b/core/object/message_queue.cpp
index decf030e27..1542decc6f 100644
--- a/core/object/message_queue.cpp
+++ b/core/object/message_queue.cpp
@@ -55,7 +55,7 @@ Error MessageQueue::push_set(ObjectID p_id, const StringName &p_prop, const Vari
if (ObjectDB::get_instance(p_id)) {
type = ObjectDB::get_instance(p_id)->get_class();
}
- ERR_PRINT("Failed set: " + type + ":" + p_prop + " target ID: " + itos(p_id) + ". Message queue out of memory. Try increasing 'memory/limits/message_queue/max_size_kb' in project settings.");
+ ERR_PRINT("Failed set: " + type + ":" + p_prop + " target ID: " + itos(p_id) + ". Message queue out of memory. Try increasing \"memory/limits/message_queue/max_size_kb\" in project settings.");
statistics();
return ERR_OUT_OF_MEMORY;
}
@@ -82,7 +82,7 @@ Error MessageQueue::push_notification(ObjectID p_id, int p_notification) {
uint8_t room_needed = sizeof(Message);
if ((buffer_end + room_needed) >= buffer_size) {
- ERR_PRINT("Failed notification: " + itos(p_notification) + " target ID: " + itos(p_id) + ". Message queue out of memory. Try increasing 'memory/limits/message_queue/max_size_kb' in project settings.");
+ ERR_PRINT("Failed notification: " + itos(p_notification) + " target ID: " + itos(p_id) + ". Message queue out of memory. Try increasing \"memory/limits/message_queue/max_size_kb\" in project settings.");
statistics();
return ERR_OUT_OF_MEMORY;
}
@@ -117,7 +117,7 @@ Error MessageQueue::push_callablep(const Callable &p_callable, const Variant **p
int room_needed = sizeof(Message) + sizeof(Variant) * p_argcount;
if ((buffer_end + room_needed) >= buffer_size) {
- ERR_PRINT("Failed method: " + p_callable + ". Message queue out of memory. Try increasing 'memory/limits/message_queue/max_size_kb' in project settings.");
+ ERR_PRINT("Failed method: " + p_callable + ". Message queue out of memory. Try increasing \"memory/limits/message_queue/max_size_kb\" in project settings.");
statistics();
return ERR_OUT_OF_MEMORY;
}
diff --git a/core/os/keyboard.cpp b/core/os/keyboard.cpp
index 25a4b320cd..1e32e6e096 100644
--- a/core/os/keyboard.cpp
+++ b/core/os/keyboard.cpp
@@ -367,11 +367,11 @@ String keycode_get_string(Key p_code) {
codestr += "+";
}
if ((p_code & KeyModifierMask::CMD_OR_CTRL) != Key::NONE) {
-#ifdef MACOS_ENABLED
- codestr += find_keycode_name(Key::META);
-#else
- codestr += find_keycode_name(Key::CTRL);
-#endif
+ if (OS::get_singleton()->has_feature("macos") || OS::get_singleton()->has_feature("web_macos") || OS::get_singleton()->has_feature("web_ios")) {
+ codestr += find_keycode_name(Key::META);
+ } else {
+ codestr += find_keycode_name(Key::CTRL);
+ }
codestr += "+";
}
if ((p_code & KeyModifierMask::CTRL) != Key::NONE) {
diff --git a/doc/classes/OS.xml b/doc/classes/OS.xml
index 1b98d357ae..28c6247338 100644
--- a/doc/classes/OS.xml
+++ b/doc/classes/OS.xml
@@ -491,6 +491,7 @@
<description>
Returns [code]true[/code] if the feature for the given feature tag is supported in the currently running instance, depending on the platform, build, etc. Can be used to check whether you're currently running a debug build, on a certain platform or arch, etc. Refer to the [url=$DOCS_URL/tutorials/export/feature_tags.html]Feature Tags[/url] documentation for more details.
[b]Note:[/b] Tag names are case-sensitive.
+ [b]Note:[/b] On the web platform, one of the following additional tags is defined to indicate host platform: [code]web_android[/code], [code]web_ios[/code], [code]web_linuxbsd[/code], [code]web_macos[/code], or [code]web_windows[/code].
</description>
</method>
<method name="is_debug_build" qualifiers="const">
diff --git a/drivers/gles3/storage/material_storage.cpp b/drivers/gles3/storage/material_storage.cpp
index fc6c2f3a26..f00124ab13 100644
--- a/drivers/gles3/storage/material_storage.cpp
+++ b/drivers/gles3/storage/material_storage.cpp
@@ -1489,7 +1489,7 @@ MaterialStorage::MaterialStorage() {
global_shader_uniforms.buffer_size = MAX(4096, (int)GLOBAL_GET("rendering/limits/global_shader_variables/buffer_size"));
if (global_shader_uniforms.buffer_size > uint32_t(Config::get_singleton()->max_uniform_buffer_size)) {
global_shader_uniforms.buffer_size = uint32_t(Config::get_singleton()->max_uniform_buffer_size);
- WARN_PRINT("Project setting: rendering/limits/global_shader_variables/buffer_size exceeds maximum uniform buffer size of: " + itos(Config::get_singleton()->max_uniform_buffer_size));
+ WARN_PRINT("Project setting \"rendering/limits/global_shader_variables/buffer_size\" exceeds maximum uniform buffer size of: " + itos(Config::get_singleton()->max_uniform_buffer_size));
}
global_shader_uniforms.buffer_values = memnew_arr(GlobalShaderUniforms::Value, global_shader_uniforms.buffer_size);
diff --git a/editor/SCsub b/editor/SCsub
index dddec55ed6..d1781487ca 100644
--- a/editor/SCsub
+++ b/editor/SCsub
@@ -119,7 +119,7 @@ if env.editor_build:
SConscript("debugger/SCsub")
SConscript("export/SCsub")
- SConscript("fileserver/SCsub")
+ SConscript("gui/SCsub")
SConscript("icons/SCsub")
SConscript("import/SCsub")
SConscript("plugins/SCsub")
diff --git a/editor/animation_track_editor.cpp b/editor/animation_track_editor.cpp
index c27417f037..e87c381e32 100644
--- a/editor/animation_track_editor.cpp
+++ b/editor/animation_track_editor.cpp
@@ -37,12 +37,20 @@
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
#include "editor/editor_undo_redo_manager.h"
+#include "editor/gui/editor_spin_slider.h"
+#include "editor/gui/scene_tree_editor.h"
#include "editor/inspector_dock.h"
#include "editor/plugins/animation_player_editor_plugin.h"
#include "scene/animation/animation_player.h"
#include "scene/animation/tween.h"
+#include "scene/gui/check_box.h"
#include "scene/gui/grid_container.h"
+#include "scene/gui/option_button.h"
+#include "scene/gui/panel_container.h"
#include "scene/gui/separator.h"
+#include "scene/gui/slider.h"
+#include "scene/gui/spin_box.h"
+#include "scene/gui/texture_rect.h"
#include "scene/gui/view_panner.h"
#include "scene/main/window.h"
#include "scene/scene_string_names.h"
diff --git a/editor/animation_track_editor.h b/editor/animation_track_editor.h
index c733f397e3..cef726f6c0 100644
--- a/editor/animation_track_editor.h
+++ b/editor/animation_track_editor.h
@@ -33,25 +33,24 @@
#include "editor/editor_data.h"
#include "editor/editor_properties.h"
-#include "editor/editor_spin_slider.h"
#include "editor/property_selector.h"
-
#include "scene/3d/node_3d.h"
-#include "scene/gui/check_box.h"
#include "scene/gui/control.h"
#include "scene/gui/menu_button.h"
-#include "scene/gui/option_button.h"
-#include "scene/gui/panel_container.h"
#include "scene/gui/scroll_bar.h"
-#include "scene/gui/slider.h"
-#include "scene/gui/spin_box.h"
-#include "scene/gui/tab_container.h"
-#include "scene/gui/texture_rect.h"
+#include "scene/gui/tree.h"
#include "scene/resources/animation.h"
-#include "scene_tree_editor.h"
class AnimationTrackEditor;
class AnimationTrackEdit;
+class CheckBox;
+class EditorSpinSlider;
+class HSlider;
+class OptionButton;
+class PanelContainer;
+class SceneTreeDialog;
+class SpinBox;
+class TextureRect;
class ViewPanner;
class AnimationTrackKeyEdit : public Object {
diff --git a/editor/connections_dialog.cpp b/editor/connections_dialog.cpp
index ddbbdb1c6a..c788fee7f8 100644
--- a/editor/connections_dialog.cpp
+++ b/editor/connections_dialog.cpp
@@ -33,12 +33,21 @@
#include "core/config/project_settings.h"
#include "editor/doc_tools.h"
#include "editor/editor_help.h"
+#include "editor/editor_inspector.h"
#include "editor/editor_node.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
#include "editor/editor_undo_redo_manager.h"
+#include "editor/gui/scene_tree_editor.h"
#include "editor/scene_tree_dock.h"
#include "plugins/script_editor_plugin.h"
+#include "scene/gui/button.h"
+#include "scene/gui/check_box.h"
+#include "scene/gui/label.h"
+#include "scene/gui/line_edit.h"
+#include "scene/gui/option_button.h"
+#include "scene/gui/popup_menu.h"
+#include "scene/gui/spin_box.h"
#include "scene/resources/packed_scene.h"
static Node *_find_first_script(Node *p_root, Node *p_node) {
diff --git a/editor/connections_dialog.h b/editor/connections_dialog.h
index e5375a3fc8..003d4125af 100644
--- a/editor/connections_dialog.h
+++ b/editor/connections_dialog.h
@@ -31,22 +31,20 @@
#ifndef CONNECTIONS_DIALOG_H
#define CONNECTIONS_DIALOG_H
-#include "editor/editor_inspector.h"
-#include "editor/scene_tree_editor.h"
-#include "scene/gui/button.h"
-#include "scene/gui/check_box.h"
#include "scene/gui/check_button.h"
#include "scene/gui/dialogs.h"
-#include "scene/gui/label.h"
-#include "scene/gui/line_edit.h"
-#include "scene/gui/menu_button.h"
-#include "scene/gui/option_button.h"
-#include "scene/gui/popup.h"
-#include "scene/gui/popup_menu.h"
-#include "scene/gui/spin_box.h"
#include "scene/gui/tree.h"
+class Button;
+class CheckBox;
class ConnectDialogBinds;
+class EditorInspector;
+class Label;
+class LineEdit;
+class OptionButton;
+class PopupMenu;
+class SceneTreeEditor;
+class SpinBox;
class ConnectDialog : public ConfirmationDialog {
GDCLASS(ConnectDialog, ConfirmationDialog);
diff --git a/editor/debugger/editor_debugger_tree.cpp b/editor/debugger/editor_debugger_tree.cpp
index c67ac69946..65f8951c30 100644
--- a/editor/debugger/editor_debugger_tree.cpp
+++ b/editor/debugger/editor_debugger_tree.cpp
@@ -30,8 +30,8 @@
#include "editor_debugger_tree.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_node.h"
+#include "editor/gui/editor_file_dialog.h"
#include "editor/scene_tree_dock.h"
#include "scene/debugger/scene_debugger.h"
#include "scene/gui/texture_rect.h"
diff --git a/editor/fileserver/editor_file_server.cpp b/editor/debugger/editor_file_server.cpp
index ba5dd9e6e2..ba5dd9e6e2 100644
--- a/editor/fileserver/editor_file_server.cpp
+++ b/editor/debugger/editor_file_server.cpp
diff --git a/editor/fileserver/editor_file_server.h b/editor/debugger/editor_file_server.h
index ff2742e73f..ff2742e73f 100644
--- a/editor/fileserver/editor_file_server.h
+++ b/editor/debugger/editor_file_server.h
diff --git a/editor/debugger/script_editor_debugger.cpp b/editor/debugger/script_editor_debugger.cpp
index f805a4aecd..a696e1ff1f 100644
--- a/editor/debugger/script_editor_debugger.cpp
+++ b/editor/debugger/script_editor_debugger.cpp
@@ -40,13 +40,13 @@
#include "editor/debugger/editor_performance_profiler.h"
#include "editor/debugger/editor_profiler.h"
#include "editor/debugger/editor_visual_profiler.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_file_system.h"
#include "editor/editor_log.h"
#include "editor/editor_node.h"
#include "editor/editor_property_name_processor.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
+#include "editor/gui/editor_file_dialog.h"
#include "editor/inspector_dock.h"
#include "editor/plugins/canvas_item_editor_plugin.h"
#include "editor/plugins/editor_debugger_plugin.h"
diff --git a/editor/dependency_editor.cpp b/editor/dependency_editor.cpp
index c98ec7b2d5..9cff7e3771 100644
--- a/editor/dependency_editor.cpp
+++ b/editor/dependency_editor.cpp
@@ -33,11 +33,11 @@
#include "core/config/project_settings.h"
#include "core/io/file_access.h"
#include "core/io/resource_loader.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_file_system.h"
#include "editor/editor_node.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
+#include "editor/gui/editor_file_dialog.h"
#include "scene/gui/margin_container.h"
void DependencyEditor::_searched(const String &p_path) {
diff --git a/editor/editor_audio_buses.cpp b/editor/editor_audio_buses.cpp
index f2a0ec901f..9ed8cf7c21 100644
--- a/editor/editor_audio_buses.cpp
+++ b/editor/editor_audio_buses.cpp
@@ -34,12 +34,12 @@
#include "core/input/input.h"
#include "core/io/resource_saver.h"
#include "core/os/keyboard.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_node.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
#include "editor/editor_undo_redo_manager.h"
-#include "filesystem_dock.h"
+#include "editor/filesystem_dock.h"
+#include "editor/gui/editor_file_dialog.h"
#include "scene/gui/separator.h"
#include "scene/resources/font.h"
#include "servers/audio_server.h"
diff --git a/editor/editor_autoload_settings.cpp b/editor/editor_autoload_settings.cpp
index a6defd0e14..7a1dc2e33b 100644
--- a/editor/editor_autoload_settings.cpp
+++ b/editor/editor_autoload_settings.cpp
@@ -32,12 +32,12 @@
#include "core/config/project_settings.h"
#include "core/core_constants.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_node.h"
#include "editor/editor_scale.h"
#include "editor/editor_undo_redo_manager.h"
#include "editor/filesystem_dock.h"
-#include "project_settings_editor.h"
+#include "editor/gui/editor_file_dialog.h"
+#include "editor/project_settings_editor.h"
#include "scene/main/window.h"
#include "scene/resources/packed_scene.h"
diff --git a/editor/editor_build_profile.cpp b/editor/editor_build_profile.cpp
index b112818e83..1377537245 100644
--- a/editor/editor_build_profile.cpp
+++ b/editor/editor_build_profile.cpp
@@ -32,13 +32,13 @@
#include "core/io/dir_access.h"
#include "core/io/json.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_file_system.h"
#include "editor/editor_node.h"
#include "editor/editor_paths.h"
#include "editor/editor_property_name_processor.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
+#include "editor/gui/editor_file_dialog.h"
const char *EditorBuildProfile::build_option_identifiers[BUILD_OPTION_MAX] = {
// This maps to SCons build options.
diff --git a/editor/editor_feature_profile.cpp b/editor/editor_feature_profile.cpp
index f8bc37798a..7c77fec81a 100644
--- a/editor/editor_feature_profile.cpp
+++ b/editor/editor_feature_profile.cpp
@@ -32,12 +32,12 @@
#include "core/io/dir_access.h"
#include "core/io/json.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_node.h"
#include "editor/editor_paths.h"
#include "editor/editor_property_name_processor.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
+#include "editor/gui/editor_file_dialog.h"
const char *EditorFeatureProfile::feature_names[FEATURE_MAX] = {
TTRC("3D Editor"),
diff --git a/editor/editor_inspector.cpp b/editor/editor_inspector.cpp
index 87c4dabd8d..cd762002b2 100644
--- a/editor/editor_inspector.cpp
+++ b/editor/editor_inspector.cpp
@@ -2735,7 +2735,8 @@ void EditorInspector::update_tree() {
List<PropertyInfo>::Element *N = E_property->next();
bool valid = true;
while (N) {
- if (!N->get().name.begins_with("metadata/_") && N->get().usage & PROPERTY_USAGE_EDITOR && (!restrict_to_basic || (N->get().usage & PROPERTY_USAGE_EDITOR_BASIC_SETTING))) {
+ if (!N->get().name.begins_with("metadata/_") && N->get().usage & PROPERTY_USAGE_EDITOR &&
+ (!filter.is_empty() || !restrict_to_basic || (N->get().usage & PROPERTY_USAGE_EDITOR_BASIC_SETTING))) {
break;
}
if (N->get().usage & PROPERTY_USAGE_CATEGORY) {
@@ -2758,26 +2759,30 @@ void EditorInspector::update_tree() {
doc_name = p.name;
// Use category's owner script to update some of its information.
- if (!EditorNode::get_editor_data().is_type_recognized(type) && p.hint_string.length() && FileAccess::exists(p.hint_string)) {
- StringName script_name;
-
+ if (!EditorNode::get_editor_data().is_type_recognized(type) && p.hint_string.length() && ResourceLoader::exists(p.hint_string)) {
Ref<Script> scr = ResourceLoader::load(p.hint_string, "Script");
if (scr.is_valid()) {
- script_name = EditorNode::get_editor_data().script_class_get_name(scr->get_path());
+ StringName script_name = EditorNode::get_editor_data().script_class_get_name(scr->get_path());
// Update the docs reference and the label based on the script.
Vector<DocData::ClassDoc> docs = scr->get_documentation();
if (!docs.is_empty()) {
doc_name = docs[0].name;
}
- if (script_name != StringName() && label != script_name) {
+ if (script_name != StringName()) {
label = script_name;
}
+
+ // Find the icon corresponding to the script.
+ if (script_name != StringName()) {
+ category->icon = EditorNode::get_singleton()->get_class_icon(script_name, "Object");
+ } else {
+ category->icon = EditorNode::get_singleton()->get_object_icon(scr.ptr(), "Object");
+ }
}
+ }
- // Find the corresponding icon.
- category->icon = EditorNode::get_singleton()->get_class_icon(script_name, "Object");
- } else if (!type.is_empty()) {
+ if (category->icon.is_null() && !type.is_empty()) {
category->icon = EditorNode::get_singleton()->get_class_icon(type, "Object");
}
@@ -2807,7 +2812,8 @@ void EditorInspector::update_tree() {
continue;
- } else if (p.name.begins_with("metadata/_") || !(p.usage & PROPERTY_USAGE_EDITOR) || _is_property_disabled_by_feature_profile(p.name) || (restrict_to_basic && !(p.usage & PROPERTY_USAGE_EDITOR_BASIC_SETTING))) {
+ } else if (p.name.begins_with("metadata/_") || !(p.usage & PROPERTY_USAGE_EDITOR) || _is_property_disabled_by_feature_profile(p.name) ||
+ (filter.is_empty() && restrict_to_basic && !(p.usage & PROPERTY_USAGE_EDITOR_BASIC_SETTING))) {
// Ignore properties that are not supposed to be in the inspector.
continue;
}
diff --git a/editor/editor_log.cpp b/editor/editor_log.cpp
index 6b4f0089fd..8d199ad989 100644
--- a/editor/editor_log.cpp
+++ b/editor/editor_log.cpp
@@ -97,8 +97,6 @@ void EditorLog::_update_theme() {
log->add_theme_font_size_override("italics_font_size", font_size);
log->add_theme_font_size_override("mono_font_size", font_size);
- log->add_theme_color_override("selection_color", get_theme_color(SNAME("accent_color"), SNAME("Editor")) * Color(1, 1, 1, 0.4));
-
type_filter_map[MSG_TYPE_STD]->toggle_button->set_icon(get_theme_icon(SNAME("Popup"), SNAME("EditorIcons")));
type_filter_map[MSG_TYPE_ERROR]->toggle_button->set_icon(get_theme_icon(SNAME("StatusError"), SNAME("EditorIcons")));
type_filter_map[MSG_TYPE_WARNING]->toggle_button->set_icon(get_theme_icon(SNAME("StatusWarning"), SNAME("EditorIcons")));
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp
index d9318f6bde..057f8e4ce4 100644
--- a/editor/editor_node.cpp
+++ b/editor/editor_node.cpp
@@ -72,12 +72,12 @@
#include "editor/editor_command_palette.h"
#include "editor/editor_data.h"
#include "editor/editor_feature_profile.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_folding.h"
#include "editor/editor_help.h"
#include "editor/editor_inspector.h"
#include "editor/editor_layouts_dialog.h"
#include "editor/editor_log.h"
+#include "editor/editor_native_shader_source_visualizer.h"
#include "editor/editor_paths.h"
#include "editor/editor_plugin.h"
#include "editor/editor_properties.h"
@@ -90,7 +90,6 @@
#include "editor/editor_settings.h"
#include "editor/editor_settings_dialog.h"
#include "editor/editor_themes.h"
-#include "editor/editor_toaster.h"
#include "editor/editor_translation_parser.h"
#include "editor/editor_undo_redo_manager.h"
#include "editor/export/editor_export.h"
@@ -98,6 +97,9 @@
#include "editor/export/project_export.h"
#include "editor/fbx_importer_manager.h"
#include "editor/filesystem_dock.h"
+#include "editor/gui/editor_file_dialog.h"
+#include "editor/gui/editor_title_bar.h"
+#include "editor/gui/editor_toaster.h"
#include "editor/history_dock.h"
#include "editor/import/audio_stream_import_settings.h"
#include "editor/import/dynamic_font_import_settings.h"
diff --git a/editor/editor_node.h b/editor/editor_node.h
index f9ba2b8b17..8f17932cb0 100644
--- a/editor/editor_node.h
+++ b/editor/editor_node.h
@@ -34,10 +34,8 @@
#include "core/templates/safe_refcount.h"
#include "editor/editor_data.h"
#include "editor/editor_folding.h"
-#include "editor/editor_native_shader_source_visualizer.h"
#include "editor/editor_plugin.h"
#include "editor/editor_run.h"
-#include "editor/editor_title_bar.h"
#include "editor/export/editor_export.h"
typedef void (*EditorNodeInitCallback)();
@@ -46,71 +44,73 @@ typedef bool (*EditorBuildCallback)();
class AcceptDialog;
class AcceptDialogAutoReparent;
-class AudioStreamPreviewGenerator;
-class BackgroundProgress;
class CenterContainer;
class CheckBox;
class ColorPicker;
class ConfirmationDialog;
class Control;
+class FileDialog;
+class HBoxContainer;
+class HSplitContainer;
+class LinkButton;
+class MenuBar;
+class MenuButton;
+class Node2D;
+class OptionButton;
+class Panel;
+class PanelContainer;
+class SubViewport;
+class TabBar;
+class TabContainer;
+class TextureRect;
+class TextureProgressBar;
+class Tree;
+class VSplitContainer;
+class Window;
+
+class AudioStreamImportSettings;
+class AudioStreamPreviewGenerator;
+class BackgroundProgress;
class DependencyEditor;
class DependencyErrorDialog;
class DynamicFontImportSettings;
class EditorAbout;
+class EditorBuildProfileManager;
class EditorCommandPalette;
class EditorExport;
class EditorExtensionManager;
class EditorFeatureProfileManager;
class EditorFileDialog;
-class EditorFileServer;
class EditorFolding;
class EditorInspector;
class EditorLayoutsDialog;
class EditorLog;
+class EditorNativeShaderSourceVisualizer;
class EditorPluginList;
class EditorQuickOpen;
class EditorPropertyResource;
class EditorResourcePreview;
class EditorResourceConversionPlugin;
-class EditorRun;
class EditorRunNative;
class EditorSelectionHistory;
class EditorSettingsDialog;
+class EditorTitleBar;
class EditorToaster;
class EditorUndoRedoManager;
class ExportTemplateManager;
class FBXImporterManager;
-class FileDialog;
class FileSystemDock;
class HistoryDock;
-class HSplitContainer;
class ImportDock;
-class LinkButton;
-class MenuBar;
-class MenuButton;
-class Node2D;
class NodeDock;
-class OptionButton;
class OrphanResourcesDialog;
-class Panel;
-class PanelContainer;
class PluginConfigDialog;
class ProgressDialog;
class ProjectExportDialog;
class ProjectSettingsEditor;
class RunSettingsDialog;
class SceneImportSettings;
-class AudioStreamImportSettings;
class ScriptCreateDialog;
-class SubViewport;
-class TabBar;
-class TabContainer;
-class TextureRect;
-class TextureProgressBar;
-class Tree;
-class VSplitContainer;
-class Window;
-class EditorBuildProfileManager;
class EditorNode : public Node {
GDCLASS(EditorNode, Node);
@@ -738,7 +738,7 @@ public:
static EditorData &get_editor_data() { return singleton->editor_data; }
static EditorFolding &get_editor_folding() { return singleton->editor_folding; }
- static HBoxContainer *get_menu_hb() { return singleton->menu_hb; }
+ static EditorTitleBar *get_menu_hb() { return singleton->menu_hb; }
static VSplitContainer *get_top_split() { return singleton->top_split; }
static String adjust_scene_name_casing(const String &root_name);
diff --git a/editor/editor_plugin.cpp b/editor/editor_plugin.cpp
index fb2110dea3..9281965e6f 100644
--- a/editor/editor_plugin.cpp
+++ b/editor/editor_plugin.cpp
@@ -40,6 +40,7 @@
#include "editor/editor_undo_redo_manager.h"
#include "editor/export/editor_export.h"
#include "editor/filesystem_dock.h"
+#include "editor/gui/editor_title_bar.h"
#include "editor/import/editor_import_plugin.h"
#include "editor/import/resource_importer_scene.h"
#include "editor/inspector_dock.h"
diff --git a/editor/editor_properties.cpp b/editor/editor_properties.cpp
index 5147237ac2..9f8b12e029 100644
--- a/editor/editor_properties.cpp
+++ b/editor/editor_properties.cpp
@@ -33,17 +33,18 @@
#include "core/config/project_settings.h"
#include "core/core_string_names.h"
#include "editor/create_dialog.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_node.h"
#include "editor/editor_properties_array_dict.h"
#include "editor/editor_resource_picker.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
+#include "editor/gui/editor_file_dialog.h"
+#include "editor/gui/editor_spin_slider.h"
+#include "editor/gui/scene_tree_editor.h"
#include "editor/inspector_dock.h"
#include "editor/plugins/script_editor_plugin.h"
#include "editor/project_settings_editor.h"
#include "editor/property_selector.h"
-#include "editor/scene_tree_editor.h"
#include "scene/2d/gpu_particles_2d.h"
#include "scene/3d/fog_volume.h"
#include "scene/3d/gpu_particles_3d.h"
diff --git a/editor/editor_properties_array_dict.cpp b/editor/editor_properties_array_dict.cpp
index 80ebd32295..f7c789a453 100644
--- a/editor/editor_properties_array_dict.cpp
+++ b/editor/editor_properties_array_dict.cpp
@@ -35,7 +35,9 @@
#include "editor/editor_properties.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
+#include "editor/gui/editor_spin_slider.h"
#include "editor/inspector_dock.h"
+#include "scene/gui/button.h"
bool EditorPropertyArrayObject::_set(const StringName &p_name, const Variant &p_value) {
String name = p_name;
diff --git a/editor/editor_properties_array_dict.h b/editor/editor_properties_array_dict.h
index 3b880c60a8..2ca1931f85 100644
--- a/editor/editor_properties_array_dict.h
+++ b/editor/editor_properties_array_dict.h
@@ -33,9 +33,10 @@
#include "editor/editor_inspector.h"
#include "editor/editor_locale_dialog.h"
-#include "editor/editor_spin_slider.h"
#include "editor/filesystem_dock.h"
-#include "scene/gui/button.h"
+
+class Button;
+class EditorSpinSlider;
class EditorPropertyArrayObject : public RefCounted {
GDCLASS(EditorPropertyArrayObject, RefCounted);
diff --git a/editor/editor_resource_picker.cpp b/editor/editor_resource_picker.cpp
index 4e7b7a8434..2d6feac007 100644
--- a/editor/editor_resource_picker.cpp
+++ b/editor/editor_resource_picker.cpp
@@ -31,13 +31,13 @@
#include "editor_resource_picker.h"
#include "editor/audio_stream_preview.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_node.h"
#include "editor/editor_quick_open.h"
#include "editor/editor_resource_preview.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
#include "editor/filesystem_dock.h"
+#include "editor/gui/editor_file_dialog.h"
#include "editor/plugins/editor_resource_conversion_plugin.h"
#include "editor/plugins/script_editor_plugin.h"
#include "editor/scene_tree_dock.h"
diff --git a/editor/editor_sectioned_inspector.cpp b/editor/editor_sectioned_inspector.cpp
index 3988d356b3..8716a75efd 100644
--- a/editor/editor_sectioned_inspector.cpp
+++ b/editor/editor_sectioned_inspector.cpp
@@ -239,7 +239,8 @@ void SectionedInspector::update_category_list() {
for (PropertyInfo &pi : pinfo) {
if (pi.usage & PROPERTY_USAGE_CATEGORY) {
continue;
- } else if (!(pi.usage & PROPERTY_USAGE_EDITOR) || (restrict_to_basic && !(pi.usage & PROPERTY_USAGE_EDITOR_BASIC_SETTING))) {
+ } else if (!(pi.usage & PROPERTY_USAGE_EDITOR) ||
+ (filter_text.is_empty() && restrict_to_basic && !(pi.usage & PROPERTY_USAGE_EDITOR_BASIC_SETTING))) {
continue;
}
diff --git a/editor/editor_settings.cpp b/editor/editor_settings.cpp
index 25c84e7447..835eecdeb3 100644
--- a/editor/editor_settings.cpp
+++ b/editor/editor_settings.cpp
@@ -1488,7 +1488,9 @@ void ED_SHORTCUT_OVERRIDE_ARRAY(const String &p_path, const String &p_feature, c
// Only add the override if the OS supports the provided feature.
if (!OS::get_singleton()->has_feature(p_feature)) {
- return;
+ if (!(p_feature == "macos" && (OS::get_singleton()->has_feature("web_macos") || OS::get_singleton()->has_feature("web_ios")))) {
+ return;
+ }
}
Array events;
@@ -1496,12 +1498,12 @@ void ED_SHORTCUT_OVERRIDE_ARRAY(const String &p_path, const String &p_feature, c
for (int i = 0; i < p_keycodes.size(); i++) {
Key keycode = (Key)p_keycodes[i];
-#ifdef MACOS_ENABLED
- // Use Cmd+Backspace as a general replacement for Delete shortcuts on macOS
- if (keycode == Key::KEY_DELETE) {
- keycode = KeyModifierMask::META | Key::BACKSPACE;
+ if (OS::get_singleton()->has_feature("macos") || OS::get_singleton()->has_feature("web_macos") || OS::get_singleton()->has_feature("web_ios")) {
+ // Use Cmd+Backspace as a general replacement for Delete shortcuts on macOS
+ if (keycode == Key::KEY_DELETE) {
+ keycode = KeyModifierMask::META | Key::BACKSPACE;
+ }
}
-#endif
Ref<InputEventKey> ie;
if (keycode != Key::NONE) {
@@ -1530,12 +1532,12 @@ Ref<Shortcut> ED_SHORTCUT_ARRAY(const String &p_path, const String &p_name, cons
for (int i = 0; i < p_keycodes.size(); i++) {
Key keycode = (Key)p_keycodes[i];
-#ifdef MACOS_ENABLED
- // Use Cmd+Backspace as a general replacement for Delete shortcuts on macOS
- if (keycode == Key::KEY_DELETE) {
- keycode = KeyModifierMask::META | Key::BACKSPACE;
+ if (OS::get_singleton()->has_feature("macos") || OS::get_singleton()->has_feature("web_macos") || OS::get_singleton()->has_feature("web_ios")) {
+ // Use Cmd+Backspace as a general replacement for Delete shortcuts on macOS
+ if (keycode == Key::KEY_DELETE) {
+ keycode = KeyModifierMask::META | Key::BACKSPACE;
+ }
}
-#endif
Ref<InputEventKey> ie;
if (keycode != Key::NONE) {
diff --git a/editor/editor_themes.cpp b/editor/editor_themes.cpp
index c07e9c6707..43c5d1d6cd 100644
--- a/editor/editor_themes.cpp
+++ b/editor/editor_themes.cpp
@@ -836,7 +836,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
theme->set_color("font_focus_color", "MenuButton", font_focus_color);
theme->set_color("font_outline_color", "MenuButton", font_outline_color);
- theme->set_constant("outline_size", "MenuButton", 0 * EDSCALE);
+ theme->set_constant("outline_size", "MenuButton", 0);
theme->set_stylebox("MenuHover", "EditorStyles", style_widget_hover);
@@ -862,7 +862,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
theme->set_color("icon_disabled_color", "Button", icon_disabled_color);
theme->set_constant("h_separation", "Button", 2 * EDSCALE);
- theme->set_constant("outline_size", "Button", 0 * EDSCALE);
+ theme->set_constant("outline_size", "Button", 0);
const float ACTION_BUTTON_EXTRA_MARGIN = 32 * EDSCALE;
@@ -919,7 +919,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
theme->set_color("icon_disabled_color", "MenuBar", icon_disabled_color);
theme->set_constant("h_separation", "MenuBar", 4 * EDSCALE);
- theme->set_constant("outline_size", "MenuBar", 0 * EDSCALE);
+ theme->set_constant("outline_size", "MenuBar", 0);
// OptionButton
Ref<StyleBoxFlat> style_option_button_focus = style_widget_focus->duplicate();
@@ -963,7 +963,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
theme->set_constant("arrow_margin", "OptionButton", widget_default_margin.x - 2 * EDSCALE);
theme->set_constant("modulate_arrow", "OptionButton", true);
theme->set_constant("h_separation", "OptionButton", 4 * EDSCALE);
- theme->set_constant("outline_size", "OptionButton", 0 * EDSCALE);
+ theme->set_constant("outline_size", "OptionButton", 0);
// CheckButton
theme->set_stylebox("normal", "CheckButton", style_menu);
@@ -997,8 +997,8 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
theme->set_color("icon_disabled_color", "CheckButton", icon_disabled_color);
theme->set_constant("h_separation", "CheckButton", 8 * EDSCALE);
- theme->set_constant("check_v_offset", "CheckButton", 0 * EDSCALE);
- theme->set_constant("outline_size", "CheckButton", 0 * EDSCALE);
+ theme->set_constant("check_v_offset", "CheckButton", 0);
+ theme->set_constant("outline_size", "CheckButton", 0);
// Checkbox
Ref<StyleBoxFlat> sb_checkbox = style_menu->duplicate();
@@ -1033,8 +1033,8 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
theme->set_color("icon_disabled_color", "CheckBox", icon_disabled_color);
theme->set_constant("h_separation", "CheckBox", 8 * EDSCALE);
- theme->set_constant("check_v_offset", "CheckBox", 0 * EDSCALE);
- theme->set_constant("outline_size", "CheckBox", 0 * EDSCALE);
+ theme->set_constant("check_v_offset", "CheckBox", 0);
+ theme->set_constant("outline_size", "CheckBox", 0);
// PopupDialog
theme->set_stylebox("panel", "PopupDialog", style_popup);
@@ -1089,7 +1089,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
const int vsep_base = extra_spacing + default_margin_size + 6;
const int force_even_vsep = vsep_base + (vsep_base % 2);
theme->set_constant("v_separation", "PopupMenu", force_even_vsep * EDSCALE);
- theme->set_constant("outline_size", "PopupMenu", 0 * EDSCALE);
+ theme->set_constant("outline_size", "PopupMenu", 0);
theme->set_constant("item_start_padding", "PopupMenu", default_margin_size * 1.5 * EDSCALE);
theme->set_constant("item_end_padding", "PopupMenu", default_margin_size * 1.5 * EDSCALE);
@@ -1208,7 +1208,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
theme->set_constant("button_margin", "Tree", default_margin_size * EDSCALE);
theme->set_constant("scroll_border", "Tree", 40 * EDSCALE);
theme->set_constant("scroll_speed", "Tree", 12);
- theme->set_constant("outline_size", "Tree", 0 * EDSCALE);
+ theme->set_constant("outline_size", "Tree", 0);
theme->set_constant("scrollbar_margin_left", "Tree", 0);
theme->set_constant("scrollbar_margin_top", "Tree", 0);
theme->set_constant("scrollbar_margin_right", "Tree", 0);
@@ -1310,7 +1310,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
theme->set_constant("h_separation", "ItemList", 6 * EDSCALE);
theme->set_constant("icon_margin", "ItemList", 6 * EDSCALE);
theme->set_constant("line_separation", "ItemList", 3 * EDSCALE);
- theme->set_constant("outline_size", "ItemList", 0 * EDSCALE);
+ theme->set_constant("outline_size", "ItemList", 0);
// TabBar & TabContainer
Ref<StyleBoxFlat> style_tabbar_background = make_flat_stylebox(dark_color_1, 0, 0, 0, 0, corner_radius * EDSCALE);
@@ -1348,9 +1348,9 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
theme->set_icon("drop_mark", "TabContainer", theme->get_icon(SNAME("GuiTabDropMark"), SNAME("EditorIcons")));
theme->set_icon("drop_mark", "TabBar", theme->get_icon(SNAME("GuiTabDropMark"), SNAME("EditorIcons")));
theme->set_constant("side_margin", "TabContainer", 0);
- theme->set_constant("outline_size", "TabContainer", 0 * EDSCALE);
+ theme->set_constant("outline_size", "TabContainer", 0);
theme->set_constant("h_separation", "TabBar", 4 * EDSCALE);
- theme->set_constant("outline_size", "TabBar", 0 * EDSCALE);
+ theme->set_constant("outline_size", "TabBar", 0);
// Content of each tab.
Ref<StyleBoxFlat> style_content_panel = style_default->duplicate();
@@ -1446,7 +1446,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
theme->set_color("selection_color", "LineEdit", selection_color);
theme->set_color("clear_button_color", "LineEdit", font_color);
theme->set_color("clear_button_color_pressed", "LineEdit", accent_color);
- theme->set_constant("outline_size", "LineEdit", 0 * EDSCALE);
+ theme->set_constant("outline_size", "LineEdit", 0);
// TextEdit
theme->set_stylebox("normal", "TextEdit", style_line_edit);
@@ -1463,7 +1463,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
theme->set_color("background_color", "TextEdit", Color(0, 0, 0, 0));
theme->set_constant("line_spacing", "TextEdit", 4 * EDSCALE);
- theme->set_constant("outline_size", "TextEdit", 0 * EDSCALE);
+ theme->set_constant("outline_size", "TextEdit", 0);
theme->set_icon("h_grabber", "SplitContainer", theme->get_icon(SNAME("GuiHsplitter"), SNAME("EditorIcons")));
theme->set_icon("v_grabber", "SplitContainer", theme->get_icon(SNAME("GuiVsplitter"), SNAME("EditorIcons")));
@@ -1597,10 +1597,11 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
theme->set_color("default_color", "RichTextLabel", font_color);
theme->set_color("font_shadow_color", "RichTextLabel", Color(0, 0, 0, 0));
theme->set_color("font_outline_color", "RichTextLabel", font_outline_color);
+ theme->set_color("selection_color", "RichTextLabel", selection_color);
theme->set_constant("shadow_offset_x", "RichTextLabel", 1 * EDSCALE);
theme->set_constant("shadow_offset_y", "RichTextLabel", 1 * EDSCALE);
theme->set_constant("shadow_outline_size", "RichTextLabel", 1 * EDSCALE);
- theme->set_constant("outline_size", "RichTextLabel", 0 * EDSCALE);
+ theme->set_constant("outline_size", "RichTextLabel", 0);
theme->set_stylebox("focus", "RichTextLabel", make_empty_stylebox());
theme->set_stylebox("normal", "RichTextLabel", style_tree_bg);
@@ -1618,7 +1619,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
theme->set_color("value_color", "EditorHelp", font_color * Color(1, 1, 1, 0.6));
theme->set_color("qualifier_color", "EditorHelp", font_color * Color(1, 1, 1, 0.8));
theme->set_color("type_color", "EditorHelp", accent_color.lerp(font_color, 0.5));
- theme->set_color("selection_color", "EditorHelp", accent_color * Color(1, 1, 1, 0.4));
+ theme->set_color("selection_color", "EditorHelp", selection_color);
theme->set_color("link_color", "EditorHelp", accent_color.lerp(mono_color, 0.8));
theme->set_color("code_color", "EditorHelp", accent_color.lerp(mono_color, 0.6));
theme->set_color("kbd_color", "EditorHelp", accent_color.lerp(property_color, 0.6));
@@ -1644,7 +1645,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
theme->set_constant("shadow_offset_y", "Label", 1 * EDSCALE);
theme->set_constant("shadow_outline_size", "Label", 1 * EDSCALE);
theme->set_constant("line_spacing", "Label", 3 * EDSCALE);
- theme->set_constant("outline_size", "Label", 0 * EDSCALE);
+ theme->set_constant("outline_size", "Label", 0);
// LinkButton
theme->set_stylebox("focus", "LinkButton", style_empty);
@@ -1656,7 +1657,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
theme->set_color("font_disabled_color", "LinkButton", font_disabled_color);
theme->set_color("font_outline_color", "LinkButton", font_outline_color);
- theme->set_constant("outline_size", "LinkButton", 0 * EDSCALE);
+ theme->set_constant("outline_size", "LinkButton", 0);
// TooltipPanel + TooltipLabel
// TooltipPanel is also used for custom tooltips, while TooltipLabel
@@ -1693,7 +1694,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {
theme->set_stylebox("fill", "ProgressBar", make_stylebox(theme->get_icon(SNAME("GuiProgressFill"), SNAME("EditorIcons")), 6, 6, 6, 6, 2, 1, 2, 1));
theme->set_color("font_color", "ProgressBar", font_color);
theme->set_color("font_outline_color", "ProgressBar", font_outline_color);
- theme->set_constant("outline_size", "ProgressBar", 0 * EDSCALE);
+ theme->set_constant("outline_size", "ProgressBar", 0);
// GraphEdit
theme->set_stylebox("bg", "GraphEdit", style_tree_bg);
diff --git a/editor/event_listener_line_edit.cpp b/editor/event_listener_line_edit.cpp
index ee401810ad..fa494636ea 100644
--- a/editor/event_listener_line_edit.cpp
+++ b/editor/event_listener_line_edit.cpp
@@ -65,11 +65,11 @@ String EventListenerLineEdit::get_event_text(const Ref<InputEvent> &p_event, boo
String mods_text = key->InputEventWithModifiers::as_text();
mods_text = mods_text.is_empty() ? mods_text : mods_text + "+";
if (key->is_command_or_control_autoremap()) {
-#ifdef MACOS_ENABLED
- mods_text = mods_text.replace("Command", "Command/Ctrl");
-#else
- mods_text = mods_text.replace("Ctrl", "Command/Ctrl");
-#endif
+ if (OS::get_singleton()->has_feature("macos") || OS::get_singleton()->has_feature("web_macos") || OS::get_singleton()->has_feature("web_ios")) {
+ mods_text = mods_text.replace("Command", "Command/Ctrl");
+ } else {
+ mods_text = mods_text.replace("Ctrl", "Command/Ctrl");
+ }
}
if (key->get_keycode() != Key::NONE) {
diff --git a/editor/export/project_export.cpp b/editor/export/project_export.cpp
index 2516e5df96..95c79ab58c 100644
--- a/editor/export/project_export.cpp
+++ b/editor/export/project_export.cpp
@@ -32,13 +32,13 @@
#include "core/config/project_settings.h"
#include "core/version.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_file_system.h"
#include "editor/editor_node.h"
#include "editor/editor_properties.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
#include "editor/export/editor_export.h"
+#include "editor/gui/editor_file_dialog.h"
#include "scene/gui/check_box.h"
#include "scene/gui/check_button.h"
#include "scene/gui/item_list.h"
@@ -47,6 +47,7 @@
#include "scene/gui/option_button.h"
#include "scene/gui/popup_menu.h"
#include "scene/gui/split_container.h"
+#include "scene/gui/tab_container.h"
#include "scene/gui/texture_rect.h"
#include "scene/gui/tree.h"
diff --git a/editor/fbx_importer_manager.h b/editor/fbx_importer_manager.h
index dd5fcfd16e..55061c041a 100644
--- a/editor/fbx_importer_manager.h
+++ b/editor/fbx_importer_manager.h
@@ -31,7 +31,7 @@
#ifndef FBX_IMPORTER_MANAGER_H
#define FBX_IMPORTER_MANAGER_H
-#include "editor/editor_file_dialog.h"
+#include "editor/gui/editor_file_dialog.h"
#include "scene/gui/dialogs.h"
#include "scene/gui/line_edit.h"
diff --git a/editor/filesystem_dock.cpp b/editor/filesystem_dock.cpp
index e96f902b64..066e8cb84e 100644
--- a/editor/filesystem_dock.cpp
+++ b/editor/filesystem_dock.cpp
@@ -37,17 +37,22 @@
#include "core/os/keyboard.h"
#include "core/os/os.h"
#include "core/templates/list.h"
+#include "editor/create_dialog.h"
#include "editor/editor_feature_profile.h"
#include "editor/editor_node.h"
#include "editor/editor_resource_preview.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
+#include "editor/gui/editor_dir_dialog.h"
#include "editor/import/resource_importer_scene.h"
#include "editor/import_dock.h"
#include "editor/scene_create_dialog.h"
#include "editor/scene_tree_dock.h"
#include "editor/shader_create_dialog.h"
+#include "scene/gui/item_list.h"
#include "scene/gui/label.h"
+#include "scene/gui/line_edit.h"
+#include "scene/gui/progress_bar.h"
#include "scene/main/window.h"
#include "scene/resources/packed_scene.h"
#include "servers/display_server.h"
diff --git a/editor/filesystem_dock.h b/editor/filesystem_dock.h
index 35ca3eaccb..7c67be44be 100644
--- a/editor/filesystem_dock.h
+++ b/editor/filesystem_dock.h
@@ -31,22 +31,22 @@
#ifndef FILESYSTEM_DOCK_H
#define FILESYSTEM_DOCK_H
-#include "editor/create_dialog.h"
#include "editor/dependency_editor.h"
-#include "editor/editor_dir_dialog.h"
#include "editor/editor_file_system.h"
#include "editor/plugins/script_editor_plugin.h"
#include "editor/script_create_dialog.h"
#include "scene/gui/box_container.h"
#include "scene/gui/control.h"
#include "scene/gui/dialogs.h"
-#include "scene/gui/item_list.h"
-#include "scene/gui/line_edit.h"
#include "scene/gui/menu_button.h"
-#include "scene/gui/progress_bar.h"
#include "scene/gui/split_container.h"
#include "scene/gui/tree.h"
+class CreateDialog;
+class EditorDirDialog;
+class ItemList;
+class LineEdit;
+class ProgressBar;
class SceneCreateDialog;
class ShaderCreateDialog;
diff --git a/editor/groups_editor.cpp b/editor/groups_editor.cpp
index 7f0417ea29..37b4654113 100644
--- a/editor/groups_editor.cpp
+++ b/editor/groups_editor.cpp
@@ -33,10 +33,12 @@
#include "editor/editor_node.h"
#include "editor/editor_scale.h"
#include "editor/editor_undo_redo_manager.h"
+#include "editor/gui/scene_tree_editor.h"
#include "editor/scene_tree_dock.h"
-#include "editor/scene_tree_editor.h"
-#include "scene/gui/box_container.h"
+#include "scene/gui/button.h"
#include "scene/gui/label.h"
+#include "scene/gui/line_edit.h"
+#include "scene/gui/tree.h"
#include "scene/resources/packed_scene.h"
static bool can_edit(Node *p_node, String p_group) {
diff --git a/editor/groups_editor.h b/editor/groups_editor.h
index cd9d458f4b..27322b63da 100644
--- a/editor/groups_editor.h
+++ b/editor/groups_editor.h
@@ -31,13 +31,12 @@
#ifndef GROUPS_EDITOR_H
#define GROUPS_EDITOR_H
-#include "editor/scene_tree_editor.h"
-#include "scene/gui/button.h"
#include "scene/gui/dialogs.h"
-#include "scene/gui/item_list.h"
-#include "scene/gui/line_edit.h"
-#include "scene/gui/popup.h"
-#include "scene/gui/tree.h"
+
+class Button;
+class LineEdit;
+class Tree;
+class TreeItem;
class GroupDialog : public AcceptDialog {
GDCLASS(GroupDialog, AcceptDialog);
diff --git a/editor/fileserver/SCsub b/editor/gui/SCsub
index 359d04e5df..359d04e5df 100644
--- a/editor/fileserver/SCsub
+++ b/editor/gui/SCsub
diff --git a/editor/editor_dir_dialog.cpp b/editor/gui/editor_dir_dialog.cpp
index 9da592d639..9da592d639 100644
--- a/editor/editor_dir_dialog.cpp
+++ b/editor/gui/editor_dir_dialog.cpp
diff --git a/editor/editor_dir_dialog.h b/editor/gui/editor_dir_dialog.h
index 9f2b48c164..9f2b48c164 100644
--- a/editor/editor_dir_dialog.h
+++ b/editor/gui/editor_dir_dialog.h
diff --git a/editor/editor_file_dialog.cpp b/editor/gui/editor_file_dialog.cpp
index 192f4b2edb..62e0520799 100644
--- a/editor/editor_file_dialog.cpp
+++ b/editor/gui/editor_file_dialog.cpp
@@ -34,7 +34,7 @@
#include "core/io/file_access.h"
#include "core/os/keyboard.h"
#include "core/os/os.h"
-#include "dependency_editor.h"
+#include "editor/dependency_editor.h"
#include "editor/editor_file_system.h"
#include "editor/editor_node.h"
#include "editor/editor_resource_preview.h"
diff --git a/editor/editor_file_dialog.h b/editor/gui/editor_file_dialog.h
index 923c7080c5..923c7080c5 100644
--- a/editor/editor_file_dialog.h
+++ b/editor/gui/editor_file_dialog.h
diff --git a/editor/editor_path.cpp b/editor/gui/editor_object_selector.cpp
index bb464ee366..9988e285c7 100644
--- a/editor/editor_path.cpp
+++ b/editor/gui/editor_object_selector.cpp
@@ -1,5 +1,5 @@
/**************************************************************************/
-/* editor_path.cpp */
+/* editor_object_selector.cpp */
/**************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
@@ -28,20 +28,20 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
-#include "editor_path.h"
+#include "editor_object_selector.h"
#include "editor/editor_data.h"
#include "editor/editor_node.h"
#include "editor/editor_scale.h"
#include "editor/multi_node_edit.h"
-Size2 EditorPath::get_minimum_size() const {
+Size2 EditorObjectSelector::get_minimum_size() const {
Ref<Font> font = get_theme_font(SNAME("font"));
int font_size = get_theme_font_size(SNAME("font_size"));
return Button::get_minimum_size() + Size2(0, font->get_height(font_size));
}
-void EditorPath::_add_children_to_popup(Object *p_obj, int p_depth) {
+void EditorObjectSelector::_add_children_to_popup(Object *p_obj, int p_depth) {
if (p_depth > 8) {
return;
}
@@ -86,7 +86,7 @@ void EditorPath::_add_children_to_popup(Object *p_obj, int p_depth) {
}
}
-void EditorPath::_show_popup() {
+void EditorObjectSelector::_show_popup() {
if (sub_objects_menu->is_visible()) {
sub_objects_menu->hide();
return;
@@ -106,7 +106,7 @@ void EditorPath::_show_popup() {
sub_objects_menu->popup();
}
-void EditorPath::_about_to_show() {
+void EditorObjectSelector::_about_to_show() {
Object *obj = ObjectDB::get_instance(history->get_path_object(history->get_path_size() - 1));
if (!obj) {
return;
@@ -121,7 +121,7 @@ void EditorPath::_about_to_show() {
}
}
-void EditorPath::update_path() {
+void EditorObjectSelector::update_path() {
for (int i = 0; i < history->get_path_size(); i++) {
Object *obj = ObjectDB::get_instance(history->get_path_object(i));
if (!obj) {
@@ -170,7 +170,7 @@ void EditorPath::update_path() {
}
}
-void EditorPath::clear_path() {
+void EditorObjectSelector::clear_path() {
set_disabled(true);
set_tooltip_text("");
@@ -179,12 +179,12 @@ void EditorPath::clear_path() {
sub_objects_icon->hide();
}
-void EditorPath::enable_path() {
+void EditorObjectSelector::enable_path() {
set_disabled(false);
sub_objects_icon->show();
}
-void EditorPath::_id_pressed(int p_idx) {
+void EditorObjectSelector::_id_pressed(int p_idx) {
ERR_FAIL_INDEX(p_idx, objects.size());
Object *obj = ObjectDB::get_instance(objects[p_idx]);
@@ -195,7 +195,7 @@ void EditorPath::_id_pressed(int p_idx) {
EditorNode::get_singleton()->push_item(obj);
}
-void EditorPath::_notification(int p_what) {
+void EditorObjectSelector::_notification(int p_what) {
switch (p_what) {
case NOTIFICATION_ENTER_TREE:
case NOTIFICATION_THEME_CHANGED: {
@@ -210,15 +210,15 @@ void EditorPath::_notification(int p_what) {
} break;
case NOTIFICATION_READY: {
- connect("pressed", callable_mp(this, &EditorPath::_show_popup));
+ connect("pressed", callable_mp(this, &EditorObjectSelector::_show_popup));
} break;
}
}
-void EditorPath::_bind_methods() {
+void EditorObjectSelector::_bind_methods() {
}
-EditorPath::EditorPath(EditorSelectionHistory *p_history) {
+EditorObjectSelector::EditorObjectSelector(EditorSelectionHistory *p_history) {
history = p_history;
MarginContainer *main_mc = memnew(MarginContainer);
@@ -249,8 +249,8 @@ EditorPath::EditorPath(EditorSelectionHistory *p_history) {
sub_objects_menu = memnew(PopupMenu);
sub_objects_menu->set_auto_translate(false);
add_child(sub_objects_menu);
- sub_objects_menu->connect("about_to_popup", callable_mp(this, &EditorPath::_about_to_show));
- sub_objects_menu->connect("id_pressed", callable_mp(this, &EditorPath::_id_pressed));
+ sub_objects_menu->connect("about_to_popup", callable_mp(this, &EditorObjectSelector::_about_to_show));
+ sub_objects_menu->connect("id_pressed", callable_mp(this, &EditorObjectSelector::_id_pressed));
set_tooltip_text(TTR("Open a list of sub-resources."));
}
diff --git a/editor/editor_path.h b/editor/gui/editor_object_selector.h
index b6778b682e..72ff285cf6 100644
--- a/editor/editor_path.h
+++ b/editor/gui/editor_object_selector.h
@@ -1,5 +1,5 @@
/**************************************************************************/
-/* editor_path.h */
+/* editor_object_selector.h */
/**************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
@@ -28,8 +28,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
-#ifndef EDITOR_PATH_H
-#define EDITOR_PATH_H
+#ifndef EDITOR_OBJECT_SELECTOR_H
+#define EDITOR_OBJECT_SELECTOR_H
#include "scene/gui/box_container.h"
#include "scene/gui/button.h"
@@ -39,8 +39,8 @@
class EditorSelectionHistory;
-class EditorPath : public Button {
- GDCLASS(EditorPath, Button);
+class EditorObjectSelector : public Button {
+ GDCLASS(EditorObjectSelector, Button);
EditorSelectionHistory *history = nullptr;
@@ -67,7 +67,7 @@ public:
void clear_path();
void enable_path();
- EditorPath(EditorSelectionHistory *p_history);
+ EditorObjectSelector(EditorSelectionHistory *p_history);
};
-#endif // EDITOR_PATH_H
+#endif // EDITOR_OBJECT_SELECTOR_H
diff --git a/editor/editor_spin_slider.cpp b/editor/gui/editor_spin_slider.cpp
index 2d3ec437c6..2e67893fac 100644
--- a/editor/editor_spin_slider.cpp
+++ b/editor/gui/editor_spin_slider.cpp
@@ -37,11 +37,7 @@
String EditorSpinSlider::get_tooltip(const Point2 &p_pos) const {
if (grabber->is_visible()) {
-#ifdef MACOS_ENABLED
- Key key = Key::META;
-#else
- Key key = Key::CTRL;
-#endif
+ Key key = (OS::get_singleton()->has_feature("macos") || OS::get_singleton()->has_feature("web_macos") || OS::get_singleton()->has_feature("web_ios")) ? Key::META : Key::CTRL;
return TS->format_number(rtos(get_value())) + "\n\n" + vformat(TTR("Hold %s to round to integers.\nHold Shift for more precise changes."), find_keycode_name(key));
}
return TS->format_number(rtos(get_value()));
diff --git a/editor/editor_spin_slider.h b/editor/gui/editor_spin_slider.h
index a4d810b18b..a4d810b18b 100644
--- a/editor/editor_spin_slider.h
+++ b/editor/gui/editor_spin_slider.h
diff --git a/editor/editor_title_bar.cpp b/editor/gui/editor_title_bar.cpp
index ae5cdfd72b..c251c70c6d 100644
--- a/editor/editor_title_bar.cpp
+++ b/editor/gui/editor_title_bar.cpp
@@ -28,7 +28,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
-#include "editor/editor_title_bar.h"
+#include "editor_title_bar.h"
void EditorTitleBar::gui_input(const Ref<InputEvent> &p_event) {
if (!can_move) {
diff --git a/editor/editor_title_bar.h b/editor/gui/editor_title_bar.h
index 4055476b82..4055476b82 100644
--- a/editor/editor_title_bar.h
+++ b/editor/gui/editor_title_bar.h
diff --git a/editor/editor_toaster.cpp b/editor/gui/editor_toaster.cpp
index 10c3e963af..10c3e963af 100644
--- a/editor/editor_toaster.cpp
+++ b/editor/gui/editor_toaster.cpp
diff --git a/editor/editor_toaster.h b/editor/gui/editor_toaster.h
index 6b834f8288..6b834f8288 100644
--- a/editor/editor_toaster.h
+++ b/editor/gui/editor_toaster.h
diff --git a/editor/editor_zoom_widget.cpp b/editor/gui/editor_zoom_widget.cpp
index 3998b33a53..3998b33a53 100644
--- a/editor/editor_zoom_widget.cpp
+++ b/editor/gui/editor_zoom_widget.cpp
diff --git a/editor/editor_zoom_widget.h b/editor/gui/editor_zoom_widget.h
index be54043d93..be54043d93 100644
--- a/editor/editor_zoom_widget.h
+++ b/editor/gui/editor_zoom_widget.h
diff --git a/editor/scene_tree_editor.cpp b/editor/gui/scene_tree_editor.cpp
index 808c058ecd..5b9f2c3b21 100644
--- a/editor/scene_tree_editor.cpp
+++ b/editor/gui/scene_tree_editor.cpp
@@ -42,6 +42,8 @@
#include "editor/plugins/canvas_item_editor_plugin.h"
#include "editor/plugins/script_editor_plugin.h"
#include "scene/gui/label.h"
+#include "scene/gui/tab_container.h"
+#include "scene/gui/texture_rect.h"
#include "scene/main/window.h"
#include "scene/resources/packed_scene.h"
diff --git a/editor/scene_tree_editor.h b/editor/gui/scene_tree_editor.h
index 6a3213f8e4..6a3213f8e4 100644
--- a/editor/scene_tree_editor.h
+++ b/editor/gui/scene_tree_editor.h
diff --git a/editor/import/dynamic_font_import_settings.cpp b/editor/import/dynamic_font_import_settings.cpp
index 6be6682232..65fc79a7a5 100644
--- a/editor/import/dynamic_font_import_settings.cpp
+++ b/editor/import/dynamic_font_import_settings.cpp
@@ -31,7 +31,6 @@
#include "dynamic_font_import_settings.h"
#include "core/config/project_settings.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_file_system.h"
#include "editor/editor_inspector.h"
#include "editor/editor_locale_dialog.h"
@@ -39,6 +38,7 @@
#include "editor/editor_property_name_processor.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
+#include "editor/gui/editor_file_dialog.h"
/*************************************************************************/
/* Settings data */
diff --git a/editor/import/scene_import_settings.cpp b/editor/import/scene_import_settings.cpp
index 4dd3de8ca2..e7ba47e2a1 100644
--- a/editor/import/scene_import_settings.cpp
+++ b/editor/import/scene_import_settings.cpp
@@ -31,12 +31,12 @@
#include "scene_import_settings.h"
#include "core/config/project_settings.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_file_system.h"
#include "editor/editor_inspector.h"
#include "editor/editor_node.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
+#include "editor/gui/editor_file_dialog.h"
#include "scene/3d/importer_mesh_instance_3d.h"
#include "scene/animation/animation_player.h"
#include "scene/resources/importer_mesh.h"
diff --git a/editor/inspector_dock.cpp b/editor/inspector_dock.cpp
index f7bbeb92c6..2acc83cead 100644
--- a/editor/inspector_dock.cpp
+++ b/editor/inspector_dock.cpp
@@ -30,12 +30,13 @@
#include "inspector_dock.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_node.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
#include "editor/editor_undo_redo_manager.h"
#include "editor/filesystem_dock.h"
+#include "editor/gui/editor_file_dialog.h"
+#include "editor/gui/editor_object_selector.h"
#include "editor/plugins/script_editor_plugin.h"
InspectorDock *InspectorDock::singleton = nullptr;
@@ -510,7 +511,7 @@ void InspectorDock::update(Object *p_object) {
if (editor_history->get_history_len() > 0) {
history_menu->set_disabled(false);
}
- editor_path->update_path();
+ object_selector->update_path();
current = p_object;
@@ -530,11 +531,11 @@ void InspectorDock::update(Object *p_object) {
if (!is_object || is_text_file) {
info->hide();
- editor_path->clear_path();
+ object_selector->clear_path();
return;
}
- editor_path->enable_path();
+ object_selector->enable_path();
PopupMenu *p = object_menu->get_popup();
@@ -689,9 +690,9 @@ InspectorDock::InspectorDock(EditorData &p_editor_data) {
HBoxContainer *subresource_hb = memnew(HBoxContainer);
add_child(subresource_hb);
- editor_path = memnew(EditorPath(EditorNode::get_singleton()->get_editor_selection_history()));
- editor_path->set_h_size_flags(Control::SIZE_EXPAND_FILL);
- subresource_hb->add_child(editor_path);
+ object_selector = memnew(EditorObjectSelector(EditorNode::get_singleton()->get_editor_selection_history()));
+ object_selector->set_h_size_flags(Control::SIZE_EXPAND_FILL);
+ subresource_hb->add_child(object_selector);
open_docs_button = memnew(Button);
open_docs_button->set_flat(true);
diff --git a/editor/inspector_dock.h b/editor/inspector_dock.h
index c2c1b55fb1..622a2521b3 100644
--- a/editor/inspector_dock.h
+++ b/editor/inspector_dock.h
@@ -34,7 +34,6 @@
#include "editor/create_dialog.h"
#include "editor/editor_data.h"
#include "editor/editor_inspector.h"
-#include "editor/editor_path.h"
#include "scene/gui/box_container.h"
#include "scene/gui/button.h"
#include "scene/gui/dialogs.h"
@@ -43,6 +42,7 @@
#include "scene/gui/tree.h"
class EditorFileDialog;
+class EditorObjectSelector;
class InspectorDock : public VBoxContainer {
GDCLASS(InspectorDock, VBoxContainer);
@@ -92,7 +92,7 @@ class InspectorDock : public VBoxContainer {
Button *open_docs_button = nullptr;
MenuButton *object_menu = nullptr;
- EditorPath *editor_path = nullptr;
+ EditorObjectSelector *object_selector = nullptr;
bool info_is_warning = false; // Display in yellow and use warning icon if true.
Button *info = nullptr;
diff --git a/editor/localization_editor.cpp b/editor/localization_editor.cpp
index fac1ec3523..351986a80b 100644
--- a/editor/localization_editor.cpp
+++ b/editor/localization_editor.cpp
@@ -32,11 +32,11 @@
#include "core/config/project_settings.h"
#include "core/string/translation.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_scale.h"
#include "editor/editor_translation_parser.h"
#include "editor/editor_undo_redo_manager.h"
#include "editor/filesystem_dock.h"
+#include "editor/gui/editor_file_dialog.h"
#include "editor/pot_generator.h"
#include "scene/gui/control.h"
diff --git a/editor/plugins/abstract_polygon_2d_editor.cpp b/editor/plugins/abstract_polygon_2d_editor.cpp
index 7c23e19564..4375a33b4f 100644
--- a/editor/plugins/abstract_polygon_2d_editor.cpp
+++ b/editor/plugins/abstract_polygon_2d_editor.cpp
@@ -37,6 +37,8 @@
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
#include "editor/editor_undo_redo_manager.h"
+#include "scene/gui/button.h"
+#include "scene/gui/dialogs.h"
#include "scene/gui/separator.h"
bool AbstractPolygon2DEditor::Vertex::operator==(const AbstractPolygon2DEditor::Vertex &p_vertex) const {
diff --git a/editor/plugins/abstract_polygon_2d_editor.h b/editor/plugins/abstract_polygon_2d_editor.h
index 832972c398..31c20ac146 100644
--- a/editor/plugins/abstract_polygon_2d_editor.h
+++ b/editor/plugins/abstract_polygon_2d_editor.h
@@ -35,6 +35,7 @@
#include "scene/2d/polygon_2d.h"
#include "scene/gui/box_container.h"
+class Button;
class CanvasItemEditor;
class ConfirmationDialog;
diff --git a/editor/plugins/animation_blend_space_1d_editor.cpp b/editor/plugins/animation_blend_space_1d_editor.cpp
index df94815105..15fa60f11b 100644
--- a/editor/plugins/animation_blend_space_1d_editor.cpp
+++ b/editor/plugins/animation_blend_space_1d_editor.cpp
@@ -31,11 +31,11 @@
#include "animation_blend_space_1d_editor.h"
#include "core/os/keyboard.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_node.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
#include "editor/editor_undo_redo_manager.h"
+#include "editor/gui/editor_file_dialog.h"
#include "scene/animation/animation_blend_tree.h"
#include "scene/gui/check_box.h"
#include "scene/gui/option_button.h"
diff --git a/editor/plugins/animation_blend_space_2d_editor.cpp b/editor/plugins/animation_blend_space_2d_editor.cpp
index 0daf934e17..e96cd5770c 100644
--- a/editor/plugins/animation_blend_space_2d_editor.cpp
+++ b/editor/plugins/animation_blend_space_2d_editor.cpp
@@ -35,11 +35,11 @@
#include "core/io/resource_loader.h"
#include "core/math/geometry_2d.h"
#include "core/os/keyboard.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_node.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
#include "editor/editor_undo_redo_manager.h"
+#include "editor/gui/editor_file_dialog.h"
#include "scene/animation/animation_blend_tree.h"
#include "scene/animation/animation_player.h"
#include "scene/gui/check_box.h"
diff --git a/editor/plugins/animation_blend_tree_editor_plugin.cpp b/editor/plugins/animation_blend_tree_editor_plugin.cpp
index 77785b15ca..9dff5127ae 100644
--- a/editor/plugins/animation_blend_tree_editor_plugin.cpp
+++ b/editor/plugins/animation_blend_tree_editor_plugin.cpp
@@ -34,12 +34,12 @@
#include "core/input/input.h"
#include "core/io/resource_loader.h"
#include "core/os/keyboard.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_inspector.h"
#include "editor/editor_node.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
#include "editor/editor_undo_redo_manager.h"
+#include "editor/gui/editor_file_dialog.h"
#include "scene/animation/animation_player.h"
#include "scene/gui/check_box.h"
#include "scene/gui/menu_button.h"
diff --git a/editor/plugins/animation_library_editor.cpp b/editor/plugins/animation_library_editor.cpp
index bf7e419fe4..4db4f870ca 100644
--- a/editor/plugins/animation_library_editor.cpp
+++ b/editor/plugins/animation_library_editor.cpp
@@ -29,11 +29,11 @@
/**************************************************************************/
#include "animation_library_editor.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_node.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
#include "editor/editor_undo_redo_manager.h"
+#include "editor/gui/editor_file_dialog.h"
void AnimationLibraryEditor::set_animation_player(Object *p_player) {
player = p_player;
diff --git a/editor/plugins/animation_player_editor_plugin.cpp b/editor/plugins/animation_player_editor_plugin.cpp
index 2abb74d9e9..d9d057d0e8 100644
--- a/editor/plugins/animation_player_editor_plugin.cpp
+++ b/editor/plugins/animation_player_editor_plugin.cpp
@@ -35,11 +35,11 @@
#include "core/io/resource_loader.h"
#include "core/io/resource_saver.h"
#include "core/os/keyboard.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_node.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
#include "editor/editor_undo_redo_manager.h"
+#include "editor/gui/editor_file_dialog.h"
#include "editor/inspector_dock.h"
#include "editor/plugins/canvas_item_editor_plugin.h" // For onion skinning.
#include "editor/plugins/node_3d_editor_plugin.h" // For onion skinning.
diff --git a/editor/plugins/animation_state_machine_editor.cpp b/editor/plugins/animation_state_machine_editor.cpp
index 9632670658..715f2b9ad4 100644
--- a/editor/plugins/animation_state_machine_editor.cpp
+++ b/editor/plugins/animation_state_machine_editor.cpp
@@ -35,11 +35,11 @@
#include "core/io/resource_loader.h"
#include "core/math/geometry_2d.h"
#include "core/os/keyboard.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_node.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
#include "editor/editor_undo_redo_manager.h"
+#include "editor/gui/editor_file_dialog.h"
#include "scene/animation/animation_blend_tree.h"
#include "scene/animation/animation_player.h"
#include "scene/gui/menu_button.h"
diff --git a/editor/plugins/animation_tree_editor_plugin.cpp b/editor/plugins/animation_tree_editor_plugin.cpp
index ab46e8f04a..80e9bf7eda 100644
--- a/editor/plugins/animation_tree_editor_plugin.cpp
+++ b/editor/plugins/animation_tree_editor_plugin.cpp
@@ -39,9 +39,9 @@
#include "core/io/resource_loader.h"
#include "core/math/delaunay_2d.h"
#include "core/os/keyboard.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_node.h"
#include "editor/editor_scale.h"
+#include "editor/gui/editor_file_dialog.h"
#include "scene/animation/animation_blend_tree.h"
#include "scene/animation/animation_player.h"
#include "scene/gui/menu_button.h"
diff --git a/editor/plugins/asset_library_editor_plugin.cpp b/editor/plugins/asset_library_editor_plugin.cpp
index a80d57d272..eeb0fd5f66 100644
--- a/editor/plugins/asset_library_editor_plugin.cpp
+++ b/editor/plugins/asset_library_editor_plugin.cpp
@@ -35,11 +35,11 @@
#include "core/io/stream_peer_tls.h"
#include "core/os/keyboard.h"
#include "core/version.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_node.h"
#include "editor/editor_paths.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
+#include "editor/gui/editor_file_dialog.h"
#include "editor/project_settings_editor.h"
#include "scene/gui/menu_button.h"
diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp
index 4814b9ae3b..592f42c5b8 100644
--- a/editor/plugins/canvas_item_editor_plugin.cpp
+++ b/editor/plugins/canvas_item_editor_plugin.cpp
@@ -37,9 +37,9 @@
#include "editor/editor_node.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
-#include "editor/editor_toaster.h"
#include "editor/editor_undo_redo_manager.h"
-#include "editor/editor_zoom_widget.h"
+#include "editor/gui/editor_toaster.h"
+#include "editor/gui/editor_zoom_widget.h"
#include "editor/plugins/animation_player_editor_plugin.h"
#include "editor/plugins/script_editor_plugin.h"
#include "editor/scene_tree_dock.h"
@@ -56,6 +56,7 @@
#include "scene/gui/separator.h"
#include "scene/gui/split_container.h"
#include "scene/gui/subviewport_container.h"
+#include "scene/gui/texture_rect.h"
#include "scene/gui/view_panner.h"
#include "scene/main/canvas_layer.h"
#include "scene/main/window.h"
diff --git a/editor/plugins/cpu_particles_2d_editor_plugin.cpp b/editor/plugins/cpu_particles_2d_editor_plugin.cpp
index 85897742fb..ef00af592f 100644
--- a/editor/plugins/cpu_particles_2d_editor_plugin.cpp
+++ b/editor/plugins/cpu_particles_2d_editor_plugin.cpp
@@ -32,8 +32,8 @@
#include "canvas_item_editor_plugin.h"
#include "core/io/image_loader.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_node.h"
+#include "editor/gui/editor_file_dialog.h"
#include "scene/2d/cpu_particles_2d.h"
#include "scene/gui/check_box.h"
#include "scene/gui/menu_button.h"
diff --git a/editor/plugins/cpu_particles_3d_editor_plugin.cpp b/editor/plugins/cpu_particles_3d_editor_plugin.cpp
index 61702493da..6edfc2ef2e 100644
--- a/editor/plugins/cpu_particles_3d_editor_plugin.cpp
+++ b/editor/plugins/cpu_particles_3d_editor_plugin.cpp
@@ -31,8 +31,8 @@
#include "cpu_particles_3d_editor_plugin.h"
#include "editor/editor_node.h"
+#include "editor/gui/scene_tree_editor.h"
#include "editor/plugins/node_3d_editor_plugin.h"
-#include "editor/scene_tree_editor.h"
#include "scene/gui/menu_button.h"
void CPUParticles3DEditor::_node_removed(Node *p_node) {
diff --git a/editor/plugins/debugger_editor_plugin.cpp b/editor/plugins/debugger_editor_plugin.cpp
index 224d221d9a..7863e6d19e 100644
--- a/editor/plugins/debugger_editor_plugin.cpp
+++ b/editor/plugins/debugger_editor_plugin.cpp
@@ -33,10 +33,10 @@
#include "core/os/keyboard.h"
#include "editor/debugger/editor_debugger_node.h"
#include "editor/debugger/editor_debugger_server.h"
+#include "editor/debugger/editor_file_server.h"
#include "editor/editor_node.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
-#include "editor/fileserver/editor_file_server.h"
#include "editor/plugins/script_editor_plugin.h"
#include "scene/gui/menu_button.h"
diff --git a/editor/plugins/gpu_particles_2d_editor_plugin.cpp b/editor/plugins/gpu_particles_2d_editor_plugin.cpp
index 04b2a9337e..8631ee05c8 100644
--- a/editor/plugins/gpu_particles_2d_editor_plugin.cpp
+++ b/editor/plugins/gpu_particles_2d_editor_plugin.cpp
@@ -32,9 +32,9 @@
#include "canvas_item_editor_plugin.h"
#include "core/io/image_loader.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_node.h"
#include "editor/editor_undo_redo_manager.h"
+#include "editor/gui/editor_file_dialog.h"
#include "editor/scene_tree_dock.h"
#include "scene/2d/cpu_particles_2d.h"
#include "scene/gui/menu_button.h"
diff --git a/editor/plugins/gpu_particles_collision_sdf_editor_plugin.cpp b/editor/plugins/gpu_particles_collision_sdf_editor_plugin.cpp
index 477a094d01..abecba144c 100644
--- a/editor/plugins/gpu_particles_collision_sdf_editor_plugin.cpp
+++ b/editor/plugins/gpu_particles_collision_sdf_editor_plugin.cpp
@@ -30,8 +30,8 @@
#include "gpu_particles_collision_sdf_editor_plugin.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_node.h"
+#include "editor/gui/editor_file_dialog.h"
void GPUParticlesCollisionSDF3DEditorPlugin::_bake() {
if (col_sdf) {
diff --git a/editor/plugins/gradient_texture_2d_editor_plugin.cpp b/editor/plugins/gradient_texture_2d_editor_plugin.cpp
index 7bd159a5b8..e91afe28ee 100644
--- a/editor/plugins/gradient_texture_2d_editor_plugin.cpp
+++ b/editor/plugins/gradient_texture_2d_editor_plugin.cpp
@@ -33,7 +33,9 @@
#include "editor/editor_node.h"
#include "editor/editor_scale.h"
#include "editor/editor_undo_redo_manager.h"
+#include "editor/gui/editor_spin_slider.h"
#include "scene/gui/box_container.h"
+#include "scene/gui/button.h"
#include "scene/gui/flow_container.h"
#include "scene/gui/separator.h"
diff --git a/editor/plugins/gradient_texture_2d_editor_plugin.h b/editor/plugins/gradient_texture_2d_editor_plugin.h
index 724ec63b4e..0b496b210e 100644
--- a/editor/plugins/gradient_texture_2d_editor_plugin.h
+++ b/editor/plugins/gradient_texture_2d_editor_plugin.h
@@ -33,7 +33,9 @@
#include "editor/editor_inspector.h"
#include "editor/editor_plugin.h"
-#include "editor/editor_spin_slider.h"
+
+class Button;
+class EditorSpinSlider;
class GradientTexture2DEditorRect : public Control {
GDCLASS(GradientTexture2DEditorRect, Control);
diff --git a/editor/plugins/lightmap_gi_editor_plugin.cpp b/editor/plugins/lightmap_gi_editor_plugin.cpp
index 519cfcaa94..6ba2072f72 100644
--- a/editor/plugins/lightmap_gi_editor_plugin.cpp
+++ b/editor/plugins/lightmap_gi_editor_plugin.cpp
@@ -30,8 +30,8 @@
#include "lightmap_gi_editor_plugin.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_node.h"
+#include "editor/gui/editor_file_dialog.h"
void LightmapGIEditorPlugin::_bake_select_file(const String &p_file) {
if (lightmap) {
diff --git a/editor/plugins/material_editor_plugin.cpp b/editor/plugins/material_editor_plugin.cpp
index 36c143ca8d..328fe9b950 100644
--- a/editor/plugins/material_editor_plugin.cpp
+++ b/editor/plugins/material_editor_plugin.cpp
@@ -35,7 +35,13 @@
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
#include "editor/editor_undo_redo_manager.h"
+#include "scene/3d/camera_3d.h"
+#include "scene/3d/light_3d.h"
+#include "scene/3d/mesh_instance_3d.h"
+#include "scene/gui/box_container.h"
+#include "scene/gui/color_rect.h"
#include "scene/gui/subviewport_container.h"
+#include "scene/gui/texture_button.h"
#include "scene/resources/fog_material.h"
#include "scene/resources/particle_process_material.h"
#include "scene/resources/sky_material.h"
diff --git a/editor/plugins/material_editor_plugin.h b/editor/plugins/material_editor_plugin.h
index 63ee053b1d..deb1211c54 100644
--- a/editor/plugins/material_editor_plugin.h
+++ b/editor/plugins/material_editor_plugin.h
@@ -34,13 +34,14 @@
#include "editor/editor_inspector.h"
#include "editor/editor_plugin.h"
#include "editor/plugins/editor_resource_conversion_plugin.h"
-#include "scene/3d/camera_3d.h"
-#include "scene/3d/light_3d.h"
-#include "scene/3d/mesh_instance_3d.h"
-#include "scene/gui/color_rect.h"
#include "scene/resources/material.h"
#include "scene/resources/primitive_meshes.h"
+class Camera3D;
+class ColorRect;
+class DirectionalLight3D;
+class HBoxContainer;
+class MeshInstance3D;
class SubViewport;
class SubViewportContainer;
class TextureButton;
diff --git a/editor/plugins/mesh_instance_3d_editor_plugin.cpp b/editor/plugins/mesh_instance_3d_editor_plugin.cpp
index 2ebb4d29c5..a53e254dcc 100644
--- a/editor/plugins/mesh_instance_3d_editor_plugin.cpp
+++ b/editor/plugins/mesh_instance_3d_editor_plugin.cpp
@@ -33,12 +33,14 @@
#include "editor/editor_node.h"
#include "editor/editor_scale.h"
#include "editor/editor_undo_redo_manager.h"
-#include "node_3d_editor_plugin.h"
+#include "editor/plugins/node_3d_editor_plugin.h"
#include "scene/3d/collision_shape_3d.h"
#include "scene/3d/navigation_region_3d.h"
#include "scene/3d/physics_body_3d.h"
#include "scene/gui/box_container.h"
+#include "scene/gui/dialogs.h"
#include "scene/gui/menu_button.h"
+#include "scene/gui/spin_box.h"
#include "scene/resources/concave_polygon_shape_3d.h"
#include "scene/resources/convex_polygon_shape_3d.h"
#include "scene/scene_string_names.h"
diff --git a/editor/plugins/mesh_instance_3d_editor_plugin.h b/editor/plugins/mesh_instance_3d_editor_plugin.h
index aa72d4fa33..ea67d1aae9 100644
--- a/editor/plugins/mesh_instance_3d_editor_plugin.h
+++ b/editor/plugins/mesh_instance_3d_editor_plugin.h
@@ -33,11 +33,11 @@
#include "editor/editor_plugin.h"
#include "scene/3d/mesh_instance_3d.h"
-#include "scene/gui/spin_box.h"
class AcceptDialog;
class ConfirmationDialog;
class MenuButton;
+class SpinBox;
class MeshInstance3DEditor : public Control {
GDCLASS(MeshInstance3DEditor, Control);
diff --git a/editor/plugins/mesh_library_editor_plugin.cpp b/editor/plugins/mesh_library_editor_plugin.cpp
index cf8555d07d..3959ed2976 100644
--- a/editor/plugins/mesh_library_editor_plugin.cpp
+++ b/editor/plugins/mesh_library_editor_plugin.cpp
@@ -30,12 +30,12 @@
#include "mesh_library_editor_plugin.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_node.h"
#include "editor/editor_settings.h"
+#include "editor/gui/editor_file_dialog.h"
#include "editor/inspector_dock.h"
+#include "editor/plugins/node_3d_editor_plugin.h"
#include "main/main.h"
-#include "node_3d_editor_plugin.h"
#include "scene/3d/mesh_instance_3d.h"
#include "scene/3d/navigation_region_3d.h"
#include "scene/3d/physics_body_3d.h"
diff --git a/editor/plugins/multimesh_editor_plugin.cpp b/editor/plugins/multimesh_editor_plugin.cpp
index 9845e8a9c3..15647e1364 100644
--- a/editor/plugins/multimesh_editor_plugin.cpp
+++ b/editor/plugins/multimesh_editor_plugin.cpp
@@ -31,8 +31,8 @@
#include "multimesh_editor_plugin.h"
#include "editor/editor_node.h"
-#include "editor/scene_tree_editor.h"
-#include "node_3d_editor_plugin.h"
+#include "editor/gui/scene_tree_editor.h"
+#include "editor/plugins/node_3d_editor_plugin.h"
#include "scene/3d/mesh_instance_3d.h"
#include "scene/gui/box_container.h"
#include "scene/gui/menu_button.h"
diff --git a/editor/plugins/node_3d_editor_plugin.cpp b/editor/plugins/node_3d_editor_plugin.cpp
index e443548550..7225c1b658 100644
--- a/editor/plugins/node_3d_editor_plugin.cpp
+++ b/editor/plugins/node_3d_editor_plugin.cpp
@@ -40,6 +40,7 @@
#include "editor/editor_node.h"
#include "editor/editor_settings.h"
#include "editor/editor_undo_redo_manager.h"
+#include "editor/gui/editor_spin_slider.h"
#include "editor/plugins/animation_player_editor_plugin.h"
#include "editor/plugins/node_3d_editor_gizmos.h"
#include "editor/scene_tree_dock.h"
@@ -5162,10 +5163,10 @@ Node3DEditorViewport::Node3DEditorViewport(Node3DEditor *p_spatial_editor, int p
position_control->set_navigation_mode(Node3DEditorViewport::NAVIGATION_MOVE);
position_control->set_custom_minimum_size(Size2(navigation_control_size, navigation_control_size) * EDSCALE);
position_control->set_h_size_flags(SIZE_SHRINK_END);
- position_control->set_anchor_and_offset(SIDE_LEFT, ANCHOR_BEGIN, 0 * EDSCALE);
+ position_control->set_anchor_and_offset(SIDE_LEFT, ANCHOR_BEGIN, 0);
position_control->set_anchor_and_offset(SIDE_TOP, ANCHOR_END, -navigation_control_size * EDSCALE);
position_control->set_anchor_and_offset(SIDE_RIGHT, ANCHOR_BEGIN, navigation_control_size * EDSCALE);
- position_control->set_anchor_and_offset(SIDE_BOTTOM, ANCHOR_END, 0 * EDSCALE);
+ position_control->set_anchor_and_offset(SIDE_BOTTOM, ANCHOR_END, 0);
position_control->set_viewport(this);
surface->add_child(position_control);
@@ -5175,8 +5176,8 @@ Node3DEditorViewport::Node3DEditorViewport(Node3DEditor *p_spatial_editor, int p
look_control->set_h_size_flags(SIZE_SHRINK_END);
look_control->set_anchor_and_offset(SIDE_LEFT, ANCHOR_END, -navigation_control_size * EDSCALE);
look_control->set_anchor_and_offset(SIDE_TOP, ANCHOR_END, -navigation_control_size * EDSCALE);
- look_control->set_anchor_and_offset(SIDE_RIGHT, ANCHOR_END, 0 * EDSCALE);
- look_control->set_anchor_and_offset(SIDE_BOTTOM, ANCHOR_END, 0 * EDSCALE);
+ look_control->set_anchor_and_offset(SIDE_RIGHT, ANCHOR_END, 0);
+ look_control->set_anchor_and_offset(SIDE_BOTTOM, ANCHOR_END, 0);
look_control->set_viewport(this);
surface->add_child(look_control);
diff --git a/editor/plugins/occluder_instance_3d_editor_plugin.cpp b/editor/plugins/occluder_instance_3d_editor_plugin.cpp
index cfe95f1cfa..9e9e602841 100644
--- a/editor/plugins/occluder_instance_3d_editor_plugin.cpp
+++ b/editor/plugins/occluder_instance_3d_editor_plugin.cpp
@@ -30,8 +30,8 @@
#include "occluder_instance_3d_editor_plugin.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_node.h"
+#include "editor/gui/editor_file_dialog.h"
void OccluderInstance3DEditorPlugin::_bake_select_file(const String &p_file) {
if (occluder_instance) {
diff --git a/editor/plugins/polygon_2d_editor_plugin.cpp b/editor/plugins/polygon_2d_editor_plugin.cpp
index e5e77be7aa..a2549c7376 100644
--- a/editor/plugins/polygon_2d_editor_plugin.cpp
+++ b/editor/plugins/polygon_2d_editor_plugin.cpp
@@ -39,7 +39,10 @@
#include "editor/plugins/canvas_item_editor_plugin.h"
#include "scene/2d/skeleton_2d.h"
#include "scene/gui/check_box.h"
+#include "scene/gui/dialogs.h"
+#include "scene/gui/label.h"
#include "scene/gui/menu_button.h"
+#include "scene/gui/panel.h"
#include "scene/gui/scroll_container.h"
#include "scene/gui/separator.h"
#include "scene/gui/slider.h"
diff --git a/editor/plugins/polygon_2d_editor_plugin.h b/editor/plugins/polygon_2d_editor_plugin.h
index 2c55a5f631..3547c03120 100644
--- a/editor/plugins/polygon_2d_editor_plugin.h
+++ b/editor/plugins/polygon_2d_editor_plugin.h
@@ -37,6 +37,7 @@ class AcceptDialog;
class ButtonGroup;
class HScrollBar;
class HSlider;
+class Label;
class MenuButton;
class Panel;
class ScrollContainer;
diff --git a/editor/plugins/polygon_3d_editor_plugin.cpp b/editor/plugins/polygon_3d_editor_plugin.cpp
index f4d97a5427..efbb2b0d2b 100644
--- a/editor/plugins/polygon_3d_editor_plugin.cpp
+++ b/editor/plugins/polygon_3d_editor_plugin.cpp
@@ -30,7 +30,6 @@
#include "polygon_3d_editor_plugin.h"
-#include "canvas_item_editor_plugin.h"
#include "core/core_string_names.h"
#include "core/input/input.h"
#include "core/io/file_access.h"
@@ -39,7 +38,8 @@
#include "editor/editor_node.h"
#include "editor/editor_settings.h"
#include "editor/editor_undo_redo_manager.h"
-#include "node_3d_editor_plugin.h"
+#include "editor/plugins/canvas_item_editor_plugin.h"
+#include "editor/plugins/node_3d_editor_plugin.h"
#include "scene/3d/camera_3d.h"
#include "scene/gui/separator.h"
diff --git a/editor/plugins/resource_preloader_editor_plugin.cpp b/editor/plugins/resource_preloader_editor_plugin.cpp
index dcbff2c756..a057bbe05e 100644
--- a/editor/plugins/resource_preloader_editor_plugin.cpp
+++ b/editor/plugins/resource_preloader_editor_plugin.cpp
@@ -32,11 +32,11 @@
#include "core/config/project_settings.h"
#include "core/io/resource_loader.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_node.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
#include "editor/editor_undo_redo_manager.h"
+#include "editor/gui/editor_file_dialog.h"
void ResourcePreloaderEditor::_notification(int p_what) {
switch (p_what) {
diff --git a/editor/plugins/root_motion_editor_plugin.cpp b/editor/plugins/root_motion_editor_plugin.cpp
index e8abecd115..6094b5bef6 100644
--- a/editor/plugins/root_motion_editor_plugin.cpp
+++ b/editor/plugins/root_motion_editor_plugin.cpp
@@ -32,6 +32,8 @@
#include "editor/editor_node.h"
#include "scene/animation/animation_player.h"
#include "scene/animation/animation_tree.h"
+#include "scene/gui/button.h"
+#include "scene/gui/dialogs.h"
#include "scene/gui/tree.h"
#include "scene/main/window.h"
diff --git a/editor/plugins/root_motion_editor_plugin.h b/editor/plugins/root_motion_editor_plugin.h
index d27f0d30cc..5befdb6006 100644
--- a/editor/plugins/root_motion_editor_plugin.h
+++ b/editor/plugins/root_motion_editor_plugin.h
@@ -33,10 +33,13 @@
#include "editor/editor_inspector.h"
+class Button;
+class ConfirmationDialog;
class Tree;
class EditorPropertyRootMotion : public EditorProperty {
GDCLASS(EditorPropertyRootMotion, EditorProperty);
+
Button *assign = nullptr;
Button *clear = nullptr;
NodePath base_hint;
diff --git a/editor/plugins/script_editor_plugin.cpp b/editor/plugins/script_editor_plugin.cpp
index 46218869b3..a0ffa5ca0e 100644
--- a/editor/plugins/script_editor_plugin.cpp
+++ b/editor/plugins/script_editor_plugin.cpp
@@ -40,7 +40,6 @@
#include "core/version.h"
#include "editor/debugger/editor_debugger_node.h"
#include "editor/debugger/script_editor_debugger.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_help_search.h"
#include "editor/editor_node.h"
#include "editor/editor_paths.h"
@@ -49,6 +48,7 @@
#include "editor/editor_settings.h"
#include "editor/filesystem_dock.h"
#include "editor/find_in_files.h"
+#include "editor/gui/editor_file_dialog.h"
#include "editor/inspector_dock.h"
#include "editor/node_dock.h"
#include "editor/plugins/shader_editor_plugin.h"
diff --git a/editor/plugins/skeleton_2d_editor_plugin.cpp b/editor/plugins/skeleton_2d_editor_plugin.cpp
index 06db696330..6cf73fc48d 100644
--- a/editor/plugins/skeleton_2d_editor_plugin.cpp
+++ b/editor/plugins/skeleton_2d_editor_plugin.cpp
@@ -30,11 +30,11 @@
#include "skeleton_2d_editor_plugin.h"
-#include "canvas_item_editor_plugin.h"
#include "editor/editor_node.h"
#include "editor/editor_undo_redo_manager.h"
+#include "editor/plugins/canvas_item_editor_plugin.h"
#include "scene/2d/mesh_instance_2d.h"
-#include "scene/gui/box_container.h"
+#include "scene/gui/dialogs.h"
#include "scene/gui/menu_button.h"
#include "thirdparty/misc/clipper.hpp"
diff --git a/editor/plugins/skeleton_2d_editor_plugin.h b/editor/plugins/skeleton_2d_editor_plugin.h
index e4551593f3..9f3f1c3b34 100644
--- a/editor/plugins/skeleton_2d_editor_plugin.h
+++ b/editor/plugins/skeleton_2d_editor_plugin.h
@@ -33,7 +33,6 @@
#include "editor/editor_plugin.h"
#include "scene/2d/skeleton_2d.h"
-#include "scene/gui/spin_box.h"
class AcceptDialog;
class MenuButton;
diff --git a/editor/plugins/skeleton_3d_editor_plugin.cpp b/editor/plugins/skeleton_3d_editor_plugin.cpp
index 120cfbdefb..85906ef9d3 100644
--- a/editor/plugins/skeleton_3d_editor_plugin.cpp
+++ b/editor/plugins/skeleton_3d_editor_plugin.cpp
@@ -43,6 +43,7 @@
#include "scene/3d/mesh_instance_3d.h"
#include "scene/3d/physics_body_3d.h"
#include "scene/gui/separator.h"
+#include "scene/gui/texture_rect.h"
#include "scene/resources/capsule_shape_3d.h"
#include "scene/resources/skeleton_profile.h"
#include "scene/resources/sphere_shape_3d.h"
diff --git a/editor/plugins/skeleton_3d_editor_plugin.h b/editor/plugins/skeleton_3d_editor_plugin.h
index 3eb840cfa9..7b924d1e9b 100644
--- a/editor/plugins/skeleton_3d_editor_plugin.h
+++ b/editor/plugins/skeleton_3d_editor_plugin.h
@@ -31,10 +31,10 @@
#ifndef SKELETON_3D_EDITOR_PLUGIN_H
#define SKELETON_3D_EDITOR_PLUGIN_H
-#include "editor/editor_file_dialog.h"
#include "editor/editor_plugin.h"
#include "editor/editor_properties.h"
-#include "node_3d_editor_plugin.h"
+#include "editor/gui/editor_file_dialog.h"
+#include "editor/plugins/node_3d_editor_plugin.h"
#include "scene/3d/camera_3d.h"
#include "scene/3d/mesh_instance_3d.h"
#include "scene/3d/skeleton_3d.h"
diff --git a/editor/plugins/skeleton_ik_3d_editor_plugin.cpp b/editor/plugins/skeleton_ik_3d_editor_plugin.cpp
index 1b78293a87..6331209281 100644
--- a/editor/plugins/skeleton_ik_3d_editor_plugin.cpp
+++ b/editor/plugins/skeleton_ik_3d_editor_plugin.cpp
@@ -32,6 +32,7 @@
#include "editor/editor_node.h"
#include "scene/3d/skeleton_ik_3d.h"
+#include "scene/gui/button.h"
void SkeletonIK3DEditorPlugin::_play() {
if (!skeleton_ik) {
diff --git a/editor/plugins/skeleton_ik_3d_editor_plugin.h b/editor/plugins/skeleton_ik_3d_editor_plugin.h
index 86d883f9fe..3d311e581e 100644
--- a/editor/plugins/skeleton_ik_3d_editor_plugin.h
+++ b/editor/plugins/skeleton_ik_3d_editor_plugin.h
@@ -33,6 +33,7 @@
#include "editor/editor_plugin.h"
+class Button;
class SkeletonIK3D;
class SkeletonIK3DEditorPlugin : public EditorPlugin {
diff --git a/editor/plugins/sprite_frames_editor_plugin.cpp b/editor/plugins/sprite_frames_editor_plugin.cpp
index 8d1aadd095..8d0eac38c4 100644
--- a/editor/plugins/sprite_frames_editor_plugin.cpp
+++ b/editor/plugins/sprite_frames_editor_plugin.cpp
@@ -33,12 +33,12 @@
#include "core/config/project_settings.h"
#include "core/io/resource_loader.h"
#include "core/os/keyboard.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_file_system.h"
#include "editor/editor_node.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
#include "editor/editor_undo_redo_manager.h"
+#include "editor/gui/editor_file_dialog.h"
#include "editor/scene_tree_dock.h"
#include "scene/gui/center_container.h"
#include "scene/gui/margin_container.h"
diff --git a/editor/plugins/theme_editor_plugin.cpp b/editor/plugins/theme_editor_plugin.cpp
index c91d653692..715db9cf51 100644
--- a/editor/plugins/theme_editor_plugin.cpp
+++ b/editor/plugins/theme_editor_plugin.cpp
@@ -31,15 +31,22 @@
#include "theme_editor_plugin.h"
#include "core/os/keyboard.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_node.h"
#include "editor/editor_resource_picker.h"
#include "editor/editor_scale.h"
#include "editor/editor_undo_redo_manager.h"
+#include "editor/gui/editor_file_dialog.h"
#include "editor/progress_dialog.h"
+#include "scene/gui/check_button.h"
#include "scene/gui/color_picker.h"
+#include "scene/gui/item_list.h"
+#include "scene/gui/option_button.h"
#include "scene/gui/panel_container.h"
+#include "scene/gui/scroll_container.h"
#include "scene/gui/split_container.h"
+#include "scene/gui/tab_bar.h"
+#include "scene/gui/tab_container.h"
+#include "scene/gui/texture_rect.h"
#include "scene/theme/theme_db.h"
void ThemeItemImportTree::_update_items_tree() {
diff --git a/editor/plugins/theme_editor_plugin.h b/editor/plugins/theme_editor_plugin.h
index c8c944118c..077ce8e8f7 100644
--- a/editor/plugins/theme_editor_plugin.h
+++ b/editor/plugins/theme_editor_plugin.h
@@ -33,20 +33,21 @@
#include "editor/editor_plugin.h"
#include "editor/plugins/theme_editor_preview.h"
-#include "scene/gui/check_button.h"
#include "scene/gui/dialogs.h"
-#include "scene/gui/item_list.h"
#include "scene/gui/margin_container.h"
-#include "scene/gui/option_button.h"
-#include "scene/gui/scroll_container.h"
-#include "scene/gui/tab_bar.h"
-#include "scene/gui/texture_rect.h"
#include "scene/gui/tree.h"
#include "scene/resources/theme.h"
+class Button;
+class CheckButton;
class EditorFileDialog;
+class ItemList;
+class Label;
+class OptionButton;
class PanelContainer;
+class TabBar;
class TabContainer;
+class TextureRect;
class ThemeItemImportTree : public VBoxContainer {
GDCLASS(ThemeItemImportTree, VBoxContainer);
diff --git a/editor/plugins/theme_editor_preview.cpp b/editor/plugins/theme_editor_preview.cpp
index 5218ef67c5..f4a6c4af2d 100644
--- a/editor/plugins/theme_editor_preview.cpp
+++ b/editor/plugins/theme_editor_preview.cpp
@@ -39,7 +39,11 @@
#include "scene/gui/check_box.h"
#include "scene/gui/check_button.h"
#include "scene/gui/color_picker.h"
+#include "scene/gui/color_rect.h"
+#include "scene/gui/margin_container.h"
#include "scene/gui/progress_bar.h"
+#include "scene/gui/scroll_container.h"
+#include "scene/gui/tab_container.h"
#include "scene/gui/text_edit.h"
#include "scene/gui/tree.h"
#include "scene/resources/packed_scene.h"
diff --git a/editor/plugins/theme_editor_preview.h b/editor/plugins/theme_editor_preview.h
index 640a931c99..bd9663904a 100644
--- a/editor/plugins/theme_editor_preview.h
+++ b/editor/plugins/theme_editor_preview.h
@@ -32,13 +32,13 @@
#define THEME_EDITOR_PREVIEW_H
#include "scene/gui/box_container.h"
-#include "scene/gui/button.h"
-#include "scene/gui/color_rect.h"
-#include "scene/gui/margin_container.h"
-#include "scene/gui/scroll_container.h"
#include "scene/resources/theme.h"
+class Button;
class ColorPickerButton;
+class ColorRect;
+class MarginContainer;
+class ScrollContainer;
class ThemeEditorPreview : public VBoxContainer {
GDCLASS(ThemeEditorPreview, VBoxContainer);
diff --git a/editor/plugins/tiles/atlas_merging_dialog.cpp b/editor/plugins/tiles/atlas_merging_dialog.cpp
index ce5da811c1..274d52da47 100644
--- a/editor/plugins/tiles/atlas_merging_dialog.cpp
+++ b/editor/plugins/tiles/atlas_merging_dialog.cpp
@@ -30,10 +30,9 @@
#include "atlas_merging_dialog.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_scale.h"
#include "editor/editor_undo_redo_manager.h"
-
+#include "editor/gui/editor_file_dialog.h"
#include "scene/gui/control.h"
#include "scene/gui/split_container.h"
diff --git a/editor/plugins/tiles/tile_atlas_view.h b/editor/plugins/tiles/tile_atlas_view.h
index 2be3fadd21..0e2ae49f0a 100644
--- a/editor/plugins/tiles/tile_atlas_view.h
+++ b/editor/plugins/tiles/tile_atlas_view.h
@@ -31,7 +31,7 @@
#ifndef TILE_ATLAS_VIEW_H
#define TILE_ATLAS_VIEW_H
-#include "editor/editor_zoom_widget.h"
+#include "editor/gui/editor_zoom_widget.h"
#include "scene/gui/box_container.h"
#include "scene/gui/button.h"
#include "scene/gui/center_container.h"
diff --git a/editor/plugins/tiles/tile_set_scenes_collection_source_editor.cpp b/editor/plugins/tiles/tile_set_scenes_collection_source_editor.cpp
index 101ec5f66c..9350467176 100644
--- a/editor/plugins/tiles/tile_set_scenes_collection_source_editor.cpp
+++ b/editor/plugins/tiles/tile_set_scenes_collection_source_editor.cpp
@@ -38,7 +38,9 @@
#include "editor/editor_settings.h"
#include "editor/editor_undo_redo_manager.h"
+#include "scene/gui/button.h"
#include "scene/gui/item_list.h"
+#include "scene/gui/label.h"
#include "scene/gui/split_container.h"
#include "core/core_string_names.h"
diff --git a/editor/plugins/tiles/tile_set_scenes_collection_source_editor.h b/editor/plugins/tiles/tile_set_scenes_collection_source_editor.h
index 2a0e8595c4..dd9ec3228d 100644
--- a/editor/plugins/tiles/tile_set_scenes_collection_source_editor.h
+++ b/editor/plugins/tiles/tile_set_scenes_collection_source_editor.h
@@ -33,10 +33,12 @@
#include "editor/editor_inspector.h"
#include "scene/gui/box_container.h"
-#include "scene/gui/button.h"
-#include "scene/gui/item_list.h"
#include "scene/resources/tile_set.h"
+class Button;
+class ItemList;
+class Label;
+
class TileSetScenesCollectionSourceEditor : public HBoxContainer {
GDCLASS(TileSetScenesCollectionSourceEditor, HBoxContainer);
diff --git a/editor/plugins/voxel_gi_editor_plugin.cpp b/editor/plugins/voxel_gi_editor_plugin.cpp
index 1087a50df6..9906399d67 100644
--- a/editor/plugins/voxel_gi_editor_plugin.cpp
+++ b/editor/plugins/voxel_gi_editor_plugin.cpp
@@ -30,8 +30,8 @@
#include "voxel_gi_editor_plugin.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_node.h"
+#include "editor/gui/editor_file_dialog.h"
void VoxelGIEditorPlugin::_bake() {
if (voxel_gi) {
diff --git a/editor/project_manager.cpp b/editor/project_manager.cpp
index 24bfef9c66..e8cea14ce6 100644
--- a/editor/project_manager.cpp
+++ b/editor/project_manager.cpp
@@ -41,12 +41,12 @@
#include "core/os/os.h"
#include "core/string/translation.h"
#include "core/version.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_paths.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
#include "editor/editor_themes.h"
#include "editor/editor_vcs_interface.h"
+#include "editor/gui/editor_file_dialog.h"
#include "editor/plugins/asset_library_editor_plugin.h"
#include "main/main.h"
#include "scene/gui/center_container.h"
diff --git a/editor/register_editor_types.cpp b/editor/register_editor_types.cpp
index 44624d201b..d0c441b027 100644
--- a/editor/register_editor_types.cpp
+++ b/editor/register_editor_types.cpp
@@ -34,7 +34,6 @@
#include "editor/debugger/debug_adapter/debug_adapter_server.h"
#include "editor/editor_command_palette.h"
#include "editor/editor_feature_profile.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_file_system.h"
#include "editor/editor_node.h"
#include "editor/editor_paths.h"
@@ -45,6 +44,8 @@
#include "editor/editor_translation_parser.h"
#include "editor/editor_undo_redo_manager.h"
#include "editor/filesystem_dock.h"
+#include "editor/gui/editor_file_dialog.h"
+#include "editor/gui/editor_spin_slider.h"
#include "editor/import/editor_import_plugin.h"
#include "editor/import/resource_importer_scene.h"
#include "editor/plugins/animation_tree_editor_plugin.h"
diff --git a/editor/rename_dialog.cpp b/editor/rename_dialog.cpp
index c3a99e96ef..f42f34e110 100644
--- a/editor/rename_dialog.cpp
+++ b/editor/rename_dialog.cpp
@@ -41,10 +41,14 @@
#include "editor/editor_undo_redo_manager.h"
#include "modules/regex/regex.h"
#include "plugins/script_editor_plugin.h"
+#include "scene/gui/check_box.h"
+#include "scene/gui/check_button.h"
#include "scene/gui/control.h"
#include "scene/gui/grid_container.h"
#include "scene/gui/label.h"
+#include "scene/gui/option_button.h"
#include "scene/gui/separator.h"
+#include "scene/gui/spin_box.h"
#include "scene/gui/tab_container.h"
RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor) {
diff --git a/editor/rename_dialog.h b/editor/rename_dialog.h
index 47ff51f52a..6821cab982 100644
--- a/editor/rename_dialog.h
+++ b/editor/rename_dialog.h
@@ -34,13 +34,17 @@
#include "modules/modules_enabled.gen.h" // For regex.
#ifdef MODULE_REGEX_ENABLED
-#include "editor/scene_tree_editor.h"
-#include "scene/gui/check_box.h"
-#include "scene/gui/check_button.h"
+#include "editor/gui/scene_tree_editor.h"
#include "scene/gui/dialogs.h"
-#include "scene/gui/option_button.h"
-#include "scene/gui/spin_box.h"
-#include "scene/gui/tab_container.h"
+#include "scene/gui/line_edit.h"
+
+class Button;
+class CheckBox;
+class CheckButton;
+class Label;
+class OptionButton;
+class SpinBox;
+class TabContainer;
class RenameDialog : public ConfirmationDialog {
GDCLASS(RenameDialog, ConfirmationDialog);
diff --git a/editor/reparent_dialog.cpp b/editor/reparent_dialog.cpp
index 9f61d63a80..ec5208b549 100644
--- a/editor/reparent_dialog.cpp
+++ b/editor/reparent_dialog.cpp
@@ -31,9 +31,9 @@
#include "reparent_dialog.h"
#include "core/string/print_string.h"
+#include "editor/gui/scene_tree_editor.h"
#include "scene/gui/box_container.h"
-#include "scene/gui/label.h"
-#include "scene/gui/tree.h"
+#include "scene/gui/check_box.h"
void ReparentDialog::_notification(int p_what) {
switch (p_what) {
diff --git a/editor/reparent_dialog.h b/editor/reparent_dialog.h
index af26eada3d..2ca26fcde3 100644
--- a/editor/reparent_dialog.h
+++ b/editor/reparent_dialog.h
@@ -31,12 +31,10 @@
#ifndef REPARENT_DIALOG_H
#define REPARENT_DIALOG_H
-#include "editor/scene_tree_editor.h"
-#include "scene/gui/button.h"
-#include "scene/gui/check_box.h"
-#include "scene/gui/check_button.h"
#include "scene/gui/dialogs.h"
-#include "scene/gui/line_edit.h"
+
+class CheckBox;
+class SceneTreeEditor;
class ReparentDialog : public ConfirmationDialog {
GDCLASS(ReparentDialog, ConfirmationDialog);
diff --git a/editor/scene_tree_dock.cpp b/editor/scene_tree_dock.cpp
index 7e5d85e1a8..968cd5ab23 100644
--- a/editor/scene_tree_dock.cpp
+++ b/editor/scene_tree_dock.cpp
@@ -38,13 +38,13 @@
#include "core/os/keyboard.h"
#include "editor/debugger/editor_debugger_node.h"
#include "editor/editor_feature_profile.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_node.h"
#include "editor/editor_paths.h"
#include "editor/editor_quick_open.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
#include "editor/editor_undo_redo_manager.h"
+#include "editor/gui/editor_file_dialog.h"
#include "editor/inspector_dock.h"
#include "editor/multi_node_edit.h"
#include "editor/plugins/animation_player_editor_plugin.h"
diff --git a/editor/scene_tree_dock.h b/editor/scene_tree_dock.h
index 52a7d6d6c1..779bfd53e3 100644
--- a/editor/scene_tree_dock.h
+++ b/editor/scene_tree_dock.h
@@ -31,9 +31,8 @@
#ifndef SCENE_TREE_DOCK_H
#define SCENE_TREE_DOCK_H
-#include "scene_tree_editor.h"
-
#include "editor/editor_data.h"
+#include "editor/gui/scene_tree_editor.h"
#include "editor/script_create_dialog.h"
#include "scene/gui/box_container.h"
#include "scene/resources/animation.h"
diff --git a/editor/script_create_dialog.cpp b/editor/script_create_dialog.cpp
index 599f2ea6d2..f3f0e7308c 100644
--- a/editor/script_create_dialog.cpp
+++ b/editor/script_create_dialog.cpp
@@ -35,12 +35,12 @@
#include "core/io/resource_saver.h"
#include "core/string/string_builder.h"
#include "editor/create_dialog.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_file_system.h"
#include "editor/editor_node.h"
#include "editor/editor_paths.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
+#include "editor/gui/editor_file_dialog.h"
static String _get_parent_class_of_script(String p_path) {
if (!ResourceLoader::exists(p_path, "Script")) {
diff --git a/editor/shader_create_dialog.cpp b/editor/shader_create_dialog.cpp
index 443237b448..7d7ea2f509 100644
--- a/editor/shader_create_dialog.cpp
+++ b/editor/shader_create_dialog.cpp
@@ -31,8 +31,8 @@
#include "shader_create_dialog.h"
#include "core/config/project_settings.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_scale.h"
+#include "editor/gui/editor_file_dialog.h"
#include "scene/resources/shader_include.h"
#include "scene/resources/visual_shader.h"
#include "servers/rendering/shader_types.h"
diff --git a/logo_outlined.png b/logo_outlined.png
index 44b85cde57..f834ec395c 100644
--- a/logo_outlined.png
+++ b/logo_outlined.png
Binary files differ
diff --git a/logo_outlined.svg b/logo_outlined.svg
index 4079a1dd56..8ddc564295 100644
--- a/logo_outlined.svg
+++ b/logo_outlined.svg
@@ -1,23 +1,23 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg2"
version="1.1"
- inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
+ inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
xml:space="preserve"
width="1024"
height="414"
viewBox="0 0 960.00002 388.12499"
sodipodi:docname="logo_outlined.svg"
- inkscape:export-filename="/home/riteo/srg/godot-riteo/logo_outlined.png"
+ inkscape:export-filename="logo_outlined.png"
inkscape:export-xdpi="48"
- inkscape:export-ydpi="48"><metadata
+ inkscape:export-ydpi="48"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"><metadata
id="metadata8"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
@@ -36,14 +36,14 @@
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1916"
- inkscape:window-height="1025"
+ inkscape:window-height="1036"
id="namedview4"
showgrid="false"
inkscape:zoom="1.2041016"
- inkscape:cx="512"
- inkscape:cy="207"
- inkscape:window-x="1360"
- inkscape:window-y="53"
+ inkscape:cx="519.88968"
+ inkscape:cy="232.95376"
+ inkscape:window-x="1920"
+ inkscape:window-y="20"
inkscape:window-maximized="1"
inkscape:current-layer="g14"
fit-margin-top="48"
@@ -62,7 +62,9 @@
inkscape:snap-bbox-midpoints="false"
inkscape:object-nodes="true"
inkscape:snap-others="false"
- units="px" /><g
+ units="px"
+ inkscape:showpageshadow="2"
+ inkscape:deskcolor="#d1d1d1" /><g
id="g10"
inkscape:groupmode="layer"
inkscape:label="godot_engine_logo_2017_curves-01"
@@ -92,10 +94,14 @@
style="stroke:none;stroke-width:10.60874228;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill" /><g
id="g36"
transform="matrix(1.1310535,0,0,1.1310535,468.26549,336.71278)"
- style="stroke:none;stroke-width:10.60874228;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"><path
- id="path38"
- style="fill:#414042;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:15.5885606;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
- d="m 0,0 c -6.078,0.094 -13.034,-1.173 -13.034,-1.173 v -11.863 h 6.995 l -0.078,-5.288 c 0,-1.959 -1.942,-2.943 -5.815,-2.943 -3.878,0 -7.303,1.642 -10.274,4.917 -2.978,3.279 -4.459,8.072 -4.459,14.388 0,6.329 1.447,10.995 4.345,14.006 2.892,3.008 6.683,4.517 11.346,4.517 1.959,0 3.987,-0.316 6.096,-0.961 2.11,-0.639 3.519,-1.238 4.238,-1.799 0.713,-0.577 1.391,-0.85 2.032,-0.85 0.638,0 1.671,0.746 3.1,2.255 1.431,1.505 2.713,3.786 3.844,6.827 1.126,3.057 1.69,5.4 1.69,7.062 0,1.649 -0.036,2.786 -0.109,3.386 -1.581,1.73 -4.499,3.102 -8.755,4.122 -4.248,1.017 -9.011,1.522 -14.28,1.522 -11.594,0 -20.66,-3.65 -27.207,-10.95 -6.552,-7.303 -9.822,-16.783 -9.822,-28.452 0,-13.701 3.347,-24.087 10.041,-31.162 6.706,-7.074 15.51,-10.607 26.425,-10.607 5.87,0 11.08,0.505 15.632,1.522 4.557,1.013 7.586,2.053 9.093,3.105 l 0.452,35.33 C 11.496,-1.036 6.078,-0.104 0,0 m 283.58148,-40.1198 c 0,-1.496 -3.721,-2.255 -11.176,-2.255 -7.448,0 -11.18,0.759 -11.18,2.255 v 56.681 h -13.545 c -1.281,0 -2.185,1.727 -2.71,5.198 -0.226,1.652 -0.334,3.343 -0.334,5.077 0,1.724 0.108,3.422 0.334,5.077 0.525,3.462 1.429,5.202 2.71,5.202 h 49.112 c 1.279,0 2.179,-1.74 2.712,-5.202 0.221,-1.655 0.335,-3.353 0.335,-5.077 0,-1.734 -0.114,-3.425 -0.335,-5.077 -0.533,-3.471 -1.433,-5.198 -2.712,-5.198 h -13.211 z M 205.6005,16.447401 c -3.612,0 -6.645,-1.659 -9.095,-4.967 -2.44,-3.3110004 -3.662,-7.9580004 -3.662,-13.9380004 0,-5.993 1.169,-10.5809996 3.499,-13.7779996 2.33,-3.207 5.398,-4.804 9.2,-4.804 3.801,0 6.89,1.617 9.258,4.862 2.372,3.233 3.56,7.8609996 3.56,13.8859996 0,6.02 -1.225,10.654 -3.671,13.8900004 -2.447,3.232 -5.473,4.849 -9.089,4.849 m -0.058,-59.493 c -10.577,0 -19.193,3.46 -25.851,10.379 -6.663,6.925 -9.993,17.03 -9.993,30.3139996 0,13.2920004 3.367,23.3560004 10.1,30.2090004 6.741,6.844 15.431,10.269 26.086,10.269 10.651,0 19.246,-3.363 25.797,-10.109 6.55,-6.733 9.822,-16.94 9.822,-30.5910004 0,-13.6609996 -3.349,-23.8219996 -10.05,-30.4899996 -6.699,-6.654 -15.338,-9.981 -25.911,-9.981 m -82.13011,58.710808 v -33.768 c 0,-1.577 0.116,-2.571 0.342,-2.988 0.224,-0.415 0.903,-0.623 2.029,-0.623 4.144,0 7.283,1.548 9.429,4.634 2.151,3.083 3.215,8.2160005 3.215,15.4050005 0,7.192 -1.113,11.8779995 -3.325,14.0549995 -2.223,2.183 -5.744,3.285 -10.561,3.285 z m -21.675,-52.392 v 67.735 c 0,1.883 0.468,3.369 1.413,4.471 0.939,1.085 2.161,1.636 3.671,1.636 h 18.854 c 11.965,0 21.053,-3.018 27.257,-9.04 6.215,-6.02 9.322,-15.499 9.322,-28.44699953 0,-27.70000047 -11.821,-41.54700047 -35.456,-41.54700047 h -19.302 c -3.836,0 -5.759,1.727 -5.759,5.192 M 55.862999,16.447401 c -3.611,0 -6.636,-1.659 -9.09,-4.967 -2.441,-3.3110004 -3.668,-7.9580004 -3.668,-13.9380004 0,-5.993 1.166,-10.5809996 3.503,-13.7779996 2.333,-3.207 5.398,-4.804 9.2,-4.804 3.8,0 6.887,1.617 9.258,4.862 2.371,3.233 3.559,7.8609996 3.559,13.8859996 0,6.02 -1.227,10.654 -3.673,13.8900004 -2.443,3.232 -5.473,4.849 -9.089,4.849 m -0.055,-59.493 c -10.573,0 -19.195,3.46 -25.859,10.379 -6.655,6.925 -9.984,17.03 -9.984,30.3139996 0,13.2920004 3.367,23.3560004 10.101,30.2090004 6.736,6.844 15.431,10.269 26.082,10.269 10.649,0 19.251,-3.363 25.794,-10.109 6.555,-6.733 9.827,-16.94 9.827,-30.5910004 0,-13.6609996 -3.348,-23.8219996 -10.05,-30.4899996 -6.702,-6.654 -15.333,-9.981 -25.911,-9.981" /></g><g
+ style="stroke-width:10.60874228;stroke-linejoin:round;paint-order:markers stroke fill"><g
+ id="path38"><path
+ style="color:#000000;fill:#ffffff;-inkscape-stroke:none"
+ d="m -13.681641,-50.839844 c -12.596904,0 -23.922227,4.43354 -32.080078,13.039063 a 7.79506,7.79506 0 0 0 -0.0059,0.0059 c -8.419793,8.89902 -12.173828,21.547223 -12.173828,36.5175783 0,13.1245257 3.885011,24.8172657 11.814453,33.6562497 8.072696,9.001174 19.779925,13.541016 33.009765,13.541016 5.7670161,0 11.130982,-0.548208 16.0937505,-1.736328 a 7.79506,7.79506 0 0 0 0.00195,0 C 7.9897789,42.982586 12.251503,41.478866 15.669922,37.738281 a 7.79506,7.79506 0 0 0 1.984375,-4.316406 c 0.178476,-1.466931 0.166015,-2.563734 0.166015,-4.326172 0,-3.425323 -0.889241,-6.278915 -2.169921,-9.755859 a 7.79506,7.79506 0 0 0 -0.0098,-0.02344 C 14.283054,15.666208 12.680545,12.507843 10.142578,9.8378906 9.2271105,8.8715838 8.3606463,8.0299624 7.2246094,7.2050781 7.2197468,7.2015474 7.2119011,7.1969043 7.2070312,7.1933594 8.0837303,7.0601219 8.9770024,6.9723347 9.8300781,6.7695312 10.775034,6.544885 11.736616,6.2312768 12.738281,5.8125 c 1.225424,11.0403 4.918921,20.536176 11.767578,27.505859 a 7.79506,7.79506 0 0 0 0.0059,0.0059 c 8.176259,8.307351 19.314813,12.595703 31.636718,12.595703 12.285007,0 23.361037,-4.205988 31.378907,-12.466797 l 0.0059,-0.0059 c 2.599207,-2.671035 4.689876,-5.754167 6.410156,-9.125 v 6.685546 c 0,3.174455 0.919882,6.779853 3.291016,9.544922 a 7.79506,7.79506 0 0 0 0.02148,0.02734 c 2.274218,2.627823 6.160321,4.330078 9.566411,4.330078 h 18.85351 c 13.27236,0 24.68019,-3.475272 32.67969,-11.236328 l 0.004,-0.0039 c 3.50739,-3.398515 6.103,-7.548801 7.98047,-12.251953 1.95158,4.481627 4.55037,8.492643 7.89844,11.90039 a 7.79506,7.79506 0 0 0 0.008,0.0078 c 8.17873,8.303689 19.3134,12.59375 31.63868,12.59375 12.28913,0 23.36042,-4.210522 31.38281,-12.46875 0.0204,-0.02093 0.0363,-0.04543 0.0566,-0.06641 0.32316,2.067188 0.71217,3.928778 1.80469,6.027343 1.14745,2.204109 4.38126,5.498047 8.55078,5.498047 h 49.11328 c 4.17404,0 7.40475,-3.301165 8.54883,-5.5 1.14408,-2.198835 1.52822,-4.121552 1.86523,-6.310547 a 7.79506,7.79506 0 0 0 0.0234,-0.154297 c 0.26703,-1.999711 0.40234,-4.041777 0.40234,-6.109375 0,-2.075615 -0.13536,-4.113677 -0.40234,-6.109375 a 7.79506,7.79506 0 0 0 -0.0215,-0.15039 c -0.33695,-2.194334 -0.72026,-4.119614 -1.86914,-6.322266 -1.14887,-2.202652 -4.39924,-5.4863279 -8.54687,-5.4863279 H 291.375 V -40.119141 c 0,-3.605114 -2.68219,-6.578534 -4.45703,-7.652343 -1.77484,-1.07381 -3.15956,-1.387588 -4.58399,-1.675782 -2.84884,-0.576386 -5.93572,-0.722656 -9.92773,-0.722656 -3.98876,0 -7.07885,0.146842 -9.92773,0.722656 -1.42445,0.287907 -2.80774,0.600519 -4.58204,1.671875 -1.77429,1.071357 -4.46484,4.041584 -4.46484,7.65625 V 8.7675781 h -4.97852 c 0.53826,-3.6028951 0.84375,-7.3707461 0.84375,-11.3417969 0,-14.9348322 -3.75874,-27.4709582 -12.3457,-36.0156252 a 7.79506,7.79506 0 0 0 -0.006,-0.0039 c -8.15443,-8.099651 -19.19427,-12.246094 -31.40234,-12.246094 -12.27679,0 -23.37947,4.365172 -31.4668,12.769532 a 7.79506,7.79506 0 0 0 -0.002,0 c -3.5928,3.734075 -6.17519,8.26351 -8.14258,13.232421 -1.67232,-4.343171 -3.73029,-8.375933 -6.61328,-11.753906 -7.57526,-8.875856 -19.1799,-13.121094 -32.51953,-13.121094 h -19.30274 c -3.08768,0 -6.65269,0.704423 -9.533199,3.298829 -2.880507,2.594405 -4.019532,6.513117 -4.019532,9.6875 v 7.521484 c -1.791465,-3.486279 -3.986908,-6.65901 -6.726562,-9.384766 a 7.79506,7.79506 0 0 0 -0.0059,-0.0059 c -8.154482,-8.09608 -19.190047,-12.244141 -31.402343,-12.244141 -12.273433,0 -23.379088,4.362353 -31.472657,12.765625 a 7.79506,7.79506 0 0 0 -0.0059,0.0078 c -2.078078,2.162387 -3.869846,4.553494 -5.394531,7.146484 l -0.09766,-7.599609 a 7.79506,7.79506 0 0 0 -3.332032,-6.291016 C 11.958498,-47.286873 8.591407,-48.032498 3.6503906,-49.130859 -1.60087,-50.304087 -7.3646155,-50.839844 -13.681641,-50.839844 Z m 0,15.587891 c 5.4229635,0 10.0808639,0.473214 13.93359413,1.333984 a 7.79506,7.79506 0 0 0 0.007813,0.002 c 2.01650327,0.44826 1.93180777,0.514397 3.05859377,0.914063 l 0.3183594,24.8515624 c -1.224922,0.1426094 -2.1780924,0.3300847 -3.76562505,0.3574219 -0.001256,1.91e-5 -0.00265,-1.9e-5 -0.003906,0 -0.0813889,0.00123 -0.16966434,-0.018157 -0.25195313,-0.017578 A 7.79506,7.79506 0 0 0 1.7539062,-13.150391 l -0.076172,-5.173828 v -0.002 c -0.001,-3.554641 -2.8946805,-7.723567 -5.7285156,-9.158203 -2.8343262,-1.434884 -5.2842732,-1.576172 -7.8808598,-1.576172 -6.078133,0 -11.944075,2.950048 -16.046875,7.472656 -4.653417,5.125077 -6.480468,12.0915876 -6.480468,19.6250004 0,7.5149768 1.733481,14.4327846 6.519531,19.4082026 6.4e-4,6.66e-4 0.0013,0.0013 0.002,0.002 6.44e-4,6.68e-4 0.0013,0.0013 0.002,0.002 4.347809,4.519769 10.618265,6.90625 16.960938,6.90625 2.7971771,0 5.6124765,-0.457269 8.3769527,-1.302735 0.8560969,-0.258987 1.586871,-0.510088 2.33789067,-0.767578 0.42775588,0.707203 0.75217426,1.027967 1.28320313,2.451172 0.7495552,2.038994 0.8358563,2.835556 0.9375,3.382813 -0.7507405,0.304508 -1.41639152,0.61698 -2.61523437,0.904296 -3.53284813,0.845612 -7.69270203,1.306641 -12.46289113,1.306641 -9.958136,0 -16.384959,-2.760563 -21.406249,-8.359375 -5.173829,-5.76686 -7.830079,-13.0351827 -7.830079,-23.2480467 0,-12.4270673 2.939406,-20.5476823 7.904297,-25.7988283 l 0.0039,-0.0039 c 6.06e-4,-6.41e-4 0.0013,-0.0013 0.002,-0.002 5.252936,-5.538205 11.532106,-8.169922 20.761718,-8.169922 z m 69.490235,0 c 8.943682,0 15.168464,2.506843 20.417968,7.71875 4.812153,4.791517 7.748047,12.576276 7.748047,24.9589842 0,12.4055171 -2.904345,20.3134788 -7.617187,25.1542968 a 7.79506,7.79506 0 0 0 -0.0098,0.0098 c -5.067351,5.224568 -11.191206,7.742187 -20.199219,7.742187 -8.977809,0 -15.228563,-2.561596 -20.523437,-7.939453 l -0.002,-0.002 c -6.68e-4,-6.78e-4 -0.0013,-0.0013 -0.002,-0.002 -4.968267,-5.058458 -7.861328,-12.7694566 -7.861328,-24.7421876 0,-11.9773224 2.87616,-19.7762004 7.802734,-24.9062504 l 0.0039,-0.0039 c 6.16e-4,-6.41e-4 0.0013,-0.0013 0.002,-0.002 5.233116,-5.430463 11.37106,-7.986328 20.240235,-7.986328 z m 149.734376,0 c 8.93499,0 15.16961,2.50802 20.41211,7.712891 4.81503,4.79132 7.7539,12.577704 7.7539,24.9648432 0,12.4055171 -2.90594,20.3153858 -7.61523,25.1562498 a 7.79506,7.79506 0 0 0 -0.004,0.0039 c -5.0792,5.230396 -11.19475,7.746094 -20.20507,7.746094 -8.98471,0 -15.22994,-2.561015 -20.53321,-7.945312 -4.96574,-5.058518 -7.85937,-12.7698598 -7.85937,-24.7402346 0,-11.9814204 2.88042,-19.7781244 7.8164,-24.9082034 5.22866,-5.433626 11.35719,-7.990234 20.23438,-7.990234 z m 66.86328,0.671875 c 1.71218,0 2.21956,0.12373 3.38086,0.203125 v 50.9375 a 7.79506,7.79506 0 0 0 7.79492,7.794922 h 8.30078 c 0.0669,0.820409 0.16211,1.626225 0.16211,2.480468 0,0.847857 -0.0969,1.660257 -0.16406,2.484375 h -39.28711 c -0.0667,-0.819921 -0.16211,-1.620834 -0.16211,-2.484375 0,-0.870352 0.0956,-1.663833 0.16211,-2.480468 h 8.63086 a 7.79506,7.79506 0 0 0 7.79492,-7.794922 v -50.9375 c 1.16227,-0.07957 1.67392,-0.203125 3.38672,-0.203125 z m -162.875,0.455078 h 17.26758 c 10.29535,0 16.41813,2.679714 20.66211,7.652344 4.24398,4.97263 7,13.360313 7,26.10156225 0,11.70111175 -2.74067,18.76925975 -6.95117,22.84765575 a 7.79506,7.79506 0 0 0 -0.006,0.0059 c -4.4082,4.278877 -11.1738,6.837891 -21.82813,6.83789 h -16.14453 z m 16.25195,4.617188 c -1.04293,0 -2.14036,0.03826 -3.63867,0.498046 -1.49578,0.459009 -3.82446,1.589227 -5.24219,4.205079 -3.5e-4,6.58e-4 3.6e-4,0.0013 0,0.002 -2.16464,3.994843 -1.28515,4.740325 -1.28515,6.699218 v 33.769532 a 7.79506,7.79506 0 0 0 7.79492,7.792968 h 1.12891 c 6.00574,0 11.80043,-1.370564 16.02343,-5.517578 a 7.79506,7.79506 0 0 0 0.006,-0.0059 c 5.26572,-5.182403 5.65039,-11.6132457 5.65039,-19.6093751 0,-7.9533895 -0.83122,-14.4341049 -4.60937,-19.8554689 l -0.002,-0.002 c -3.48276,-5.006481 -9.74205,-7.976563 -15.82617,-7.976562 z m -69.974606,0.673828 c -5.98094,0 -11.975929,3.17317 -15.496094,8.005859 -3.700679,5.066737 -5.001953,11.370405 -5.001953,18.3710937 0,7.0461672 1.421733,13.4519213 5.189453,18.5625003 a 7.79506,7.79506 0 0 0 0.01367,0.01953 c 3.537144,4.768082 9.351334,8.117188 15.349609,8.117187 5.939621,0 11.748344,-3.235861 15.306641,-7.943359 3.848276,-5.091179 5.25,-11.5107608 5.25,-18.5898436 0,-7.0442837 -1.332446,-13.3940924 -5.060547,-18.4843754 l -0.002,-0.002 c -3.544799,-4.849958 -9.538638,-8.05664 -15.548828,-8.05664 z m 149.734376,0 c -5.98461,0 -11.98672,3.173848 -15.50586,8.017578 -3.6845,5.061033 -4.98828,11.3570994 -4.98828,18.3593747 0,7.0418225 1.41272,13.4462443 5.18164,18.5605473 a 7.79506,7.79506 0 0 0 0.0117,0.01563 c 3.5393,4.778774 9.3588,8.123046 15.35742,8.123046 5.93962,0 11.74626,-3.239478 15.30469,-7.939453 a 7.79506,7.79506 0 0 0 0.004,-0.0039 c 3.84951,-5.092809 5.2461,-11.5124871 5.2461,-18.5898436 0,-7.0416455 -1.33184,-13.3907654 -5.0586,-18.4804684 l -0.004,-0.0039 c -3.54423,-4.853783 -9.53914,-8.058593 -15.54883,-8.058593 z m -149.734376,15.58789 c 1.588884,0 1.76744,0.02722 2.964843,1.666016 a 7.79506,7.79506 0 0 0 0.0078,0.01172 c 1.007497,1.373782 2.048828,4.2769243 2.048828,9.2773434 0,4.9609051 -1.051984,7.8086375 -2.095703,9.1894531 -1.327698,1.7564959 -1.578722,1.7539063 -2.871094,1.7539063 -1.219834,0 -1.460971,0.023539 -2.820312,-1.8066407 -1.112458,-1.513176 -2.144532,-4.3959018 -2.144532,-9.3027344 0,-4.9820232 1.032618,-7.8536437 2.001954,-9.1796877 a 7.79506,7.79506 0 0 0 0.0098,-0.01367 c 1.146711,-1.576297 1.279057,-1.595703 2.898438,-1.595703 z m 149.734376,0 c 1.59046,0 1.76875,0.02839 2.96094,1.66211 a 7.79506,7.79506 0 0 0 0.0117,0.01758 c 1.00765,1.373399 2.05079,4.2749713 2.05079,9.2753904 0,4.9626314 -1.05322,7.8102679 -2.09571,9.1894531 -1.33099,1.7571181 -1.5804,1.7539063 -2.87109,1.7539063 -1.22304,0 -1.47037,0.021921 -2.82422,-1.8046876 -1.10926,-1.5094721 -2.13672,-4.3935246 -2.13672,-9.3046875 0,-4.979422 1.03164,-7.8561267 2.00195,-9.1874997 a 7.79506,7.79506 0 0 0 0.008,-0.0098 c 1.14085,-1.570264 1.27515,-1.591797 2.89453,-1.591797 z M 0,0 0.09179687,5.4179687 c -0.0027192,3.84e-4 -0.0050943,0.00157 -0.0078125,0.00195 z m -17.826172,4.515625 a 7.79506,7.79506 0 0 0 3.394531,1.9785156 c 0,0 4.16777,0.597219 9.0292973,0.9628906 -0.364549,0.1693785 -0.9404306,0.4431528 -1.734375,0.6835938 a 7.79506,7.79506 0 0 0 -0.021484,0.00586 c -1.4535196,0.444533 -2.6955876,0.6210937 -3.8164059,0.6210937 -2.981452,0 -4.290525,-0.631362 -5.726563,-2.125 a 7.79506,7.79506 0 0 0 -0.0039,-0.00391 c -0.38649,-0.4015606 -0.76386,-1.2417621 -1.121094,-2.1230469 z m 12.5351564,2.9492187 c 0.065836,0.00486 0.1291125,0.007 0.1953125,0.011719 -0.1310168,0.097798 -0.3245375,0.1663064 -0.4472656,0.265625 L -5.4355469,7.65625 C -5.0520181,7.3570016 -5.190514,7.4289003 -5.2910156,7.4648437 Z"
+ id="path205" /><path
+ style="color:#000000;fill:#414042;stroke-width:15.5886;-inkscape-stroke:none"
+ d="m 0,0 c -6.078,0.094 -13.034,-1.173 -13.034,-1.173 v -11.863 h 6.995 l -0.078,-5.288 c 0,-1.959 -1.942,-2.943 -5.815,-2.943 -3.878,0 -7.303,1.642 -10.274,4.917 -2.978,3.279 -4.459,8.072 -4.459,14.388 0,6.329 1.447,10.995 4.345,14.006 2.892,3.008 6.683,4.517 11.346,4.517 1.959,0 3.987,-0.316 6.096,-0.961 2.11,-0.639 3.519,-1.238 4.238,-1.799 0.713,-0.577 1.391,-0.85 2.032,-0.85 0.638,0 1.671,0.746 3.1,2.255 1.431,1.505 2.713,3.786 3.844,6.827 1.126,3.057 1.69,5.4 1.69,7.062 0,1.649 -0.036,2.786 -0.109,3.386 -1.581,1.73 -4.499,3.102 -8.755,4.122 -4.248,1.017 -9.011,1.522 -14.28,1.522 -11.594,0 -20.66,-3.65 -27.207,-10.95 -6.552,-7.303 -9.822,-16.783 -9.822,-28.452 0,-13.701 3.347,-24.087 10.041,-31.162 6.706,-7.074 15.51,-10.607 26.425,-10.607 5.87,0 11.08,0.505 15.632,1.522 4.557,1.013 7.586,2.053 9.093,3.105 l 0.452,35.33 C 11.496,-1.036 6.078,-0.104 0,0 m 283.58148,-40.1198 c 0,-1.496 -3.721,-2.255 -11.176,-2.255 -7.448,0 -11.18,0.759 -11.18,2.255 v 56.681 h -13.545 c -1.281,0 -2.185,1.727 -2.71,5.198 -0.226,1.652 -0.334,3.343 -0.334,5.077 0,1.724 0.108,3.422 0.334,5.077 0.525,3.462 1.429,5.202 2.71,5.202 h 49.112 c 1.279,0 2.179,-1.74 2.712,-5.202 0.221,-1.655 0.335,-3.353 0.335,-5.077 0,-1.734 -0.114,-3.425 -0.335,-5.077 -0.533,-3.471 -1.433,-5.198 -2.712,-5.198 h -13.211 z M 205.6005,16.447401 c -3.612,0 -6.645,-1.659 -9.095,-4.967 -2.44,-3.3110004 -3.662,-7.9580004 -3.662,-13.9380004 0,-5.993 1.169,-10.5809996 3.499,-13.7779996 2.33,-3.207 5.398,-4.804 9.2,-4.804 3.801,0 6.89,1.617 9.258,4.862 2.372,3.233 3.56,7.8609996 3.56,13.8859996 0,6.02 -1.225,10.654 -3.671,13.8900004 -2.447,3.232 -5.473,4.849 -9.089,4.849 m -0.058,-59.493 c -10.577,0 -19.193,3.46 -25.851,10.379 -6.663,6.925 -9.993,17.03 -9.993,30.3139996 0,13.2920004 3.367,23.3560004 10.1,30.2090004 6.741,6.844 15.431,10.269 26.086,10.269 10.651,0 19.246,-3.363 25.797,-10.109 6.55,-6.733 9.822,-16.94 9.822,-30.5910004 0,-13.6609996 -3.349,-23.8219996 -10.05,-30.4899996 -6.699,-6.654 -15.338,-9.981 -25.911,-9.981 m -82.13011,58.710808 v -33.768 c 0,-1.577 0.116,-2.571 0.342,-2.988 0.224,-0.415 0.903,-0.623 2.029,-0.623 4.144,0 7.283,1.548 9.429,4.634 2.151,3.083 3.215,8.2160005 3.215,15.4050005 0,7.192 -1.113,11.8779995 -3.325,14.0549995 -2.223,2.183 -5.744,3.285 -10.561,3.285 z m -21.675,-52.392 v 67.735 c 0,1.883 0.468,3.369 1.413,4.471 0.939,1.085 2.161,1.636 3.671,1.636 h 18.854 c 11.965,0 21.053,-3.018 27.257,-9.04 6.215,-6.02 9.322,-15.499 9.322,-28.44699953 0,-27.70000047 -11.821,-41.54700047 -35.456,-41.54700047 h -19.302 c -3.836,0 -5.759,1.727 -5.759,5.192 M 55.862999,16.447401 c -3.611,0 -6.636,-1.659 -9.09,-4.967 -2.441,-3.3110004 -3.668,-7.9580004 -3.668,-13.9380004 0,-5.993 1.166,-10.5809996 3.503,-13.7779996 2.333,-3.207 5.398,-4.804 9.2,-4.804 3.8,0 6.887,1.617 9.258,4.862 2.371,3.233 3.559,7.8609996 3.559,13.8859996 0,6.02 -1.227,10.654 -3.673,13.8900004 -2.443,3.232 -5.473,4.849 -9.089,4.849 m -0.055,-59.493 c -10.573,0 -19.195,3.46 -25.859,10.379 -6.655,6.925 -9.984,17.03 -9.984,30.3139996 0,13.2920004 3.367,23.3560004 10.101,30.2090004 6.736,6.844 15.431,10.269 26.082,10.269 10.649,0 19.251,-3.363 25.794,-10.109 6.555,-6.733 9.827,-16.94 9.827,-30.5910004 0,-13.6609996 -3.348,-23.8219996 -10.05,-30.4899996 -6.702,-6.654 -15.333,-9.981 -25.911,-9.981"
+ id="path207" /></g></g><g
id="g40"
transform="matrix(1.1310535,0,0,1.1310535,441.34721,235.75121)"
style="stroke:none;stroke-width:4.31066306;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill" /><g
@@ -122,10 +128,15 @@
style="stroke:none;stroke-width:4.31066306;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill" /><g
id="g74"
transform="matrix(1.1310535,0,0,1.1310535,669.70883,256.83868)"
- style="stroke:none;stroke-width:4.31066306;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"><path
- id="path76"
- style="fill:#6d6e71;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:15.5885606;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
- d="M 0,0 C -1.763,0 -3.208,-0.802 -4.334,-2.402 -5.463,-4.008 -6.052,-5.987 -6.102,-8.346 H 5.56 v 1.082 c 0,2.086 -0.486,3.823 -1.47,5.201 C 3.109,-0.684 1.747,0 0,0 m 0.401,-23.76 c -2.733,0 -4.958,1.026 -6.681,3.073 -1.73,2.043 -2.595,4.657 -2.595,7.841 v 4.197 c 0,3.19 0.865,5.85 2.6,7.965 1.739,2.105 3.831,3.158 6.275,3.158 2.646,0 4.706,-0.939 6.172,-2.823 1.462,-1.887 2.195,-4.422 2.195,-7.603 v -2.773 H -6.102 v -2.102 c 0,-2.447 0.59,-4.484 1.757,-6.11 1.166,-1.63 2.748,-2.438 4.746,-2.438 1.382,0 2.579,0.244 3.578,0.724 1.012,0.491 1.869,1.179 2.591,2.082 l 1.147,-1.988 c -0.769,-0.968 -1.755,-1.75 -2.962,-2.33 -1.203,-0.577 -2.658,-0.873 -4.354,-0.873 m -28.299804,25.7639105 0.23,-4.178 c 0.676,1.48300001 1.562,2.63400001 2.678,3.435 1.115,0.805 2.422,1.213 3.916,1.213 2.258,0 3.995,-0.835 5.199,-2.51299999 1.211,-1.67500001 1.807,-4.27900001 1.807,-7.81200001 V -23.271089 h -2.825 v 15.3939995 c 0,2.888 -0.422,4.905 -1.261,6.075 -0.843,1.17000001 -2.063,1.75300001 -3.668,1.75300001 -1.434,0 -2.635,-0.466 -3.599,-1.41400001 -0.967,-0.939 -1.692,-2.19 -2.171,-3.767 V -23.271089 h -2.809 V 2.0039105 Z m -9.133591,-25.2752055 h -2.830008 V 2.0037072 h 2.830008 z m 0,32.4710013 h -2.830008 v 3.9819957 h 2.830008 z M -60.863903,-12.846289 c 0,-2.565 0.486,-4.605 1.472,-6.123 0.974,-1.532 2.457,-2.288 4.436,-2.288 1.356,0 2.498,0.361 3.435,1.101 0.934,0.74 1.672,1.77 2.218,3.077 v 12.5200001 c -0.525,1.346 -1.246,2.434 -2.157,3.272 -0.91,0.82400002 -2.062,1.23800002 -3.448,1.23800002 -1.975,0 -3.468,-0.86 -4.46,-2.58700002 -0.999,-1.73 -1.496,-3.986 -1.496,-6.756 z m -2.833,3.4540001 c 0,3.582 0.723,6.459 2.177,8.62700002 1.442,2.15699998 3.448,3.23899998 6.004,3.23899998 1.419,0 2.664,-0.346 3.728,-1.04 1.066,-0.68099998 1.947,-1.67799998 2.654,-2.946 l 0.274,3.516 h 2.381 V -23.294289 c 0,-3.239 -0.751,-5.749 -2.26,-7.525 -1.511,-1.769 -3.657,-2.665 -6.428,-2.665 -0.996,0 -2.067,0.156 -3.212,0.459 -1.147,0.303 -2.162,0.701 -3.052,1.2 l 0.776,2.463 c 0.759,-0.492 1.608,-0.873 2.548,-1.141 0.932,-0.277 1.895,-0.41 2.894,-0.41 2.009,0 3.498,0.645 4.46,1.932 0.966,1.304 1.45,3.19 1.45,5.687 v 3.057 c -0.717,-1.138 -1.597,-2.011 -2.64,-2.614 -1.039,-0.606 -2.253,-0.909 -3.622,-0.909 -2.539,0 -4.53,0.994 -5.968,2.982 -1.441,1.984 -2.164,4.631 -2.164,7.932 z m -19.227592,11.3961994 0.23,-4.178 c 0.674,1.48300001 1.564,2.63400001 2.682,3.435 1.108,0.805 2.413,1.213 3.914,1.213 2.258,0 3.988,-0.835 5.189,-2.51299999 1.214,-1.67500001 1.815,-4.27900001 1.815,-7.81200001 V -23.271089 h -2.825 v 15.3939995 c 0,2.888 -0.423,4.905 -1.264,6.075 -0.836,1.17000001 -2.065,1.75300001 -3.665,1.75300001 -1.435,0 -2.638,-0.466 -3.603,-1.41400001 -0.969,-0.939 -1.691,-2.19 -2.172,-3.767 V -23.271089 h -2.805 V 2.0039105 Z M -98.69412,0 c -1.763,0 -3.21,-0.802 -4.341,-2.402 -1.126,-1.606 -1.712,-3.585 -1.763,-5.944 h 11.663 v 1.082 c 0,2.086 -0.488,3.823 -1.474,5.201 -0.981,1.379 -2.341,2.063 -4.085,2.063 m 0.394,-23.76 c -2.726,0 -4.951,1.026 -6.679,3.073 -1.733,2.043 -2.6,4.657 -2.6,7.841 v 4.197 c 0,3.19 0.871,5.85 2.602,7.965 1.744,2.105 3.834,3.158 6.283,3.158 2.643,0 4.703,-0.939 6.164,-2.823 1.463,-1.887 2.197,-4.422 2.197,-7.603 v -2.773 h -14.465 v -2.102 c 0,-2.447 0.587,-4.484 1.76,-6.11 1.162,-1.63 2.742,-2.438 4.738,-2.438 1.387,0 2.585,0.244 3.585,0.724 1.007,0.491 1.866,1.179 2.589,2.082 l 1.141,-1.988 c -0.764,-0.968 -1.75,-1.75 -2.959,-2.33 -1.204,-0.577 -2.658,-0.873 -4.356,-0.873 M -129.86659,0 c -1.758,0 -3.202,-0.802 -4.334,-2.402 -1.133,-1.606 -1.718,-3.585 -1.765,-5.944 h 11.66 v 1.082 c 0,2.086 -0.489,3.823 -1.469,5.201 -0.986,1.379 -2.347,2.063 -4.092,2.063 m 0.397,-23.76 c -2.725,0 -4.954,1.026 -6.685,3.073 -1.726,2.043 -2.591,4.657 -2.591,7.841 v 4.197 c 0,3.19 0.867,5.85 2.602,7.965 1.739,2.105 3.828,3.158 6.277,3.158 2.648,0 4.699,-0.939 6.164,-2.823 1.468,-1.887 2.201,-4.422 2.201,-7.603 v -2.773 h -14.464 v -2.102 c 0,-2.447 0.586,-4.484 1.752,-6.11 1.168,-1.63 2.755,-2.438 4.744,-2.438 1.382,0 2.585,0.244 3.588,0.724 1.003,0.491 1.863,1.179 2.578,2.082 l 1.149,-1.988 c -0.763,-0.968 -1.752,-1.75 -2.959,-2.33 -1.204,-0.577 -2.659,-0.873 -4.356,-0.873 m -41.1488,25.7639105 0.24,-3.923 c 0.664,1.40400001 1.554,2.48600001 2.657,3.255 1.107,0.759 2.41,1.138 3.906,1.138 1.527,0 2.814,-0.444 3.852,-1.343 1.039,-0.89599999 1.805,-2.252 2.292,-4.074 0.623,1.682 1.505,3.01100001 2.65,3.973 1.145,0.964 2.534,1.444 4.143,1.444 2.217,0 3.937,-0.897 5.156,-2.69199999 1.224,-1.79900001 1.834,-4.55900001 1.834,-8.28800001 V -23.271089 h -2.823 v 14.8139995 c 0,3.1 -0.429,5.283 -1.263,6.538 -0.839,1.25700001 -2.042,1.89000001 -3.598,1.89000001 -1.637,0 -2.915,-0.691 -3.834,-2.09600001 -0.914,-1.405 -1.478,-3.161 -1.683,-5.282 v -0.655 -15.2089995 h -2.809 v 14.7979995 c 0,3.027 -0.424,5.194 -1.292,6.488 -0.864,1.29400001 -2.066,1.93600001 -3.609,1.93600001 -1.475,0 -2.668,-0.45 -3.562,-1.34200001 -0.9,-0.897 -1.54,-2.125 -1.928,-3.683 V -23.271089 h -2.806 V 2.0039105 Z M -188.9332,-21.231295 c 1.553,0 2.936,0.44 4.144,1.336 1.21,0.9 2.058,2.037 2.561,3.422 v 5.468 h -4.492 c -1.91,0 -3.44,-0.541 -4.585,-1.623 -1.148,-1.075 -1.716,-2.418 -1.716,-4.015 0,-1.349 0.355,-2.457 1.074,-3.311 0.718,-0.857 1.722,-1.277 3.014,-1.277 m 7.124,-2.04 c -0.14,0.876 -0.249,1.587 -0.318,2.144 -0.067,0.567 -0.101,1.131 -0.101,1.704 -0.767,-1.254 -1.757,-2.294 -2.98,-3.109 -1.221,-0.821 -2.579,-1.228 -4.075,-1.228 -2.092,0 -3.701,0.648 -4.84,1.946 -1.132,1.303 -1.704,3.059 -1.704,5.276 0,2.343 0.823,4.223 2.473,5.618 1.649,1.3950005 3.89,2.0920005 6.709,2.0920005 h 4.417 v 3.106 c 0,1.786 -0.456,3.193 -1.351,4.21 -0.914,1.00399996 -2.17,1.51199995911 -3.791,1.51199995911 -1.508,0 -2.752,-0.47899999911 -3.728,-1.44999995911 -0.973,-0.965 -1.456,-2.144 -1.456,-3.549 l -2.623,0.023 -0.046,0.137 c -0.074,1.906 0.647,3.591 2.168,5.08399996 1.515,1.48900004 3.459,2.22900004 5.825,2.22900004 2.338,0 4.22,-0.711 5.657,-2.12800004 1.429,-1.43099996 2.146,-3.47099996 2.146,-6.12399996 V -18.174295 c 0,-0.903 0.042,-1.78 0.121,-2.617 0.081,-0.848 0.212,-1.665 0.417,-2.48 z m -20.0925,4.627199 c -0.624,-1.28 -1.771,-2.454 -3.449,-3.516 -1.676,-1.069 -3.805,-1.6 -6.391,-1.6 -3.412,0 -6.156,1.075 -8.24,3.249 -2.076,2.157 -3.116,5.266 -3.116,9.323 v 10.116 c 0,3.969 0.98,7.013 2.946,9.138 1.962,2.108 4.59,3.177 7.872,3.177 3.208,0 5.695,-0.844 7.455,-2.513 1.755,-1.675 2.677,-4.015 2.757,-7.003 l -0.044,-0.133 h -2.619 c -0.094,2.29 -0.759,4.057 -2.01,5.305 -1.244,1.238 -3.095,1.864 -5.539,1.864 -2.473,0 -4.432,-0.837 -5.866,-2.516 -1.43,-1.675 -2.143,-4.103 -2.143,-7.293 v -10.174 c 0,-3.308 0.771,-5.83 2.311,-7.567 1.54,-1.724 3.616,-2.588 6.236,-2.588 1.913,0 3.451,0.339 4.602,1.033 1.155,0.684 1.956,1.519 2.409,2.51 v 8.861 h -7.06 v 2.463 h 9.889 z" /></g><g
+ style="stroke-width:4.31066306;stroke-linejoin:round;paint-order:markers stroke fill"><g
+ id="path76"><path
+ style="color:#000000;fill:#ffffff;-inkscape-stroke:none"
+ d="m -55.166016,-41.279297 c -1.808526,0 -3.536849,0.278071 -5.203125,0.71875 -1.678722,0.443464 -3.320167,1.066841 -4.873046,1.9375 -2.596787,1.63317 -3.994246,4.637553 -3.570313,7.675781 -0.09298,-0.04089 -0.186745,-0.07996 -0.28125,-0.117187 h -2.826172 c -2.002104,0.02358 -3.918364,0.816659 -5.351562,2.214844 -1.433198,-1.398185 -3.349459,-2.191265 -5.351563,-2.214844 h -2.804687 c -1.542011,0.14908 -3.004629,0.754254 -4.201172,1.738281 -0.32252,-0.182255 -0.611512,-0.428692 -0.94336,-0.58789 l -0.0039,-0.002 c -2.472567,-1.184943 -5.120798,-1.638671 -7.724609,-1.638671 -4.678985,-1e-6 -9.601215,2.251543 -12.628905,5.833984 -2.6704,3.151849 -4.02447,7.203314 -4.31836,11.27539 -0.15077,-0.501332 -0.35165,-0.986202 -0.59961,-1.447265 l 0.44141,-0.763672 c 1.59705,-2.762944 1.34866,-6.220292 -0.62695,-8.726562 -1.5267,-1.936879 -3.53107,-3.484621 -5.70508,-4.529297 l -0.008,-0.0039 c -2.47409,-1.18567 -5.11932,-1.638672 -7.72266,-1.638671 -3.09586,-1e-6 -6.25097,1.054638 -8.94141,2.757812 -1.45619,-1.447996 -3.42495,-2.262872 -5.47851,-2.267578 h -2.82227 c -1.93669,0.04642 -3.7867,0.812326 -5.18945,2.148437 -1.40276,-1.336111 -3.25277,-2.102017 -5.18945,-2.148437 h -2.8086 c -1.93899,0.0455 -3.79137,0.812222 -5.19531,2.150391 -1.40394,-1.338169 -3.25633,-2.104889 -5.19531,-2.150391 h -2.80664 c -0.81079,0.191731 -1.58559,0.512204 -2.29492,0.949219 -1.07507,-0.587545 -2.27349,-0.913413 -3.49805,-0.951172 h -2.91992 c -0.67325,0.151008 -1.32346,0.390732 -1.9336,0.71289 -1.795,-0.706205 -3.66929,-1.201171 -5.54101,-1.201171 -3.50013,0 -7.49664,1.420164 -10.20117,4.162109 -0.567,-0.443355 -1.08741,-0.964665 -1.68555,-1.34375 -3.21038,-2.04466 -6.92275,-2.818359 -10.57227,-2.818359 -5.04822,-1e-6 -10.30237,1.935015 -13.86328,5.648437 -6.4e-4,6.65e-4 -0.001,0.0013 -0.002,0.002 -3.76116,3.915201 -5.28516,9.332898 -5.28516,14.716797 v 10.1152344 c 0,5.2520039 1.41057,10.530801 5.01953,14.4316406 0.005,0.0059 0.0104,0.01173 0.0156,0.01758 3.43151,3.686867 8.60365,5.660156 13.57812,5.660156 4.57508,0 9.35017,-1.363472 12.81836,-4.652343 0.006,-0.0052 0.0117,-0.01041 0.0176,-0.01563 1.84606,-1.761905 3.13464,-3.974261 3.98438,-6.3359379 2.53321,1.4403465 5.4497,2.2343749 8.22851,2.2343749 3.02219,0 6.24428,-0.9011821 8.91211,-2.6308593 1.40906,1.3487442 3.27257,2.1202136 5.22266,2.1621094 h 2.47656 c 0.53252,-0.1480547 1.04779,-0.3523286 1.53711,-0.609375 1.73031,0.643973 3.51943,1.0781249 5.26758,1.0781249 2.13316,0 4.35253,-0.730485 6.41015,-1.7968749 2.08238,1.0593742 4.32324,1.7968749 6.52539,1.7968749 3.64342,0 7.56291,-1.8298717 10.20118,-4.5546874 2.88192,2.6877619 6.82494,4.5546874 10.81054,4.5546874 4.48972,0 9.45756,-2.1552464 12.31641,-5.830078 1.60293,-2.0604476 2.51241,-4.43830193884 3.09961,-6.9042969 0.71465,2.43454664 1.82624,4.7452784 3.4414,6.71875 0.0104,0.012402 0.0208,0.024772 0.0312,0.037109 2.88105,3.477408 7.60195,5.9785159 12.285157,5.9785159 2.833994,0 5.804706,-0.9358347 8.371093,-2.496094 1.344793,1.2264745 3.07637,1.9437037 4.894532,2.0273437 h 2.503906 c 0.545292,-0.1512945 1.072488,-0.361518 1.572266,-0.6269531 1.716131,0.6544598 3.499698,1.0957034 5.253906,1.0957034 3.56251,0 7.487652,-1.6692823 10.173828,-4.3496097 2.794016,2.6236811 6.685243,4.3496097 10.408203,4.3496097 1.716056,0 3.475139,-0.4203695 5.179688,-1.0468753 0.471256,0.242399 0.966003,0.4361093 1.476562,0.578125 h 1.203125 v 3.3828133 c 7.7e-5,4.304222 3.488747,7.793766 7.792969,7.794921 h 2.830078 c 4.304985,-7.7e-5 7.794845,-3.489937 7.794922,-7.794921 V 9.7988281 h 1.339844 c 0.545292,-0.1512946 1.072488,-0.361518 1.572265,-0.6269531 1.713658,0.6532826 3.495541,1.095703 5.251953,1.095703 3.629954,0 7.633696,-1.7251239 10.324219,-4.4980468 2.8782652,2.658651 6.792122,4.4980468 10.75,4.4980468 4.4899939,0 9.4557947,-2.1437813 12.324219,-5.830078 0.0033,-0.00455 0.0065,-0.00911 0.0098,-0.013672 2.759395,-3.56154471 3.828125,-7.9966434 3.828125,-12.375 v -2.773437 c -0.05002,-1.926545 -0.811929,-3.766268 -2.138671,-5.164063 l 0.445312,-0.773437 c 1.5981,-2.771071 1.341005,-6.237217 -0.648437,-8.742188 -1.515701,-1.90793 -3.510901,-3.460952 -5.6894536,-4.507812 l -0.00586,-0.002 c -2.4753832,-1.187279 -5.1217303,-1.640625 -7.72460937,-1.640625 -3.10147653,-1e-6 -6.26458173,1.060157 -8.95898443,2.771484 -1.4616306,-1.460639 -3.4434086,-2.28117 -5.5097656,-2.28125 h -2.826172 c -2.001426,0.02408 -3.916898,0.817122 -5.34961,2.214844 -1.432711,-1.397722 -3.348182,-2.190765 -5.349609,-2.214844 h -2.808594 c -1.196545,0.193759 -2.331416,0.663891 -3.314453,1.373047 -0.983426,-0.710129 -2.11901,-1.180949 -3.316406,-1.375 h -2.830078 c -0.06152,0.02461 -0.122722,0.05 -0.183594,0.07617 -0.648488,-1.735391 -1.5001,-3.401647 -2.751953,-4.875 -0.0045,-0.0052 -0.0091,-0.01043 -0.01367,-0.01563 -3.033908,-3.551942 -7.902338,-5.398438 -12.353516,-5.398438 z m -5.078125,3.28125 c -0.01306,0.0037 -0.02405,0.01382 -0.03711,0.01758 -0.01541,0.0045 -0.03148,0.0013 -0.04687,0.0059 z m -120.642579,8.980469 0.0273,0.01758 c -0.004,-0.0027 -0.01,-0.0031 -0.0137,-0.0059 -0.005,-0.0033 -0.009,-0.0084 -0.0137,-0.01172 z m -22.28125,1.96875 0.0527,0.03125 c -0.009,-0.0053 -0.0185,-0.0045 -0.0274,-0.0098 -0.009,-0.0054 -0.0163,-0.01609 -0.0254,-0.02148 z m 93.80859,3.550781 c -0.006,0.0086 -0.009,0.01874 -0.0156,0.02734 -0.003,0.0037 -0.007,0.0061 -0.01,0.0098 z m 44.787114,27.9960939 -0.02539,0.037109 c 0.0061,-0.00841 0.0096,-0.016978 0.01563,-0.025391 0.0029,-0.00408 0.0068,-0.00763 0.0098,-0.011719 z m 55.0292972,0.00586 -0.015625,0.023437 c 0.00411,-0.00568 0.00567,-0.011895 0.00977,-0.017578 0.0016,-0.00222 0.00426,-0.00364 0.00586,-0.00586 z m -75.0507812,3.0625 c 0.0054,0.00393 0.01216,0.00584 0.01758,0.00977 0.0088,0.00635 0.01459,0.015149 0.02344,0.021484 z m 55.041016,0.013672 c 0.0024,0.0017 0.0055,0.00221 0.0078,0.00391 0.0038,0.00276 0.0059,0.00701 0.0098,0.00977 z m -17.976563,0.3828125 -0.0625,0.039063 c 0.01045,-0.00668 0.01692,-0.016737 0.02734,-0.023437 0.01087,-0.00704 0.02431,-0.00855 0.03516,-0.015625 z"
+ id="path211"
+ sodipodi:nodetypes="ccccccccccccscccssssscccccccccccccsccsscssccscccsccccscscsscccsccccscscccscsscccscsccsccccccscsccccccccsccccscccccccccsccccccccsscccssccscccsccccssc" /><path
+ style="color:#000000;fill:#6d6e71;stroke-width:15.5886;-inkscape-stroke:none"
+ d="M 0,0 C -1.763,0 -3.208,-0.802 -4.334,-2.402 -5.463,-4.008 -6.052,-5.987 -6.102,-8.346 H 5.56 v 1.082 c 0,2.086 -0.486,3.823 -1.47,5.201 C 3.109,-0.684 1.747,0 0,0 m 0.401,-23.76 c -2.733,0 -4.958,1.026 -6.681,3.073 -1.73,2.043 -2.595,4.657 -2.595,7.841 v 4.197 c 0,3.19 0.865,5.85 2.6,7.965 1.739,2.105 3.831,3.158 6.275,3.158 2.646,0 4.706,-0.939 6.172,-2.823 1.462,-1.887 2.195,-4.422 2.195,-7.603 v -2.773 H -6.102 v -2.102 c 0,-2.447 0.59,-4.484 1.757,-6.11 1.166,-1.63 2.748,-2.438 4.746,-2.438 1.382,0 2.579,0.244 3.578,0.724 1.012,0.491 1.869,1.179 2.591,2.082 l 1.147,-1.988 c -0.769,-0.968 -1.755,-1.75 -2.962,-2.33 -1.203,-0.577 -2.658,-0.873 -4.354,-0.873 m -28.299804,25.7639105 0.23,-4.178 c 0.676,1.48300001 1.562,2.63400001 2.678,3.435 1.115,0.805 2.422,1.213 3.916,1.213 2.258,0 3.995,-0.835 5.199,-2.51299999 1.211,-1.67500001 1.807,-4.27900001 1.807,-7.81200001 V -23.271089 h -2.825 v 15.3939995 c 0,2.888 -0.422,4.905 -1.261,6.075 -0.843,1.17000001 -2.063,1.75300001 -3.668,1.75300001 -1.434,0 -2.635,-0.466 -3.599,-1.41400001 -0.967,-0.939 -1.692,-2.19 -2.171,-3.767 V -23.271089 h -2.809 V 2.0039105 Z m -9.133591,-25.2752055 h -2.830008 V 2.0037072 h 2.830008 z m 0,32.4710013 h -2.830008 v 3.9819957 h 2.830008 z M -60.863903,-12.846289 c 0,-2.565 0.486,-4.605 1.472,-6.123 0.974,-1.532 2.457,-2.288 4.436,-2.288 1.356,0 2.498,0.361 3.435,1.101 0.934,0.74 1.672,1.77 2.218,3.077 v 12.5200001 c -0.525,1.346 -1.246,2.434 -2.157,3.272 -0.91,0.82400002 -2.062,1.23800002 -3.448,1.23800002 -1.975,0 -3.468,-0.86 -4.46,-2.58700002 -0.999,-1.73 -1.496,-3.986 -1.496,-6.756 z m -2.833,3.4540001 c 0,3.582 0.723,6.459 2.177,8.62700002 1.442,2.15699998 3.448,3.23899998 6.004,3.23899998 1.419,0 2.664,-0.346 3.728,-1.04 1.066,-0.68099998 1.947,-1.67799998 2.654,-2.946 l 0.274,3.516 h 2.381 V -23.294289 c 0,-3.239 -0.751,-5.749 -2.26,-7.525 -1.511,-1.769 -3.657,-2.665 -6.428,-2.665 -0.996,0 -2.067,0.156 -3.212,0.459 -1.147,0.303 -2.162,0.701 -3.052,1.2 l 0.776,2.463 c 0.759,-0.492 1.608,-0.873 2.548,-1.141 0.932,-0.277 1.895,-0.41 2.894,-0.41 2.009,0 3.498,0.645 4.46,1.932 0.966,1.304 1.45,3.19 1.45,5.687 v 3.057 c -0.717,-1.138 -1.597,-2.011 -2.64,-2.614 -1.039,-0.606 -2.253,-0.909 -3.622,-0.909 -2.539,0 -4.53,0.994 -5.968,2.982 -1.441,1.984 -2.164,4.631 -2.164,7.932 z m -19.227592,11.3961994 0.23,-4.178 c 0.674,1.48300001 1.564,2.63400001 2.682,3.435 1.108,0.805 2.413,1.213 3.914,1.213 2.258,0 3.988,-0.835 5.189,-2.51299999 1.214,-1.67500001 1.815,-4.27900001 1.815,-7.81200001 V -23.271089 h -2.825 v 15.3939995 c 0,2.888 -0.423,4.905 -1.264,6.075 -0.836,1.17000001 -2.065,1.75300001 -3.665,1.75300001 -1.435,0 -2.638,-0.466 -3.603,-1.41400001 -0.969,-0.939 -1.691,-2.19 -2.172,-3.767 V -23.271089 h -2.805 V 2.0039105 Z M -98.69412,0 c -1.763,0 -3.21,-0.802 -4.341,-2.402 -1.126,-1.606 -1.712,-3.585 -1.763,-5.944 h 11.663 v 1.082 c 0,2.086 -0.488,3.823 -1.474,5.201 -0.981,1.379 -2.341,2.063 -4.085,2.063 m 0.394,-23.76 c -2.726,0 -4.951,1.026 -6.679,3.073 -1.733,2.043 -2.6,4.657 -2.6,7.841 v 4.197 c 0,3.19 0.871,5.85 2.602,7.965 1.744,2.105 3.834,3.158 6.283,3.158 2.643,0 4.703,-0.939 6.164,-2.823 1.463,-1.887 2.197,-4.422 2.197,-7.603 v -2.773 h -14.465 v -2.102 c 0,-2.447 0.587,-4.484 1.76,-6.11 1.162,-1.63 2.742,-2.438 4.738,-2.438 1.387,0 2.585,0.244 3.585,0.724 1.007,0.491 1.866,1.179 2.589,2.082 l 1.141,-1.988 c -0.764,-0.968 -1.75,-1.75 -2.959,-2.33 -1.204,-0.577 -2.658,-0.873 -4.356,-0.873 M -129.86659,0 c -1.758,0 -3.202,-0.802 -4.334,-2.402 -1.133,-1.606 -1.718,-3.585 -1.765,-5.944 h 11.66 v 1.082 c 0,2.086 -0.489,3.823 -1.469,5.201 -0.986,1.379 -2.347,2.063 -4.092,2.063 m 0.397,-23.76 c -2.725,0 -4.954,1.026 -6.685,3.073 -1.726,2.043 -2.591,4.657 -2.591,7.841 v 4.197 c 0,3.19 0.867,5.85 2.602,7.965 1.739,2.105 3.828,3.158 6.277,3.158 2.648,0 4.699,-0.939 6.164,-2.823 1.468,-1.887 2.201,-4.422 2.201,-7.603 v -2.773 h -14.464 v -2.102 c 0,-2.447 0.586,-4.484 1.752,-6.11 1.168,-1.63 2.755,-2.438 4.744,-2.438 1.382,0 2.585,0.244 3.588,0.724 1.003,0.491 1.863,1.179 2.578,2.082 l 1.149,-1.988 c -0.763,-0.968 -1.752,-1.75 -2.959,-2.33 -1.204,-0.577 -2.659,-0.873 -4.356,-0.873 m -41.1488,25.7639105 0.24,-3.923 c 0.664,1.40400001 1.554,2.48600001 2.657,3.255 1.107,0.759 2.41,1.138 3.906,1.138 1.527,0 2.814,-0.444 3.852,-1.343 1.039,-0.89599999 1.805,-2.252 2.292,-4.074 0.623,1.682 1.505,3.01100001 2.65,3.973 1.145,0.964 2.534,1.444 4.143,1.444 2.217,0 3.937,-0.897 5.156,-2.69199999 1.224,-1.79900001 1.834,-4.55900001 1.834,-8.28800001 V -23.271089 h -2.823 v 14.8139995 c 0,3.1 -0.429,5.283 -1.263,6.538 -0.839,1.25700001 -2.042,1.89000001 -3.598,1.89000001 -1.637,0 -2.915,-0.691 -3.834,-2.09600001 -0.914,-1.405 -1.478,-3.161 -1.683,-5.282 v -0.655 -15.2089995 h -2.809 v 14.7979995 c 0,3.027 -0.424,5.194 -1.292,6.488 -0.864,1.29400001 -2.066,1.93600001 -3.609,1.93600001 -1.475,0 -2.668,-0.45 -3.562,-1.34200001 -0.9,-0.897 -1.54,-2.125 -1.928,-3.683 V -23.271089 h -2.806 V 2.0039105 Z M -188.9332,-21.231295 c 1.553,0 2.936,0.44 4.144,1.336 1.21,0.9 2.058,2.037 2.561,3.422 v 5.468 h -4.492 c -1.91,0 -3.44,-0.541 -4.585,-1.623 -1.148,-1.075 -1.716,-2.418 -1.716,-4.015 0,-1.349 0.355,-2.457 1.074,-3.311 0.718,-0.857 1.722,-1.277 3.014,-1.277 m 7.124,-2.04 c -0.14,0.876 -0.249,1.587 -0.318,2.144 -0.067,0.567 -0.101,1.131 -0.101,1.704 -0.767,-1.254 -1.757,-2.294 -2.98,-3.109 -1.221,-0.821 -2.579,-1.228 -4.075,-1.228 -2.092,0 -3.701,0.648 -4.84,1.946 -1.132,1.303 -1.704,3.059 -1.704,5.276 0,2.343 0.823,4.223 2.473,5.618 1.649,1.3950005 3.89,2.0920005 6.709,2.0920005 h 4.417 v 3.106 c 0,1.786 -0.456,3.193 -1.351,4.21 -0.914,1.00399996 -2.17,1.51199995911 -3.791,1.51199995911 -1.508,0 -2.752,-0.47899999911 -3.728,-1.44999995911 -0.973,-0.965 -1.456,-2.144 -1.456,-3.549 l -2.623,0.023 -0.046,0.137 c -0.074,1.906 0.647,3.591 2.168,5.08399996 1.515,1.48900004 3.459,2.22900004 5.825,2.22900004 2.338,0 4.22,-0.711 5.657,-2.12800004 1.429,-1.43099996 2.146,-3.47099996 2.146,-6.12399996 V -18.174295 c 0,-0.903 0.042,-1.78 0.121,-2.617 0.081,-0.848 0.212,-1.665 0.417,-2.48 z m -20.0925,4.627199 c -0.624,-1.28 -1.771,-2.454 -3.449,-3.516 -1.676,-1.069 -3.805,-1.6 -6.391,-1.6 -3.412,0 -6.156,1.075 -8.24,3.249 -2.076,2.157 -3.116,5.266 -3.116,9.323 v 10.116 c 0,3.969 0.98,7.013 2.946,9.138 1.962,2.108 4.59,3.177 7.872,3.177 3.208,0 5.695,-0.844 7.455,-2.513 1.755,-1.675 2.677,-4.015 2.757,-7.003 l -0.044,-0.133 h -2.619 c -0.094,2.29 -0.759,4.057 -2.01,5.305 -1.244,1.238 -3.095,1.864 -5.539,1.864 -2.473,0 -4.432,-0.837 -5.866,-2.516 -1.43,-1.675 -2.143,-4.103 -2.143,-7.293 v -10.174 c 0,-3.308 0.771,-5.83 2.311,-7.567 1.54,-1.724 3.616,-2.588 6.236,-2.588 1.913,0 3.451,0.339 4.602,1.033 1.155,0.684 1.956,1.519 2.409,2.51 v 8.861 h -7.06 v 2.463 h 9.889 z"
+ id="path213" /></g></g><g
id="g78"
transform="matrix(1.1310535,0,0,1.1310535,348.13109,279.2668)"
style="stroke-width:0.884131"><path
diff --git a/methods.py b/methods.py
index 7654e6e86d..33ab894f92 100644
--- a/methods.py
+++ b/methods.py
@@ -50,7 +50,7 @@ def disable_warnings(self):
def force_optimization_on_debug(self):
# 'self' is the environment
- if self["target"] != "template-release":
+ if self["target"] == "template_release":
return
if self.msvc:
diff --git a/modules/gltf/editor/editor_scene_exporter_gltf_plugin.cpp b/modules/gltf/editor/editor_scene_exporter_gltf_plugin.cpp
index 3b8d2cc701..5f6ec5904c 100644
--- a/modules/gltf/editor/editor_scene_exporter_gltf_plugin.cpp
+++ b/modules/gltf/editor/editor_scene_exporter_gltf_plugin.cpp
@@ -34,9 +34,9 @@
#include "../gltf_document.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_file_system.h"
#include "editor/editor_node.h"
+#include "editor/gui/editor_file_dialog.h"
String SceneExporterGLTFPlugin::get_name() const {
return "ConvertGLTF2";
diff --git a/modules/gltf/editor/editor_scene_importer_blend.cpp b/modules/gltf/editor/editor_scene_importer_blend.cpp
index a736e36c6a..2efaaa7d4d 100644
--- a/modules/gltf/editor/editor_scene_importer_blend.cpp
+++ b/modules/gltf/editor/editor_scene_importer_blend.cpp
@@ -37,10 +37,10 @@
#include "editor_import_blend_runner.h"
#include "core/config/project_settings.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_node.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
+#include "editor/gui/editor_file_dialog.h"
#include "main/main.h"
#include "scene/gui/line_edit.h"
diff --git a/modules/gridmap/editor/grid_map_editor_plugin.cpp b/modules/gridmap/editor/grid_map_editor_plugin.cpp
index bb5eb8e643..20f1aa357b 100644
--- a/modules/gridmap/editor/grid_map_editor_plugin.cpp
+++ b/modules/gridmap/editor/grid_map_editor_plugin.cpp
@@ -40,6 +40,8 @@
#include "editor/editor_undo_redo_manager.h"
#include "editor/plugins/node_3d_editor_plugin.h"
#include "scene/3d/camera_3d.h"
+#include "scene/gui/dialogs.h"
+#include "scene/gui/label.h"
#include "scene/gui/menu_button.h"
#include "scene/gui/separator.h"
#include "scene/main/window.h"
diff --git a/modules/multiplayer/editor/replication_editor.cpp b/modules/multiplayer/editor/replication_editor.cpp
index 9e542828ee..1f707f1192 100644
--- a/modules/multiplayer/editor/replication_editor.cpp
+++ b/modules/multiplayer/editor/replication_editor.cpp
@@ -36,9 +36,9 @@
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
#include "editor/editor_undo_redo_manager.h"
+#include "editor/gui/scene_tree_editor.h"
#include "editor/inspector_dock.h"
#include "editor/property_selector.h"
-#include "editor/scene_tree_editor.h"
#include "scene/gui/dialogs.h"
#include "scene/gui/separator.h"
#include "scene/gui/tree.h"
diff --git a/modules/navigation/editor/navigation_mesh_editor_plugin.cpp b/modules/navigation/editor/navigation_mesh_editor_plugin.cpp
index 557d45b386..dd2c539c95 100644
--- a/modules/navigation/editor/navigation_mesh_editor_plugin.cpp
+++ b/modules/navigation/editor/navigation_mesh_editor_plugin.cpp
@@ -38,6 +38,9 @@
#include "editor/editor_node.h"
#include "scene/3d/mesh_instance_3d.h"
#include "scene/gui/box_container.h"
+#include "scene/gui/button.h"
+#include "scene/gui/dialogs.h"
+#include "scene/gui/label.h"
void NavigationMeshEditor::_node_removed(Node *p_node) {
if (p_node == node) {
diff --git a/modules/navigation/editor/navigation_mesh_editor_plugin.h b/modules/navigation/editor/navigation_mesh_editor_plugin.h
index 010be411d6..b73d8d2e69 100644
--- a/modules/navigation/editor/navigation_mesh_editor_plugin.h
+++ b/modules/navigation/editor/navigation_mesh_editor_plugin.h
@@ -36,7 +36,9 @@
#include "editor/editor_plugin.h"
class AcceptDialog;
+class Button;
class HBoxContainer;
+class Label;
class NavigationRegion3D;
class NavigationMeshEditor : public Control {
diff --git a/modules/openxr/doc_classes/OpenXRInterface.xml b/modules/openxr/doc_classes/OpenXRInterface.xml
index 16a16a7f24..b6d52464c0 100644
--- a/modules/openxr/doc_classes/OpenXRInterface.xml
+++ b/modules/openxr/doc_classes/OpenXRInterface.xml
@@ -43,6 +43,9 @@
<member name="display_refresh_rate" type="float" setter="set_display_refresh_rate" getter="get_display_refresh_rate" default="0.0">
The display refresh rate for the current HMD. Only functional if this feature is supported by the OpenXR runtime and after the interface has been initialized.
</member>
+ <member name="render_target_size_multiplier" type="float" setter="set_render_target_size_multiplier" getter="get_render_target_size_multiplier" default="1.0">
+ The render size multiplier for the current HMD. Must be set before the interface has been initialized.
+ </member>
</members>
<signals>
<signal name="pose_recentered">
diff --git a/modules/openxr/editor/openxr_action_map_editor.cpp b/modules/openxr/editor/openxr_action_map_editor.cpp
index ad5a515a01..64e07eff21 100644
--- a/modules/openxr/editor/openxr_action_map_editor.cpp
+++ b/modules/openxr/editor/openxr_action_map_editor.cpp
@@ -31,10 +31,10 @@
#include "openxr_action_map_editor.h"
#include "core/config/project_settings.h"
-#include "editor/editor_file_dialog.h"
#include "editor/editor_node.h"
#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
+#include "editor/gui/editor_file_dialog.h"
// TODO implement redo/undo system
diff --git a/modules/openxr/openxr_api.cpp b/modules/openxr/openxr_api.cpp
index 4b39a6295c..d1680612d9 100644
--- a/modules/openxr/openxr_api.cpp
+++ b/modules/openxr/openxr_api.cpp
@@ -1423,8 +1423,8 @@ Size2 OpenXRAPI::get_recommended_target_size() {
Size2 target_size;
- target_size.width = view_configuration_views[0].recommendedImageRectWidth;
- target_size.height = view_configuration_views[0].recommendedImageRectHeight;
+ target_size.width = view_configuration_views[0].recommendedImageRectWidth * render_target_size_multiplier;
+ target_size.height = view_configuration_views[0].recommendedImageRectHeight * render_target_size_multiplier;
return target_size;
}
@@ -1964,6 +1964,14 @@ Array OpenXRAPI::get_available_display_refresh_rates() const {
return Array();
}
+double OpenXRAPI::get_render_target_size_multiplier() const {
+ return render_target_size_multiplier;
+}
+
+void OpenXRAPI::set_render_target_size_multiplier(double multiplier) {
+ render_target_size_multiplier = multiplier;
+}
+
OpenXRAPI::OpenXRAPI() {
// OpenXRAPI is only constructed if OpenXR is enabled.
singleton = this;
diff --git a/modules/openxr/openxr_api.h b/modules/openxr/openxr_api.h
index c8bef5d420..292e54228d 100644
--- a/modules/openxr/openxr_api.h
+++ b/modules/openxr/openxr_api.h
@@ -120,6 +120,7 @@ private:
XrSessionState session_state = XR_SESSION_STATE_UNKNOWN;
bool running = false;
XrFrameState frame_state = { XR_TYPE_FRAME_STATE, NULL, 0, 0, false };
+ double render_target_size_multiplier = 1.0;
OpenXRGraphicsExtensionWrapper *graphics_extension = nullptr;
XrSystemGraphicsProperties graphics_properties;
@@ -368,6 +369,10 @@ public:
void set_display_refresh_rate(float p_refresh_rate);
Array get_available_display_refresh_rates() const;
+ // Render Target size multiplier
+ double get_render_target_size_multiplier() const;
+ void set_render_target_size_multiplier(double multiplier);
+
// action map
String get_default_action_map_resource_name();
diff --git a/modules/openxr/openxr_interface.cpp b/modules/openxr/openxr_interface.cpp
index 27344c9da7..933148da87 100644
--- a/modules/openxr/openxr_interface.cpp
+++ b/modules/openxr/openxr_interface.cpp
@@ -47,6 +47,11 @@ void OpenXRInterface::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_display_refresh_rate", "refresh_rate"), &OpenXRInterface::set_display_refresh_rate);
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "display_refresh_rate"), "set_display_refresh_rate", "get_display_refresh_rate");
+ // Render Target size multiplier
+ ClassDB::bind_method(D_METHOD("get_render_target_size_multiplier"), &OpenXRInterface::get_render_target_size_multiplier);
+ ClassDB::bind_method(D_METHOD("set_render_target_size_multiplier", "multiplier"), &OpenXRInterface::set_render_target_size_multiplier);
+ ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "render_target_size_multiplier"), "set_render_target_size_multiplier", "get_render_target_size_multiplier");
+
ClassDB::bind_method(D_METHOD("is_action_set_active", "name"), &OpenXRInterface::is_action_set_active);
ClassDB::bind_method(D_METHOD("set_action_set_active", "name", "active"), &OpenXRInterface::set_action_set_active);
ClassDB::bind_method(D_METHOD("get_action_sets"), &OpenXRInterface::get_action_sets);
@@ -668,6 +673,22 @@ Array OpenXRInterface::get_action_sets() const {
return arr;
}
+double OpenXRInterface::get_render_target_size_multiplier() const {
+ if (openxr_api == nullptr) {
+ return 1.0;
+ } else {
+ return openxr_api->get_render_target_size_multiplier();
+ }
+}
+
+void OpenXRInterface::set_render_target_size_multiplier(double multiplier) {
+ if (openxr_api == nullptr) {
+ return;
+ } else {
+ openxr_api->set_render_target_size_multiplier(multiplier);
+ }
+}
+
Size2 OpenXRInterface::get_render_target_size() {
if (openxr_api == nullptr) {
return Size2();
diff --git a/modules/openxr/openxr_interface.h b/modules/openxr/openxr_interface.h
index de758a8c2d..f36318530c 100644
--- a/modules/openxr/openxr_interface.h
+++ b/modules/openxr/openxr_interface.h
@@ -128,6 +128,9 @@ public:
void set_action_set_active(const String &p_action_set, bool p_active);
Array get_action_sets() const;
+ double get_render_target_size_multiplier() const;
+ void set_render_target_size_multiplier(double multiplier);
+
virtual Size2 get_render_target_size() override;
virtual uint32_t get_view_count() override;
virtual Transform3D get_camera_transform() override;
diff --git a/modules/text_server_adv/text_server_adv.cpp b/modules/text_server_adv/text_server_adv.cpp
index c6a21aeefe..43c7f49395 100644
--- a/modules/text_server_adv/text_server_adv.cpp
+++ b/modules/text_server_adv/text_server_adv.cpp
@@ -4182,22 +4182,37 @@ bool TextServerAdvanced::_shape_substr(ShapedTextDataAdvanced *p_new_sd, const S
ERR_FAIL_COND_V_MSG((start < 0 || end - start > p_new_sd->utf16.length()), false, "Invalid BiDi override range.");
// Create temporary line bidi & shape.
- UBiDi *bidi_iter = ubidi_openSized(end - start, 0, &err);
- ERR_FAIL_COND_V_MSG(U_FAILURE(err), false, u_errorName(err));
- ubidi_setLine(p_sd->bidi_iter[ov], start, end, bidi_iter, &err);
- if (U_FAILURE(err)) {
- ubidi_close(bidi_iter);
- ERR_FAIL_V_MSG(false, u_errorName(err));
+ UBiDi *bidi_iter = nullptr;
+ if (p_sd->bidi_iter[ov]) {
+ bidi_iter = ubidi_openSized(end - start, 0, &err);
+ if (U_SUCCESS(err)) {
+ ubidi_setLine(p_sd->bidi_iter[ov], start, end, bidi_iter, &err);
+ if (U_FAILURE(err)) {
+ ubidi_close(bidi_iter);
+ bidi_iter = nullptr;
+ ERR_PRINT(vformat("BiDi reordering for the line failed: %s", u_errorName(err)));
+ }
+ } else {
+ bidi_iter = nullptr;
+ ERR_PRINT(vformat("BiDi iterator allocation for the line failed: %s", u_errorName(err)));
+ }
}
p_new_sd->bidi_iter.push_back(bidi_iter);
err = U_ZERO_ERROR;
- int bidi_run_count = ubidi_countRuns(bidi_iter, &err);
- ERR_FAIL_COND_V_MSG(U_FAILURE(err), false, u_errorName(err));
+ int bidi_run_count = 1;
+ if (bidi_iter) {
+ bidi_run_count = ubidi_countRuns(bidi_iter, &err);
+ if (U_FAILURE(err)) {
+ ERR_PRINT(u_errorName(err));
+ }
+ }
for (int i = 0; i < bidi_run_count; i++) {
int32_t _bidi_run_start = 0;
- int32_t _bidi_run_length = 0;
- ubidi_getVisualRun(bidi_iter, i, &_bidi_run_start, &_bidi_run_length);
+ int32_t _bidi_run_length = end - start;
+ if (bidi_iter) {
+ ubidi_getVisualRun(bidi_iter, i, &_bidi_run_start, &_bidi_run_length);
+ }
int32_t bidi_run_start = _convert_pos(p_sd, ov_start + start + _bidi_run_start);
int32_t bidi_run_end = _convert_pos(p_sd, ov_start + start + _bidi_run_start + _bidi_run_length);
@@ -5642,38 +5657,53 @@ bool TextServerAdvanced::_shaped_text_shape(const RID &p_shaped) {
UErrorCode err = U_ZERO_ERROR;
UBiDi *bidi_iter = ubidi_openSized(end - start, 0, &err);
- ERR_FAIL_COND_V_MSG(U_FAILURE(err), false, u_errorName(err));
-
- switch (static_cast<TextServer::Direction>(sd->bidi_override[ov].z)) {
- case DIRECTION_LTR: {
- ubidi_setPara(bidi_iter, data + start, end - start, UBIDI_LTR, nullptr, &err);
- } break;
- case DIRECTION_RTL: {
- ubidi_setPara(bidi_iter, data + start, end - start, UBIDI_RTL, nullptr, &err);
- } break;
- case DIRECTION_INHERITED: {
- ubidi_setPara(bidi_iter, data + start, end - start, base_para_direction, nullptr, &err);
- } break;
- case DIRECTION_AUTO: {
- UBiDiDirection direction = ubidi_getBaseDirection(data + start, end - start);
- if (direction != UBIDI_NEUTRAL) {
- ubidi_setPara(bidi_iter, data + start, end - start, direction, nullptr, &err);
- } else {
+ if (U_SUCCESS(err)) {
+ switch (static_cast<TextServer::Direction>(sd->bidi_override[ov].z)) {
+ case DIRECTION_LTR: {
+ ubidi_setPara(bidi_iter, data + start, end - start, UBIDI_LTR, nullptr, &err);
+ } break;
+ case DIRECTION_RTL: {
+ ubidi_setPara(bidi_iter, data + start, end - start, UBIDI_RTL, nullptr, &err);
+ } break;
+ case DIRECTION_INHERITED: {
ubidi_setPara(bidi_iter, data + start, end - start, base_para_direction, nullptr, &err);
- }
- } break;
+ } break;
+ case DIRECTION_AUTO: {
+ UBiDiDirection direction = ubidi_getBaseDirection(data + start, end - start);
+ if (direction != UBIDI_NEUTRAL) {
+ ubidi_setPara(bidi_iter, data + start, end - start, direction, nullptr, &err);
+ } else {
+ ubidi_setPara(bidi_iter, data + start, end - start, base_para_direction, nullptr, &err);
+ }
+ } break;
+ }
+ if (U_FAILURE(err)) {
+ ubidi_close(bidi_iter);
+ bidi_iter = nullptr;
+ ERR_PRINT(vformat("BiDi reordering for the paragraph failed: %s", u_errorName(err)));
+ }
+ } else {
+ bidi_iter = nullptr;
+ ERR_PRINT(vformat("BiDi iterator allocation for the paragraph failed: %s", u_errorName(err)));
}
- ERR_FAIL_COND_V_MSG(U_FAILURE(err), false, u_errorName(err));
sd->bidi_iter.push_back(bidi_iter);
err = U_ZERO_ERROR;
- int bidi_run_count = ubidi_countRuns(bidi_iter, &err);
- ERR_FAIL_COND_V_MSG(U_FAILURE(err), false, u_errorName(err));
+ int bidi_run_count = 1;
+ if (bidi_iter) {
+ bidi_run_count = ubidi_countRuns(bidi_iter, &err);
+ if (U_FAILURE(err)) {
+ ERR_PRINT(u_errorName(err));
+ }
+ }
for (int i = 0; i < bidi_run_count; i++) {
int32_t _bidi_run_start = 0;
- int32_t _bidi_run_length = 0;
+ int32_t _bidi_run_length = end - start;
+ bool is_rtl = false;
hb_direction_t bidi_run_direction = HB_DIRECTION_INVALID;
- bool is_rtl = (ubidi_getVisualRun(bidi_iter, i, &_bidi_run_start, &_bidi_run_length) == UBIDI_LTR);
+ if (bidi_iter) {
+ is_rtl = (ubidi_getVisualRun(bidi_iter, i, &_bidi_run_start, &_bidi_run_length) == UBIDI_LTR);
+ }
switch (sd->orientation) {
case ORIENTATION_HORIZONTAL: {
if (is_rtl) {
diff --git a/modules/text_server_adv/text_server_adv.h b/modules/text_server_adv/text_server_adv.h
index b959dd8544..af3a0c7876 100644
--- a/modules/text_server_adv/text_server_adv.h
+++ b/modules/text_server_adv/text_server_adv.h
@@ -515,7 +515,9 @@ class TextServerAdvanced : public TextServerExtension {
~ShapedTextDataAdvanced() {
for (int i = 0; i < bidi_iter.size(); i++) {
- ubidi_close(bidi_iter[i]);
+ if (bidi_iter[i]) {
+ ubidi_close(bidi_iter[i]);
+ }
}
if (script_iter) {
memdelete(script_iter);
diff --git a/platform/android/tts_android.h b/platform/android/tts_android.h
index 8e3bfccbdb..8e00ac5000 100644
--- a/platform/android/tts_android.h
+++ b/platform/android/tts_android.h
@@ -32,6 +32,7 @@
#define TTS_ANDROID_H
#include "core/string/ustring.h"
+#include "core/templates/hash_map.h"
#include "core/variant/array.h"
#include "servers/display_server.h"
diff --git a/platform/ios/tts_ios.h b/platform/ios/tts_ios.h
index 2d104de8ae..7f9d30b22b 100644
--- a/platform/ios/tts_ios.h
+++ b/platform/ios/tts_ios.h
@@ -38,8 +38,8 @@
#endif
#include "core/string/ustring.h"
+#include "core/templates/hash_map.h"
#include "core/templates/list.h"
-#include "core/templates/rb_map.h"
#include "core/variant/array.h"
#include "servers/display_server.h"
diff --git a/platform/linuxbsd/tts_linux.h b/platform/linuxbsd/tts_linux.h
index 4134f8fa2f..651a64d9d6 100644
--- a/platform/linuxbsd/tts_linux.h
+++ b/platform/linuxbsd/tts_linux.h
@@ -34,8 +34,8 @@
#include "core/os/thread.h"
#include "core/os/thread_safe.h"
#include "core/string/ustring.h"
+#include "core/templates/hash_map.h"
#include "core/templates/list.h"
-#include "core/templates/rb_map.h"
#include "core/variant/array.h"
#include "servers/display_server.h"
diff --git a/platform/linuxbsd/x11/display_server_x11.cpp b/platform/linuxbsd/x11/display_server_x11.cpp
index 4c5d9552e6..0972bf700e 100644
--- a/platform/linuxbsd/x11/display_server_x11.cpp
+++ b/platform/linuxbsd/x11/display_server_x11.cpp
@@ -2654,16 +2654,12 @@ void DisplayServerX11::cursor_set_custom_image(const Ref<Resource> &p_cursor, Cu
}
Ref<Texture2D> texture = p_cursor;
+ ERR_FAIL_COND(!texture.is_valid());
Ref<AtlasTexture> atlas_texture = p_cursor;
- Ref<Image> image;
Size2i texture_size;
Rect2i atlas_rect;
- if (texture.is_valid()) {
- image = texture->get_image();
- }
-
- if (!image.is_valid() && atlas_texture.is_valid()) {
+ if (atlas_texture.is_valid()) {
texture = atlas_texture->get_atlas();
atlas_rect.size.width = texture->get_width();
@@ -2673,17 +2669,16 @@ void DisplayServerX11::cursor_set_custom_image(const Ref<Resource> &p_cursor, Cu
texture_size.width = atlas_texture->get_region().size.x;
texture_size.height = atlas_texture->get_region().size.y;
- } else if (image.is_valid()) {
+ } else {
texture_size.width = texture->get_width();
texture_size.height = texture->get_height();
}
- ERR_FAIL_COND(!texture.is_valid());
ERR_FAIL_COND(p_hotspot.x < 0 || p_hotspot.y < 0);
ERR_FAIL_COND(texture_size.width > 256 || texture_size.height > 256);
ERR_FAIL_COND(p_hotspot.x > texture_size.width || p_hotspot.y > texture_size.height);
- image = texture->get_image();
+ Ref<Image> image = texture->get_image();
ERR_FAIL_COND(!image.is_valid());
diff --git a/platform/macos/display_server_macos.mm b/platform/macos/display_server_macos.mm
index 9ef1446ea3..ac3a861d84 100644
--- a/platform/macos/display_server_macos.mm
+++ b/platform/macos/display_server_macos.mm
@@ -3328,16 +3328,12 @@ void DisplayServerMacOS::cursor_set_custom_image(const Ref<Resource> &p_cursor,
}
Ref<Texture2D> texture = p_cursor;
+ ERR_FAIL_COND(!texture.is_valid());
Ref<AtlasTexture> atlas_texture = p_cursor;
- Ref<Image> image;
Size2 texture_size;
Rect2 atlas_rect;
- if (texture.is_valid()) {
- image = texture->get_image();
- }
-
- if (!image.is_valid() && atlas_texture.is_valid()) {
+ if (atlas_texture.is_valid()) {
texture = atlas_texture->get_atlas();
atlas_rect.size.width = texture->get_width();
@@ -3347,17 +3343,16 @@ void DisplayServerMacOS::cursor_set_custom_image(const Ref<Resource> &p_cursor,
texture_size.width = atlas_texture->get_region().size.x;
texture_size.height = atlas_texture->get_region().size.y;
- } else if (image.is_valid()) {
+ } else {
texture_size.width = texture->get_width();
texture_size.height = texture->get_height();
}
- ERR_FAIL_COND(!texture.is_valid());
ERR_FAIL_COND(p_hotspot.x < 0 || p_hotspot.y < 0);
ERR_FAIL_COND(texture_size.width > 256 || texture_size.height > 256);
ERR_FAIL_COND(p_hotspot.x > texture_size.width || p_hotspot.y > texture_size.height);
- image = texture->get_image();
+ Ref<Image> image = texture->get_image();
ERR_FAIL_COND(!image.is_valid());
diff --git a/platform/macos/export/export_plugin.cpp b/platform/macos/export/export_plugin.cpp
index 5a097adf39..ab76d9b273 100644
--- a/platform/macos/export/export_plugin.cpp
+++ b/platform/macos/export/export_plugin.cpp
@@ -768,7 +768,7 @@ Error EditorExportPlatformMacOS::_code_sign(const Ref<EditorExportPreset> &p_pre
String certificate_file = p_preset->get("codesign/certificate_file");
String certificate_pass = p_preset->get("codesign/certificate_password");
- if (!certificate_file.is_empty() && !certificate_file.is_empty()) {
+ if (!certificate_file.is_empty() && !certificate_pass.is_empty()) {
args.push_back("--p12-file");
args.push_back(certificate_file);
args.push_back("--p12-password");
diff --git a/platform/macos/tts_macos.h b/platform/macos/tts_macos.h
index 2153a4c692..35205bd1ae 100644
--- a/platform/macos/tts_macos.h
+++ b/platform/macos/tts_macos.h
@@ -32,8 +32,8 @@
#define TTS_MACOS_H
#include "core/string/ustring.h"
+#include "core/templates/hash_map.h"
#include "core/templates/list.h"
-#include "core/templates/rb_map.h"
#include "core/variant/array.h"
#include "servers/display_server.h"
diff --git a/platform/web/display_server_web.cpp b/platform/web/display_server_web.cpp
index 565d439a92..da55e8560a 100644
--- a/platform/web/display_server_web.cpp
+++ b/platform/web/display_server_web.cpp
@@ -398,16 +398,12 @@ void DisplayServerWeb::cursor_set_custom_image(const Ref<Resource> &p_cursor, Cu
ERR_FAIL_INDEX(p_shape, CURSOR_MAX);
if (p_cursor.is_valid()) {
Ref<Texture2D> texture = p_cursor;
+ ERR_FAIL_COND(!texture.is_valid());
Ref<AtlasTexture> atlas_texture = p_cursor;
- Ref<Image> image;
Size2 texture_size;
Rect2 atlas_rect;
- if (texture.is_valid()) {
- image = texture->get_image();
- }
-
- if (!image.is_valid() && atlas_texture.is_valid()) {
+ if (atlas_texture.is_valid()) {
texture = atlas_texture->get_atlas();
atlas_rect.size.width = texture->get_width();
@@ -417,17 +413,16 @@ void DisplayServerWeb::cursor_set_custom_image(const Ref<Resource> &p_cursor, Cu
texture_size.width = atlas_texture->get_region().size.x;
texture_size.height = atlas_texture->get_region().size.y;
- } else if (image.is_valid()) {
+ } else {
texture_size.width = texture->get_width();
texture_size.height = texture->get_height();
}
- ERR_FAIL_COND(!texture.is_valid());
ERR_FAIL_COND(p_hotspot.x < 0 || p_hotspot.y < 0);
ERR_FAIL_COND(texture_size.width > 256 || texture_size.height > 256);
ERR_FAIL_COND(p_hotspot.x > texture_size.width || p_hotspot.y > texture_size.height);
- image = texture->get_image();
+ Ref<Image> image = texture->get_image();
ERR_FAIL_COND(!image.is_valid());
diff --git a/platform/web/godot_js.h b/platform/web/godot_js.h
index 3a41f63fa3..660822e291 100644
--- a/platform/web/godot_js.h
+++ b/platform/web/godot_js.h
@@ -49,6 +49,7 @@ extern void godot_js_os_fs_sync(void (*p_callback)());
extern int godot_js_os_execute(const char *p_json);
extern void godot_js_os_shell_open(const char *p_uri);
extern int godot_js_os_hw_concurrency_get();
+extern int godot_js_os_has_feature(const char *p_ftr);
extern int godot_js_pwa_cb(void (*p_callback)());
extern int godot_js_pwa_update();
diff --git a/platform/web/js/libs/library_godot_os.js b/platform/web/js/libs/library_godot_os.js
index c4c45a3036..00ae399583 100644
--- a/platform/web/js/libs/library_godot_os.js
+++ b/platform/web/js/libs/library_godot_os.js
@@ -291,6 +291,28 @@ const GodotOS = {
});
},
+ godot_js_os_has_feature__sig: 'ii',
+ godot_js_os_has_feature: function (p_ftr) {
+ const ftr = GodotRuntime.parseString(p_ftr);
+ const ua = navigator.userAgent;
+ if (ftr === 'web_macos') {
+ return (ua.indexOf('Mac') !== -1) ? 1 : 0;
+ }
+ if (ftr === 'web_windows') {
+ return (ua.indexOf('Windows') !== -1) ? 1 : 0;
+ }
+ if (ftr === 'web_android') {
+ return (ua.indexOf('Android') !== -1) ? 1 : 0;
+ }
+ if (ftr === 'web_ios') {
+ return ((ua.indexOf('iPhone') !== -1) || (ua.indexOf('iPad') !== -1) || (ua.indexOf('iPod') !== -1)) ? 1 : 0;
+ }
+ if (ftr === 'web_linuxbsd') {
+ return ((ua.indexOf('CrOS') !== -1) || (ua.indexOf('BSD') !== -1) || (ua.indexOf('Linux') !== -1) || (ua.indexOf('X11') !== -1)) ? 1 : 0;
+ }
+ return 0;
+ },
+
godot_js_os_execute__sig: 'ii',
godot_js_os_execute: function (p_json) {
const json_args = GodotRuntime.parseString(p_json);
diff --git a/platform/web/os_web.cpp b/platform/web/os_web.cpp
index 964bce01da..0f84e7e841 100644
--- a/platform/web/os_web.cpp
+++ b/platform/web/os_web.cpp
@@ -136,6 +136,9 @@ bool OS_Web::_check_internal_feature_support(const String &p_feature) {
if (p_feature == "web") {
return true;
}
+ if (godot_js_os_has_feature(p_feature.utf8().get_data())) {
+ return true;
+ }
return false;
}
diff --git a/platform/windows/display_server_windows.cpp b/platform/windows/display_server_windows.cpp
index 388a799c1c..6ff928580a 100644
--- a/platform/windows/display_server_windows.cpp
+++ b/platform/windows/display_server_windows.cpp
@@ -1755,36 +1755,30 @@ void DisplayServerWindows::cursor_set_custom_image(const Ref<Resource> &p_cursor
}
Ref<Texture2D> texture = p_cursor;
+ ERR_FAIL_COND(!texture.is_valid());
Ref<AtlasTexture> atlas_texture = p_cursor;
- Ref<Image> image;
Size2 texture_size;
Rect2 atlas_rect;
- if (texture.is_valid()) {
- image = texture->get_image();
- }
-
- if (!image.is_valid() && atlas_texture.is_valid()) {
+ if (atlas_texture.is_valid()) {
texture = atlas_texture->get_atlas();
atlas_rect.size.width = texture->get_width();
atlas_rect.size.height = texture->get_height();
atlas_rect.position.x = atlas_texture->get_region().position.x;
atlas_rect.position.y = atlas_texture->get_region().position.y;
-
texture_size.width = atlas_texture->get_region().size.x;
texture_size.height = atlas_texture->get_region().size.y;
- } else if (image.is_valid()) {
+ } else {
texture_size.width = texture->get_width();
texture_size.height = texture->get_height();
}
- ERR_FAIL_COND(!texture.is_valid());
ERR_FAIL_COND(p_hotspot.x < 0 || p_hotspot.y < 0);
ERR_FAIL_COND(texture_size.width > 256 || texture_size.height > 256);
ERR_FAIL_COND(p_hotspot.x > texture_size.width || p_hotspot.y > texture_size.height);
- image = texture->get_image();
+ Ref<Image> image = texture->get_image();
ERR_FAIL_COND(!image.is_valid());
diff --git a/platform/windows/tts_windows.cpp b/platform/windows/tts_windows.cpp
index 3a143d0ecb..54ab93ee01 100644
--- a/platform/windows/tts_windows.cpp
+++ b/platform/windows/tts_windows.cpp
@@ -36,15 +36,16 @@ void __stdcall TTS_Windows::speech_event_callback(WPARAM wParam, LPARAM lParam)
TTS_Windows *tts = TTS_Windows::get_singleton();
SPEVENT event;
while (tts->synth->GetEvents(1, &event, NULL) == S_OK) {
- if (tts->ids.has(event.ulStreamNum)) {
+ uint32_t stream_num = (uint32_t)event.ulStreamNum;
+ if (tts->ids.has(stream_num)) {
if (event.eEventId == SPEI_START_INPUT_STREAM) {
- DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_STARTED, tts->ids[event.ulStreamNum].id);
+ DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_STARTED, tts->ids[stream_num].id);
} else if (event.eEventId == SPEI_END_INPUT_STREAM) {
- DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_ENDED, tts->ids[event.ulStreamNum].id);
- tts->ids.erase(event.ulStreamNum);
+ DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_ENDED, tts->ids[stream_num].id);
+ tts->ids.erase(stream_num);
tts->_update_tts();
} else if (event.eEventId == SPEI_WORD_BOUNDARY) {
- const Char16String &string = tts->ids[event.ulStreamNum].string;
+ const Char16String &string = tts->ids[stream_num].string;
int pos = 0;
for (int i = 0; i < MIN(event.lParam, string.length()); i++) {
char16_t c = string[i];
@@ -53,7 +54,7 @@ void __stdcall TTS_Windows::speech_event_callback(WPARAM wParam, LPARAM lParam)
}
pos++;
}
- DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_BOUNDARY, tts->ids[event.ulStreamNum].id, pos - tts->ids[event.ulStreamNum].offset);
+ DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_BOUNDARY, tts->ids[stream_num].id, pos - tts->ids[stream_num].offset);
}
}
}
@@ -106,7 +107,7 @@ void TTS_Windows::_update_tts() {
synth->SetRate(10.f * log10(message.rate) / log10(3.f));
synth->Speak((LPCWSTR)ut.string.get_data(), flags, &stream_number);
- ids[stream_number] = ut;
+ ids[(uint32_t)stream_number] = ut;
queue.pop_front();
}
@@ -230,9 +231,10 @@ void TTS_Windows::stop() {
SPVOICESTATUS status;
synth->GetStatus(&status, nullptr);
- if (ids.has(status.ulCurrentStream)) {
- DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_CANCELED, ids[status.ulCurrentStream].id);
- ids.erase(status.ulCurrentStream);
+ uint32_t current_stream = (uint32_t)status.ulCurrentStream;
+ if (ids.has(current_stream)) {
+ DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_CANCELED, ids[current_stream].id);
+ ids.erase(current_stream);
}
for (DisplayServer::TTSUtterance &message : queue) {
DisplayServer::get_singleton()->tts_post_utterance_event(DisplayServer::TTS_UTTERANCE_CANCELED, message.id);
diff --git a/platform/windows/tts_windows.h b/platform/windows/tts_windows.h
index f0538a097c..33b597c612 100644
--- a/platform/windows/tts_windows.h
+++ b/platform/windows/tts_windows.h
@@ -32,8 +32,8 @@
#define TTS_WINDOWS_H
#include "core/string/ustring.h"
+#include "core/templates/hash_map.h"
#include "core/templates/list.h"
-#include "core/templates/rb_map.h"
#include "core/variant/array.h"
#include "servers/display_server.h"
@@ -54,7 +54,7 @@ class TTS_Windows {
int offset;
int id;
};
- RBMap<ULONG, UTData> ids;
+ HashMap<uint32_t, UTData> ids;
static void __stdcall speech_event_callback(WPARAM wParam, LPARAM lParam);
void _update_tts();
diff --git a/scene/gui/code_edit.cpp b/scene/gui/code_edit.cpp
index 0c9b6ffeaf..443f633969 100644
--- a/scene/gui/code_edit.cpp
+++ b/scene/gui/code_edit.cpp
@@ -451,11 +451,8 @@ void CodeEdit::gui_input(const Ref<InputEvent> &p_gui_input) {
}
/* Ctrl + Hover symbols */
-#ifdef MACOS_ENABLED
- if (k->get_keycode() == Key::META) {
-#else
- if (k->get_keycode() == Key::CTRL) {
-#endif
+ bool mac_keys = OS::get_singleton()->has_feature("macos") || OS::get_singleton()->has_feature("web_macos") || OS::get_singleton()->has_feature("web_ios");
+ if ((mac_keys && k->get_keycode() == Key::META) || (!mac_keys && k->get_keycode() == Key::CTRL)) {
if (symbol_lookup_on_click_enabled) {
if (k->is_pressed() && !is_dragging_cursor()) {
symbol_lookup_new_word = get_word_at_pos(get_local_mouse_pos());
diff --git a/scene/gui/color_picker.cpp b/scene/gui/color_picker.cpp
index 23b5bb2c7b..7f9095c2a2 100644
--- a/scene/gui/color_picker.cpp
+++ b/scene/gui/color_picker.cpp
@@ -543,8 +543,9 @@ void ColorPicker::_html_submitted(const String &p_html) {
return;
}
- Color previous_color = color;
- color = Color::html(p_html);
+ const Color previous_color = color;
+ color = Color::from_string(p_html, previous_color);
+
if (!is_editing_alpha()) {
color.a = previous_color.a;
}
@@ -644,13 +645,13 @@ void ColorPicker::_text_type_toggled() {
text_type->set_icon(get_theme_icon(SNAME("Script"), SNAME("EditorIcons")));
c_text->set_editable(false);
- c_text->set_h_size_flags(SIZE_EXPAND_FILL);
+ c_text->set_tooltip_text(RTR("Copy this constructor in a script."));
} else {
text_type->set_text("#");
text_type->set_icon(nullptr);
c_text->set_editable(true);
- c_text->set_h_size_flags(SIZE_FILL);
+ c_text->set_tooltip_text(RTR("Enter a hex code (\"#ff0000\") or named color (\"red\")."));
}
_update_color();
}
@@ -1793,7 +1794,10 @@ ColorPicker::ColorPicker() {
c_text = memnew(LineEdit);
hex_hbc->add_child(c_text);
+ c_text->set_h_size_flags(SIZE_EXPAND_FILL);
c_text->set_select_all_on_focus(true);
+ c_text->set_tooltip_text(RTR("Enter a hex code (\"#ff0000\") or named color (\"red\")."));
+ c_text->set_placeholder(RTR("Hex code or named color"));
c_text->connect("text_submitted", callable_mp(this, &ColorPicker::_html_submitted));
c_text->connect("text_changed", callable_mp(this, &ColorPicker::_text_changed));
c_text->connect("focus_exited", callable_mp(this, &ColorPicker::_html_focus_exit));
diff --git a/scene/gui/rich_text_label.cpp b/scene/gui/rich_text_label.cpp
index c2bbae9c38..1ae24b6d70 100644
--- a/scene/gui/rich_text_label.cpp
+++ b/scene/gui/rich_text_label.cpp
@@ -34,6 +34,7 @@
#include "core/math/math_defs.h"
#include "core/os/keyboard.h"
#include "core/os/os.h"
+#include "core/string/translation.h"
#include "label.h"
#include "scene/scene_string_names.h"
#include "servers/display_server.h"
@@ -1799,8 +1800,7 @@ void RichTextLabel::_notification(int p_what) {
case NOTIFICATION_LAYOUT_DIRECTION_CHANGED:
case NOTIFICATION_TRANSLATION_CHANGED: {
- _stop_thread();
- main->first_invalid_line.store(0); //invalidate ALL
+ _apply_translation();
queue_redraw();
} break;
@@ -5123,13 +5123,17 @@ void RichTextLabel::set_text(const String &p_bbcode) {
if (text == p_bbcode) {
return;
}
-
text = p_bbcode;
+ _apply_translation();
+}
+
+void RichTextLabel::_apply_translation() {
+ String xl_text = atr(text);
if (use_bbcode) {
- parse_bbcode(p_bbcode);
+ parse_bbcode(xl_text);
} else { // raw text
clear();
- add_text(p_bbcode);
+ add_text(xl_text);
}
}
@@ -5144,13 +5148,7 @@ void RichTextLabel::set_use_bbcode(bool p_enable) {
use_bbcode = p_enable;
notify_property_list_changed();
- const String current_text = text;
- if (use_bbcode) {
- parse_bbcode(current_text);
- } else { // raw text
- clear();
- add_text(current_text);
- }
+ _apply_translation();
}
bool RichTextLabel::is_using_bbcode() const {
@@ -5285,7 +5283,7 @@ float RichTextLabel::get_visible_ratio() const {
void RichTextLabel::set_effects(Array p_effects) {
custom_effects = p_effects;
if ((!text.is_empty()) && use_bbcode) {
- parse_bbcode(text);
+ parse_bbcode(atr(text));
}
}
@@ -5300,7 +5298,7 @@ void RichTextLabel::install_effect(const Variant effect) {
ERR_FAIL_COND_MSG(rteffect.is_null(), "Invalid RichTextEffect resource.");
custom_effects.push_back(effect);
if ((!text.is_empty()) && use_bbcode) {
- parse_bbcode(text);
+ parse_bbcode(atr(text));
}
}
diff --git a/scene/gui/rich_text_label.h b/scene/gui/rich_text_label.h
index e3f1e11e71..fef34f7260 100644
--- a/scene/gui/rich_text_label.h
+++ b/scene/gui/rich_text_label.h
@@ -527,6 +527,7 @@ private:
#endif
bool use_bbcode = false;
String text;
+ void _apply_translation();
bool fit_content = false;
diff --git a/scene/main/scene_tree.cpp b/scene/main/scene_tree.cpp
index 790600bc49..a232354fae 100644
--- a/scene/main/scene_tree.cpp
+++ b/scene/main/scene_tree.cpp
@@ -1518,7 +1518,7 @@ SceneTree::SceneTree() {
ProjectSettings::get_singleton()->set("rendering/environment/defaults/default_environment", "");
} else {
// File was erased, notify user.
- ERR_PRINT(RTR("Default Environment as specified in Project Settings (Rendering -> Environment -> Default Environment) could not be loaded."));
+ ERR_PRINT(RTR("Default Environment as specified in the project setting \"rendering/environment/defaults/default_environment\" could not be loaded."));
}
}
}
diff --git a/scene/resources/default_theme/default_theme.cpp b/scene/resources/default_theme/default_theme.cpp
index 16b1ed0703..8addcea215 100644
--- a/scene/resources/default_theme/default_theme.cpp
+++ b/scene/resources/default_theme/default_theme.cpp
@@ -162,7 +162,7 @@ void fill_default_theme(Ref<Theme> &theme, const Ref<Font> &default_font, const
theme->set_font("font", "Button", Ref<Font>());
theme->set_font_size("font_size", "Button", -1);
- theme->set_constant("outline_size", "Button", 0 * scale);
+ theme->set_constant("outline_size", "Button", 0);
theme->set_color("font_color", "Button", control_font_color);
theme->set_color("font_pressed_color", "Button", control_font_pressed_color);
@@ -191,7 +191,7 @@ void fill_default_theme(Ref<Theme> &theme, const Ref<Font> &default_font, const
theme->set_font("font", "MenuBar", Ref<Font>());
theme->set_font_size("font_size", "MenuBar", -1);
- theme->set_constant("outline_size", "MenuBar", 0 * scale);
+ theme->set_constant("outline_size", "MenuBar", 0);
theme->set_color("font_color", "MenuBar", control_font_color);
theme->set_color("font_pressed_color", "MenuBar", control_font_pressed_color);
@@ -316,7 +316,7 @@ void fill_default_theme(Ref<Theme> &theme, const Ref<Font> &default_font, const
theme->set_color("font_outline_color", "CheckBox", Color(1, 1, 1));
theme->set_constant("h_separation", "CheckBox", 4 * scale);
- theme->set_constant("check_v_offset", "CheckBox", 0 * scale);
+ theme->set_constant("check_v_offset", "CheckBox", 0);
theme->set_constant("outline_size", "CheckBox", 0);
// CheckButton
@@ -353,7 +353,7 @@ void fill_default_theme(Ref<Theme> &theme, const Ref<Font> &default_font, const
theme->set_color("font_outline_color", "CheckButton", Color(1, 1, 1));
theme->set_constant("h_separation", "CheckButton", 4 * scale);
- theme->set_constant("check_v_offset", "CheckButton", 0 * scale);
+ theme->set_constant("check_v_offset", "CheckButton", 0);
theme->set_constant("outline_size", "CheckButton", 0);
// Label
@@ -1045,7 +1045,7 @@ void fill_default_theme(Ref<Theme> &theme, const Ref<Font> &default_font, const
theme->set_constant("shadow_offset_y", "RichTextLabel", 1 * scale);
theme->set_constant("shadow_outline_size", "RichTextLabel", 1 * scale);
- theme->set_constant("line_separation", "RichTextLabel", 0 * scale);
+ theme->set_constant("line_separation", "RichTextLabel", 0);
theme->set_constant("table_h_separation", "RichTextLabel", 3 * scale);
theme->set_constant("table_v_separation", "RichTextLabel", 3 * scale);
@@ -1068,10 +1068,10 @@ void fill_default_theme(Ref<Theme> &theme, const Ref<Font> &default_font, const
theme->set_constant("separation", "BoxContainer", 4 * scale);
theme->set_constant("separation", "HBoxContainer", 4 * scale);
theme->set_constant("separation", "VBoxContainer", 4 * scale);
- theme->set_constant("margin_left", "MarginContainer", 0 * scale);
- theme->set_constant("margin_top", "MarginContainer", 0 * scale);
- theme->set_constant("margin_right", "MarginContainer", 0 * scale);
- theme->set_constant("margin_bottom", "MarginContainer", 0 * scale);
+ theme->set_constant("margin_left", "MarginContainer", 0);
+ theme->set_constant("margin_top", "MarginContainer", 0);
+ theme->set_constant("margin_right", "MarginContainer", 0);
+ theme->set_constant("margin_bottom", "MarginContainer", 0);
theme->set_constant("h_separation", "GridContainer", 4 * scale);
theme->set_constant("v_separation", "GridContainer", 4 * scale);
theme->set_constant("separation", "SplitContainer", 12 * scale);
diff --git a/servers/audio/audio_stream.cpp b/servers/audio/audio_stream.cpp
index 32ee650f8d..70496ee65b 100644
--- a/servers/audio/audio_stream.cpp
+++ b/servers/audio/audio_stream.cpp
@@ -361,7 +361,7 @@ void AudioStreamPlaybackMicrophone::start(double p_from_pos) {
}
if (!GLOBAL_GET("audio/driver/enable_input")) {
- WARN_PRINT("Need to enable Project settings > Audio > Enable Audio Input option to use capturing.");
+ WARN_PRINT("You must enable the project setting \"audio/driver/enable_input\" to use audio capture.");
return;
}
diff --git a/servers/rendering/renderer_rd/environment/sky.cpp b/servers/rendering/renderer_rd/environment/sky.cpp
index ed0a67f72a..f79d6d311e 100644
--- a/servers/rendering/renderer_rd/environment/sky.cpp
+++ b/servers/rendering/renderer_rd/environment/sky.cpp
@@ -1619,7 +1619,7 @@ void SkyRD::update_dirty_skys() {
if (sky->mode == RS::SKY_MODE_REALTIME) {
layers = 8;
if (roughness_layers != 8) {
- WARN_PRINT("When using REALTIME skies, roughness_layers should be set to 8 in the project settings for best quality reflections");
+ WARN_PRINT("When using the Real-Time sky update mode (or Automatic with a sky shader using \"TIME\"), \"rendering/reflections/sky_reflections/roughness_layers\" should be set to 8 in the project settings for best quality reflections.");
}
}
diff --git a/servers/rendering/renderer_rd/shaders/environment/sky.glsl b/servers/rendering/renderer_rd/shaders/environment/sky.glsl
index bf974a3fd5..e8e5de7020 100644
--- a/servers/rendering/renderer_rd/shaders/environment/sky.glsl
+++ b/servers/rendering/renderer_rd/shaders/environment/sky.glsl
@@ -260,6 +260,10 @@ void main() {
frag_color.rgb = color;
frag_color.a = alpha;
+ // For mobile renderer we're multiplying by 0.5 as we're using a UNORM buffer.
+ // For both mobile and clustered, we also bake in the exposure value for the environment and camera.
+ frag_color.rgb = frag_color.rgb * params.luminance_multiplier;
+
#if !defined(DISABLE_FOG) && !defined(USE_CUBEMAP_PASS)
// Draw "fixed" fog before volumetric fog to ensure volumetric fog can appear in front of the sky.
@@ -285,10 +289,6 @@ void main() {
frag_color.a = 0.0;
}
- // For mobile renderer we're multiplying by 0.5 as we're using a UNORM buffer.
- // For both mobile and clustered, we also bake in the exposure value for the environment and camera.
- frag_color.rgb = frag_color.rgb * params.luminance_multiplier;
-
#ifdef USE_DEBANDING
frag_color.rgb += interleaved_gradient_noise(gl_FragCoord.xy);
#endif
diff --git a/servers/rendering_server.cpp b/servers/rendering_server.cpp
index d88cbec13b..36bc36e011 100644
--- a/servers/rendering_server.cpp
+++ b/servers/rendering_server.cpp
@@ -140,9 +140,9 @@ RID RenderingServer::get_test_texture() {
c.b = y;
}
- w[(y * TEST_TEXTURE_SIZE + x) * 3 + 0] = uint8_t(CLAMP(c.r * 255, 0, 255));
- w[(y * TEST_TEXTURE_SIZE + x) * 3 + 1] = uint8_t(CLAMP(c.g * 255, 0, 255));
- w[(y * TEST_TEXTURE_SIZE + x) * 3 + 2] = uint8_t(CLAMP(c.b * 255, 0, 255));
+ w[(y * TEST_TEXTURE_SIZE + x) * 3 + 0] = uint8_t(CLAMP(c.r, 0, 255));
+ w[(y * TEST_TEXTURE_SIZE + x) * 3 + 1] = uint8_t(CLAMP(c.g, 0, 255));
+ w[(y * TEST_TEXTURE_SIZE + x) * 3 + 2] = uint8_t(CLAMP(c.b, 0, 255));
}
}
}