summaryrefslogtreecommitdiff
path: root/indra/newview/llinventorypanel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llinventorypanel.cpp')
-rw-r--r--indra/newview/llinventorypanel.cpp36
1 files changed, 22 insertions, 14 deletions
diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp
index d338e308ab..9dc13bcf09 100644
--- a/indra/newview/llinventorypanel.cpp
+++ b/indra/newview/llinventorypanel.cpp
@@ -563,7 +563,7 @@ void LLInventoryPanel::itemChanged(const LLUUID& item_id, U32 mask, const LLInve
view_item->refresh();
}
LLFolderViewFolder* parent = view_item->getParentFolder();
- if(parent)
+ if(parent && parent->getViewModelItem())
{
parent->getViewModelItem()->dirtyDescendantsFilter();
}
@@ -614,7 +614,7 @@ void LLInventoryPanel::itemChanged(const LLUUID& item_id, U32 mask, const LLInve
// Sort the folder.
if (mask & LLInventoryObserver::SORT)
{
- if (view_folder)
+ if (view_folder && view_folder->getViewModelItem())
{
view_folder->getViewModelItem()->requestSort();
}
@@ -659,7 +659,8 @@ void LLInventoryPanel::itemChanged(const LLUUID& item_id, U32 mask, const LLInve
// Don't process the item if it is the root
if (old_parent)
{
- LLFolderViewModelItemInventory* viewmodel_folder = static_cast<LLFolderViewModelItemInventory*>(old_parent->getViewModelItem());
+ LLFolderViewModelItem* old_parent_vmi = old_parent->getViewModelItem();
+ LLFolderViewModelItemInventory* viewmodel_folder = static_cast<LLFolderViewModelItemInventory*>(old_parent_vmi);
LLFolderViewFolder* new_parent = (LLFolderViewFolder*)getItemByID(model_item->getParentUUID());
// Item has been moved.
if (old_parent != new_parent)
@@ -693,7 +694,10 @@ void LLInventoryPanel::itemChanged(const LLUUID& item_id, U32 mask, const LLInve
{
updateFolderLabel(viewmodel_folder->getUUID());
}
- old_parent->getViewModelItem()->dirtyDescendantsFilter();
+ if (old_parent_vmi)
+ {
+ old_parent_vmi->dirtyDescendantsFilter();
+ }
}
}
}
@@ -709,11 +713,15 @@ void LLInventoryPanel::itemChanged(const LLUUID& item_id, U32 mask, const LLInve
view_item->destroyView();
if(parent)
{
- parent->getViewModelItem()->dirtyDescendantsFilter();
- LLFolderViewModelItemInventory* viewmodel_folder = static_cast<LLFolderViewModelItemInventory*>(parent->getViewModelItem());
- if(viewmodel_folder)
+ LLFolderViewModelItem* parent_wmi = parent->getViewModelItem();
+ if (parent_wmi)
{
- updateFolderLabel(viewmodel_folder->getUUID());
+ parent_wmi->dirtyDescendantsFilter();
+ LLFolderViewModelItemInventory* viewmodel_folder = static_cast<LLFolderViewModelItemInventory*>(parent_wmi);
+ if (viewmodel_folder)
+ {
+ updateFolderLabel(viewmodel_folder->getUUID());
+ }
}
}
}
@@ -1220,7 +1228,7 @@ LLFolderViewItem* LLInventoryPanel::buildViewsTree(const LLUUID& id,
// Make sure panel won't lock in a loop over existing items if
// folder is enormous and at least some work gets done
const S32 MIN_ITEMS_PER_CALL = 500;
- const S32 starting_item_count = mItemMap.size();
+ const S32 starting_item_count = static_cast<S32>(mItemMap.size());
LLFolderViewFolder *parentp = dynamic_cast<LLFolderViewFolder*>(folder_view_item);
bool done = true;
@@ -1251,7 +1259,7 @@ LLFolderViewItem* LLInventoryPanel::buildViewsTree(const LLUUID& id,
if (!mBuildChildrenViews
&& mode == BUILD_TIMELIMIT
- && MIN_ITEMS_PER_CALL + starting_item_count < mItemMap.size())
+ && MIN_ITEMS_PER_CALL + starting_item_count < static_cast<S32>(mItemMap.size()))
{
// Single folder view, check if we still have time
//
@@ -1665,7 +1673,7 @@ bool LLInventoryPanel::beginIMSession()
item_array,
LLInventoryModel::EXCLUDE_TRASH,
is_buddy);
- S32 count = item_array.size();
+ auto count = item_array.size();
if(count > 0)
{
//*TODO by what to replace that?
@@ -1674,7 +1682,7 @@ bool LLInventoryPanel::beginIMSession()
// create the session
LLAvatarTracker& at = LLAvatarTracker::instance();
LLUUID id;
- for(S32 i = 0; i < count; ++i)
+ for(size_t i = 0; i < count; ++i)
{
id = item_array.at(i)->getCreatorUUID();
if(at.isBuddyOnline(id))
@@ -1761,7 +1769,7 @@ void LLInventoryPanel::purgeSelectedItems()
const std::set<LLFolderViewItem*> inventory_selected = mFolderRoot.get()->getSelectionList();
if (inventory_selected.empty()) return;
LLSD args;
- S32 count = inventory_selected.size();
+ auto count = inventory_selected.size();
std::vector<LLUUID> selected_items;
for (std::set<LLFolderViewItem*>::const_iterator it = inventory_selected.begin(), end_it = inventory_selected.end();
it != end_it;
@@ -1774,7 +1782,7 @@ void LLInventoryPanel::purgeSelectedItems()
count += items.size() + cats.size();
selected_items.push_back(item_id);
}
- args["COUNT"] = count;
+ args["COUNT"] = static_cast<S32>(count);
LLNotificationsUtil::add("PurgeSelectedItems", args, LLSD(), boost::bind(callbackPurgeSelectedItems, _1, _2, selected_items));
}