Anonymous avatar Anonymous committed cb8d318 Merge

Comments (0)

Files changed (8)

doc/contributions.txt

 Satomi Ahn
 	STORM-501
 	STORM-229
+	VWR-24502
 Scrim Pinion
 Scrippy Scofield
 	VWR-3748

indra/llcommon/llsdserialize.cpp

 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);

indra/llcommon/llsdserialize_xml.cpp

 		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;
 		
 		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;
 		

indra/newview/llfasttimerview.cpp

 				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],

indra/newview/llfolderview.cpp

 		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)
 									 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)

indra/newview/lltooldraganddrop.cpp

 {
 	if (!mToolTipMsg.empty())
 	{
+		LLToolTipMgr::instance().unblockToolTips();
 		LLToolTipMgr::instance().show(LLToolTip::Params()
 			.message(mToolTipMsg)
 			.delay_time(gSavedSettings.getF32( "DragAndDropToolTipDelay" )));

indra/newview/skins/default/xui/en/panel_status_bar.xml

      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"
      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
      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)"

indra/newview/skins/minimal/xui/en/panel_status_bar.xml

      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."
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.