forked from MrBesen/soundboard
expandtree
This commit is contained in:
parent
e4cd81e811
commit
018ff05990
|
@ -39,6 +39,7 @@ public:
|
|||
T* getItemBelow() const;
|
||||
|
||||
void reenumerateAllSiblings();
|
||||
void expandTree(); // expand this and every parent item
|
||||
protected:
|
||||
QTreeWidgetItem* mparent = nullptr;
|
||||
uint8_t pos = 0;
|
||||
|
|
|
@ -91,6 +91,14 @@ void ButtonManagerItem::reenumerateAllSiblings() {
|
|||
}
|
||||
}
|
||||
|
||||
void ButtonManagerItem::expandTree() {
|
||||
ButtonManagerItem* c = this;
|
||||
while(c) {
|
||||
c->setExpanded(true);
|
||||
c = c->getParent<ButtonManagerItem>();
|
||||
}
|
||||
}
|
||||
|
||||
void ButtonManagerItem::updateAllPosBellow(int8_t diff, uint8_t size) {
|
||||
for(uint8_t i = pos+1; i < size; ++i) {
|
||||
ButtonManagerItem* item = getSibling<ButtonManagerItem>(i);
|
||||
|
@ -149,11 +157,10 @@ void RowItem::moveUp() {
|
|||
Log::error << "row above could not be updated";
|
||||
}
|
||||
|
||||
bool wasexpanded = isExpanded();
|
||||
mparent->removeChild(this);
|
||||
|
||||
mparent->insertChild(pos-1, this);
|
||||
setExpanded(wasexpanded);
|
||||
expandTree();
|
||||
|
||||
pos--;
|
||||
updatePosition();
|
||||
|
@ -233,11 +240,10 @@ void ButtonItem::moveUp() {
|
|||
Log::error << "button above could not be updated";
|
||||
}
|
||||
|
||||
bool wasexpanded = isExpanded();
|
||||
mparent->removeChild(this);
|
||||
|
||||
mparent->insertChild(pos-1, this);
|
||||
setExpanded(wasexpanded);
|
||||
expandTree();
|
||||
|
||||
pos--;
|
||||
}
|
||||
|
@ -285,7 +291,6 @@ void ButtonItem::moveToRowAbove() {
|
|||
// updateAllPosBellow(-1, rowconf.size()+1);
|
||||
|
||||
// remove button from this row and attach to other
|
||||
bool wasExpanded = isExpanded();
|
||||
getParent<RowItem>()->removeChild(this);
|
||||
|
||||
reenumerateAllSiblings(); // depends on mparent beeing set to the old row
|
||||
|
@ -297,7 +302,7 @@ void ButtonItem::moveToRowAbove() {
|
|||
//update local pos
|
||||
pos = newrowconf.size()-1;
|
||||
|
||||
setExpanded(wasExpanded);
|
||||
expandTree();
|
||||
}
|
||||
|
||||
void ButtonItem::moveToRowBelow() {
|
||||
|
@ -316,7 +321,6 @@ void ButtonItem::moveToRowBelow() {
|
|||
rowconf.erase(rowconf.end());
|
||||
|
||||
// remove button from this row and attach to other
|
||||
bool wasExpanded = isExpanded();
|
||||
getParent<RowItem>()->removeChild(this);
|
||||
|
||||
rowbelow->insertChild(0, this);
|
||||
|
@ -329,7 +333,7 @@ void ButtonItem::moveToRowBelow() {
|
|||
//update new buttons below
|
||||
updateAllPosBellow(1, newrowconf.size());
|
||||
|
||||
setExpanded(wasExpanded);
|
||||
expandTree();
|
||||
}
|
||||
|
||||
|
||||
|
@ -400,11 +404,10 @@ void SampleItem::moveUp() {
|
|||
Log::error << "button above could not be updated";
|
||||
}
|
||||
|
||||
bool wasexpanded = isExpanded();
|
||||
mparent->removeChild(this);
|
||||
|
||||
mparent->insertChild(pos-1, this);
|
||||
setExpanded(wasexpanded);
|
||||
expandTree();
|
||||
|
||||
pos--;
|
||||
updatePosition();
|
||||
|
@ -450,7 +453,6 @@ void SampleItem::moveToButtonAbove() {
|
|||
// updateAllPosBellow(-1, rowconf.size()+1);
|
||||
|
||||
// remove button from this row and attach to other
|
||||
bool wasExpanded = isExpanded();
|
||||
getParent<ButtonItem>()->removeChild(this);
|
||||
|
||||
reenumerateAllSiblings(); // depends on mparent beeing set to the old row
|
||||
|
@ -462,8 +464,7 @@ void SampleItem::moveToButtonAbove() {
|
|||
//update local pos
|
||||
pos = newbuttonconf.size()-1;
|
||||
|
||||
setExpanded(wasExpanded);
|
||||
mparent->setExpanded(true);
|
||||
expandTree();
|
||||
|
||||
updatePosition();
|
||||
}
|
||||
|
@ -482,7 +483,6 @@ void SampleItem::moveToButtonBelow() {
|
|||
buttonConf.erase(buttonConf.end());
|
||||
|
||||
// remove button from this row and attach to other
|
||||
bool wasExpanded = isExpanded();
|
||||
getParent<ButtonItem>()->removeChild(this);
|
||||
|
||||
buttonbelow->insertChild(0, this);
|
||||
|
@ -495,6 +495,5 @@ void SampleItem::moveToButtonBelow() {
|
|||
//update new buttons below
|
||||
reenumerateAllSiblings();
|
||||
|
||||
setExpanded(wasExpanded);
|
||||
mparent->setExpanded(true);
|
||||
expandTree();
|
||||
}
|
Loading…
Reference in New Issue