EXP-1554 FIXED (Selecting More Info for more than one Classified section in Search floater, breaks the navigation history in Picks Floater)

- For each classified info create a new instance of LLPanelClassifiedInfo
- Added destructor for LLPanelProfile::ChildStack to avoid memory leak
master
Paul ProductEngine 2011-11-18 20:02:54 +02:00
parent df7f4f60b6
commit b79ccf9dd7
3 changed files with 22 additions and 7 deletions

View File

@ -1048,13 +1048,10 @@ void LLPanelPicks::createPickInfoPanel()
void LLPanelPicks::createClassifiedInfoPanel()
{
if(!mPanelClassifiedInfo)
{
mPanelClassifiedInfo = LLPanelClassifiedInfo::create();
mPanelClassifiedInfo->setExitCallback(boost::bind(&LLPanelPicks::onPanelClassifiedClose, this, mPanelClassifiedInfo));
mPanelClassifiedInfo->setEditClassifiedCallback(boost::bind(&LLPanelPicks::onPanelClassifiedEdit, this));
mPanelClassifiedInfo->setVisible(FALSE);
}
mPanelClassifiedInfo = LLPanelClassifiedInfo::create();
mPanelClassifiedInfo->setExitCallback(boost::bind(&LLPanelPicks::onPanelClassifiedClose, this, mPanelClassifiedInfo));
mPanelClassifiedInfo->setEditClassifiedCallback(boost::bind(&LLPanelPicks::onPanelClassifiedEdit, this));
mPanelClassifiedInfo->setVisible(FALSE);
}
void LLPanelPicks::createClassifiedEditPanel(LLPanelClassifiedEdit** panel)

View File

@ -167,6 +167,23 @@ LLPanelProfile::ChildStack::ChildStack()
{
}
LLPanelProfile::ChildStack::~ChildStack()
{
while (mStack.size() != 0)
{
view_list_t& top = mStack.back();
for (view_list_t::const_iterator it = top.begin(); it != top.end(); ++it)
{
LLView* viewp = *it;
if (viewp)
{
delete viewp;
}
}
mStack.pop_back();
}
}
void LLPanelProfile::ChildStack::setParent(LLPanel* parent)
{
llassert_always(parent != NULL);

View File

@ -74,6 +74,7 @@ private:
LOG_CLASS(LLPanelProfile::ChildStack);
public:
ChildStack();
~ChildStack();
void setParent(LLPanel* parent);
bool push();