diff --git a/ChangeList.txt b/ChangeList.txt index 8c58d5ccc6..ebf8964717 100644 --- a/ChangeList.txt +++ b/ChangeList.txt @@ -16,4 +16,6 @@ Version 3.1.2 (not yet released) - Performance improvements to XML parsing - Basic SVG text support - New Whirlpool hashing class - - Various minor additions to the Introjucer \ No newline at end of file + - Various minor additions to the Introjucer + - Added parameters to the ValueTree::Listener::valueTreeChildRemoved() and valueTreeChildOrderChanged() + methods to include more info about exactly what changed - this is essential for some applications diff --git a/examples/Demo/Source/Demos/ValueTreesDemo.cpp b/examples/Demo/Source/Demos/ValueTreesDemo.cpp index bd75f5340b..a57251ef75 100644 --- a/examples/Demo/Source/Demos/ValueTreesDemo.cpp +++ b/examples/Demo/Source/Demos/ValueTreesDemo.cpp @@ -138,9 +138,9 @@ private: repaintItem(); } - void valueTreeChildAdded (ValueTree& parentTree, ValueTree&) override { treeChildrenChanged (parentTree); } - void valueTreeChildRemoved (ValueTree& parentTree, ValueTree&) override { treeChildrenChanged (parentTree); } - void valueTreeChildOrderChanged (ValueTree& parentTree) override { treeChildrenChanged (parentTree); } + void valueTreeChildAdded (ValueTree& parentTree, ValueTree&) override { treeChildrenChanged (parentTree); } + void valueTreeChildRemoved (ValueTree& parentTree, ValueTree&, int) override { treeChildrenChanged (parentTree); } + void valueTreeChildOrderChanged (ValueTree& parentTree, int, int) override { treeChildrenChanged (parentTree); } void valueTreeParentChanged (ValueTree&) override {} void treeChildrenChanged (const ValueTree& parentTree) diff --git a/extras/Introjucer/Source/Application/jucer_AppearanceSettings.h b/extras/Introjucer/Source/Application/jucer_AppearanceSettings.h index 3d4ad83e3c..d1f0b846a5 100644 --- a/extras/Introjucer/Source/Application/jucer_AppearanceSettings.h +++ b/extras/Introjucer/Source/Application/jucer_AppearanceSettings.h @@ -69,8 +69,8 @@ private: void valueTreePropertyChanged (ValueTree&, const Identifier&) override { updateColourScheme(); } void valueTreeChildAdded (ValueTree&, ValueTree&) override { updateColourScheme(); } - void valueTreeChildRemoved (ValueTree&, ValueTree&) override { updateColourScheme(); } - void valueTreeChildOrderChanged (ValueTree&) override { updateColourScheme(); } + void valueTreeChildRemoved (ValueTree&, ValueTree&, int) override { updateColourScheme(); } + void valueTreeChildOrderChanged (ValueTree&, int, int) override { updateColourScheme(); } void valueTreeParentChanged (ValueTree&) override { updateColourScheme(); } void valueTreeRedirected (ValueTree&) override { updateColourScheme(); } diff --git a/extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.cpp b/extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.cpp index 967c5aa040..f8d4bdaac6 100644 --- a/extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.cpp +++ b/extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.cpp @@ -217,8 +217,8 @@ void SourceCodeEditor::checkSaveState() void SourceCodeEditor::valueTreePropertyChanged (ValueTree&, const Identifier&) { updateColourScheme(); } void SourceCodeEditor::valueTreeChildAdded (ValueTree&, ValueTree&) { updateColourScheme(); } -void SourceCodeEditor::valueTreeChildRemoved (ValueTree&, ValueTree&) { updateColourScheme(); } -void SourceCodeEditor::valueTreeChildOrderChanged (ValueTree&) { updateColourScheme(); } +void SourceCodeEditor::valueTreeChildRemoved (ValueTree&, ValueTree&, int) { updateColourScheme(); } +void SourceCodeEditor::valueTreeChildOrderChanged (ValueTree&, int, int) { updateColourScheme(); } void SourceCodeEditor::valueTreeParentChanged (ValueTree&) { updateColourScheme(); } void SourceCodeEditor::valueTreeRedirected (ValueTree&) { updateColourScheme(); } diff --git a/extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.h b/extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.h index dee679ddb8..f92df34b29 100644 --- a/extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.h +++ b/extras/Introjucer/Source/Code Editor/jucer_SourceCodeEditor.h @@ -156,8 +156,8 @@ private: void valueTreePropertyChanged (ValueTree&, const Identifier&) override; void valueTreeChildAdded (ValueTree&, ValueTree&) override; - void valueTreeChildRemoved (ValueTree&, ValueTree&) override; - void valueTreeChildOrderChanged (ValueTree&) override; + void valueTreeChildRemoved (ValueTree&, ValueTree&, int) override; + void valueTreeChildOrderChanged (ValueTree&, int, int) override; void valueTreeParentChanged (ValueTree&) override; void valueTreeRedirected (ValueTree&) override; diff --git a/extras/Introjucer/Source/Project Saving/jucer_ProjectSaver.h b/extras/Introjucer/Source/Project Saving/jucer_ProjectSaver.h index 4afeb3b763..df37c0a1f0 100644 --- a/extras/Introjucer/Source/Project Saving/jucer_ProjectSaver.h +++ b/extras/Introjucer/Source/Project Saving/jucer_ProjectSaver.h @@ -119,7 +119,7 @@ public: if (! generatedCodeFolder.createDirectory()) { addError ("Couldn't create folder: " + generatedCodeFolder.getFullPathName()); - return Project::Item (project, ValueTree::invalid); + return Project::Item (project, ValueTree()); } const File file (generatedCodeFolder.getChildFile (filePath)); @@ -127,7 +127,7 @@ public: if (replaceFileIfDifferent (file, newData)) return addFileToGeneratedGroup (file); - return Project::Item (project, ValueTree::invalid); + return Project::Item (project, ValueTree()); } Project::Item addFileToGeneratedGroup (const File& file) diff --git a/extras/Introjucer/Source/Project/jucer_ConfigTree_Base.h b/extras/Introjucer/Source/Project/jucer_ConfigTree_Base.h index 2e1f6bd37d..93077cf502 100644 --- a/extras/Introjucer/Source/Project/jucer_ConfigTree_Base.h +++ b/extras/Introjucer/Source/Project/jucer_ConfigTree_Base.h @@ -115,8 +115,8 @@ public: void valueTreePropertyChanged (ValueTree&, const Identifier&) override {} void valueTreeChildAdded (ValueTree&, ValueTree&) override {} - void valueTreeChildRemoved (ValueTree&, ValueTree&) override {} - void valueTreeChildOrderChanged (ValueTree&) override {} + void valueTreeChildRemoved (ValueTree&, ValueTree&, int) override {} + void valueTreeChildOrderChanged (ValueTree&, int, int) override {} void valueTreeParentChanged (ValueTree&) override {} virtual bool isProjectSettings() const { return false; } @@ -230,9 +230,9 @@ public: } //============================================================================== - void valueTreeChildAdded (ValueTree& parentTree, ValueTree&) override { refreshIfNeeded (parentTree); } - void valueTreeChildRemoved (ValueTree& parentTree, ValueTree&) override { refreshIfNeeded (parentTree); } - void valueTreeChildOrderChanged (ValueTree& parentTree) override { refreshIfNeeded (parentTree); } + void valueTreeChildAdded (ValueTree& parentTree, ValueTree&) override { refreshIfNeeded (parentTree); } + void valueTreeChildRemoved (ValueTree& parentTree, ValueTree&, int) override { refreshIfNeeded (parentTree); } + void valueTreeChildOrderChanged (ValueTree& parentTree, int, int) override { refreshIfNeeded (parentTree); } void refreshIfNeeded (ValueTree& changedTree) { diff --git a/extras/Introjucer/Source/Project/jucer_ConfigTree_Exporter.h b/extras/Introjucer/Source/Project/jucer_ConfigTree_Exporter.h index e4ba4e1eb5..27d7556fdf 100644 --- a/extras/Introjucer/Source/Project/jucer_ConfigTree_Exporter.h +++ b/extras/Introjucer/Source/Project/jucer_ConfigTree_Exporter.h @@ -107,9 +107,9 @@ public: } //============================================================================== - void valueTreeChildAdded (ValueTree& parentTree, ValueTree&) override { refreshIfNeeded (parentTree); } - void valueTreeChildRemoved (ValueTree& parentTree, ValueTree&) override { refreshIfNeeded (parentTree); } - void valueTreeChildOrderChanged (ValueTree& parentTree) override { refreshIfNeeded (parentTree); } + void valueTreeChildAdded (ValueTree& parentTree, ValueTree&) override { refreshIfNeeded (parentTree); } + void valueTreeChildRemoved (ValueTree& parentTree, ValueTree&, int) override { refreshIfNeeded (parentTree); } + void valueTreeChildOrderChanged (ValueTree& parentTree, int, int) override { refreshIfNeeded (parentTree); } void refreshIfNeeded (ValueTree& changedTree) { diff --git a/extras/Introjucer/Source/Project/jucer_ConfigTree_Modules.h b/extras/Introjucer/Source/Project/jucer_ConfigTree_Modules.h index 261518a3b7..efa27b9dcd 100644 --- a/extras/Introjucer/Source/Project/jucer_ConfigTree_Modules.h +++ b/extras/Introjucer/Source/Project/jucer_ConfigTree_Modules.h @@ -366,9 +366,9 @@ public: } //============================================================================== - void valueTreeChildAdded (ValueTree& parentTree, ValueTree&) override { refreshIfNeeded (parentTree); } - void valueTreeChildRemoved (ValueTree& parentTree, ValueTree&) override { refreshIfNeeded (parentTree); } - void valueTreeChildOrderChanged (ValueTree& parentTree) override { refreshIfNeeded (parentTree); } + void valueTreeChildAdded (ValueTree& parentTree, ValueTree&) override { refreshIfNeeded (parentTree); } + void valueTreeChildRemoved (ValueTree& parentTree, ValueTree&, int) override { refreshIfNeeded (parentTree); } + void valueTreeChildOrderChanged (ValueTree& parentTree, int, int) override { refreshIfNeeded (parentTree); } void refreshIfNeeded (ValueTree& changedTree) { diff --git a/extras/Introjucer/Source/Project/jucer_GroupInformationComponent.h b/extras/Introjucer/Source/Project/jucer_GroupInformationComponent.h index 01b36719d8..3e4cf672ac 100644 --- a/extras/Introjucer/Source/Project/jucer_GroupInformationComponent.h +++ b/extras/Introjucer/Source/Project/jucer_GroupInformationComponent.h @@ -96,8 +96,8 @@ public: //============================================================================== void valueTreePropertyChanged (ValueTree&, const Identifier&) override { itemChanged(); } void valueTreeChildAdded (ValueTree&, ValueTree&) override { itemChanged(); } - void valueTreeChildRemoved (ValueTree&, ValueTree&) override { itemChanged(); } - void valueTreeChildOrderChanged (ValueTree&) override { itemChanged(); } + void valueTreeChildRemoved (ValueTree&, ValueTree&, int) override { itemChanged(); } + void valueTreeChildOrderChanged (ValueTree&, int, int) override { itemChanged(); } void valueTreeParentChanged (ValueTree&) override { itemChanged(); } private: diff --git a/extras/Introjucer/Source/Project/jucer_ModulesPanel.h b/extras/Introjucer/Source/Project/jucer_ModulesPanel.h index a5b8faa90a..2013afe57d 100644 --- a/extras/Introjucer/Source/Project/jucer_ModulesPanel.h +++ b/extras/Introjucer/Source/Project/jucer_ModulesPanel.h @@ -208,8 +208,8 @@ private: void valueTreePropertyChanged (ValueTree&, const Identifier&) override { itemChanged(); } void valueTreeChildAdded (ValueTree&, ValueTree&) override { itemChanged(); } - void valueTreeChildRemoved (ValueTree&, ValueTree&) override { itemChanged(); } - void valueTreeChildOrderChanged (ValueTree&) override { itemChanged(); } + void valueTreeChildRemoved (ValueTree&, ValueTree&, int) override { itemChanged(); } + void valueTreeChildOrderChanged (ValueTree&, int, int) override { itemChanged(); } void valueTreeParentChanged (ValueTree&) override { itemChanged(); } void itemChanged() diff --git a/extras/Introjucer/Source/Project/jucer_Project.cpp b/extras/Introjucer/Source/Project/jucer_Project.cpp index 7005da18bc..5ce2967c9d 100644 --- a/extras/Introjucer/Source/Project/jucer_Project.cpp +++ b/extras/Introjucer/Source/Project/jucer_Project.cpp @@ -310,10 +310,10 @@ void Project::valueTreePropertyChanged (ValueTree&, const Identifier& property) changed(); } -void Project::valueTreeChildAdded (ValueTree&, ValueTree&) { changed(); } -void Project::valueTreeChildRemoved (ValueTree&, ValueTree&) { changed(); } -void Project::valueTreeChildOrderChanged (ValueTree&) { changed(); } -void Project::valueTreeParentChanged (ValueTree&) {} +void Project::valueTreeChildAdded (ValueTree&, ValueTree&) { changed(); } +void Project::valueTreeChildRemoved (ValueTree&, ValueTree&, int) { changed(); } +void Project::valueTreeChildOrderChanged (ValueTree&, int, int) { changed(); } +void Project::valueTreeParentChanged (ValueTree&) {} //============================================================================== File Project::resolveFilename (String filename) const @@ -566,7 +566,7 @@ Project::Item Project::Item::findItemWithID (const String& targetId) const } } - return Item (project, ValueTree::invalid); + return Item (project, ValueTree()); } bool Project::Item::canContain (const Item& child) const @@ -660,7 +660,7 @@ Project::Item Project::Item::findItemForFile (const File& file) const } } - return Item (project, ValueTree::invalid); + return Item (project, ValueTree()); } File Project::Item::determineGroupFolder() const diff --git a/extras/Introjucer/Source/Project/jucer_Project.h b/extras/Introjucer/Source/Project/jucer_Project.h index 5aaf31ecc7..cf2a66241e 100644 --- a/extras/Introjucer/Source/Project/jucer_Project.h +++ b/extras/Introjucer/Source/Project/jucer_Project.h @@ -256,8 +256,8 @@ public: //============================================================================== void valueTreePropertyChanged (ValueTree&, const Identifier&) override; void valueTreeChildAdded (ValueTree&, ValueTree&) override; - void valueTreeChildRemoved (ValueTree&, ValueTree&) override; - void valueTreeChildOrderChanged (ValueTree&) override; + void valueTreeChildRemoved (ValueTree&, ValueTree&, int) override; + void valueTreeChildOrderChanged (ValueTree&, int, int) override; void valueTreeParentChanged (ValueTree&) override; //============================================================================== diff --git a/extras/Introjucer/Source/Project/jucer_ProjectTree_Base.h b/extras/Introjucer/Source/Project/jucer_ProjectTree_Base.h index 8173fab9ca..78104d93f9 100644 --- a/extras/Introjucer/Source/Project/jucer_ProjectTree_Base.h +++ b/extras/Introjucer/Source/Project/jucer_ProjectTree_Base.h @@ -222,9 +222,9 @@ public: repaintItem(); } - void valueTreeChildAdded (ValueTree& parentTree, ValueTree&) override { treeChildrenChanged (parentTree); } - void valueTreeChildRemoved (ValueTree& parentTree, ValueTree&) override { treeChildrenChanged (parentTree); } - void valueTreeChildOrderChanged (ValueTree& parentTree) override { treeChildrenChanged (parentTree); } + void valueTreeChildAdded (ValueTree& parentTree, ValueTree&) override { treeChildrenChanged (parentTree); } + void valueTreeChildRemoved (ValueTree& parentTree, ValueTree&, int) override { treeChildrenChanged (parentTree); } + void valueTreeChildOrderChanged (ValueTree& parentTree, int, int) override { treeChildrenChanged (parentTree); } void valueTreeParentChanged (ValueTree&) override {} //============================================================================== diff --git a/modules/juce_data_structures/values/juce_ValueTree.cpp b/modules/juce_data_structures/values/juce_ValueTree.cpp index 7bfa9191f6..667d30d09c 100644 --- a/modules/juce_data_structures/values/juce_ValueTree.cpp +++ b/modules/juce_data_structures/values/juce_ValueTree.cpp @@ -62,23 +62,20 @@ public: { const int numListeners = valueTreesWithListeners.size(); - if (numListeners > 0) + if (numListeners == 1) { - if (numListeners == 1) - { - valueTreesWithListeners.getUnchecked(0)->listeners.call (method, tree); - } - else - { - const SortedSet listenersCopy (valueTreesWithListeners); + valueTreesWithListeners.getUnchecked(0)->listeners.call (method, tree); + } + else if (numListeners > 0) + { + const SortedSet listenersCopy (valueTreesWithListeners); - for (int i = 0; i < numListeners; ++i) - { - ValueTree* const v = listenersCopy.getUnchecked(i); + for (int i = 0; i < numListeners; ++i) + { + ValueTree* const v = listenersCopy.getUnchecked(i); - if (i == 0 || valueTreesWithListeners.contains (v)) - v->listeners.call (method, tree); - } + if (i == 0 || valueTreesWithListeners.contains (v)) + v->listeners.call (method, tree); } } } @@ -88,23 +85,43 @@ public: { const int numListeners = valueTreesWithListeners.size(); - if (numListeners > 0) + if (numListeners == 1) { - if (numListeners == 1) + valueTreesWithListeners.getUnchecked(0)->listeners.call (method, tree, param2); + } + else if (numListeners > 0) + { + const SortedSet listenersCopy (valueTreesWithListeners); + + for (int i = 0; i < numListeners; ++i) { - valueTreesWithListeners.getUnchecked(0)->listeners.call (method, tree, param2); + ValueTree* const v = listenersCopy.getUnchecked(i); + + if (i == 0 || valueTreesWithListeners.contains (v)) + v->listeners.call (method, tree, param2); } - else + } + } + + template + void callListeners (Method method, ValueTree& tree, ParamType1& param2, ParamType2& param3) const + { + const int numListeners = valueTreesWithListeners.size(); + + if (numListeners == 1) + { + valueTreesWithListeners.getUnchecked(0)->listeners.call (method, tree, param2, param3); + } + else if (numListeners > 0) + { + const SortedSet listenersCopy (valueTreesWithListeners); + + for (int i = 0; i < numListeners; ++i) { - const SortedSet listenersCopy (valueTreesWithListeners); + ValueTree* const v = listenersCopy.getUnchecked(i); - for (int i = 0; i < numListeners; ++i) - { - ValueTree* const v = listenersCopy.getUnchecked(i); - - if (i == 0 || valueTreesWithListeners.contains (v)) - v->listeners.call (method, tree, param2); - } + if (i == 0 || valueTreesWithListeners.contains (v)) + v->listeners.call (method, tree, param2, param3); } } } @@ -125,20 +142,20 @@ public: t->callListeners (&ValueTree::Listener::valueTreeChildAdded, tree, child); } - void sendChildRemovedMessage (ValueTree child) + void sendChildRemovedMessage (ValueTree child, int index) { ValueTree tree (this); for (ValueTree::SharedObject* t = this; t != nullptr; t = t->parent) - t->callListeners (&ValueTree::Listener::valueTreeChildRemoved, tree, child); + t->callListeners (&ValueTree::Listener::valueTreeChildRemoved, tree, child, index); } - void sendChildOrderChangedMessage() + void sendChildOrderChangedMessage (int oldIndex, int newIndex) { ValueTree tree (this); for (ValueTree::SharedObject* t = this; t != nullptr; t = t->parent) - t->callListeners (&ValueTree::Listener::valueTreeChildOrderChanged, tree); + t->callListeners (&ValueTree::Listener::valueTreeChildOrderChanged, tree, oldIndex, newIndex); } void sendParentChangeMessage() @@ -323,7 +340,7 @@ public: { children.remove (childIndex); child->parent = nullptr; - sendChildRemovedMessage (ValueTree (child)); + sendChildRemovedMessage (ValueTree (child), childIndex); child->sendParentChangeMessage(); } else @@ -350,7 +367,7 @@ public: if (undoManager == nullptr) { children.move (currentIndex, newIndex); - sendChildOrderChangedMessage(); + sendChildOrderChangedMessage (currentIndex, newIndex); } else { @@ -366,28 +383,15 @@ public: { jassert (newOrder.size() == children.size()); - if (undoManager == nullptr) + for (int i = 0; i < children.size(); ++i) { - children.clear(); - children.ensureStorageAllocated (newOrder.size()); + SharedObject* const child = newOrder.getUnchecked(i)->object; - for (int i = 0; i < newOrder.size(); ++i) - children.add (newOrder.getUnchecked(i)->object); - - sendChildOrderChangedMessage(); - } - else - { - for (int i = 0; i < children.size(); ++i) + if (children.getObjectPointerUnchecked (i) != child) { - SharedObject* const child = newOrder.getUnchecked(i)->object; - - if (children.getObjectPointerUnchecked (i) != child) - { - const int oldIndex = children.indexOf (child); - jassert (oldIndex >= 0); - moveChild (oldIndex, i, undoManager); - } + const int oldIndex = children.indexOf (child); + jassert (oldIndex >= 0); + moveChild (oldIndex, i, undoManager); } } } @@ -825,8 +829,8 @@ private: } void valueTreeChildAdded (ValueTree&, ValueTree&) override {} - void valueTreeChildRemoved (ValueTree&, ValueTree&) override {} - void valueTreeChildOrderChanged (ValueTree&) override {} + void valueTreeChildRemoved (ValueTree&, ValueTree&, int) override {} + void valueTreeChildOrderChanged (ValueTree&, int, int) override {} void valueTreeParentChanged (ValueTree&) override {} JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ValueTreePropertyValueSource) @@ -1108,8 +1112,8 @@ public: ValueTree v2 = ValueTree::readFromStream (mi); expect (v1.isEquivalentTo (v2)); - ScopedPointer xml1 (v1.createXml()); - ScopedPointer xml2 (v2.createCopy().createXml()); + ScopedPointer xml1 (v1.createXml()); + ScopedPointer xml2 (v2.createCopy().createXml()); expect (xml1->isEquivalentTo (xml2, false)); ValueTree v4 = v2.createCopy(); diff --git a/modules/juce_data_structures/values/juce_ValueTree.h b/modules/juce_data_structures/values/juce_ValueTree.h index 42dd778116..9a9ccd16d7 100644 --- a/modules/juce_data_structures/values/juce_ValueTree.h +++ b/modules/juce_data_structures/values/juce_ValueTree.h @@ -403,7 +403,8 @@ public: just check the parentTree parameter to make sure it's the one that you're interested in. */ virtual void valueTreeChildRemoved (ValueTree& parentTree, - ValueTree& childWhichHasBeenRemoved) = 0; + ValueTree& childWhichHasBeenRemoved, + int indexFromWhichChildWasRemoved) = 0; /** This method is called when a tree's children have been re-shuffled. @@ -412,7 +413,8 @@ public: If your tree has sub-trees but you only want to know about changes to the top level tree, just check the parameter to make sure it's the tree that you're interested in. */ - virtual void valueTreeChildOrderChanged (ValueTree& parentTreeWhoseChildrenHaveMoved) = 0; + virtual void valueTreeChildOrderChanged (ValueTree& parentTreeWhoseChildrenHaveMoved, + int oldIndex, int newIndex) = 0; /** This method is called when a tree has been added or removed from a parent node. @@ -482,7 +484,7 @@ public: { OwnedArray sortedList; createListOfChildren (sortedList); - ComparatorAdapter adapter (comparator); + ComparatorAdapter adapter (comparator); sortedList.sort (adapter, retainOrderOfEquivalentItems); reorderChildren (sortedList, undoManager); } diff --git a/modules/juce_gui_basics/layout/juce_ComponentBuilder.cpp b/modules/juce_gui_basics/layout/juce_ComponentBuilder.cpp index 433ddf8d6f..e510e8361d 100644 --- a/modules/juce_gui_basics/layout/juce_ComponentBuilder.cpp +++ b/modules/juce_gui_basics/layout/juce_ComponentBuilder.cpp @@ -200,12 +200,12 @@ void ComponentBuilder::valueTreeChildAdded (ValueTree& tree, ValueTree&) ComponentBuilderHelpers::updateComponent (*this, tree); } -void ComponentBuilder::valueTreeChildRemoved (ValueTree& tree, ValueTree&) +void ComponentBuilder::valueTreeChildRemoved (ValueTree& tree, ValueTree&, int) { ComponentBuilderHelpers::updateComponent (*this, tree); } -void ComponentBuilder::valueTreeChildOrderChanged (ValueTree& tree) +void ComponentBuilder::valueTreeChildOrderChanged (ValueTree& tree, int, int) { ComponentBuilderHelpers::updateComponent (*this, tree); } diff --git a/modules/juce_gui_basics/layout/juce_ComponentBuilder.h b/modules/juce_gui_basics/layout/juce_ComponentBuilder.h index c524111f42..c5557decaf 100644 --- a/modules/juce_gui_basics/layout/juce_ComponentBuilder.h +++ b/modules/juce_gui_basics/layout/juce_ComponentBuilder.h @@ -235,8 +235,8 @@ private: void valueTreePropertyChanged (ValueTree&, const Identifier&) override; void valueTreeChildAdded (ValueTree&, ValueTree&) override; - void valueTreeChildRemoved (ValueTree&, ValueTree&) override; - void valueTreeChildOrderChanged (ValueTree&) override; + void valueTreeChildRemoved (ValueTree&, ValueTree&, int) override; + void valueTreeChildOrderChanged (ValueTree&, int, int) override; void valueTreeParentChanged (ValueTree&) override; JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ComponentBuilder)