MCPcopy Create free account
hub / github.com/RomanKubiak/ctrlr / restoreState

Method restoreState

Source/UIComponents/CtrlrPanel/CtrlrPanelCanvas.cpp:585–639  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

583}
584
585void CtrlrPanelCanvas::restoreState (const ValueTree &savedState)
586{
587 setBounds (VAR2RECT(getProperty(Ids::uiPanelCanvasRectangle)));
588
589 /* first restore any layers used */
590 if (savedState.getChildWithName (Ids::uiPanelEditor).isValid())
591 {
592 if (savedState.getChildWithName (Ids::uiPanelEditor).getChildWithName (Ids::uiPanelCanvasLayer).isValid())
593 {
594 /* canvas has it's own layers, delete the default one */
595 removeAllLayers();
596 }
597
598 for (int i=0; i<savedState.getChildWithName (Ids::uiPanelEditor).getNumChildren(); i++)
599 {
600 ValueTree child = savedState.getChildWithName (Ids::uiPanelEditor).getChild(i);
601
602 if (child.hasType(Ids::uiPanelCanvasLayer))
603 {
604 addLayer (child);
605 }
606 }
607
608 layers.sort(*this);
609 layersChanged();
610 }
611
612 /* now restore components */
613
614 for (int i=0; i<savedState.getNumChildren(); i++)
615 {
616 ValueTree child = savedState.getChild(i);
617
618 if (child.hasType(Ids::modulator))
619 {
620 CtrlrComponent *c = addNewComponent (child);
621 if (c == nullptr)
622 {
623 _WRN("CtrlrPanelCanvas::restoreState failed to add component: " + child.getProperty(Ids::name).toString());
624 }
625 else
626 {
627 if ((bool)c->getProperty(Ids::componentSentBack) == true)
628 {
629 c->toBack();
630 }
631 c->setVisible ((bool)c->getProperty(Ids::componentVisibility));
632 }
633 }
634 }
635
636 canvasStateRestored();
637
638 getPanel().getUndoManager()->clearUndoHistory();
639}
640
641void CtrlrPanelCanvas::canvasStateRestored()
642{

Callers 1

addNewComponentMethod · 0.45

Calls 10

getNumChildrenMethod · 0.80
setBoundsFunction · 0.50
isValidMethod · 0.45
getChildMethod · 0.45
sortMethod · 0.45
toStringMethod · 0.45
getPropertyMethod · 0.45
setVisibleMethod · 0.45
clearUndoHistoryMethod · 0.45
getUndoManagerMethod · 0.45

Tested by

no test coverage detected