mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-28 02:30:05 +00:00
Modified the ValueTree::Listener::valueTreeChildRemoved() and ValueTree::Listener::valueTreeChildOrderChanged() methods to include some extra parameters that give more detailed info about exactly what changed.
This commit is contained in:
parent
17863a45b6
commit
6bc4d7627f
18 changed files with 108 additions and 100 deletions
|
|
@ -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
|
||||
- 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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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(); }
|
||||
|
||||
|
|
|
|||
|
|
@ -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(); }
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
//==============================================================================
|
||||
|
|
|
|||
|
|
@ -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 {}
|
||||
|
||||
//==============================================================================
|
||||
|
|
|
|||
|
|
@ -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<ValueTree*> listenersCopy (valueTreesWithListeners);
|
||||
valueTreesWithListeners.getUnchecked(0)->listeners.call (method, tree);
|
||||
}
|
||||
else if (numListeners > 0)
|
||||
{
|
||||
const SortedSet<ValueTree*> 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<ValueTree*> 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 <typename Method, typename ParamType1, typename ParamType2>
|
||||
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<ValueTree*> listenersCopy (valueTreesWithListeners);
|
||||
|
||||
for (int i = 0; i < numListeners; ++i)
|
||||
{
|
||||
const SortedSet<ValueTree*> 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 <XmlElement> xml1 (v1.createXml());
|
||||
ScopedPointer <XmlElement> xml2 (v2.createCopy().createXml());
|
||||
ScopedPointer<XmlElement> xml1 (v1.createXml());
|
||||
ScopedPointer<XmlElement> xml2 (v2.createCopy().createXml());
|
||||
expect (xml1->isEquivalentTo (xml2, false));
|
||||
|
||||
ValueTree v4 = v2.createCopy();
|
||||
|
|
|
|||
|
|
@ -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<ValueTree> sortedList;
|
||||
createListOfChildren (sortedList);
|
||||
ComparatorAdapter <ElementComparator> adapter (comparator);
|
||||
ComparatorAdapter<ElementComparator> adapter (comparator);
|
||||
sortedList.sort (adapter, retainOrderOfEquivalentItems);
|
||||
reorderChildren (sortedList, undoManager);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue