From 3c471b81554d9727b1a1929681ce3bfb4734aabc Mon Sep 17 00:00:00 2001
From: Ansariel <ansariel.hiller@phoenixviewer.com>
Date: Fri, 6 Sep 2024 02:20:10 +0200
Subject: Follow-up fix for 238a2a64b31e6a0b431309e363067a7fe57125ae: Item
 count will always show fetch label even after fetch is complete

---
 indra/newview/llpanelmaininventory.cpp | 30 +++++++++++++++++++++++-------
 indra/newview/llpanelmaininventory.h   |  8 ++++++++
 2 files changed, 31 insertions(+), 7 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp
index 0c068ff993..143873f168 100644
--- a/indra/newview/llpanelmaininventory.cpp
+++ b/indra/newview/llpanelmaininventory.cpp
@@ -997,6 +997,22 @@ void LLPanelMainInventory::updateItemcountText()
             mCategoryCount = gInventory.getCategoryCount();
             update = true;
         }
+
+        EFetchState currentFetchState{ EFetchState::Unknown };
+        if (LLInventoryModelBackgroundFetch::instance().folderFetchActive())
+        {
+            currentFetchState = EFetchState::Fetching;
+        }
+        else if (LLInventoryModelBackgroundFetch::instance().isEverythingFetched())
+        {
+            currentFetchState = EFetchState::Complete;
+        }
+
+        if (mLastFetchState != currentFetchState)
+        {
+            mLastFetchState = currentFetchState;
+            update = true;
+        }
     }
 
     if (mLastFilterText != getFilterText())
@@ -1027,17 +1043,17 @@ void LLPanelMainInventory::updateItemcountText()
         }
         else
         {
-            if (LLInventoryModelBackgroundFetch::instance().folderFetchActive())
+            switch (mLastFetchState)
             {
+            case EFetchState::Fetching:
                 text = getString("ItemcountFetching", string_args);
-            }
-            else if (LLInventoryModelBackgroundFetch::instance().isEverythingFetched())
-            {
+                break;
+            case EFetchState::Complete:
                 text = getString("ItemcountCompleted", string_args);
-            }
-            else
-            {
+                break;
+            default:
                 text = getString("ItemcountUnknown", string_args);
+                break;
             }
         }
 
diff --git a/indra/newview/llpanelmaininventory.h b/indra/newview/llpanelmaininventory.h
index d28daddd73..21100cc03c 100644
--- a/indra/newview/llpanelmaininventory.h
+++ b/indra/newview/llpanelmaininventory.h
@@ -182,6 +182,13 @@ protected:
     LLSidepanelInventory* getParentSidepanelInventory();
 
 private:
+    enum class EFetchState
+    {
+        Unknown,
+        Fetching,
+        Complete
+    };
+
     LLFloaterInventoryFinder* getFinder();
 
     LLFilterEditor*             mFilterEditor;
@@ -202,6 +209,7 @@ private:
     S32                         mCategoryCount = 0;
     std::string                 mCategoryCountString;
     LLComboBox*                 mSearchTypeCombo;
+    EFetchState                 mLastFetchState{ EFetchState::Unknown };
 
     LLButton* mBackBtn;
     LLButton* mForwardBtn;
-- 
cgit v1.2.3