summaryrefslogtreecommitdiff
path: root/scene/resources/theme.h
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <remi@verschelde.fr>2021-06-13 15:44:32 +0200
committerGitHub <noreply@github.com>2021-06-13 15:44:32 +0200
commit12e0f10c74e9619262f1edcfdc1840432ada0565 (patch)
tree44faf2e69ad0155a0fcc2184c93a5e26d16e48d1 /scene/resources/theme.h
parent4ebf248e1bd12c9faf7c2d19fdef3b41b9766aee (diff)
parent9cd96ebe0e5db4cd55a4bb73ab7b4dab4d344090 (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.h10
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: