From e4cd81e811dd15495bfc9c2eea80a44d4af27f25 Mon Sep 17 00:00:00 2001 From: mrbesen Date: Sat, 25 Dec 2021 14:26:19 +0100 Subject: [PATCH] move samplees to other buttons --- src/buttonmanageritems.cpp | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/buttonmanageritems.cpp b/src/buttonmanageritems.cpp index 401ed8b..51c1cbb 100644 --- a/src/buttonmanageritems.cpp +++ b/src/buttonmanageritems.cpp @@ -407,6 +407,7 @@ void SampleItem::moveUp() { setExpanded(wasexpanded); pos--; + updatePosition(); } void SampleItem::moveDown() { @@ -462,8 +463,38 @@ void SampleItem::moveToButtonAbove() { pos = newbuttonconf.size()-1; setExpanded(wasExpanded); + mparent->setExpanded(true); + + updatePosition(); } void SampleItem::moveToButtonBelow() { + ButtonItem* buttonbelow = getParent()->getItemBelow(); + if(!buttonbelow) { + buttonbelow = getParent()->getParent()->getItemBelow()->getChild(0); + } + // apply change in config + auto& buttonConf = getParent()->getConfig().samples; + auto& newButtonconf = buttonbelow->getConfig().samples; + + newButtonconf.insert(newButtonconf.begin(), buttonConf.back()); + buttonConf.erase(buttonConf.end()); + + // remove button from this row and attach to other + bool wasExpanded = isExpanded(); + getParent()->removeChild(this); + + buttonbelow->insertChild(0, this); + //update local parent + mparent = buttonbelow; + + //update local pos + pos = 0; + + //update new buttons below + reenumerateAllSiblings(); + + setExpanded(wasExpanded); + mparent->setExpanded(true); } \ No newline at end of file