summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/llimage/llimage.cpp3
-rw-r--r--indra/newview/lltexlayer.cpp5
-rw-r--r--indra/newview/lltexturecache.cpp8
-rw-r--r--indra/newview/lltoolpie.cpp27
-rw-r--r--indra/newview/skins/default/xui/en/strings.xml4
5 files changed, 38 insertions, 9 deletions
diff --git a/indra/llimage/llimage.cpp b/indra/llimage/llimage.cpp
index 5649b4cab7..7d0de18c7c 100644
--- a/indra/llimage/llimage.cpp
+++ b/indra/llimage/llimage.cpp
@@ -157,8 +157,9 @@ U8* LLImageBase::allocateData(S32 size)
llerrs << llformat("LLImageBase::allocateData called with bad dimensions: %dx%dx%d",mWidth,mHeight,mComponents) << llendl;
}
}
- else if (size <= 0 || (size > 4096*4096*16 && sSizeOverride == FALSE))
+ if (size < 1 || (size > 4096*4096*16 && sSizeOverride == FALSE))
{
+ llinfos << "width: " << mWidth << " height: " << mHeight << " components: " << mComponents << llendl ;
llerrs << "LLImageBase::allocateData: bad size: " << size << llendl;
}
diff --git a/indra/newview/lltexlayer.cpp b/indra/newview/lltexlayer.cpp
index 6ed95f2cbf..386b636367 100644
--- a/indra/newview/lltexlayer.cpp
+++ b/indra/newview/lltexlayer.cpp
@@ -1883,6 +1883,11 @@ LLTexLayer* LLTexLayerTemplate::getLayer(U32 i)
/*virtual*/ BOOL LLTexLayerTemplate::render(S32 x, S32 y, S32 width, S32 height)
{
+ if(!mInfo)
+ {
+ return FALSE ;
+ }
+
BOOL success = TRUE;
updateWearableCache();
for (wearable_cache_t::const_iterator iter = mWearableCache.begin(); iter!= mWearableCache.end(); iter++)
diff --git a/indra/newview/lltexturecache.cpp b/indra/newview/lltexturecache.cpp
index 4649b9cbef..49770030c6 100644
--- a/indra/newview/lltexturecache.cpp
+++ b/indra/newview/lltexturecache.cpp
@@ -1140,6 +1140,10 @@ void LLTextureCache::writeEntryAndClose(S32 idx, Entry& entry)
{
mTexturesSizeMap[entry.mID] = entry.mBodySize;
}
+ else if(mTexturesSizeMap.find(entry.mID) != mTexturesSizeMap.end() && mTexturesSizeMap[entry.mID] > 0)
+ {
+ llerrs << "mTexturesSizeMap / mHeaderIDMap corrupted." << llendl ;
+ }
// llinfos << "Updating TE: " << idx << ": " << id << " Size: " << entry.mBodySize << " Time: " << entry.mTime << llendl;
mHeaderEntriesMaxWriteIdx = llmax(mHeaderEntriesMaxWriteIdx, idx);
mUpdatedEntryMap[idx] = entry ;
@@ -1450,6 +1454,10 @@ void LLTextureCache::purgeTextures(bool validate)
time_idx_set.insert(std::make_pair(entries[idx].mTime, idx));
// llinfos << "TIME: " << entries[idx].mTime << " TEX: " << entries[idx].mID << " IDX: " << idx << " Size: " << entries[idx].mImageSize << llendl;
}
+ else
+ {
+ llerrs << "mTexturesSizeMap / mHeaderIDMap corrupted." << llendl ;
+ }
}
}
diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp
index fb78b6a415..2f4a69a53c 100644
--- a/indra/newview/lltoolpie.cpp
+++ b/indra/newview/lltoolpie.cpp
@@ -901,6 +901,16 @@ BOOL LLToolPie::handleTooltipObject( LLViewerObject* hover_object, std::string l
|| !existing_inspector->getVisible()
|| existing_inspector->getKey()["object_id"].asUUID() != hover_object->getID()))
{
+
+ // Add price to tooltip for items on sale
+ bool for_sale = for_sale_selection(nodep);
+ if(for_sale)
+ {
+ LLStringUtil::format_map_t args;
+ args["[PRICE]"] = llformat ("%d", nodep->mSaleInfo.getSalePrice());
+ tooltip_msg.append(LLTrans::getString("TooltipPrice", args) );
+ }
+
if (nodep->mName.empty())
{
tooltip_msg.append(LLTrans::getString("TooltipNoName"));
@@ -931,7 +941,7 @@ BOOL LLToolPie::handleTooltipObject( LLViewerObject* hover_object, std::string l
if (media_impl.notNull() && (media_impl->hasMedia()))
{
is_media_displaying = true;
- LLStringUtil::format_map_t args;
+ //LLStringUtil::format_map_t args;
media_plugin = media_impl->getMediaPlugin();
if(media_plugin)
@@ -954,14 +964,17 @@ BOOL LLToolPie::handleTooltipObject( LLViewerObject* hover_object, std::string l
}
}
}
-
- // Avoid showing tip over media that's displaying
+
+
+ // Avoid showing tip over media that's displaying unless it's for sale
// also check the primary node since sometimes it can have an action even though
// the root node doesn't
- bool needs_tip = !is_media_displaying &&
- (has_media ||
- needs_tooltip(nodep) ||
- needs_tooltip(LLSelectMgr::getInstance()->getPrimaryHoverNode()));
+
+ bool needs_tip = (!is_media_displaying ||
+ for_sale) &&
+ (has_media ||
+ needs_tooltip(nodep) ||
+ needs_tooltip(LLSelectMgr::getInstance()->getPrimaryHoverNode()));
if (show_all_object_tips || needs_tip)
{
diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
index 59c54f0cad..1eaf77c328 100644
--- a/indra/newview/skins/default/xui/en/strings.xml
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -76,7 +76,9 @@
<string name="TooltipObjectIMUrl">Click to view this object's description</string>
<string name="TooltipMapUrl">Click to view this location on a map</string>
<string name="TooltipSLAPP">Click to run the secondlife:// command</string>
- <string name="CurrentURL" value=" CurrentURL: [CurrentURL]" />
+ <string name="CurrentURL" value=" CurrentURL: [CurrentURL]" />
+ <string name="TooltipPrice" value=" L$[PRICE]-" />
+
<!-- text for SLURL labels -->
<string name="SLurlLabelTeleport">Teleport to</string>