Mike Antipov  committed 342d8c1

EXT-7777 WIP Added several cases to show Loading indicator in "My Outfits:"

* Outfit is loading for the first time
* After user clicks:
** Item Context menu > Add
** Item Context menu > Replace

Known Issues:
1. For multi-wearable indicator will disappear after first item from the batch is worn.
Did not fix this to not affect the stability before 2.1 release.
2. To show loading indicator first time we have to notify subscribers of LLAgentWearables.
For now this is done from the deprecated LLAgentWearables::processAgentInitialWearablesUpdate

Reviewed by Vadim Savchuk at

  • Participants
  • Parent commits 62536b4
  • Branches product-engine

Comments (0)

Files changed (2)

File indra/newview/llagentwearables.cpp

 // static
 // ! BACKWARDS COMPATIBILITY ! When we stop supporting viewer1.23, we can assume
 // that viewers have a Current Outfit Folder and won't need this message, and thus
-// we can remove/ignore this whole function.
+// we can remove/ignore this whole function. EXCEPT gAgentWearables.notifyLoadingStarted
 void LLAgentWearables::processAgentInitialWearablesUpdate(LLMessageSystem* mesgsys, void** user_data)
 	// We should only receive this message a single time.  Ignore subsequent AgentWearablesUpdates
 	// that may result from AgentWearablesRequest having been sent more than once.
 	if (mInitialWearablesUpdateReceived)
+	// notify subscribers that wearables started loading. See EXT-7777
+	// *TODO: find more proper place to not be called from deprecated method.
+	gAgentWearables.notifyLoadingStarted();
 	mInitialWearablesUpdateReceived = true;
 	LLUUID agent_id;

File indra/newview/llappearancemgr.cpp

 	if (item_id_to_wear.isNull()) return false;
+	// *TODO: issue with multi-wearable should be fixed:
+	// in this case this method will be called N times - loading started for each item
+	// and than N times will be called - loading completed for each item.
+	// That means subscribers will be notified that loading is done after first item in a batch is worn.
+	// (loading indicator disappears for example before all selected items are worn)
+	// Have not fix this issue for 2.1 because of stability reason. EXT-7777.
+	gAgentWearables.notifyLoadingStarted();
 	LLViewerInventoryItem* item_to_wear = gInventory.getItem(item_id_to_wear);
 	if (!item_to_wear) return false;