optimize UIWidget for largers NPC trades

master
Eduardo Bart 12 years ago
parent ec9ea9e33d
commit 3f689e0edf

@ -148,7 +148,7 @@ local function refreshTradeItems()
for key,item in pairs(currentTradeItems) do
local itemBox = createWidget('NPCItemBox', itemsPanel)
itemBox.item = item
local name = item.name
local weight = string.format('%.2f', item.weight) .. ' ' .. WEIGHT_UNIT
local price = item.price .. ' ' .. CURRENCY

@ -19,7 +19,7 @@ NPCItemBox < UICheckBox
anchors.horizontalCenter: parent.horizontalCenter
margin-top: 5
$checked:
$checked:
border-color: #ffffff
$hover !checked:

@ -133,6 +133,8 @@ void UIWidget::addChild(const UIWidgetPtr& child)
return;
}
UIWidgetPtr oldLastChild = getLastChild();
m_children.push_back(child);
child->setParent(asUIWidget());
@ -145,7 +147,12 @@ void UIWidget::addChild(const UIWidgetPtr& child)
// update new child states
child->updateStates();
updateChildrenIndexStates();
// update old child index states
if(oldLastChild) {
oldLastChild->updateState(Fw::MiddleState);
oldLastChild->updateState(Fw::LastState);
}
g_ui.onWidgetAppear(child);
}
@ -714,8 +721,15 @@ void UIWidget::destroyChildren()
if(layout)
layout->disableUpdates();
while(!m_children.empty())
m_children[0]->destroy();
m_focusedChild = nullptr;
m_lockedChildren.clear();
while(!m_children.empty()) {
UIWidgetPtr child = m_children.front();
m_children.pop_front();
child->setParent(nullptr);
m_layout->removeWidget(child);
child->destroy();
}
layout->enableUpdates();
}

Loading…
Cancel
Save