|
@@ -84,6 +84,11 @@ void EditorSceneExporterGLTFSettings::_get_property_list(List<PropertyInfo> *p_l
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+void EditorSceneExporterGLTFSettings::_on_extension_property_list_changed() {
|
|
|
+ generate_property_list(_document);
|
|
|
+ emit_signal("property_list_changed");
|
|
|
+}
|
|
|
+
|
|
|
bool EditorSceneExporterGLTFSettings::_set_extension_setting(const String &p_name_str, const Variant &p_value) {
|
|
|
PackedStringArray split = String(p_name_str).split("/", true, 1);
|
|
|
if (!_config_name_to_extension_map.has(split[0])) {
|
|
@@ -130,6 +135,10 @@ void EditorSceneExporterGLTFSettings::generate_property_list(Ref<GLTFDocument> p
|
|
|
String image_format_hint_string = "None,PNG,JPEG";
|
|
|
// Add properties from all document extensions.
|
|
|
for (Ref<GLTFDocumentExtension> &extension : GLTFDocument::get_all_gltf_document_extensions()) {
|
|
|
+ const Callable on_prop_changed = callable_mp(this, &EditorSceneExporterGLTFSettings::_on_extension_property_list_changed);
|
|
|
+ if (!extension->is_connected("property_list_changed", on_prop_changed)) {
|
|
|
+ extension->connect("property_list_changed", on_prop_changed);
|
|
|
+ }
|
|
|
const String config_prefix = get_friendly_config_prefix(extension);
|
|
|
_config_name_to_extension_map[config_prefix] = extension;
|
|
|
// If the extension allows saving in different image formats, add to the enum.
|