summaryrefslogtreecommitdiff
path: root/indra/newview/llpaneloutfitedit.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llpaneloutfitedit.cpp')
-rw-r--r--indra/newview/llpaneloutfitedit.cpp19
1 files changed, 14 insertions, 5 deletions
diff --git a/indra/newview/llpaneloutfitedit.cpp b/indra/newview/llpaneloutfitedit.cpp
index 8b9941c0ca..5973b08183 100644
--- a/indra/newview/llpaneloutfitedit.cpp
+++ b/indra/newview/llpaneloutfitedit.cpp
@@ -51,7 +51,6 @@
#include "llbutton.h"
#include "llcombobox.h"
#include "llfiltereditor.h"
-#include "llfloaterinventory.h"
#include "llinventorybridge.h"
#include "llinventorymodel.h"
#include "llinventorymodelbackgroundfetch.h"
@@ -579,7 +578,6 @@ void LLPanelOutfitEdit::onOpen(const LLSD& key)
// *TODO: this method is called even panel is not visible to user because its parent layout panel is hidden.
// So, we can defer initializing a bit.
mWearableListManager = new LLFilteredWearableListManager(mWearableItemsList, mListViewItemTypes[LVIT_ALL]->collector);
- mWearableListManager->populateList();
displayCurrentOutfit();
mInitialized = true;
}
@@ -633,6 +631,10 @@ void LLPanelOutfitEdit::showAddWearablesPanel(bool show_add_wearables)
// Reset mWearableItemsList position to top. See EXT-8180.
mWearableItemsList->goToTop();
}
+ else
+ {
+ mWearableListManager->populateIfNeeded();
+ }
//switching button bars
getChildView("no_add_wearables_button_bar")->setVisible( !show_add_wearables);
@@ -662,6 +664,7 @@ void LLPanelOutfitEdit::showWearablesListView()
{
updateWearablesPanelVerbButtons();
updateFiltersVisibility();
+ mWearableListManager->populateIfNeeded();
}
mListViewBtn->setToggleState(TRUE);
}
@@ -779,6 +782,10 @@ void LLPanelOutfitEdit::onVisibilityChanged(const LLSD &in_visible_chain)
{
update();
}
+ else
+ {
+ mWearableListManager->holdProgress(); //list population restarts with visibility
+ }
}
void LLPanelOutfitEdit::onAddWearableClicked(void)
@@ -1278,7 +1285,7 @@ void LLPanelOutfitEdit::showFilteredWearablesListView(LLWearableType::EType type
showWearablesListView();
//e_list_view_item_type implicitly contains LLWearableType::EType starting from LVIT_SHAPE
- applyListViewFilter((EListViewItemType) (LVIT_SHAPE + type));
+ applyListViewFilter(static_cast<EListViewItemType>(LVIT_SHAPE + type));
}
static void update_status_widget_rect(LLView * widget, S32 right_border)
@@ -1298,8 +1305,10 @@ void LLPanelOutfitEdit::onOutfitChanging(bool started)
S32 delta = started ? indicator_delta : 0;
S32 right_border = status_panel->getRect().getWidth() - delta;
- update_status_widget_rect(mCurrentOutfitName, right_border);
- update_status_widget_rect(mStatus, right_border);
+ if (mCurrentOutfitName)
+ update_status_widget_rect(mCurrentOutfitName, right_border);
+ if (mStatus)
+ update_status_widget_rect(mStatus, right_border);
indicator->setVisible(started);
}