MCPcopy Create free account
hub / github.com/BespokeSynth/BespokeSynth / ReloadSaveData

Method ReloadSaveData

Source/ModuleSaveDataPanel.cpp:68–214  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

66}
67
68void ModuleSaveDataPanel::ReloadSaveData()
69{
70 for (auto iter = mSaveDataControls.begin(); iter != mSaveDataControls.end(); ++iter)
71 {
72 RemoveUIControl(*iter);
73 (*iter)->Delete();
74 }
75 mSaveDataControls.clear();
76 mLabels.clear();
77 mStringDropdowns.clear();
78
79 if (mSaveModule == nullptr || mSaveModule->IsSaveable() == false)
80 return;
81
82 UpdateTarget(mSaveModule);
83
84 int maxWidth = 40;
85 std::list<ModuleSaveData::SaveVal*> values = mSaveModule->GetSaveData().GetSavedValues();
86 for (auto iter = values.begin(); iter != values.end(); ++iter)
87 mLabels.push_back((*iter)->mProperty);
88 for (int i = 0; i < mSaveModule->GetChildren().size(); ++i)
89 {
90 IDrawableModule* child = mSaveModule->GetChildren()[i];
91 std::list<ModuleSaveData::SaveVal*>& childValues = child->GetSaveData().GetSavedValues();
92 for (auto iter = childValues.begin(); iter != childValues.end(); ++iter)
93 {
94 values.push_back(*iter);
95 mLabels.push_back(std::string(child->Name()) + "." + (*iter)->mProperty);
96 }
97 }
98 for (auto iter = mLabels.begin(); iter != mLabels.end(); ++iter)
99 maxWidth = MAX(maxWidth, GetStringWidth(*iter));
100
101 mAlignmentX = 10 + maxWidth;
102 float x = mAlignmentX;
103 float y = 5 + kItemSpacing;
104
105 mNameEntry = new TextEntry(this, "", x, y, 27, mSaveModule->NameMutable());
106 mNameEntry->SetNoHover(true);
107 mSaveDataControls.push_back(mNameEntry);
108 y += kItemSpacing;
109
110 mPresetFileSelector = new DropdownList(this, "preset", x, y, &mPresetFileIndex, 150);
111 mPresetFileSelector->SetNoHover(true);
112 mPresetFileSelector->SetUnknownItemString("[none]");
113 mSaveDataControls.push_back(mPresetFileSelector);
114 mSavePresetAsButton = new ClickButton(this, "save as", mPresetFileSelector, kAnchor_Right);
115 mSavePresetAsButton->SetNoHover(true);
116 mSaveDataControls.push_back(mSavePresetAsButton);
117 y += kItemSpacing;
118
119 TextEntry* prevTextEntry = mNameEntry;
120
121 for (auto iter = values.begin(); iter != values.end(); ++iter)
122 {
123 ModuleSaveData::SaveVal* save = *iter;
124
125 IUIControl* control = nullptr;

Callers

nothing calls this directly

Calls 15

UpdateTargetFunction · 0.85
GetStringWidthFunction · 0.85
GetSaveDataMethod · 0.80
sizeMethod · 0.80
GetChildrenMethod · 0.80
NameMutableMethod · 0.80
SetNoHoverMethod · 0.80
SetUnknownItemStringMethod · 0.80
emptyMethod · 0.80
SetFlexibleWidthMethod · 0.80
SetNextTextEntryMethod · 0.80
CanBeDeletedMethod · 0.80

Tested by

no test coverage detected