MCPcopy Create free account
hub / github.com/OpenApoc/OpenApoc / replaceItem

Method replaceItem

forms/multilistbox.cpp:281–308  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

279}
280
281void MultilistBox::replaceItem(sp<Control> Item)
282{
283 this->setDirty();
284 auto newData = Item->getData<void>();
285
286 for (size_t i = 0; i < Controls.size(); i++)
287 {
288 auto oldItem = Controls[i];
289 if (oldItem->getData<void>() == newData)
290 {
291 Controls.erase(Controls.begin() + i);
292 Item->setParent(shared_from_this(), i);
293 if (selectedSet.find(oldItem) != selectedSet.end())
294 {
295 selectedSet.erase(oldItem);
296 selectedSet.insert(Item);
297 }
298 if (oldItem == hoveredItem)
299 {
300 hoveredItem = Item;
301 }
302
303 return;
304 }
305 }
306
307 addItem(Item);
308}
309
310sp<Control> MultilistBox::removeItem(sp<Control> Item)
311{

Callers

nothing calls this directly

Calls 6

setDirtyMethod · 0.80
setParentMethod · 0.80
endMethod · 0.80
insertMethod · 0.80
sizeMethod · 0.45
beginMethod · 0.45

Tested by

no test coverage detected