diff options
author | RĂ©mi Verschelde <remi@verschelde.fr> | 2021-06-13 15:44:32 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-13 15:44:32 +0200 |
commit | 12e0f10c74e9619262f1edcfdc1840432ada0565 (patch) | |
tree | 44faf2e69ad0155a0fcc2184c93a5e26d16e48d1 /scene/resources/theme.h | |
parent | 4ebf248e1bd12c9faf7c2d19fdef3b41b9766aee (diff) | |
parent | 9cd96ebe0e5db4cd55a4bb73ab7b4dab4d344090 (diff) |
Merge pull request #49227 from pycbouh/editor-theme-freeze-changes
Prevent `Theme` resource from emitting changes during bulk operations
Diffstat (limited to 'scene/resources/theme.h')
-rw-r--r-- | scene/resources/theme.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/scene/resources/theme.h b/scene/resources/theme.h index 4de1f065e1..cc4b716aa2 100644 --- a/scene/resources/theme.h +++ b/scene/resources/theme.h @@ -41,6 +41,11 @@ class Theme : public Resource { GDCLASS(Theme, Resource); RES_BASE_EXTENSION("theme"); +#ifdef TOOLS_ENABLED + friend class ThemeItemImportTree; + friend class ThemeItemEditorDialog; +#endif + public: enum DataType { DATA_TYPE_COLOR, @@ -53,6 +58,8 @@ public: }; private: + bool no_change_propagation = false; + void _emit_theme_changed(); HashMap<StringName, HashMap<StringName, Ref<Texture2D>>> icon_map; @@ -96,6 +103,9 @@ protected: static void _bind_methods(); + void _freeze_change_propagation(); + void _unfreeze_and_propagate_changes(); + virtual void reset_state() override; public: |