diff options
author | Vaalith <none@none> | 2012-04-10 09:28:47 -0400 |
---|---|---|
committer | Vaalith <none@none> | 2012-04-10 09:28:47 -0400 |
commit | 8d4c6771fdbea274eabc7a2e2606b3b77952cb4a (patch) | |
tree | 304efa629bbddcee190f83c49f098733a3714201 | |
parent | 4ff8067aa8f5117fa83e1a971b5bbc0c8fc033b2 (diff) |
storm-64: One more toast on failure to verify initial image, and changed a bool to enum
-rw-r--r-- | indra/newview/lllocalbitmaps.cpp | 21 | ||||
-rw-r--r-- | indra/newview/lllocalbitmaps.h | 16 | ||||
-rw-r--r-- | indra/newview/skins/default/xui/en/notifications.xml | 9 |
3 files changed, 34 insertions, 12 deletions
diff --git a/indra/newview/lllocalbitmaps.cpp b/indra/newview/lllocalbitmaps.cpp index 10c3b20f63..459e52c4f4 100644 --- a/indra/newview/lllocalbitmaps.cpp +++ b/indra/newview/lllocalbitmaps.cpp @@ -116,15 +116,15 @@ LLLocalBitmap::LLLocalBitmap(std::string filename) } /* next phase of unit creation is nearly the same as an update cycle. - true means the unit's update is running for the first time so it will not check - for current usage nor will it attempt to replace the old, non existent image */ - mValid = updateSelf(true); + we're running updateSelf as a special case with the optional UT_FIRSTUSE + which omits the parts associated with removing the outdated texture */ + mValid = updateSelf(UT_FIRSTUSE); } LLLocalBitmap::~LLLocalBitmap() { // replace IDs with defaults, if set to do so. - if(LL_LOCAL_REPLACE_ON_DEL) + if(LL_LOCAL_REPLACE_ON_DEL && mValid) // fix for STORM-1837 { replaceIDs(mWorldID, IMG_DEFAULT); LLLocalBitmapMgr::doRebake(); @@ -167,7 +167,7 @@ bool LLLocalBitmap::getValid() } /* update functions */ -bool LLLocalBitmap::updateSelf(bool first_update) +bool LLLocalBitmap::updateSelf(EUpdateType optional_firstupdate) { bool updated = false; @@ -189,7 +189,7 @@ bool LLLocalBitmap::updateSelf(bool first_update) { // decode is successful, we can safely proceed. LLUUID old_id = LLUUID::null; - if (!first_update && !mWorldID.isNull()) + if (!(optional_firstupdate == UT_FIRSTUSE) && !mWorldID.isNull()) { old_id = mWorldID; } @@ -205,7 +205,7 @@ bool LLLocalBitmap::updateSelf(bool first_update) gTextureList.addImage(texture); - if (!first_update) + if (!optional_firstupdate == UT_FIRSTUSE) { // seek out everything old_id uses and replace it with mWorldID replaceIDs(old_id, mWorldID); @@ -807,6 +807,13 @@ bool LLLocalBitmapMgr::addUnit() } else { + llwarns << "Attempted to add invalid or unreadable image file, attempt cancelled.\n" + << "Filename: " << filename << llendl; + + LLSD notif_args; + notif_args["FNAME"] = filename; + LLNotificationsUtil::add("LocalBitmapsVerifyFail", notif_args); + delete unit; unit = NULL; } diff --git a/indra/newview/lllocalbitmaps.h b/indra/newview/lllocalbitmaps.h index c6d05c1763..7a23c7ef6e 100644 --- a/indra/newview/lllocalbitmaps.h +++ b/indra/newview/lllocalbitmaps.h @@ -39,7 +39,6 @@ class LLLocalBitmap public: /* main */ LLLocalBitmap(std::string filename); ~LLLocalBitmap(); - bool updateSelf(bool first_update = false); public: /* accessors */ std::string getFilename(); @@ -48,18 +47,25 @@ class LLLocalBitmap LLUUID getWorldID(); bool getValid(); - private: /* maintenance */ + public: /* self update public section */ + enum EUpdateType + { + UT_FIRSTUSE, + UT_REGUPDATE + }; + + bool updateSelf(EUpdateType = UT_REGUPDATE); + + private: /* self update private section */ bool decodeBitmap(LLPointer<LLImageRaw> raw); void replaceIDs(LLUUID old_id, LLUUID new_id); - - private: /* id replacement */ std::vector<LLViewerObject*> prepUpdateObjects(LLUUID old_id); void updateUserPrims(LLUUID old_id, LLUUID new_id); void updateUserSculpts(LLUUID old_id, LLUUID new_id); void updateUserLayers(LLUUID old_id, LLUUID new_id, LLWearableType::EType type); LLVOAvatarDefines::ETextureIndex getTexIndex(LLWearableType::EType type, LLVOAvatarDefines::EBakedTextureIndex baked_texind); - private: /* enums */ + private: /* private enums */ enum ELinkStatus { LS_ON, diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index e9175e2390..9cad5b8586 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -7713,5 +7713,14 @@ Disabling future updates for this file. [FNAME] could not be opened or decoded for [NRETRIES] attempts, and is now considered broken. Disabling future updates for this file. </notification> + + <notification + icon="alertmodal.tga" + name="LocalBitmapsVerifyFail" + persist="true" + type="notify"> +Attempted to add an invalid or unreadable image file [FNAME] which could not be opened or decoded. +Attempt cancelled. + </notification> </notifications> |