diff options
| author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2023-08-01 22:31:46 +0300 | 
|---|---|---|
| committer | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2023-08-01 22:32:07 +0300 | 
| commit | 5048b3878c027859dcc9005dff550f0afc38f623 (patch) | |
| tree | 1b45021acf5fccbd3218407f299630a9dd32ba1d | |
| parent | 87c337047dbfcdf11a04b2395b0165db24238823 (diff) | |
SL-20101 Fix ThumbnailDimentionsLimit poping up on success
| -rw-r--r-- | indra/newview/llfloaterchangeitemthumbnail.cpp | 34 | 
1 files changed, 24 insertions, 10 deletions
| diff --git a/indra/newview/llfloaterchangeitemthumbnail.cpp b/indra/newview/llfloaterchangeitemthumbnail.cpp index d7fbf1384b..692ef3b163 100644 --- a/indra/newview/llfloaterchangeitemthumbnail.cpp +++ b/indra/newview/llfloaterchangeitemthumbnail.cpp @@ -546,12 +546,21 @@ struct ImageLoadedData      LLUUID mThumbnailId;      LLUUID mObjectId;      LLHandle<LLFloater> mFloaterHandle; +    bool mSilent;  };  void LLFloaterChangeItemThumbnail::assignAndValidateAsset(const LLUUID &asset_id, bool silent)  {      LLPointer<LLViewerFetchedTexture> texturep = LLViewerTextureManager::getFetchedTexture(asset_id); -    if (texturep->getFullWidth() == 0 && !texturep->isFullyLoaded() && !texturep->isMissingAsset()) +    if (texturep->isMissingAsset()) +    { +        LL_WARNS() << "Attempted to assign missing asset " << asset_id << LL_ENDL; +        if (!silent) +        { +            LLNotificationsUtil::add("ThumbnailDimentionsLimit"); +        } +    } +    else if (texturep->getFullWidth() == 0)      {          if (silent)          { @@ -566,9 +575,10 @@ void LLFloaterChangeItemThumbnail::assignAndValidateAsset(const LLUUID &asset_id          data->mObjectId = mItemId;          data->mThumbnailId = asset_id;          data->mFloaterHandle = getHandle(); +        data->mSilent = silent;          texturep->setLoadedCallback(onImageLoaded, -            MAX_DISCARD_LEVEL, // don't actually need max one, 3 or 4 should be enough +            MAX_DISCARD_LEVEL, // Don't need full image, just size data              FALSE,              FALSE,              (void*)data, @@ -648,16 +658,20 @@ void LLFloaterChangeItemThumbnail::onImageLoaded(          {              setThumbnailId(data->mThumbnailId, data->mObjectId);          } +        else if (!data->mSilent) +        { +            // Should this only appear if floater is alive? +            LLNotificationsUtil::add("ThumbnailDimentionsLimit"); +        } +    } -        // Update floater -        if (!data->mFloaterHandle.isDead()) +    // Update floater +    if (!data->mSilent && !data->mFloaterHandle.isDead()) +    { +        LLFloaterChangeItemThumbnail* self = static_cast<LLFloaterChangeItemThumbnail*>(data->mFloaterHandle.get()); +        if (self && self->mExpectingAssetId == data->mThumbnailId)          { -            LLFloaterChangeItemThumbnail* self = static_cast<LLFloaterChangeItemThumbnail*>(data->mFloaterHandle.get()); -            if (self && self->mExpectingAssetId == data->mThumbnailId) -            { -                LLNotificationsUtil::add("ThumbnailDimentionsLimit"); -                self->mExpectingAssetId = LLUUID::null; -            } +            self->mExpectingAssetId = LLUUID::null;          }      } | 
