MCPcopy Create free account
hub / github.com/NatronGitHub/Natron / onUpClicked

Method onUpClicked

Gui/ManageUserParamsDialog.cpp:567–625  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

565}
566
567void
568ManageUserParamsDialog::onUpClicked()
569{
570 QList<QTreeWidgetItem*> selection = _imp->tree->selectedItems();
571 if ( selection.empty() ) {
572 return;
573 }
574 QTreeWidgetItem* selectedItem = selection.front();
575 for (std::list<TreeItem>::iterator it = _imp->items.begin(); it != _imp->items.end(); ++it) {
576 if (it->item == selectedItem) {
577 QTreeWidgetItem* parent = 0;
578 KnobIPtr parentKnob;
579 if (it->knob) {
580 parentKnob = it->knob->getParentKnob();
581 }
582 if (parentKnob) {
583 for (std::list<TreeItem>::iterator it = _imp->items.begin(); it != _imp->items.end(); ++it) {
584 if (it->knob == parentKnob) {
585 parent = it->item;
586 break;
587 }
588 }
589 }
590
591 int index;
592 if (!parent) {
593 index = _imp->tree->indexOfTopLevelItem(it->item);
594 } else {
595 index = parent->indexOfChild(it->item);
596 }
597 if (index == 0) {
598 break;
599 }
600
601 if ( !it->knob || !_imp->panel->getHolder()->moveKnobOneStepUp( it->knob.get() ) ) {
602 return;
603 }
604 QList<QTreeWidgetItem*> children = it->item->takeChildren();
605 delete it->item;
606
607 KnobIPtr knob = it->knob;
608 //invalidates iterator
609 _imp->items.erase(it);
610
611 QTreeWidgetItem* item = _imp->createItemForKnob(knob, index - 1);
612 item->insertChildren(0, children);
613 _imp->saveAndRebuildPages();
614 QItemSelectionModel* model = _imp->tree->selectionModel();
615 model->select(_imp->tree->indexFromItemPublic(item), QItemSelectionModel::ClearAndSelect);
616
617 KnobPagePtr isPage = std::dynamic_pointer_cast<KnobPage>(knob);
618 if (isPage) {
619 _imp->panel->setPageActiveIndex(isPage);
620 }
621
622 break;
623 }
624 }

Callers

nothing calls this directly

Calls 12

emptyMethod · 0.80
getParentKnobMethod · 0.80
moveKnobOneStepUpMethod · 0.80
createItemForKnobMethod · 0.80
saveAndRebuildPagesMethod · 0.80
setPageActiveIndexMethod · 0.80
beginMethod · 0.45
endMethod · 0.45
getHolderMethod · 0.45
getMethod · 0.45
eraseMethod · 0.45
selectMethod · 0.45

Tested by

no test coverage detected