SL-19649 Adjust other classes for new deleteAllChildren mechanics

master
Andrey Kleshchev 2023-05-12 18:26:02 +03:00
parent d28e2c03a7
commit cc8af5f37d
6 changed files with 37 additions and 4 deletions

View File

@ -282,6 +282,17 @@ void LLLayoutStack::draw()
}
}
void LLLayoutStack::deleteAllChildren()
{
mPanels.clear();
LLView::deleteAllChildren();
// Not really needed since nothing is left to
// display, but for the sake of consistency
updateFractionalSizes();
mNeedsLayout = true;
}
void LLLayoutStack::removeChild(LLView* view)
{
LLLayoutPanel* embedded_panelp = findEmbeddedPanel(dynamic_cast<LLPanel*>(view));
@ -289,12 +300,14 @@ void LLLayoutStack::removeChild(LLView* view)
if (embedded_panelp)
{
mPanels.erase(std::find(mPanels.begin(), mPanels.end(), embedded_panelp));
delete embedded_panelp;
LLView::removeChild(view);
updateFractionalSizes();
mNeedsLayout = true;
}
LLView::removeChild(view);
else
{
LLView::removeChild(view);
}
}
BOOL LLLayoutStack::postBuild()

View File

@ -67,6 +67,7 @@ public:
virtual ~LLLayoutStack();
/*virtual*/ void draw();
/*virtual*/ void deleteAllChildren();
/*virtual*/ void removeChild(LLView*);
/*virtual*/ BOOL postBuild();
/*virtual*/ bool addChild(LLView* child, S32 tab_group = 0);

View File

@ -1882,6 +1882,13 @@ bool LLMenuGL::addContextChild(LLView* view, S32 tab_group)
return false;
}
void LLMenuGL::deleteAllChildren()
{
mItems.clear();
LLUICtrl::deleteAllChildren();
}
void LLMenuGL::removeChild( LLView* ctrl)
{
// previously a dynamic_cast with if statement to check validity

View File

@ -442,6 +442,7 @@ public:
/*virtual*/ void drawBackground(LLMenuItemGL* itemp, F32 alpha);
/*virtual*/ void setVisible(BOOL visible);
/*virtual*/ bool addChild(LLView* view, S32 tab_group = 0);
/*virtual*/ void deleteAllChildren();
/*virtual*/ void removeChild( LLView* ctrl);
/*virtual*/ BOOL postBuild();

View File

@ -47,6 +47,7 @@ public:
/*virtual*/ void onOpen(const LLSD& notification_id);
/*virtual*/ BOOL handleToolTip(S32 x, S32 y, MASK mask);
/*virtual*/ void deleteAllChildren();
/*virtual*/ void removeChild(LLView* child);
private:
void onToastDestroy(LLToast * toast);
@ -122,6 +123,12 @@ BOOL LLInspectToast::handleToolTip(S32 x, S32 y, MASK mask)
return LLFloater::handleToolTip(x, y, mask);
}
void LLInspectToast::deleteAllChildren()
{
mPanel = NULL;
LLInspect::deleteAllChildren();
}
// virtual
void LLInspectToast::removeChild(LLView* child)
{

View File

@ -594,7 +594,11 @@ const LLUUID LLInventoryModel::findCategoryUUIDForTypeInRoot(
}
}
if(rv.isNull() && create_folder && root_id.notNull())
if(rv.isNull()
&& root_id.notNull()
&& create_folder
&& preferred_type != LLFolderType::FT_MARKETPLACE_LISTINGS
&& preferred_type != LLFolderType::FT_OUTBOX)
{
if (isInventoryUsable())