Automated merge with http://hg.secondlife.com/viewer-development
commit
e15c97404f
|
|
@ -939,6 +939,7 @@ Satanello Miami
|
|||
Satomi Ahn
|
||||
STORM-501
|
||||
STORM-229
|
||||
VWR-24502
|
||||
Scrim Pinion
|
||||
Scrippy Scofield
|
||||
VWR-3748
|
||||
|
|
|
|||
|
|
@ -313,10 +313,8 @@ LLSDParser::LLSDParser()
|
|||
LLSDParser::~LLSDParser()
|
||||
{ }
|
||||
|
||||
LLFastTimer::DeclareTimer FTM_SD_PARSE("LLSD Parsing");
|
||||
S32 LLSDParser::parse(std::istream& istr, LLSD& data, S32 max_bytes)
|
||||
{
|
||||
LLFastTimer _(FTM_SD_PARSE);
|
||||
mCheckLimits = (LLSDSerialize::SIZE_UNLIMITED == max_bytes) ? false : true;
|
||||
mMaxBytesLeft = max_bytes;
|
||||
return doParse(istr, data);
|
||||
|
|
|
|||
|
|
@ -720,6 +720,7 @@ void LLSDXMLParser::Impl::endElementHandler(const XML_Char* name)
|
|||
case ELEMENT_INTEGER:
|
||||
{
|
||||
S32 i;
|
||||
// sscanf okay here with different locales - ints don't change for different locale settings like floats do.
|
||||
if ( sscanf(mCurrentContent.c_str(), "%d", &i ) == 1 )
|
||||
{ // See if sscanf works - it's faster
|
||||
value = i;
|
||||
|
|
@ -733,15 +734,19 @@ void LLSDXMLParser::Impl::endElementHandler(const XML_Char* name)
|
|||
|
||||
case ELEMENT_REAL:
|
||||
{
|
||||
F64 r;
|
||||
if ( sscanf(mCurrentContent.c_str(), "%lf", &r ) == 1 )
|
||||
{ // See if sscanf works - it's faster
|
||||
value = r;
|
||||
}
|
||||
else
|
||||
{
|
||||
value = LLSD(mCurrentContent).asReal();
|
||||
}
|
||||
value = LLSD(mCurrentContent).asReal();
|
||||
// removed since this breaks when locale has decimal separator that isn't '.'
|
||||
// investigated changing local to something compatible each time but deemed higher
|
||||
// risk that just using LLSD.asReal() each time.
|
||||
//F64 r;
|
||||
//if ( sscanf(mCurrentContent.c_str(), "%lf", &r ) == 1 )
|
||||
//{ // See if sscanf works - it's faster
|
||||
// value = r;
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// value = LLSD(mCurrentContent).asReal();
|
||||
//}
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
|
|||
|
|
@ -252,7 +252,15 @@ BOOL LLFastTimerView::handleHover(S32 x, S32 y, MASK mask)
|
|||
x < mBarEnd[mHoverBarIndex][i])
|
||||
{
|
||||
mHoverID = (*it);
|
||||
mHoverTimer = (*it);
|
||||
if (mHoverTimer != *it)
|
||||
{
|
||||
// could be that existing tooltip is for a parent and is thus
|
||||
// covering region for this new timer, go ahead and unblock
|
||||
// so we can create a new tooltip
|
||||
LLToolTipMgr::instance().unblockToolTips();
|
||||
mHoverTimer = (*it);
|
||||
}
|
||||
|
||||
mToolTipRect.set(mBarStart[mHoverBarIndex][i],
|
||||
mBarRect.mBottom + llround(((F32)(MAX_VISIBLE_HISTORY - mHoverBarIndex + 1)) * ((F32)mBarRect.getHeight() / ((F32)MAX_VISIBLE_HISTORY + 2.f))),
|
||||
mBarEnd[mHoverBarIndex][i],
|
||||
|
|
|
|||
|
|
@ -527,6 +527,7 @@ void LLFolderView::reshape(S32 width, S32 height, BOOL called_from_parent)
|
|||
scroll_rect = mScrollContainer->getContentWindowRect();
|
||||
}
|
||||
width = llmax(mMinWidth, scroll_rect.getWidth());
|
||||
height = llmax(height, scroll_rect.getHeight());
|
||||
|
||||
// restrict width with scroll container's width
|
||||
if (mUseEllipses)
|
||||
|
|
@ -1905,21 +1906,15 @@ BOOL LLFolderView::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
|
|||
std::string& tooltip_msg)
|
||||
{
|
||||
mDragAndDropThisFrame = TRUE;
|
||||
// have children handle it first
|
||||
BOOL handled = LLView::handleDragAndDrop(x, y, mask, drop, cargo_type, cargo_data,
|
||||
accept, tooltip_msg);
|
||||
|
||||
// When there are no visible children drag and drop is handled
|
||||
// when drop is not handled by child, it should be handled
|
||||
// by the folder which is the hierarchy root.
|
||||
if (!handled && !hasVisibleChildren())
|
||||
if (!handled && getListener()->getUUID().notNull())
|
||||
{
|
||||
if (mFolders.empty())
|
||||
{
|
||||
handled = handleDragAndDropFromChild(mask,drop,cargo_type,cargo_data,accept,tooltip_msg);
|
||||
}
|
||||
else
|
||||
{
|
||||
handled = mFolders.front()->handleDragAndDropFromChild(mask,drop,cargo_type,cargo_data,accept,tooltip_msg);
|
||||
}
|
||||
LLFolderViewFolder::handleDragAndDrop(x, y, mask, drop, cargo_type, cargo_data, accept, tooltip_msg);
|
||||
}
|
||||
|
||||
if (handled)
|
||||
|
|
|
|||
|
|
@ -613,6 +613,7 @@ BOOL LLToolDragAndDrop::handleToolTip(S32 x, S32 y, MASK mask)
|
|||
{
|
||||
if (!mToolTipMsg.empty())
|
||||
{
|
||||
LLToolTipMgr::instance().unblockToolTips();
|
||||
LLToolTipMgr::instance().show(LLToolTip::Params()
|
||||
.message(mToolTipMsg)
|
||||
.delay_time(gSavedSettings.getF32( "DragAndDropToolTipDelay" )));
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@
|
|||
follows="right|top"
|
||||
image_color="0 0 0 0"
|
||||
hover_glow_amount="0"
|
||||
left_pad="2"
|
||||
left_pad="5"
|
||||
top="0"
|
||||
width="55"
|
||||
height="18"
|
||||
|
|
@ -94,14 +94,14 @@
|
|||
font="SansSerifSmall"
|
||||
text_readonly_color="TimeTextColor"
|
||||
follows="right|top"
|
||||
halign="right"
|
||||
halign="center"
|
||||
height="16"
|
||||
top="5"
|
||||
layout="topleft"
|
||||
left_pad="0"
|
||||
left_pad="5"
|
||||
name="TimeText"
|
||||
tool_tip="Current time (Pacific)"
|
||||
width="70">
|
||||
width="90">
|
||||
24:00 AM PST
|
||||
</text>
|
||||
<button
|
||||
|
|
@ -112,7 +112,7 @@
|
|||
image_pressed="Pause_Press"
|
||||
image_pressed_selected="Play_Press"
|
||||
is_toggle="true"
|
||||
left_pad="15"
|
||||
left_pad="10"
|
||||
top="1"
|
||||
name="media_toggle_btn"
|
||||
tool_tip="Start/Stop All Media (Music, Video, Web pages)"
|
||||
|
|
|
|||
|
|
@ -37,9 +37,9 @@
|
|||
follows="right|top"
|
||||
image_color="0 0 0 0"
|
||||
hover_glow_amount="0"
|
||||
left="2"
|
||||
left="5"
|
||||
top="7"
|
||||
width="50"
|
||||
width="55"
|
||||
height="18"
|
||||
label="Mode ▼"
|
||||
tool_tip="Select your mode. Choose Basic for fast, easy exploration and chat. Choose Advanced to access more features."
|
||||
|
|
|
|||
Loading…
Reference in New Issue