diff options
181 files changed, 744 insertions, 399 deletions
| diff --git a/autobuild.xml b/autobuild.xml index 9a68a70470..49031b9f17 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1206,9 +1206,9 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>1b92a69f5eba7cd8b017180659076db5</string> +              <string>7108c2443dbcf4c032305814ce65ebb7</string>                <key>url</key> -              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/roxie_3p-llqtwebkit/rev/242182/arch/Darwin/installer/llqtwebkit-4.7.1-darwin-20111003.tar.bz2</string> +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/244065/arch/Darwin/installer/llqtwebkit-4.7.1-darwin-20111028.tar.bz2</string>              </map>              <key>name</key>              <string>darwin</string> @@ -1230,9 +1230,9 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>1e7f24b69b0fc751c7e86efe7c621882</string> +              <string>24048a31d7b852774dc3117acbd4a86a</string>                <key>url</key> -              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/roxie_3p-llqtwebkit/rev/242182/arch/CYGWIN/installer/llqtwebkit-4.7.1-windows-20111003.tar.bz2</string> +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-llqtwebkit/rev/244065/arch/CYGWIN/installer/llqtwebkit-4.7.1-windows-20111028.tar.bz2</string>              </map>              <key>name</key>              <string>windows</string> diff --git a/indra/llplugin/llpluginclassmedia.cpp b/indra/llplugin/llpluginclassmedia.cpp index c53857fcee..dbd96673a1 100644 --- a/indra/llplugin/llpluginclassmedia.cpp +++ b/indra/llplugin/llpluginclassmedia.cpp @@ -1239,6 +1239,14 @@ void LLPluginClassMedia::focus(bool focused)  	sendMessage(message);  } +void LLPluginClassMedia::set_page_zoom_factor( double factor ) +{ +	LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "set_page_zoom_factor"); + +	message.setValueReal("factor", factor); +	sendMessage(message); +} +  void LLPluginClassMedia::clear_cache()  {  	LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA_BROWSER, "clear_cache"); diff --git a/indra/llplugin/llpluginclassmedia.h b/indra/llplugin/llpluginclassmedia.h index 1f548f8cc0..d95fa40091 100644 --- a/indra/llplugin/llpluginclassmedia.h +++ b/indra/llplugin/llpluginclassmedia.h @@ -202,6 +202,7 @@ public:  	bool pluginSupportsMediaBrowser(void);  	void focus(bool focused); +	void set_page_zoom_factor( double factor );  	void clear_cache();  	void clear_cookies();  	void set_cookies(const std::string &cookies); diff --git a/indra/llui/lldockablefloater.cpp b/indra/llui/lldockablefloater.cpp index 0fcd937361..3396213f1c 100644 --- a/indra/llui/lldockablefloater.cpp +++ b/indra/llui/lldockablefloater.cpp @@ -82,7 +82,7 @@ BOOL LLDockableFloater::postBuild()  		mForceDocking = true;  	} -	mDockTongue = LLUI::getUIImage("windows/Flyout_Pointer.png"); +	mDockTongue = LLUI::getUIImage("Flyout_Pointer");  	LLFloater::setDocked(true);  	return LLView::postBuild();  } @@ -244,13 +244,13 @@ const LLUIImagePtr& LLDockableFloater::getDockTongue(LLDockControl::DocAt dock_s  	switch(dock_side)  	{  	case LLDockControl::LEFT: -		mDockTongue = LLUI::getUIImage("windows/Flyout_Left.png"); +		mDockTongue = LLUI::getUIImage("Flyout_Left");  		break;  	case LLDockControl::RIGHT: -		mDockTongue = LLUI::getUIImage("windows/Flyout_Right.png"); +		mDockTongue = LLUI::getUIImage("Flyout_Right");  		break;  	default: -		mDockTongue = LLUI::getUIImage("windows/Flyout_Pointer.png"); +		mDockTongue = LLUI::getUIImage("Flyout_Pointer");  		break;  	} diff --git a/indra/llui/llmenugl.cpp b/indra/llui/llmenugl.cpp index 3ef8d8ff35..cb237fca7c 100644 --- a/indra/llui/llmenugl.cpp +++ b/indra/llui/llmenugl.cpp @@ -1686,7 +1686,8 @@ LLMenuGL::LLMenuGL(const LLMenuGL::Params& p)  	mSpilloverMenu(NULL),  	mJumpKey(p.jump_key),  	mCreateJumpKeys(p.create_jump_keys), -	mNeedsArrange(FALSE),  +	mNeedsArrange(FALSE), +	mResetScrollPositionOnShow(true),  	mShortcutPad(p.shortcut_pad)  {  	typedef boost::tokenizer<boost::char_separator<char> > tokenizer; @@ -3043,7 +3044,7 @@ void LLMenuGL::showPopup(LLView* spawning_view, LLMenuGL* menu, S32 x, S32 y)  	S32 mouse_x, mouse_y;  	// Resetting scrolling position -	if (menu->isScrollable()) +	if (menu->isScrollable() && menu->isScrollPositionOnShowReset())  	{  		menu->mFirstVisibleItem = NULL;  	} diff --git a/indra/llui/llmenugl.h b/indra/llui/llmenugl.h index 77db588390..bdae899933 100644 --- a/indra/llui/llmenugl.h +++ b/indra/llui/llmenugl.h @@ -516,6 +516,9 @@ public:  	static class LLMenuHolderGL* sMenuContainer; +	void resetScrollPositionOnShow(bool reset_scroll_pos) { mResetScrollPositionOnShow = reset_scroll_pos; } +	bool isScrollPositionOnShowReset() { return mResetScrollPositionOnShow; } +  protected:  	void createSpilloverBranch();  	void cleanupSpilloverBranch(); @@ -565,6 +568,7 @@ private:  	KEY				mJumpKey;  	BOOL			mCreateJumpKeys;  	S32				mShortcutPad; +	bool			mResetScrollPositionOnShow;  }; // end class LLMenuGL diff --git a/indra/llui/lltoolbar.cpp b/indra/llui/lltoolbar.cpp index 287e3e2b41..e7642ae190 100644 --- a/indra/llui/lltoolbar.cpp +++ b/indra/llui/lltoolbar.cpp @@ -109,6 +109,7 @@ LLToolBar::LLToolBar(const LLToolBar::Params& p)  	mPadBetween(p.pad_between),  	mMinGirth(p.min_girth),  	mPopupMenuHandle(), +	mRightMouseTargetButton(NULL),  	mStartDragItemCallback(NULL),  	mHandleDragItemCallback(NULL),  	mHandleDropCallback(NULL), @@ -139,6 +140,7 @@ void LLToolBar::createContextMenu()  		LLUICtrl::CommitCallbackRegistry::ScopedRegistrar commit_reg;  		commit_reg.add("Toolbars.EnableSetting", boost::bind(&LLToolBar::onSettingEnable, this, _2)); +		commit_reg.add("Toolbars.RemoveSelectedCommand", boost::bind(&LLToolBar::onRemoveSelectedCommand, this));  		LLUICtrl::EnableCallbackRegistry::ScopedRegistrar enable_reg;  		enable_reg.add("Toolbars.CheckSetting", boost::bind(&LLToolBar::isSettingChecked, this, _2)); @@ -397,6 +399,20 @@ BOOL LLToolBar::handleRightMouseDown(S32 x, S32 y, MASK mask)  	if (handle_it_here)  	{ +		// Determine which button the mouse was over during the click in case the context menu action +		// is intended to affect the button. +		BOOST_FOREACH(LLToolBarButton* button, mButtons) +		{ +			LLRect button_rect; +			button->localRectToOtherView(button->getLocalRect(), &button_rect, this); + +			if (button_rect.pointInRect(x, y)) +			{ +				mRightMouseTargetButton = button; +				break; +			} +		} +  		createContextMenu();  		LLContextMenu * menu = (LLContextMenu *) mPopupMenuHandle.get(); @@ -446,6 +462,18 @@ void LLToolBar::onSettingEnable(const LLSD& userdata)  	}  } +void LLToolBar::onRemoveSelectedCommand() +{ +	llassert(!mReadOnly); + +	if (mRightMouseTargetButton) +	{ +		removeCommand(mRightMouseTargetButton->getCommandId()); + +		mRightMouseTargetButton = NULL; +	} +} +  void LLToolBar::setButtonType(LLToolBarEnums::ButtonType button_type)  {  	bool regenerate_buttons = (mButtonType != button_type); @@ -524,11 +552,11 @@ int LLToolBar::getRankFromPosition(S32 x, S32 y)  			S32 mid_point = (button_rect.mRight + button_rect.mLeft) / 2;  			if (button_panel_x < mid_point)  			{ -		mDragx = button_rect.mLeft - mPadLeft; -		mDragy = button_rect.mTop + mPadTop; -	} -	else -	{ +				mDragx = button_rect.mLeft - mPadLeft; +				mDragy = button_rect.mTop + mPadTop; +			} +			else +			{  				rank++;  				mDragx = button_rect.mRight + mPadRight - 1;  				mDragy = button_rect.mTop + mPadTop; @@ -555,12 +583,12 @@ int LLToolBar::getRankFromPosition(S32 x, S32 y)  	{  		// We hit passed the end of the list so put the insertion point at the end  		if (orientation == LLLayoutStack::HORIZONTAL) -	{ +		{  			mDragx = button_rect.mRight + mPadRight;  			mDragy = button_rect.mTop + mPadTop; -	} -	else -	{ +		} +		else +		{  			mDragx = button_rect.mLeft - mPadLeft;  			mDragy = button_rect.mBottom - mPadBottom;  		} @@ -836,6 +864,7 @@ void LLToolBar::createButtons()  	}  	mButtons.clear();  	mButtonMap.clear(); +	mRightMouseTargetButton = NULL;  	BOOST_FOREACH(LLCommandId& command_id, mButtonCommands)  	{ diff --git a/indra/llui/lltoolbar.h b/indra/llui/lltoolbar.h index f10f39adc3..51fe23ddd1 100644 --- a/indra/llui/lltoolbar.h +++ b/indra/llui/lltoolbar.h @@ -63,9 +63,11 @@ public:  	BOOL handleMouseDown(S32 x, S32 y, MASK mask);  	BOOL handleHover(S32 x, S32 y, MASK mask); +  	void reshape(S32 width, S32 height, BOOL called_from_parent = true);  	void setEnabled(BOOL enabled);  	void setCommandId(const LLCommandId& id) { mId = id; } +	LLCommandId getCommandId() { return mId; }  	void setStartDragCallback(tool_startdrag_callback_t cb)   { mStartDragItemCallback  = cb; }  	void setHandleDragCallback(tool_handledrag_callback_t cb) { mHandleDragItemCallback = cb; } @@ -164,7 +166,8 @@ public:  												pad_bottom,  												pad_between,  												min_girth; -		// get rid of this + +		// default command set  		Multiple<LLCommandId::Params>			commands;  		Optional<LLPanel::Params>				button_panel; @@ -175,8 +178,6 @@ public:  	// virtuals  	void draw();  	void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE); -	int  getRankFromPosition(S32 x, S32 y);	 -	int  getRankFromPosition(const LLCommandId& id);	  	BOOL handleRightMouseDown(S32 x, S32 y, MASK mask);  	virtual BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,  								   EDragAndDropType cargo_type, @@ -185,15 +186,14 @@ public:  								   std::string& tooltip_msg);  	static const int RANK_NONE = -1; -	  	bool addCommand(const LLCommandId& commandId, int rank = RANK_NONE);  	int  removeCommand(const LLCommandId& commandId);		// Returns the rank the removed command was at, RANK_NONE if not found -	bool hasCommand(const LLCommandId& commandId) const; -	bool enableCommand(const LLCommandId& commandId, bool enabled); -	bool stopCommandInProgress(const LLCommandId& commandId); -	bool flashCommand(const LLCommandId& commandId, bool flash); +	bool hasCommand(const LLCommandId& commandId) const;	// is this command bound to a button in this toolbar +	bool enableCommand(const LLCommandId& commandId, bool enabled);	// enable/disable button bound to the specified command, if it exists in this toolbar +	bool stopCommandInProgress(const LLCommandId& commandId);	// stop command if it is currently active +	bool flashCommand(const LLCommandId& commandId, bool flash); // flash button associated with given command, if in this toolbar -	void setStartDragCallback(tool_startdrag_callback_t cb)   { mStartDragItemCallback  = cb; } +	void setStartDragCallback(tool_startdrag_callback_t cb)   { mStartDragItemCallback  = cb; } // connects drag and drop behavior to external logic  	void setHandleDragCallback(tool_handledrag_callback_t cb) { mHandleDragItemCallback = cb; }  	void setHandleDropCallback(tool_handledrop_callback_t cb) { mHandleDropCallback     = cb; }  	bool isReadOnly() const { return mReadOnly; } @@ -206,69 +206,76 @@ public:  	boost::signals2::connection setButtonLeaveCallback(const button_signal_t::slot_type& cb);  	boost::signals2::connection setButtonRemoveCallback(const button_signal_t::slot_type& cb); -	void setTooltipButtonSuffix(const std::string& suffix) { mButtonTooltipSuffix = suffix; } +	// append the specified string to end of tooltip +	void setTooltipButtonSuffix(const std::string& suffix) { mButtonTooltipSuffix = suffix; }   	LLToolBarEnums::SideType getSideType() const { return mSideType; }  	bool hasButtons() const { return !mButtons.empty(); }  	bool isModified() const { return mModified; } -protected: -	friend class LLUICtrlFactory; -	LLToolBar(const Params&); -	~LLToolBar(); - -	void initFromParams(const Params&); -	tool_startdrag_callback_t		mStartDragItemCallback; -	tool_handledrag_callback_t		mHandleDragItemCallback; -	tool_handledrop_callback_t		mHandleDropCallback; -	bool							mDragAndDropTarget; -	int								mDragRank; -	S32								mDragx, -									mDragy, -									mDragGirth; +	int  getRankFromPosition(S32 x, S32 y);	 +	int  getRankFromPosition(const LLCommandId& id);	 -public:  	// Methods used in loading and saving toolbar settings  	void setButtonType(LLToolBarEnums::ButtonType button_type);  	LLToolBarEnums::ButtonType getButtonType() { return mButtonType; }  	command_id_list_t& getCommandsList() { return mButtonCommands; }  	void clearCommandsList(); -					    +  private: +	friend class LLUICtrlFactory; +	LLToolBar(const Params&); +	~LLToolBar(); + +	void initFromParams(const Params&);  	void createContextMenu();  	void updateLayoutAsNeeded();  	void createButtons();  	void resizeButtonsInRow(std::vector<LLToolBarButton*>& buttons_in_row, S32 max_row_girth);  	BOOL isSettingChecked(const LLSD& userdata);  	void onSettingEnable(const LLSD& userdata); +	void onRemoveSelectedCommand(); +private: +	// static layout state  	const bool						mReadOnly; +	const LLToolBarEnums::SideType	mSideType; +	const bool						mWrap; +	const S32						mPadLeft, +									mPadRight, +									mPadTop, +									mPadBottom, +									mPadBetween, +									mMinGirth; + +	// drag and drop state +	tool_startdrag_callback_t		mStartDragItemCallback; +	tool_handledrag_callback_t		mHandleDragItemCallback; +	tool_handledrop_callback_t		mHandleDropCallback; +	bool							mDragAndDropTarget; +	int								mDragRank; +	S32								mDragx, +									mDragy, +									mDragGirth;  	typedef std::list<LLToolBarButton*> toolbar_button_list; +	typedef std::map<LLUUID, LLToolBarButton*> command_id_map;  	toolbar_button_list				mButtons;  	command_id_list_t				mButtonCommands; -	typedef std::map<LLUUID, LLToolBarButton*> command_id_map;  	command_id_map					mButtonMap;  	LLToolBarEnums::ButtonType		mButtonType; +	LLToolBarButton::Params			mButtonParams[LLToolBarEnums::BTNTYPE_COUNT]; + +	// related widgets  	LLLayoutStack*					mCenteringStack; -	LLLayoutStack*					mWrapStack;  	LLPanel*						mButtonPanel; -	LLToolBarEnums::SideType		mSideType; -	 -	bool							mWrap; -	bool							mNeedsLayout; -	bool							mModified; -	S32								mPadLeft, -									mPadRight, -									mPadTop, -									mPadBottom, -									mPadBetween, -									mMinGirth; +	LLHandle<class LLContextMenu>	mPopupMenuHandle; -	LLToolBarButton::Params			mButtonParams[LLToolBarEnums::BTNTYPE_COUNT]; +	LLToolBarButton*				mRightMouseTargetButton; -	LLHandle<class LLContextMenu>	mPopupMenuHandle; +	bool							mNeedsLayout; +	bool							mModified;  	button_signal_t*				mButtonAddSignal;  	button_signal_t*				mButtonEnterSignal; diff --git a/indra/llwindow/llwindowmacosx.cpp b/indra/llwindow/llwindowmacosx.cpp index 4dd11541b9..8057506736 100644 --- a/indra/llwindow/llwindowmacosx.cpp +++ b/indra/llwindow/llwindowmacosx.cpp @@ -2545,8 +2545,8 @@ OSStatus LLWindowMacOSX::eventHandler (EventHandlerCallRef myHandler, EventRef e  			{  				// This is where we would constrain move/resize to a particular screen -				const S32 MIN_WIDTH  = 320; -				const S32 MIN_HEIGHT = 240; +				const S32 MIN_WIDTH  = 1024; +				const S32 MIN_HEIGHT = 768;  				Rect currentBounds;  				Rect previousBounds; diff --git a/indra/llwindow/llwindowwin32.cpp b/indra/llwindow/llwindowwin32.cpp index db5e55019b..a84bd5fb08 100644 --- a/indra/llwindow/llwindowwin32.cpp +++ b/indra/llwindow/llwindowwin32.cpp @@ -2360,6 +2360,14 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_  				return 0;  			} +		case WM_GETMINMAXINFO: +			{ +				LPMINMAXINFO min_max = (LPMINMAXINFO)l_param; +				min_max->ptMinTrackSize.x = 1024; +				min_max->ptMinTrackSize.y = 768; +				return 0; +			} +  		case WM_SIZE:  			{  				window_imp->mCallbacks->handlePingWatchdog(window_imp, "Main:WM_SIZE"); diff --git a/indra/media_plugins/webkit/media_plugin_webkit.cpp b/indra/media_plugins/webkit/media_plugin_webkit.cpp index 0f74772e42..13d51099a8 100644 --- a/indra/media_plugins/webkit/media_plugin_webkit.cpp +++ b/indra/media_plugins/webkit/media_plugin_webkit.cpp @@ -25,12 +25,11 @@   * $/LicenseInfo$   * @endcond   */ -  #include "llqtwebkit.h" -  #include "linden_common.h"  #include "indra_constants.h" // for indra keyboard codes +#include "lltimer.h"  #include "llgl.h"  #include "llplugininstance.h" @@ -117,15 +116,19 @@ private:  	F32 mBackgroundG;  	F32 mBackgroundB;  	std::string mTarget; -	 +	LLTimer mElapsedTime; +		  	VolumeCatcher mVolumeCatcher;  	void postDebugMessage( const std::string& msg )  	{  		if ( mEnableMediaPluginDebugging )  		{ +			std::stringstream str; +			str << "@Media Msg> " << "[" << (double)mElapsedTime.getElapsedTimeF32()  << "] -- " << msg; +  			LLPluginMessage debug_message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "debug_message"); -			debug_message.setValue("message_text", "Media> " + msg); +			debug_message.setValue("message_text", str.str());  			debug_message.setValue("message_level", "info");  			sendMessage(debug_message);  		} @@ -323,7 +326,11 @@ private:  		LLQtWebKit::getInstance()->enablePlugins( mPluginsEnabled );  		// turn on/off Javascript based on what host app tells us +#if LLQTWEBKIT_API_VERSION >= 11 +		LLQtWebKit::getInstance()->enableJavaScript( mJavascriptEnabled ); +#else  		LLQtWebKit::getInstance()->enableJavascript( mJavascriptEnabled ); +#endif  		std::stringstream str;  		str << "Cookies enabled = " << mCookiesEnabled << ", plugins enabled = " << mPluginsEnabled << ", Javascript enabled = " << mJavascriptEnabled; @@ -346,7 +353,7 @@ private:  		// append details to agent string  		LLQtWebKit::getInstance()->setBrowserAgentId( mUserAgent );  		postDebugMessage( "Updating user agent with " + mUserAgent ); -		 +  #if !LL_QTWEBKIT_USES_PIXMAPS  		// don't flip bitmap  		LLQtWebKit::getInstance()->flipWindow( mBrowserWindowId, true ); @@ -374,7 +381,17 @@ private:  		url << "%22%3E%3C/body%3E%3C/html%3E";  		//lldebugs << "data url is: " << url.str() << llendl; -					 + +		// loading overlay debug screen follows media debugging flag from client for now. +#if LLQTWEBKIT_API_VERSION >= 16 +		LLQtWebKit::getInstance()->enableLoadingOverlay(mBrowserWindowId, mEnableMediaPluginDebugging); +#else +		llwarns << "Ignoring enableLoadingOverlay() call (llqtwebkit version is too old)." << llendl; +#endif +		str.clear(); +		str << "Loading overlay enabled = " << mEnableMediaPluginDebugging << " for mBrowserWindowId = " << mBrowserWindowId; +		postDebugMessage( str.str() ); +  		LLQtWebKit::getInstance()->navigateTo( mBrowserWindowId, url.str() );  //		LLQtWebKit::getInstance()->navigateTo( mBrowserWindowId, "about:blank" ); @@ -583,6 +600,10 @@ private:  		// These could be passed through as well, but aren't really needed.  //		message.setValue("uri", event.getEventUri());  //		message.setValueBoolean("dead", (event.getIntValue() != 0)) + +		// debug spam +		postDebugMessage( "Sending cookie_set message from plugin: " + event.getStringValue() ); +  		sendMessage(message);  	} @@ -863,6 +884,8 @@ MediaPluginWebKit::MediaPluginWebKit(LLPluginInstance::sendMessageFunction host_  	mPluginsEnabled = true;		// default to on  	mEnableMediaPluginDebugging = false;  	mUserAgent = "LLPluginMedia Web Browser"; + +	mElapsedTime.reset();  }  MediaPluginWebKit::~MediaPluginWebKit() @@ -1210,7 +1233,6 @@ void MediaPluginWebKit::receiveMessage(const char *message_string)  			{  				mEnableMediaPluginDebugging = message_in.getValueBoolean( "enable" );  			} -  			else  			if(message_name == "js_enable_object")  			{ @@ -1298,6 +1320,15 @@ void MediaPluginWebKit::receiveMessage(const char *message_string)  					mFirstFocus = false;  				}  			} +			else if(message_name == "set_page_zoom_factor") +			{ +#if LLQTWEBKIT_API_VERSION >= 15 +				F32 factor = message_in.getValueReal("factor"); +				LLQtWebKit::getInstance()->setPageZoomFactor(factor); +#else +				llwarns << "Ignoring setPageZoomFactor message (llqtwebkit version is too old)." << llendl; +#endif +			}  			else if(message_name == "clear_cache")  			{  				LLQtWebKit::getInstance()->clearCache(); @@ -1324,6 +1355,9 @@ void MediaPluginWebKit::receiveMessage(const char *message_string)  			else if(message_name == "set_cookies")  			{  				LLQtWebKit::getInstance()->setCookies(message_in.getValue("cookies")); + +				// debug spam +				postDebugMessage( "Plugin setting cookie: " + message_in.getValue("cookies") );  			}  			else if(message_name == "proxy_setup")  			{ diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 55e28cd60e..9c055bdc5a 100755 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -2619,17 +2619,6 @@        <key>Value</key>        <integer>-1</integer>      </map> -    <key>DebugToolbarFUI</key> -    <map> -      <key>Comment</key> -      <string>Turn on the FUI Toolbars</string> -      <key>Persist</key> -      <integer>1</integer> -      <key>Type</key> -      <string>Boolean</string> -      <key>Value</key> -      <integer>1</integer> -    </map>      <key>DebugViews</key>      <map>        <key>Comment</key> diff --git a/indra/newview/app_settings/settings_per_account.xml b/indra/newview/app_settings/settings_per_account.xml index 6ed4480cb1..8cdd8ed838 100644 --- a/indra/newview/app_settings/settings_per_account.xml +++ b/indra/newview/app_settings/settings_per_account.xml @@ -36,7 +36,7 @@      <key>DisplayDestinationsOnInitialRun</key>          <map>          <key>Comment</key> -          <string>Display the destinations guide when a user first launches FUI.</string> +          <string>Display the destinations guide when a user first launches Second Life.</string>          <key>Persist</key>            <integer>1</integer>          <key>Type</key> diff --git a/indra/newview/llfavoritesbar.cpp b/indra/newview/llfavoritesbar.cpp index 6c9058caf1..4f2fd47488 100644 --- a/indra/newview/llfavoritesbar.cpp +++ b/indra/newview/llfavoritesbar.cpp @@ -599,7 +599,11 @@ void LLFavoritesBarCtrl::handleNewFavoriteDragAndDrop(LLInventoryItem *item, con  	if (tool_dad->getSource() == LLToolDragAndDrop::SOURCE_NOTECARD)  	{  		viewer_item->setType(LLAssetType::AT_LANDMARK); -		copy_inventory_from_notecard(tool_dad->getObjectID(), tool_dad->getSourceID(), viewer_item.get(), gInventoryCallbacks.registerCB(cb)); +		copy_inventory_from_notecard(favorites_id, +									 tool_dad->getObjectID(), +									 tool_dad->getSourceID(), +									 viewer_item.get(), +									 gInventoryCallbacks.registerCB(cb));  	}  	else  	{ @@ -1016,7 +1020,9 @@ void LLFavoritesBarCtrl::addOpenLandmarksMenuItem(LLToggleableMenu* menu)  	LLMenuItemCallGL::Params item_params;  	item_params.name("open_my_landmarks");  	item_params.label(translated ? label_transl: label_untrans); -	item_params.on_click.function(boost::bind(&LLFloaterSidePanelContainer::showPanel, "places", LLSD())); +	LLSD key; +	key["type"] = "open_landmark_tab"; +	item_params.on_click.function(boost::bind(&LLFloaterSidePanelContainer::showPanel, "places", key));  	LLMenuItemCallGL* menu_item = LLUICtrlFactory::create<LLMenuItemCallGL>(item_params);  	fitLabelWidth(menu_item); @@ -1197,7 +1203,9 @@ void LLFavoritesBarCtrl::doToSelected(const LLSD& userdata)  	LLToggleableMenu* menu = (LLToggleableMenu*) mOverflowMenuHandle.get();  	if (mRestoreOverflowMenu && menu && !menu->getVisible())  	{ +		menu->resetScrollPositionOnShow(false);  		showDropDownMenu(); +		menu->resetScrollPositionOnShow(true);  	}  } diff --git a/indra/newview/llfloatertoybox.cpp b/indra/newview/llfloatertoybox.cpp index f527937e8f..324afe661f 100644 --- a/indra/newview/llfloatertoybox.cpp +++ b/indra/newview/llfloatertoybox.cpp @@ -42,6 +42,7 @@ LLFloaterToybox::LLFloaterToybox(const LLSD& key)  	, mToolBar(NULL)  {  	mCommitCallbackRegistrar.add("Toybox.RestoreDefaults", boost::bind(&LLFloaterToybox::onBtnRestoreDefaults, this)); +	mCommitCallbackRegistrar.add("Toybox.ClearAll", boost::bind(&LLFloaterToybox::onBtnClearAll, this));  }  LLFloaterToybox::~LLFloaterToybox() @@ -121,15 +122,35 @@ static bool finish_restore_toybox(const LLSD& notification, const LLSD& response  	{  		LLToolBarView::loadDefaultToolbars();  	} +  	return false;  } + +static bool finish_clear_all_toybox(const LLSD& notification, const LLSD& response) +{ +	S32 option = LLNotificationsUtil::getSelectedOption(notification, response); + +	if (option == 0) +	{ +		LLToolBarView::clearAllToolbars(); +	} + +	return false; +} +  static LLNotificationFunctorRegistration finish_restore_toybox_reg("ConfirmRestoreToybox", finish_restore_toybox); +static LLNotificationFunctorRegistration finish_clear_all_toybox_reg("ConfirmClearAllToybox", finish_clear_all_toybox);  void LLFloaterToybox::onBtnRestoreDefaults()  {  	LLNotificationsUtil::add("ConfirmRestoreToybox");  } +void LLFloaterToybox::onBtnClearAll() +{ +	LLNotificationsUtil::add("ConfirmClearAllToybox"); +} +  BOOL LLFloaterToybox::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,  	EDragAndDropType cargo_type,  	void* cargo_data, diff --git a/indra/newview/llfloatertoybox.h b/indra/newview/llfloatertoybox.h index 6f0275b8fe..10aee0e6f5 100644 --- a/indra/newview/llfloatertoybox.h +++ b/indra/newview/llfloatertoybox.h @@ -50,6 +50,7 @@ public:  		std::string& tooltip_msg);  protected: +	void onBtnClearAll();  	void onBtnRestoreDefaults();  	void onToolBarButtonEnter(LLView* button); diff --git a/indra/newview/llfolderviewitem.h b/indra/newview/llfolderviewitem.h index 676eaf825d..a26515821d 100644 --- a/indra/newview/llfolderviewitem.h +++ b/indra/newview/llfolderviewitem.h @@ -556,6 +556,10 @@ public:  	folders_t::const_iterator getFoldersBegin() const { return mFolders.begin(); }  	folders_t::const_iterator getFoldersEnd() const { return mFolders.end(); }  	folders_t::size_type getFoldersCount() const { return mFolders.size(); } + +	items_t::const_iterator getItemsBegin() const { return mItems.begin(); } +	items_t::const_iterator getItemsEnd() const { return mItems.end(); } +	items_t::size_type getItemsCount() const { return mItems.size(); }  };  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 0e27bd81be..0c092e9a56 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -2027,7 +2027,7 @@ BOOL LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat,  #endif  				}  			} -			if (move_is_into_outbox && !move_is_from_outbox) +			else if (move_is_into_outbox && !move_is_from_outbox)  			{  				dropFolderToOutbox(inv_cat);  			} @@ -3544,10 +3544,12 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item,  		// because they must contain only links to wearable items.  		accept = !(move_is_into_current_outfit || move_is_into_outfit); -		if(drop) +		if(accept && drop)  		{ -			copy_inventory_from_notecard(LLToolDragAndDrop::getInstance()->getObjectID(), -										 LLToolDragAndDrop::getInstance()->getSourceID(), inv_item); +			copy_inventory_from_notecard(mUUID,  // Drop to the chosen destination folder +										 LLToolDragAndDrop::getInstance()->getObjectID(), +										 LLToolDragAndDrop::getInstance()->getSourceID(), +										 inv_item);  		}  	}  	else if(LLToolDragAndDrop::SOURCE_LIBRARY == source) diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp index fb02fe0ff7..dc25689fa3 100644 --- a/indra/newview/llinventorymodel.cpp +++ b/indra/newview/llinventorymodel.cpp @@ -2528,9 +2528,9 @@ void LLInventoryModel::processBulkUpdateInventory(LLMessageSystem* msg, void**)  	{  		LLPointer<LLViewerInventoryCategory> tfolder = new LLViewerInventoryCategory(gAgent.getID());  		tfolder->unpackMessage(msg, _PREHASH_FolderData, i); -		//llinfos << "unpaked folder '" << tfolder->getName() << "' (" -		//		<< tfolder->getUUID() << ") in " << tfolder->getParentUUID() -		//		<< llendl; +		llinfos << "unpacked folder '" << tfolder->getName() << "' (" +				<< tfolder->getUUID() << ") in " << tfolder->getParentUUID() +				<< llendl;  		if(tfolder->getUUID().notNull())  		{  			folders.push_back(tfolder); @@ -2570,8 +2570,8 @@ void LLInventoryModel::processBulkUpdateInventory(LLMessageSystem* msg, void**)  	{  		LLPointer<LLViewerInventoryItem> titem = new LLViewerInventoryItem;  		titem->unpackMessage(msg, _PREHASH_ItemData, i); -		//llinfos << "unpaked item '" << titem->getName() << "' in " -		//		<< titem->getParentUUID() << llendl; +		llinfos << "unpaked item '" << titem->getName() << "' in " +				<< titem->getParentUUID() << llendl;  		U32 callback_id;  		msg->getU32Fast(_PREHASH_ItemData, _PREHASH_CallbackID, callback_id);  		if(titem->getUUID().notNull()) diff --git a/indra/newview/llmediactrl.cpp b/indra/newview/llmediactrl.cpp index 1f1e49726d..58ba0219cc 100644 --- a/indra/newview/llmediactrl.cpp +++ b/indra/newview/llmediactrl.cpp @@ -68,7 +68,6 @@ static LLDefaultChildRegistry::Register<LLMediaCtrl> r("web_browser");  LLMediaCtrl::Params::Params()  :	start_url("start_url"),  	border_visible("border_visible", true), -	ignore_ui_scale("ignore_ui_scale", true),  	decouple_texture_size("decouple_texture_size", false),  	texture_width("texture_width", 1024),  	texture_height("texture_height", 1024), @@ -89,7 +88,6 @@ LLMediaCtrl::LLMediaCtrl( const Params& p) :  	mFrequentUpdates( true ),  	mForceUpdate( false ),  	mHomePageUrl( "" ), -	mIgnoreUIScale( true ),  	mAlwaysRefresh( false ),  	mMediaSource( 0 ),  	mTakeFocusOnClick( p.focus_on_click ), @@ -112,8 +110,6 @@ LLMediaCtrl::LLMediaCtrl( const Params& p) :  		setCaretColor( (unsigned int)color.mV[0], (unsigned int)color.mV[1], (unsigned int)color.mV[2] );  	} -	setIgnoreUIScale(p.ignore_ui_scale); -	  	setHomePageUrl(p.start_url, p.initial_mime_type);  	setBorderVisible(p.border_visible); @@ -124,10 +120,8 @@ LLMediaCtrl::LLMediaCtrl( const Params& p) :  	if(!getDecoupleTextureSize())  	{ -		S32 screen_width = mIgnoreUIScale ?  -			llround((F32)getRect().getWidth() * LLUI::sGLScaleFactor.mV[VX]) : getRect().getWidth(); -		S32 screen_height = mIgnoreUIScale ?  -			llround((F32)getRect().getHeight() * LLUI::sGLScaleFactor.mV[VY]) : getRect().getHeight(); +		S32 screen_width = llround((F32)getRect().getWidth() * LLUI::sGLScaleFactor.mV[VX]); +		S32 screen_height = llround((F32)getRect().getHeight() * LLUI::sGLScaleFactor.mV[VY]);  		setTextureSize(screen_width, screen_height);  	} @@ -471,8 +465,8 @@ void LLMediaCtrl::reshape( S32 width, S32 height, BOOL called_from_parent )  {  	if(!getDecoupleTextureSize())  	{ -		S32 screen_width = mIgnoreUIScale ? llround((F32)width * LLUI::sGLScaleFactor.mV[VX]) : width; -		S32 screen_height = mIgnoreUIScale ? llround((F32)height * LLUI::sGLScaleFactor.mV[VY]) : height; +		S32 screen_width = llround((F32)width * LLUI::sGLScaleFactor.mV[VX]); +		S32 screen_height = llround((F32)height * LLUI::sGLScaleFactor.mV[VY]);  		// when floater is minimized, these sizes are negative  		if ( screen_height > 0 && screen_width > 0 ) @@ -689,6 +683,8 @@ bool LLMediaCtrl::ensureMediaSourceExists()  			mMediaSource->addObserver( this );  			mMediaSource->setBackgroundColor( getBackgroundColor() );  			mMediaSource->setTrustedBrowser(mTrusted); +			mMediaSource->setPageZoomFactor( LLUI::sGLScaleFactor.mV[ VX ] ); +  			if(mClearCache)  			{  				mMediaSource->clearCache(); @@ -770,15 +766,7 @@ void LLMediaCtrl::draw()  	{  		gGL.pushUIMatrix();  		{ -			if (mIgnoreUIScale) -			{ -				gGL.loadUIIdentity(); -				// font system stores true screen origin, need to scale this by UI scale factor -				// to get render origin for this view (with unit scale) -				gGL.translateUI(floorf(LLFontGL::sCurOrigin.mX * LLUI::sGLScaleFactor.mV[VX]),  -							floorf(LLFontGL::sCurOrigin.mY * LLUI::sGLScaleFactor.mV[VY]),  -							LLFontGL::sCurOrigin.mZ); -			} +			mMediaSource->setPageZoomFactor( LLUI::sGLScaleFactor.mV[ VX ] );  			// scale texture to fit the space using texture coords  			gGL.getTexUnit(0)->bind(media_texture); @@ -826,14 +814,6 @@ void LLMediaCtrl::draw()  			x_offset = (r.getWidth() - width) / 2;  			y_offset = (r.getHeight() - height) / 2;		 -			if(mIgnoreUIScale) -			{ -				x_offset = llround((F32)x_offset * LLUI::sGLScaleFactor.mV[VX]); -				y_offset = llround((F32)y_offset * LLUI::sGLScaleFactor.mV[VY]); -				width = llround((F32)width * LLUI::sGLScaleFactor.mV[VX]); -				height = llround((F32)height * LLUI::sGLScaleFactor.mV[VY]); -			} -  			// draw the browser  			gGL.begin( LLRender::QUADS );  			if (! media_plugin->getTextureCoordsOpenGL()) @@ -900,14 +880,14 @@ void LLMediaCtrl::convertInputCoords(S32& x, S32& y)  		coords_opengl = mMediaSource->getMediaPlugin()->getTextureCoordsOpenGL();  	} -	x = mIgnoreUIScale ? llround((F32)x * LLUI::sGLScaleFactor.mV[VX]) : x; +	x = llround((F32)x * LLUI::sGLScaleFactor.mV[VX]);  	if ( ! coords_opengl )  	{ -		y = mIgnoreUIScale ? llround((F32)(y) * LLUI::sGLScaleFactor.mV[VY]) : y; +		y = llround((F32)(y) * LLUI::sGLScaleFactor.mV[VY]);  	}  	else  	{ -		y = mIgnoreUIScale ? llround((F32)(getRect().getHeight() - y) * LLUI::sGLScaleFactor.mV[VY]) : getRect().getHeight() - y; +		y = llround((F32)(getRect().getHeight() - y) * LLUI::sGLScaleFactor.mV[VY]);  	};  } diff --git a/indra/newview/llmediactrl.h b/indra/newview/llmediactrl.h index 3c0436e27a..7f2a5e1642 100644 --- a/indra/newview/llmediactrl.h +++ b/indra/newview/llmediactrl.h @@ -51,7 +51,6 @@ public:  		Optional<std::string>	start_url;  		Optional<bool>			border_visible, -								ignore_ui_scale,  								hide_loading,  								decouple_texture_size,  								trusted_content, @@ -125,9 +124,6 @@ public:  		bool getFrequentUpdates() { return mFrequentUpdates; };  		void setFrequentUpdates( bool frequentUpdatesIn ) {  mFrequentUpdates = frequentUpdatesIn; }; -		void setIgnoreUIScale(bool ignore) { mIgnoreUIScale = ignore; } -		bool getIgnoreUIScale() { return mIgnoreUIScale; } -  		void setAlwaysRefresh(bool refresh) { mAlwaysRefresh = refresh; }  		bool getAlwaysRefresh() { return mAlwaysRefresh; } @@ -181,28 +177,29 @@ public:  		const S32 mTextureDepthBytes;  		LLUUID mMediaTextureID;  		LLViewBorder* mBorder; -		bool mFrequentUpdates; -		bool mForceUpdate; -		bool mTrusted; -		std::string mHomePageUrl; -		std::string mHomePageMimeType; -		std::string mCurrentNavUrl; -		std::string mErrorPageURL; -		std::string mTarget; -		bool mIgnoreUIScale; -		bool mAlwaysRefresh; +		bool	mFrequentUpdates, +				mForceUpdate, +				mTrusted, +				mAlwaysRefresh, +				mTakeFocusOnClick, +				mStretchToFill, +				mMaintainAspectRatio, +				mHideLoading, +				mHidingInitialLoad, +				mClearCache, +				mHoverTextChanged, +				mDecoupleTextureSize; + +		std::string mHomePageUrl, +					mHomePageMimeType, +					mCurrentNavUrl, +					mErrorPageURL, +					mTarget;  		viewer_media_t mMediaSource; -		bool mTakeFocusOnClick; -		bool mStretchToFill; -		bool mMaintainAspectRatio; -		bool mHideLoading; -		bool mHidingInitialLoad; -		bool mDecoupleTextureSize; -		S32 mTextureWidth; -		S32 mTextureHeight; -		bool mClearCache; +		S32 mTextureWidth, +			mTextureHeight; +  		class LLWindowShade* mWindowShade; -		bool mHoverTextChanged;  		LLContextMenu* mContextMenu;  }; diff --git a/indra/newview/llnearbychat.cpp b/indra/newview/llnearbychat.cpp index 3418462192..a7303ad035 100644 --- a/indra/newview/llnearbychat.cpp +++ b/indra/newview/llnearbychat.cpp @@ -60,13 +60,9 @@ static const S32 RESIZE_BAR_THICKNESS = 3;  static LLRegisterPanelClassWrapper<LLNearbyChat> t_panel_nearby_chat("panel_nearby_chat"); -LLNearbyChat::LLNearbyChat()  -	: LLPanel() -	,mChatHistory(NULL) -{ -} - -LLNearbyChat::~LLNearbyChat() +LLNearbyChat::LLNearbyChat(const LLNearbyChat::Params& p)  +:	LLPanel(p), +	mChatHistory(NULL)  {  } @@ -178,15 +174,20 @@ bool	LLNearbyChat::onNearbyChatCheckContextMenuItem(const LLSD& userdata)  	return false;  } +void LLNearbyChat::removeScreenChat() +{ +	LLNotificationsUI::LLScreenChannelBase* chat_channel = LLNotificationsUI::LLChannelManager::getInstance()->findChannelByID(LLUUID(gSavedSettings.getString("NearByChatChannelUUID"))); +	if(chat_channel) +	{ +		chat_channel->removeToastsFromChannel(); +	} +} +  void	LLNearbyChat::setVisible(BOOL visible)  {  	if(visible)  	{ -		LLNotificationsUI::LLScreenChannelBase* chat_channel = LLNotificationsUI::LLChannelManager::getInstance()->findChannelByID(LLUUID(gSavedSettings.getString("NearByChatChannelUUID"))); -		if(chat_channel) -		{ -			chat_channel->removeToastsFromChannel(); -		} +		removeScreenChat();  	}  	LLPanel::setVisible(visible); diff --git a/indra/newview/llnearbychat.h b/indra/newview/llnearbychat.h index 5ef584c8ff..7c5975cbc5 100644 --- a/indra/newview/llnearbychat.h +++ b/indra/newview/llnearbychat.h @@ -37,8 +37,7 @@ class LLChatHistory;  class LLNearbyChat: public LLPanel  {  public: -	LLNearbyChat(); -	~LLNearbyChat(); +	LLNearbyChat(const Params& p = LLPanel::getDefaultParams());  	BOOL	postBuild			(); @@ -63,13 +62,14 @@ public:  	void loadHistory();  	static LLNearbyChat* getInstance(); +	void removeScreenChat();  private:  	void	getAllowedRect		(LLRect& rect);  	void	onNearbySpeakers	(); -	 +  private:  	LLHandle<LLView>	mPopupMenuHandle; diff --git a/indra/newview/llnearbychatbar.cpp b/indra/newview/llnearbychatbar.cpp index 4674c85324..114472ba56 100644 --- a/indra/newview/llnearbychatbar.cpp +++ b/indra/newview/llnearbychatbar.cpp @@ -47,6 +47,7 @@  #include "llviewerwindow.h"  #include "llrootview.h"  #include "llviewerchat.h" +#include "llnearbychat.h"  #include "llresizehandle.h" @@ -401,11 +402,13 @@ void LLNearbyChatBar::onToggleNearbyChatPanel()  void LLNearbyChatBar::setMinimized(BOOL b)  { -	if (b != LLFloater::isMinimized()) +	LLNearbyChat* nearby_chat = getChild<LLNearbyChat>("nearby_chat"); +	// when unminimizing with nearby chat visible, go ahead and kill off screen chats +	if (!b && nearby_chat->getVisible())  	{ -		LLFloater::setMinimized(b); -		getChildView("nearby_chat")->setVisible(!b); +		nearby_chat->removeScreenChat();  	} +		LLFloater::setMinimized(b);  }  void LLNearbyChatBar::onChatBoxCommit() diff --git a/indra/newview/llnotificationtiphandler.cpp b/indra/newview/llnotificationtiphandler.cpp index 2a08a29842..aa009a76fa 100644 --- a/indra/newview/llnotificationtiphandler.cpp +++ b/indra/newview/llnotificationtiphandler.cpp @@ -29,6 +29,7 @@  #include "llfloaterreg.h"  #include "llnearbychat.h" +#include "llnearbychatbar.h"  #include "llnotificationhandler.h"  #include "llnotifications.h"  #include "lltoastnotifypanel.h" @@ -93,7 +94,8 @@ bool LLTipHandler::processNotification(const LLSD& notify)  			// don't show toast if Nearby Chat is opened  			LLNearbyChat* nearby_chat = LLNearbyChat::getInstance(); -			if (nearby_chat->getVisible()) +			LLNearbyChatBar* nearby_chat_bar = LLNearbyChatBar::getInstance(); +			if (nearby_chat_bar->getVisible() && nearby_chat->getVisible())  			{  				return false;  			} diff --git a/indra/newview/llpanellandmarks.cpp b/indra/newview/llpanellandmarks.cpp index a65631b8d8..c7454e85a9 100644 --- a/indra/newview/llpanellandmarks.cpp +++ b/indra/newview/llpanellandmarks.cpp @@ -1399,10 +1399,6 @@ static void filter_list(LLPlacesInventoryPanel* inventory_list, const std::strin  		inventory_list->restoreFolderState();  	} -	// Open the immediate children of the root folder, since those -	// are invisible in the UI and thus must always be open. -	inventory_list->getRootFolder()->openTopLevelFolders(); -  	if (inventory_list->getFilterSubString().empty() && string.empty())  	{  		// current filter and new filter empty, do nothing diff --git a/indra/newview/llpanelmarketplaceinbox.cpp b/indra/newview/llpanelmarketplaceinbox.cpp index ac528947a4..7cb4bbf891 100644 --- a/indra/newview/llpanelmarketplaceinbox.cpp +++ b/indra/newview/llpanelmarketplaceinbox.cpp @@ -151,6 +151,20 @@ U32 LLPanelMarketplaceInbox::getFreshItemCount() const  					fresh_item_count++;  				}  			} + +			LLFolderViewFolder::items_t::const_iterator items_it = inbox_folder->getItemsBegin(); +			LLFolderViewFolder::items_t::const_iterator items_end = inbox_folder->getItemsEnd(); + +			for (; items_it != items_end; ++items_it) +			{ +				const LLFolderViewItem * item_view = *items_it; +				const LLInboxFolderViewItem * inbox_item_view = dynamic_cast<const LLInboxFolderViewItem*>(item_view); + +				if (inbox_item_view && inbox_item_view->isFresh()) +				{ +					fresh_item_count++; +				} +			}  		}  	} @@ -171,6 +185,7 @@ U32 LLPanelMarketplaceInbox::getTotalItemCount() const  		if (inbox_folder)  		{  			item_count += inbox_folder->getFoldersCount(); +			item_count += inbox_folder->getItemsCount();  		}  	} diff --git a/indra/newview/llpanelmarketplaceinboxinventory.cpp b/indra/newview/llpanelmarketplaceinboxinventory.cpp index 2e4bf55d51..df89adb8da 100644 --- a/indra/newview/llpanelmarketplaceinboxinventory.cpp +++ b/indra/newview/llpanelmarketplaceinboxinventory.cpp @@ -45,6 +45,7 @@  static LLDefaultChildRegistry::Register<LLInboxInventoryPanel> r1("inbox_inventory_panel");  static LLDefaultChildRegistry::Register<LLInboxFolderViewFolder> r2("inbox_folder_view_folder"); +static LLDefaultChildRegistry::Register<LLInboxFolderViewItem> r3("inbox_folder_view_item");  // @@ -137,7 +138,7 @@ LLFolderViewFolder * LLInboxInventoryPanel::createFolderViewFolder(LLInvFVBridge  LLFolderViewItem * LLInboxInventoryPanel::createFolderViewItem(LLInvFVBridge * bridge)  { -	LLFolderViewItem::Params params; +	LLInboxFolderViewItem::Params params;  	params.name = bridge->getDisplayName();  	params.icon = bridge->getIcon(); @@ -171,10 +172,6 @@ LLInboxFolderViewFolder::LLInboxFolderViewFolder(const Params& p)  #endif  } -LLInboxFolderViewFolder::~LLInboxFolderViewFolder() -{ -} -  // virtual  void LLInboxFolderViewFolder::draw()  { @@ -190,6 +187,20 @@ void LLInboxFolderViewFolder::draw()  	LLFolderViewFolder::draw();  } +void LLInboxFolderViewFolder::selectItem() +{ +	LLFolderViewFolder::selectItem(); + +	deFreshify(); +} + +void LLInboxFolderViewFolder::toggleOpen() +{ +	LLFolderViewFolder::toggleOpen(); + +	deFreshify(); +} +  void LLInboxFolderViewFolder::computeFreshness()  {  	const U32 last_expansion_utc = gSavedPerAccountSettings.getU32("LastInventoryInboxActivity"); @@ -218,20 +229,6 @@ void LLInboxFolderViewFolder::deFreshify()  	gSavedPerAccountSettings.setU32("LastInventoryInboxActivity", time_corrected());  } -void LLInboxFolderViewFolder::selectItem() -{ -	LLFolderViewFolder::selectItem(); - -	deFreshify(); -} - -void LLInboxFolderViewFolder::toggleOpen() -{ -	LLFolderViewFolder::toggleOpen(); - -	deFreshify(); -} -  void LLInboxFolderViewFolder::setCreationDate(time_t creation_date_utc)  {   	mCreationDate = creation_date_utc;  @@ -246,9 +243,85 @@ void LLInboxFolderViewFolder::setCreationDate(time_t creation_date_utc)  // LLInboxFolderViewItem Implementation  // +LLInboxFolderViewItem::LLInboxFolderViewItem(const Params& p) +	: LLFolderViewItem(p) +	, LLBadgeOwner(getHandle()) +	, mFresh(false) +{ +#if SUPPORTING_FRESH_ITEM_COUNT +	initBadgeParams(p.new_badge()); +#endif +} + +BOOL LLInboxFolderViewItem::addToFolder(LLFolderViewFolder* folder, LLFolderView* root) +{ +	BOOL retval = LLFolderViewItem::addToFolder(folder, root); + +#if SUPPORTING_FRESH_ITEM_COUNT +	// Compute freshness if our parent is the root folder for the inbox +	if (mParentFolder == mRoot) +	{ +		computeFreshness(); +	} +#endif +	 +	return retval; +} +  BOOL LLInboxFolderViewItem::handleDoubleClick(S32 x, S32 y, MASK mask)  {  	return TRUE;  } +// virtual +void LLInboxFolderViewItem::draw() +{ +#if SUPPORTING_FRESH_ITEM_COUNT +	if (!badgeHasParent()) +	{ +		addBadgeToParentPanel(); +	} + +	setBadgeVisibility(mFresh); +#endif + +	LLFolderViewItem::draw(); +} + +void LLInboxFolderViewItem::selectItem() +{ +	LLFolderViewItem::selectItem(); + +	deFreshify(); +} + +void LLInboxFolderViewItem::computeFreshness() +{ +	const U32 last_expansion_utc = gSavedPerAccountSettings.getU32("LastInventoryInboxActivity"); + +	if (last_expansion_utc > 0) +	{ +		mFresh = (mCreationDate > last_expansion_utc); + +#if DEBUGGING_FRESHNESS +		if (mFresh) +		{ +			llinfos << "Item is fresh! -- creation " << mCreationDate << ", saved_freshness_date " << last_expansion_utc << llendl; +		} +#endif +	} +	else +	{ +		mFresh = true; +	} +} + +void LLInboxFolderViewItem::deFreshify() +{ +	mFresh = false; + +	gSavedPerAccountSettings.setU32("LastInventoryInboxActivity", time_corrected()); +} + +  // eof diff --git a/indra/newview/llpanelmarketplaceinboxinventory.h b/indra/newview/llpanelmarketplaceinboxinventory.h index 46eeb9ea7f..d6b827ee3e 100644 --- a/indra/newview/llpanelmarketplaceinboxinventory.h +++ b/indra/newview/llpanelmarketplaceinboxinventory.h @@ -69,16 +69,15 @@ public:  	};  	LLInboxFolderViewFolder(const Params& p); -	~LLInboxFolderViewFolder(); - +	  	void draw(); -	void computeFreshness(); -	void deFreshify(); -  	void selectItem();  	void toggleOpen(); +	void computeFreshness(); +	void deFreshify(); +  	bool isFresh() const { return mFresh; }  protected: @@ -88,15 +87,35 @@ protected:  }; -class LLInboxFolderViewItem : public LLFolderViewItem +class LLInboxFolderViewItem : public LLFolderViewItem, public LLBadgeOwner  {  public: -	LLInboxFolderViewItem(const Params& p) -		: LLFolderViewItem(p) +	struct Params : public LLInitParam::Block<Params, LLFolderViewItem::Params>  	{ -	} +		Optional<LLBadge::Params>	new_badge; + +		Params() +			: new_badge("new_badge") +		{ +		} +	}; +	LLInboxFolderViewItem(const Params& p); + +	BOOL addToFolder(LLFolderViewFolder* folder, LLFolderView* root);  	BOOL handleDoubleClick(S32 x, S32 y, MASK mask); + +	void draw(); + +	void selectItem(); + +	void computeFreshness(); +	void deFreshify(); + +	bool isFresh() const { return mFresh; } + +protected: +	bool mFresh;  };  #endif //LL_INBOXINVENTORYPANEL_H diff --git a/indra/newview/llpanelpicks.cpp b/indra/newview/llpanelpicks.cpp index 72c6be4c79..04e78e04e3 100755 --- a/indra/newview/llpanelpicks.cpp +++ b/indra/newview/llpanelpicks.cpp @@ -130,11 +130,11 @@ public:  	void createPick()  	{ -		LLSD params; -		params["id"] = gAgent.getID(); -		params["open_tab_name"] = "panel_picks"; -		params["show_tab_panel"] = "create_pick"; -		LLFloaterSidePanelContainer::showPanel("my_profile", params); +		// open the new pick panel on the Picks floater +		LLFloater* picks_floater = LLFloaterReg::showInstance("picks"); + +		LLPanelPicks* picks = picks_floater->findChild<LLPanelPicks>("panel_picks"); +		picks->createNewPick();  	}  	void editPick(LLPickData* pick_info) @@ -247,12 +247,11 @@ public:  	void createClassified()  	{ -		// open the new classified panel on the Me > Picks sidetray -		LLSD params; -		params["id"] = gAgent.getID(); -		params["open_tab_name"] = "panel_picks"; -		params["show_tab_panel"] = "create_classified"; -		LLFloaterSidePanelContainer::showPanel("my_profile", params); +		// open the new classified panel on the Picks floater +		LLFloater* picks_floater = LLFloaterReg::showInstance("picks"); + +		LLPanelPicks* picks = picks_floater->findChild<LLPanelPicks>("panel_picks"); +		picks->createNewClassified();  	}  	void openClassified(LLAvatarClassifiedInfo* c_info) diff --git a/indra/newview/llpanelpicks.h b/indra/newview/llpanelpicks.h index 29db110523..3bb7413ac3 100755 --- a/indra/newview/llpanelpicks.h +++ b/indra/newview/llpanelpicks.h @@ -82,6 +82,9 @@ public:  	// parent panels failed to work (picks related code was in my profile panel)  	void setProfilePanel(LLPanelProfile* profile_panel); +	void createNewPick(); +	void createNewClassified(); +  protected:  	/*virtual*/void updateButtons(); @@ -115,9 +118,6 @@ private:  	bool onEnableMenuItem(const LLSD& user_data); -	void createNewPick(); -	void createNewClassified(); -  	void openPickInfo();  	void openClassifiedInfo();  	void openClassifiedInfo(const LLSD& params); diff --git a/indra/newview/llpanelplaces.cpp b/indra/newview/llpanelplaces.cpp index 7f8f9b29af..6d321d4716 100644 --- a/indra/newview/llpanelplaces.cpp +++ b/indra/newview/llpanelplaces.cpp @@ -82,6 +82,7 @@ static const std::string CREATE_LANDMARK_INFO_TYPE	= "create_landmark";  static const std::string LANDMARK_INFO_TYPE			= "landmark";  static const std::string REMOTE_PLACE_INFO_TYPE		= "remote_place";  static const std::string TELEPORT_HISTORY_INFO_TYPE	= "teleport_history"; +static const std::string LANDMARK_TAB_INFO_TYPE     = "open_landmark_tab";  // Support for secondlife:///app/parcel/{UUID}/about SLapps  class LLParcelHandler : public LLCommandHandler @@ -365,83 +366,104 @@ void LLPanelPlaces::onOpen(const LLSD& key)  	if (key.size() != 0)  	{ -		mFilterEditor->clear(); -		onFilterEdit("", false); - -		mPlaceInfoType = key["type"].asString(); -		mPosGlobal.setZero(); -		mItem = NULL; -		isLandmarkEditModeOn = false; -		togglePlaceInfoPanel(TRUE); - -		if (mPlaceInfoType == AGENT_INFO_TYPE) +		std::string key_type = key["type"].asString(); +		if (key_type == LANDMARK_TAB_INFO_TYPE)  		{ -			mPlaceProfile->setInfoType(LLPanelPlaceInfo::AGENT); +			// Small hack: We need to toggle twice. The first toggle moves from the Landmark  +			// or Teleport History info panel to the Landmark or Teleport History list panel. +			// For this first toggle, the mPlaceInfoType should be the one previously used so  +			// that the state can be corretly set. +			// The second toggle forces the list to be set to Landmark. +			// This avoids extracting and duplicating all the state logic from togglePlaceInfoPanel()  +			// here or some specific private method +			togglePlaceInfoPanel(FALSE); +			mPlaceInfoType = key_type; +			togglePlaceInfoPanel(FALSE); +			// Update the active tab +			onTabSelected(); +			// Update the buttons at the bottom of the panel +			updateVerbs();  		} -		else if (mPlaceInfoType == CREATE_LANDMARK_INFO_TYPE) +		else  		{ -			mLandmarkInfo->setInfoType(LLPanelPlaceInfo::CREATE_LANDMARK); +			mFilterEditor->clear(); +			onFilterEdit("", false); -			if (key.has("x") && key.has("y") && key.has("z")) +			mPlaceInfoType = key_type; +			mPosGlobal.setZero(); +			mItem = NULL; +			isLandmarkEditModeOn = false; +			togglePlaceInfoPanel(TRUE); + +			if (mPlaceInfoType == AGENT_INFO_TYPE)  			{ -				mPosGlobal = LLVector3d(key["x"].asReal(), -										key["y"].asReal(), -										key["z"].asReal()); +				mPlaceProfile->setInfoType(LLPanelPlaceInfo::AGENT);  			} -			else +			else if (mPlaceInfoType == CREATE_LANDMARK_INFO_TYPE)  			{ -				mPosGlobal = gAgent.getPositionGlobal(); +				mLandmarkInfo->setInfoType(LLPanelPlaceInfo::CREATE_LANDMARK); + +				if (key.has("x") && key.has("y") && key.has("z")) +				{ +					mPosGlobal = LLVector3d(key["x"].asReal(), +											key["y"].asReal(), +											key["z"].asReal()); +				} +				else +				{ +					mPosGlobal = gAgent.getPositionGlobal(); +				} + +				mLandmarkInfo->displayParcelInfo(LLUUID(), mPosGlobal); + +				mSaveBtn->setEnabled(FALSE);  			} - -			mLandmarkInfo->displayParcelInfo(LLUUID(), mPosGlobal); - -			mSaveBtn->setEnabled(FALSE); -		} -		else if (mPlaceInfoType == LANDMARK_INFO_TYPE) -		{ -			mLandmarkInfo->setInfoType(LLPanelPlaceInfo::LANDMARK); - -			LLInventoryItem* item = gInventory.getItem(key["id"].asUUID()); -			if (!item) -				return; - -			setItem(item); -		} -		else if (mPlaceInfoType == REMOTE_PLACE_INFO_TYPE) -		{ -			if (key.has("id")) +			else if (mPlaceInfoType == LANDMARK_INFO_TYPE)  			{ -				LLUUID parcel_id = key["id"].asUUID(); -				mPlaceProfile->setParcelID(parcel_id); +				mLandmarkInfo->setInfoType(LLPanelPlaceInfo::LANDMARK); -				// query the server to get the global 3D position of this -				// parcel - we need this for teleport/mapping functions. -				mRemoteParcelObserver->setParcelID(parcel_id); +				LLInventoryItem* item = gInventory.getItem(key["id"].asUUID()); +				if (!item) +					return; + +				setItem(item);  			} -			else +			else if (mPlaceInfoType == REMOTE_PLACE_INFO_TYPE)  			{ -				mPosGlobal = LLVector3d(key["x"].asReal(), -										key["y"].asReal(), -										key["z"].asReal()); -				mPlaceProfile->displayParcelInfo(LLUUID(), mPosGlobal); +				if (key.has("id")) +				{ +					LLUUID parcel_id = key["id"].asUUID(); +					mPlaceProfile->setParcelID(parcel_id); + +					// query the server to get the global 3D position of this +					// parcel - we need this for teleport/mapping functions. +					mRemoteParcelObserver->setParcelID(parcel_id); +				} +				else +				{ +					mPosGlobal = LLVector3d(key["x"].asReal(), +											key["y"].asReal(), +											key["z"].asReal()); +					mPlaceProfile->displayParcelInfo(LLUUID(), mPosGlobal); +				} + +				mPlaceProfile->setInfoType(LLPanelPlaceInfo::PLACE);  			} +			else if (mPlaceInfoType == TELEPORT_HISTORY_INFO_TYPE) +			{ +				S32 index = key["id"].asInteger(); -			mPlaceProfile->setInfoType(LLPanelPlaceInfo::PLACE); -		} -		else if (mPlaceInfoType == TELEPORT_HISTORY_INFO_TYPE) -		{ -			S32 index = key["id"].asInteger(); +				const LLTeleportHistoryStorage::slurl_list_t& hist_items = +							LLTeleportHistoryStorage::getInstance()->getItems(); -			const LLTeleportHistoryStorage::slurl_list_t& hist_items = -						LLTeleportHistoryStorage::getInstance()->getItems(); +				mPosGlobal = hist_items[index].mGlobalPos; -			mPosGlobal = hist_items[index].mGlobalPos; +				mPlaceProfile->setInfoType(LLPanelPlaceInfo::TELEPORT_HISTORY); +				mPlaceProfile->displayParcelInfo(LLUUID(), mPosGlobal); +			} -			mPlaceProfile->setInfoType(LLPanelPlaceInfo::TELEPORT_HISTORY); -			mPlaceProfile->displayParcelInfo(LLUUID(), mPosGlobal); +			updateVerbs();  		} - -		updateVerbs();  	}  	LLViewerParcelMgr* parcel_mgr = LLViewerParcelMgr::getInstance(); @@ -942,7 +964,8 @@ void LLPanelPlaces::togglePlaceInfoPanel(BOOL visible)  		}  	}  	else if (mPlaceInfoType == CREATE_LANDMARK_INFO_TYPE || -			 mPlaceInfoType == LANDMARK_INFO_TYPE) +			 mPlaceInfoType == LANDMARK_INFO_TYPE || +			 mPlaceInfoType == LANDMARK_TAB_INFO_TYPE)  	{  		mLandmarkInfo->setVisible(visible); @@ -960,13 +983,15 @@ void LLPanelPlaces::togglePlaceInfoPanel(BOOL visible)  		{  			LLLandmarksPanel* landmarks_panel =  					dynamic_cast<LLLandmarksPanel*>(mTabContainer->getPanelByName("Landmarks")); -			if (landmarks_panel && mItem.notNull()) +			if (landmarks_panel)  			{  				// If a landmark info is being closed we open the landmarks tab  				// and set this landmark selected.  				mTabContainer->selectTabPanel(landmarks_panel); - -				landmarks_panel->setItemSelected(mItem->getUUID(), TRUE); +				if (mItem.notNull()) +				{ +					landmarks_panel->setItemSelected(mItem->getUUID(), TRUE); +				}  			}  		}  	} @@ -1163,7 +1188,8 @@ LLPanelPlaceInfo* LLPanelPlaces::getCurrentInfoPanel()  		return mPlaceProfile;  	}  	else if (mPlaceInfoType == CREATE_LANDMARK_INFO_TYPE || -			 mPlaceInfoType == LANDMARK_INFO_TYPE) +			 mPlaceInfoType == LANDMARK_INFO_TYPE || +			 mPlaceInfoType == LANDMARK_TAB_INFO_TYPE)  	{  		return mLandmarkInfo;  	} diff --git a/indra/newview/llpreview.cpp b/indra/newview/llpreview.cpp index 119fc95cf0..18626e3273 100644 --- a/indra/newview/llpreview.cpp +++ b/indra/newview/llpreview.cpp @@ -363,8 +363,10 @@ void LLPreview::onBtnCopyToInv(void* userdata)  		// Copy to inventory  		if (self->mNotecardInventoryID.notNull())  		{ -			copy_inventory_from_notecard(self->mNotecardObjectID, -				self->mNotecardInventoryID, item); +			copy_inventory_from_notecard(LLUUID::null, +										 self->mNotecardObjectID, +										 self->mNotecardInventoryID, +										 item);  		}  		else  		{ diff --git a/indra/newview/llscreenchannel.cpp b/indra/newview/llscreenchannel.cpp index 45cf81751b..15ba5195d9 100644 --- a/indra/newview/llscreenchannel.cpp +++ b/indra/newview/llscreenchannel.cpp @@ -708,6 +708,8 @@ void LLScreenChannel::showToastsTop()  //--------------------------------------------------------------------------  void LLScreenChannel::createStartUpToast(S32 notif_num, F32 timer)  { +	LLScreenChannelBase::updateRect(); +  	LLRect toast_rect;  	LLToast::Params p;  	p.lifetime_secs = timer; @@ -730,13 +732,10 @@ void LLScreenChannel::createStartUpToast(S32 notif_num, F32 timer)  	text_box->setValue(text);  	text_box->setVisible(TRUE); -	S32 old_height = text_box->getRect().getHeight();  	text_box->reshapeToFitText();  	text_box->setOrigin(text_box->getRect().mLeft, (wrapper_panel->getRect().getHeight() - text_box->getRect().getHeight())/2); -	S32 new_height = text_box->getRect().getHeight(); -	S32 height_delta = new_height - old_height; -	toast_rect.setLeftTopAndSize(0, toast_rect.getHeight() + height_delta +gSavedSettings.getS32("ToastGap"), getRect().getWidth(), toast_rect.getHeight()); +	toast_rect.setLeftTopAndSize(0, getRect().getHeight() - gSavedSettings.getS32("ToastGap"), getRect().getWidth(), toast_rect.getHeight());  	mStartUpToastPanel->setRect(toast_rect);  	addChild(mStartUpToastPanel); diff --git a/indra/newview/llsidepanelinventory.cpp b/indra/newview/llsidepanelinventory.cpp index a24f6b24f0..91f8035556 100644 --- a/indra/newview/llsidepanelinventory.cpp +++ b/indra/newview/llsidepanelinventory.cpp @@ -113,21 +113,13 @@ public:  			switch (added_category_type)  			{  				case LLFolderType::FT_INBOX: +					mSidepanelInventory->enableInbox(true);  					mSidepanelInventory->observeInboxModifications(added_category->getUUID());  					break;  				case LLFolderType::FT_OUTBOX: +					mSidepanelInventory->enableOutbox(true);  					mSidepanelInventory->observeOutboxModifications(added_category->getUUID());  					break; -				case LLFolderType::FT_NONE: -					// HACK until sim update to properly create folder with system type -					if (added_category->getName() == "Received Items") -					{ -						mSidepanelInventory->observeInboxModifications(added_category->getUUID()); -					} -					else if (added_category->getName() == "Merchant Outbox") -					{ -						mSidepanelInventory->observeOutboxModifications(added_category->getUUID()); -					}  				default:  					break;  			} @@ -288,7 +280,6 @@ BOOL LLSidepanelInventory::postBuild()  	gSavedSettings.getControl("InventoryDisplayInbox")->getCommitSignal()->connect(boost::bind(&handleInventoryDisplayInboxChanged));  	gSavedSettings.getControl("InventoryDisplayOutbox")->getCommitSignal()->connect(boost::bind(&handleInventoryDisplayOutboxChanged)); -	updateInboxOutbox();  	// Update the verbs buttons state.  	updateVerbs(); @@ -316,20 +307,20 @@ void LLSidepanelInventory::updateInboxOutbox()  	// Set up observer for inbox changes, if we have an inbox already  	if (!inbox_id.isNull())  	{ -		observeInboxModifications(inbox_id); -  		// Enable the display of the inbox if it exists  		enableInbox(true); + +		observeInboxModifications(inbox_id);  	}  #if ENABLE_MERCHANT_OUTBOX_PANEL  	// Set up observer for outbox changes, if we have an outbox already  	if (!outbox_id.isNull())  	{ -		observeOutboxModifications(outbox_id); -  		// Enable the display of the outbox if it exists  		enableOutbox(true); + +		observeOutboxModifications(outbox_id);  	}  #endif  } diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index e62227fa3c..9d8d1be0f5 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -190,6 +190,7 @@  #include "lllogin.h"  #include "llevents.h"  #include "llstartuplistener.h" +#include "lltoolbarview.h"  #if LL_WINDOWS  #include "lldxhardware.h" @@ -2091,7 +2092,12 @@ void login_show()  #else  	BOOL bUseDebugLogin = TRUE;  #endif - +	// Hide the toolbars: may happen to come back here if login fails after login agent but before login in region +	if (gToolBarView) +	{ +		gToolBarView->setVisible(FALSE); +	} +	  	LLPanelLogin::show(	gViewerWindow->getWindowRectScaled(),  						bUseDebugLogin || gSavedSettings.getBOOL("SecondLifeEnterprise"),  						login_callback, NULL ); diff --git a/indra/newview/lltoolbarview.cpp b/indra/newview/lltoolbarview.cpp index ed1dfbb8cd..5ff0ccfeb2 100644 --- a/indra/newview/lltoolbarview.cpp +++ b/indra/newview/lltoolbarview.cpp @@ -315,6 +315,19 @@ bool LLToolBarView::loadToolbars(bool force_default)  	return true;  } +bool LLToolBarView::clearToolbars() +{ +	for (S32 i = TOOLBAR_FIRST; i <= TOOLBAR_LAST; i++) +	{ +		if (mToolbars[i]) +		{ +			mToolbars[i]->clearCommandsList(); +		} +	} + +	return true; +} +  //static  bool LLToolBarView::loadDefaultToolbars()  { @@ -332,6 +345,23 @@ bool LLToolBarView::loadDefaultToolbars()  	return retval;  } +//static +bool LLToolBarView::clearAllToolbars() +{ +	bool retval = false; + +	if (gToolBarView) +	{ +		retval = gToolBarView->clearToolbars(); +		if (retval) +		{ +			gToolBarView->saveToolbars(); +		} +	} + +	return retval; +} +  void LLToolBarView::saveToolbars() const  {  	if (!mToolbarsLoaded) diff --git a/indra/newview/lltoolbarview.h b/indra/newview/lltoolbarview.h index 4307d10258..b99e8bc28d 100644 --- a/indra/newview/lltoolbarview.h +++ b/indra/newview/lltoolbarview.h @@ -94,9 +94,13 @@ public:  	// Loads the toolbars from the existing user or default settings  	bool loadToolbars(bool force_default = false);	// return false if load fails +	// Clears all buttons off the toolbars +	bool clearToolbars(); +	  	void setToolBarsVisible(bool visible);  	static bool loadDefaultToolbars(); +	static bool clearAllToolbars();  	static void startDragTool(S32 x, S32 y, LLToolBarButton* toolbarButton);  	static BOOL handleDragTool(S32 x, S32 y, const LLUUID& uuid, LLAssetType::EType type); diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp index 519d4fe7f8..163581ea7f 100644 --- a/indra/newview/llviewerinventory.cpp +++ b/indra/newview/llviewerinventory.cpp @@ -1209,7 +1209,23 @@ void move_inventory_item(  	gAgent.sendReliableMessage();  } -void copy_inventory_from_notecard(const LLUUID& object_id, const LLUUID& notecard_inv_id, const LLInventoryItem *src, U32 callback_id) +const LLUUID get_folder_by_itemtype(const LLInventoryItem *src) +{ +	LLUUID retval = LLUUID::null; +	 +	if (src) +	{ +		retval = gInventory.findCategoryUUIDForType(LLFolderType::assetTypeToFolderType(src->getType())); +	} +	 +	return retval; +} + +void copy_inventory_from_notecard(const LLUUID& destination_id, +								  const LLUUID& object_id, +								  const LLUUID& notecard_inv_id, +								  const LLInventoryItem *src, +								  U32 callback_id)  {  	if (NULL == src)  	{ @@ -1255,7 +1271,7 @@ void copy_inventory_from_notecard(const LLUUID& object_id, const LLUUID& notecar      body["notecard-id"] = notecard_inv_id;      body["object-id"] = object_id;      body["item-id"] = src->getUUID(); -	body["folder-id"] = gInventory.findCategoryUUIDForType(LLFolderType::assetTypeToFolderType(src->getType())); +	body["folder-id"] = destination_id;      body["callback-id"] = (LLSD::Integer)callback_id;      request["message"] = "CopyInventoryFromNotecard"; diff --git a/indra/newview/llviewerinventory.h b/indra/newview/llviewerinventory.h index 41542a4e0f..7822ef4da6 100644 --- a/indra/newview/llviewerinventory.h +++ b/indra/newview/llviewerinventory.h @@ -363,7 +363,10 @@ void move_inventory_item(  	const std::string& new_name,  	LLPointer<LLInventoryCallback> cb); -void copy_inventory_from_notecard(const LLUUID& object_id, +const LLUUID get_folder_by_itemtype(const LLInventoryItem *src); + +void copy_inventory_from_notecard(const LLUUID& destination_id, +								  const LLUUID& object_id,  								  const LLUUID& notecard_inv_id,  								  const LLInventoryItem *src,  								  U32 callback_id = 0); diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index ab9134dafa..2858330597 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -1723,7 +1723,8 @@ LLViewerMediaImpl::LLViewerMediaImpl(	  const LLUUID& texture_id,  	mNavigateSuspended(false),  	mNavigateSuspendedDeferred(false),  	mIsUpdated(false), -	mTrustedBrowser(false) +	mTrustedBrowser(false), +	mZoomFactor(1.0)  {   	// Set up the mute list observer if it hasn't been set up already. @@ -2309,6 +2310,17 @@ void LLViewerMediaImpl::clearCache()  	}  } + +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::setPageZoomFactor( double factor ) +{ +	if(mMediaSource && factor != mZoomFactor) +	{ +		mZoomFactor = factor; +		mMediaSource->set_page_zoom_factor( factor ); +	} +} +  //////////////////////////////////////////////////////////////////////////////////////////  void LLViewerMediaImpl::mouseDown(S32 x, S32 y, MASK mask, S32 button)  { diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h index 0b69b8f0c1..3db9f0b4e0 100644 --- a/indra/newview/llviewermedia.h +++ b/indra/newview/llviewermedia.h @@ -250,6 +250,7 @@ public:  	std::string getMediaEntryURL() { return mMediaEntryURL; }  	void setHomeURL(const std::string& home_url, const std::string& mime_type = LLStringUtil::null) { mHomeURL = home_url; mHomeMimeType = mime_type;};  	void clearCache(); +	void setPageZoomFactor( double factor );  	std::string getMimeType() { return mMimeType; }  	void scaleMouse(S32 *mouse_x, S32 *mouse_y);  	void scaleTextureCoords(const LLVector2& texture_coords, S32 *x, S32 *y); @@ -416,6 +417,7 @@ private:  private:  	// a single media url with some data and an impl.  	LLPluginClassMedia* mMediaSource; +	F64		mZoomFactor;  	LLUUID mTextureId;  	bool  mMovieImageHasMips;  	std::string mMediaURL;			// The last media url set with NavigateTo diff --git a/indra/newview/llviewertexteditor.cpp b/indra/newview/llviewertexteditor.cpp index 0a9fae68a6..b41ed00f17 100644 --- a/indra/newview/llviewertexteditor.cpp +++ b/indra/newview/llviewertexteditor.cpp @@ -88,12 +88,12 @@ public:  	{  		LLVector3d global_pos;  		landmark->getGlobalPos(global_pos); -		LLViewerInventoryItem* agent_lanmark = +		LLViewerInventoryItem* agent_landmark =  				LLLandmarkActions::findLandmarkForGlobalPos(global_pos); -		if (agent_lanmark) +		if (agent_landmark)  		{ -			showInfo(agent_lanmark->getUUID()); +			showInfo(agent_landmark->getUUID());  		}  		else  		{ @@ -104,8 +104,13 @@ public:  			}  			else  			{ +				LLInventoryItem* item = item_ptr.get();  				LLPointer<LLEmbeddedLandmarkCopied> cb = new LLEmbeddedLandmarkCopied(); -				copy_inventory_from_notecard(object_id, notecard_inventory_id, item_ptr.get(), gInventoryCallbacks.registerCB(cb)); +				copy_inventory_from_notecard(get_folder_by_itemtype(item), +											 object_id, +											 notecard_inventory_id, +											 item, +											 gInventoryCallbacks.registerCB(cb));  			}  		}  	} @@ -1266,9 +1271,11 @@ bool LLViewerTextEditor::importStream(std::istream& str)  void LLViewerTextEditor::copyInventory(const LLInventoryItem* item, U32 callback_id)  { -	copy_inventory_from_notecard(mObjectID, +	copy_inventory_from_notecard(LLUUID::null,  // Don't specify a destination -- let the sim do that +								 mObjectID,  								 mNotecardInventoryID, -								 item, callback_id); +								 item, +								 callback_id);  }  bool LLViewerTextEditor::hasEmbeddedInventory() diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index c20bc5f02f..cf21ac4e5d 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -1789,17 +1789,13 @@ void LLViewerWindow::initBase()  	mLoginPanelHolder = main_view->getChild<LLView>("login_panel_holder")->getHandle();  	// Create the toolbar view -	// *TODO: Eventually, suppress the existence of this debug setting and turn toolbar FUI on permanently -	if (gSavedSettings.getBOOL("DebugToolbarFUI")) -	{ -		// Get a pointer to the toolbar view holder -		LLPanel* panel_holder = main_view->getChild<LLPanel>("toolbar_view_holder"); -		// Load the toolbar view from file  -		gToolBarView = LLUICtrlFactory::getInstance()->createFromFile<LLToolBarView>("panel_toolbar_view.xml", panel_holder, LLDefaultChildRegistry::instance()); -		gToolBarView->setShape(panel_holder->getLocalRect()); -		// Hide the toolbars for the moment: we'll make them visible after logging in world (see LLViewerWindow::initWorldUI()) -		gToolBarView->setVisible(FALSE); -	} +	// Get a pointer to the toolbar view holder +	LLPanel* panel_holder = main_view->getChild<LLPanel>("toolbar_view_holder"); +	// Load the toolbar view from file  +	gToolBarView = LLUICtrlFactory::getInstance()->createFromFile<LLToolBarView>("panel_toolbar_view.xml", panel_holder, LLDefaultChildRegistry::instance()); +	gToolBarView->setShape(panel_holder->getLocalRect()); +	// Hide the toolbars for the moment: we'll make them visible after logging in world (see LLViewerWindow::initWorldUI()) +	gToolBarView->setVisible(FALSE);  	// Constrain floaters to inside the menu and status bar regions.  	gFloaterView = main_view->getChild<LLFloaterView>("Floater View"); diff --git a/indra/newview/skins/default/textures/arrow_keys.png b/indra/newview/skins/default/textures/arrow_keys.pngBinary files differ deleted file mode 100644 index f19af59251..0000000000 --- a/indra/newview/skins/default/textures/arrow_keys.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/bottomtray/Cam_Pan_Over.png b/indra/newview/skins/default/textures/bottomtray/Cam_Pan_Over.pngBinary files differ deleted file mode 100644 index b5781718ec..0000000000 --- a/indra/newview/skins/default/textures/bottomtray/Cam_Pan_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/bottomtray/CameraView_Press.png b/indra/newview/skins/default/textures/bottomtray/CameraView_Press.pngBinary files differ deleted file mode 100644 index 5a9346fd39..0000000000 --- a/indra/newview/skins/default/textures/bottomtray/CameraView_Press.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/bottomtray/PanOrbit_Disabled.png b/indra/newview/skins/default/textures/bottomtray/PanOrbit_Disabled.pngBinary files differ deleted file mode 100644 index 20fa40e127..0000000000 --- a/indra/newview/skins/default/textures/bottomtray/PanOrbit_Disabled.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/bottomtray/PanOrbit_Over.png b/indra/newview/skins/default/textures/bottomtray/PanOrbit_Over.pngBinary files differ deleted file mode 100644 index f1420e0002..0000000000 --- a/indra/newview/skins/default/textures/bottomtray/PanOrbit_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/bottomtray/PanOrbit_Press.png b/indra/newview/skins/default/textures/bottomtray/PanOrbit_Press.pngBinary files differ deleted file mode 100644 index 89a6269edc..0000000000 --- a/indra/newview/skins/default/textures/bottomtray/PanOrbit_Press.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/bottomtray/VoicePTT_Lvl1_Dark.png b/indra/newview/skins/default/textures/bottomtray/VoicePTT_Lvl1_Dark.pngBinary files differ new file mode 100644 index 0000000000..857fa1e047 --- /dev/null +++ b/indra/newview/skins/default/textures/bottomtray/VoicePTT_Lvl1_Dark.png diff --git a/indra/newview/skins/default/textures/bottomtray/VoicePTT_Lvl2_Dark.png b/indra/newview/skins/default/textures/bottomtray/VoicePTT_Lvl2_Dark.pngBinary files differ new file mode 100644 index 0000000000..453bb53673 --- /dev/null +++ b/indra/newview/skins/default/textures/bottomtray/VoicePTT_Lvl2_Dark.png diff --git a/indra/newview/skins/default/textures/bottomtray/VoicePTT_Lvl3_Dark.png b/indra/newview/skins/default/textures/bottomtray/VoicePTT_Lvl3_Dark.pngBinary files differ new file mode 100644 index 0000000000..135a66ca0d --- /dev/null +++ b/indra/newview/skins/default/textures/bottomtray/VoicePTT_Lvl3_Dark.png diff --git a/indra/newview/skins/default/textures/bottomtray/VoicePTT_Off_Dark.png b/indra/newview/skins/default/textures/bottomtray/VoicePTT_Off_Dark.pngBinary files differ new file mode 100644 index 0000000000..a63aec5e6d --- /dev/null +++ b/indra/newview/skins/default/textures/bottomtray/VoicePTT_Off_Dark.png diff --git a/indra/newview/skins/default/textures/bottomtray/VoicePTT_On_Dark.png b/indra/newview/skins/default/textures/bottomtray/VoicePTT_On_Dark.pngBinary files differ new file mode 100644 index 0000000000..1719eb3e84 --- /dev/null +++ b/indra/newview/skins/default/textures/bottomtray/VoicePTT_On_Dark.png diff --git a/indra/newview/skins/default/textures/checkerboard_transparency_bg.png b/indra/newview/skins/default/textures/checkerboard_transparency_bg.pngBinary files differ deleted file mode 100644 index 9a16935204..0000000000 --- a/indra/newview/skins/default/textures/checkerboard_transparency_bg.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/circle.tga b/indra/newview/skins/default/textures/circle.tgaBinary files differ deleted file mode 100644 index d7097e3a35..0000000000 --- a/indra/newview/skins/default/textures/circle.tga +++ /dev/null diff --git a/indra/newview/skins/default/textures/containers/Accordion_ArrowClosed_Over.png b/indra/newview/skins/default/textures/containers/Accordion_ArrowClosed_Over.pngBinary files differ deleted file mode 100644 index e47f913db1..0000000000 --- a/indra/newview/skins/default/textures/containers/Accordion_ArrowClosed_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/containers/Accordion_ArrowOpened_Over.png b/indra/newview/skins/default/textures/containers/Accordion_ArrowOpened_Over.pngBinary files differ deleted file mode 100644 index e2c67de9c0..0000000000 --- a/indra/newview/skins/default/textures/containers/Accordion_ArrowOpened_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/containers/TabTop_Left_Over.png b/indra/newview/skins/default/textures/containers/TabTop_Left_Over.pngBinary files differ deleted file mode 100644 index 295cd89a57..0000000000 --- a/indra/newview/skins/default/textures/containers/TabTop_Left_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/containers/TabTop_Middle_Over.png b/indra/newview/skins/default/textures/containers/TabTop_Middle_Over.pngBinary files differ deleted file mode 100644 index 0758cbcf0d..0000000000 --- a/indra/newview/skins/default/textures/containers/TabTop_Middle_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/containers/TabTop_Right_Over.png b/indra/newview/skins/default/textures/containers/TabTop_Right_Over.pngBinary files differ deleted file mode 100644 index c2cbc2b1e5..0000000000 --- a/indra/newview/skins/default/textures/containers/TabTop_Right_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/icn_label_web.tga b/indra/newview/skins/default/textures/icn_label_web.tgaBinary files differ deleted file mode 100644 index 7c9131dfff..0000000000 --- a/indra/newview/skins/default/textures/icn_label_web.tga +++ /dev/null diff --git a/indra/newview/skins/default/textures/icn_media.tga b/indra/newview/skins/default/textures/icn_media.tgaBinary files differ deleted file mode 100644 index 43dd342c9d..0000000000 --- a/indra/newview/skins/default/textures/icn_media.tga +++ /dev/null diff --git a/indra/newview/skins/default/textures/icn_voice-groupfocus.tga b/indra/newview/skins/default/textures/icn_voice-groupfocus.tgaBinary files differ deleted file mode 100644 index 9f48d4609d..0000000000 --- a/indra/newview/skins/default/textures/icn_voice-groupfocus.tga +++ /dev/null diff --git a/indra/newview/skins/default/textures/icn_voice-localchat.tga b/indra/newview/skins/default/textures/icn_voice-localchat.tgaBinary files differ deleted file mode 100644 index 7cf267eaf5..0000000000 --- a/indra/newview/skins/default/textures/icn_voice-localchat.tga +++ /dev/null diff --git a/indra/newview/skins/default/textures/icn_voice-pvtfocus.tga b/indra/newview/skins/default/textures/icn_voice-pvtfocus.tgaBinary files differ deleted file mode 100644 index abadb09aaf..0000000000 --- a/indra/newview/skins/default/textures/icn_voice-pvtfocus.tga +++ /dev/null diff --git a/indra/newview/skins/default/textures/icon_day_cycle.tga b/indra/newview/skins/default/textures/icon_day_cycle.tgaBinary files differ deleted file mode 100644 index 2d5dee1e94..0000000000 --- a/indra/newview/skins/default/textures/icon_day_cycle.tga +++ /dev/null diff --git a/indra/newview/skins/default/textures/icon_event_adult.tga b/indra/newview/skins/default/textures/icon_event_adult.tgaBinary files differ deleted file mode 100644 index f548126e5a..0000000000 --- a/indra/newview/skins/default/textures/icon_event_adult.tga +++ /dev/null diff --git a/indra/newview/skins/default/textures/icon_lock.tga b/indra/newview/skins/default/textures/icon_lock.tgaBinary files differ deleted file mode 100644 index 23521aa113..0000000000 --- a/indra/newview/skins/default/textures/icon_lock.tga +++ /dev/null diff --git a/indra/newview/skins/default/textures/icons/AddItem_Over.png b/indra/newview/skins/default/textures/icons/AddItem_Over.pngBinary files differ deleted file mode 100644 index cad6e8d52f..0000000000 --- a/indra/newview/skins/default/textures/icons/AddItem_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/icons/BackArrow_Over.png b/indra/newview/skins/default/textures/icons/BackArrow_Over.pngBinary files differ deleted file mode 100644 index b36e03a8cf..0000000000 --- a/indra/newview/skins/default/textures/icons/BackArrow_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/icons/DragHandle.png b/indra/newview/skins/default/textures/icons/DragHandle.pngBinary files differ deleted file mode 100644 index c3cbc07a33..0000000000 --- a/indra/newview/skins/default/textures/icons/DragHandle.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/icons/Generic_Object.png b/indra/newview/skins/default/textures/icons/Generic_Object.pngBinary files differ deleted file mode 100644 index e3a80b2aef..0000000000 --- a/indra/newview/skins/default/textures/icons/Generic_Object.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/icons/Inv_Gift.png b/indra/newview/skins/default/textures/icons/Inv_Gift.pngBinary files differ deleted file mode 100644 index 5afe85d72d..0000000000 --- a/indra/newview/skins/default/textures/icons/Inv_Gift.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/icons/OptionsMenu_Over.png b/indra/newview/skins/default/textures/icons/OptionsMenu_Over.pngBinary files differ deleted file mode 100644 index fcabd4c6d3..0000000000 --- a/indra/newview/skins/default/textures/icons/OptionsMenu_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/icons/OutboxPush_On_Selected.png b/indra/newview/skins/default/textures/icons/OutboxPush_On_Selected.pngBinary files differ deleted file mode 100644 index 0e60b417b0..0000000000 --- a/indra/newview/skins/default/textures/icons/OutboxPush_On_Selected.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/icons/Parcel_Damage_Light_Alt.png b/indra/newview/skins/default/textures/icons/Parcel_Damage_Light_Alt.pngBinary files differ deleted file mode 100644 index d72f02f708..0000000000 --- a/indra/newview/skins/default/textures/icons/Parcel_Damage_Light_Alt.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/icons/Parcel_NoScripts_Light.png b/indra/newview/skins/default/textures/icons/Parcel_NoScripts_Light.pngBinary files differ deleted file mode 100644 index f82354959e..0000000000 --- a/indra/newview/skins/default/textures/icons/Parcel_NoScripts_Light.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/icons/TrashItem_Over.png b/indra/newview/skins/default/textures/icons/TrashItem_Over.pngBinary files differ deleted file mode 100644 index 1a0eea6c67..0000000000 --- a/indra/newview/skins/default/textures/icons/TrashItem_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/icons/parcel_color_EVRY.png b/indra/newview/skins/default/textures/icons/parcel_color_EVRY.pngBinary files differ deleted file mode 100644 index b5508423eb..0000000000 --- a/indra/newview/skins/default/textures/icons/parcel_color_EVRY.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/icons/parcel_color_EXP.png b/indra/newview/skins/default/textures/icons/parcel_color_EXP.pngBinary files differ deleted file mode 100644 index 4813d37198..0000000000 --- a/indra/newview/skins/default/textures/icons/parcel_color_EXP.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/icons/parcel_color_M.png b/indra/newview/skins/default/textures/icons/parcel_color_M.pngBinary files differ deleted file mode 100644 index 41984c43e4..0000000000 --- a/indra/newview/skins/default/textures/icons/parcel_color_M.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/image_edit_icon.tga b/indra/newview/skins/default/textures/image_edit_icon.tgaBinary files differ deleted file mode 100644 index 8666f0bbe6..0000000000 --- a/indra/newview/skins/default/textures/image_edit_icon.tga +++ /dev/null diff --git a/indra/newview/skins/default/textures/inv_folder_animation.tga b/indra/newview/skins/default/textures/inv_folder_animation.tgaBinary files differ deleted file mode 100644 index 1b4df7a2d8..0000000000 --- a/indra/newview/skins/default/textures/inv_folder_animation.tga +++ /dev/null diff --git a/indra/newview/skins/default/textures/inv_folder_inbox.tga b/indra/newview/skins/default/textures/inv_folder_inbox.tgaBinary files differ deleted file mode 100644 index 04539c2cc4..0000000000 --- a/indra/newview/skins/default/textures/inv_folder_inbox.tga +++ /dev/null diff --git a/indra/newview/skins/default/textures/map_avatar_above_8.tga b/indra/newview/skins/default/textures/map_avatar_above_8.tgaBinary files differ deleted file mode 100644 index 193428e530..0000000000 --- a/indra/newview/skins/default/textures/map_avatar_above_8.tga +++ /dev/null diff --git a/indra/newview/skins/default/textures/map_avatar_below_8.tga b/indra/newview/skins/default/textures/map_avatar_below_8.tgaBinary files differ deleted file mode 100644 index 9e14bfab90..0000000000 --- a/indra/newview/skins/default/textures/map_avatar_below_8.tga +++ /dev/null diff --git a/indra/newview/skins/default/textures/map_event_adult.tga b/indra/newview/skins/default/textures/map_event_adult.tgaBinary files differ deleted file mode 100644 index f548126e5a..0000000000 --- a/indra/newview/skins/default/textures/map_event_adult.tga +++ /dev/null diff --git a/indra/newview/skins/default/textures/map_event_mature.tga b/indra/newview/skins/default/textures/map_event_mature.tgaBinary files differ deleted file mode 100644 index 71067c0dfd..0000000000 --- a/indra/newview/skins/default/textures/map_event_mature.tga +++ /dev/null diff --git a/indra/newview/skins/default/textures/map_track_8.tga b/indra/newview/skins/default/textures/map_track_8.tgaBinary files differ deleted file mode 100644 index 53425ff45b..0000000000 --- a/indra/newview/skins/default/textures/map_track_8.tga +++ /dev/null diff --git a/indra/newview/skins/default/textures/model_wizard/divider_line.png b/indra/newview/skins/default/textures/model_wizard/divider_line.pngBinary files differ deleted file mode 100644 index 76c9e68767..0000000000 --- a/indra/newview/skins/default/textures/model_wizard/divider_line.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/mute_icon.tga b/indra/newview/skins/default/textures/mute_icon.tgaBinary files differ deleted file mode 100644 index 879b9e6188..0000000000 --- a/indra/newview/skins/default/textures/mute_icon.tga +++ /dev/null diff --git a/indra/newview/skins/default/textures/navbar/Arrow_Left_Over.png b/indra/newview/skins/default/textures/navbar/Arrow_Left_Over.pngBinary files differ deleted file mode 100644 index a91b74819f..0000000000 --- a/indra/newview/skins/default/textures/navbar/Arrow_Left_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/navbar/Arrow_Right_Over.png b/indra/newview/skins/default/textures/navbar/Arrow_Right_Over.pngBinary files differ deleted file mode 100644 index a2caf227a7..0000000000 --- a/indra/newview/skins/default/textures/navbar/Arrow_Right_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/navbar/Help_Over.png b/indra/newview/skins/default/textures/navbar/Help_Over.pngBinary files differ deleted file mode 100644 index b9bc0d0f87..0000000000 --- a/indra/newview/skins/default/textures/navbar/Help_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/navbar/Home_Over.png b/indra/newview/skins/default/textures/navbar/Home_Over.pngBinary files differ deleted file mode 100644 index d9c6b3842e..0000000000 --- a/indra/newview/skins/default/textures/navbar/Home_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/places_rating_adult.tga b/indra/newview/skins/default/textures/places_rating_adult.tgaBinary files differ deleted file mode 100644 index c344fb1e78..0000000000 --- a/indra/newview/skins/default/textures/places_rating_adult.tga +++ /dev/null diff --git a/indra/newview/skins/default/textures/places_rating_mature.tga b/indra/newview/skins/default/textures/places_rating_mature.tgaBinary files differ deleted file mode 100644 index 61c879bc92..0000000000 --- a/indra/newview/skins/default/textures/places_rating_mature.tga +++ /dev/null diff --git a/indra/newview/skins/default/textures/places_rating_pg.tga b/indra/newview/skins/default/textures/places_rating_pg.tgaBinary files differ deleted file mode 100644 index 7805dbce60..0000000000 --- a/indra/newview/skins/default/textures/places_rating_pg.tga +++ /dev/null diff --git a/indra/newview/skins/default/textures/propertyline.tga b/indra/newview/skins/default/textures/propertyline.tgaBinary files differ deleted file mode 100644 index 0c504eea71..0000000000 --- a/indra/newview/skins/default/textures/propertyline.tga +++ /dev/null diff --git a/indra/newview/skins/default/textures/quick_tips/avatar_free_mode.png b/indra/newview/skins/default/textures/quick_tips/avatar_free_mode.pngBinary files differ deleted file mode 100644 index be7c87efb6..0000000000 --- a/indra/newview/skins/default/textures/quick_tips/avatar_free_mode.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/quick_tips/camera_free_mode.png b/indra/newview/skins/default/textures/quick_tips/camera_free_mode.pngBinary files differ deleted file mode 100644 index 9a3f3703b2..0000000000 --- a/indra/newview/skins/default/textures/quick_tips/camera_free_mode.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/quick_tips/camera_orbit_mode.png b/indra/newview/skins/default/textures/quick_tips/camera_orbit_mode.pngBinary files differ deleted file mode 100644 index dd72cc0162..0000000000 --- a/indra/newview/skins/default/textures/quick_tips/camera_orbit_mode.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/quick_tips/camera_pan_mode.png b/indra/newview/skins/default/textures/quick_tips/camera_pan_mode.pngBinary files differ deleted file mode 100644 index b537dcbe46..0000000000 --- a/indra/newview/skins/default/textures/quick_tips/camera_pan_mode.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/quick_tips/camera_preset_front_view.png b/indra/newview/skins/default/textures/quick_tips/camera_preset_front_view.pngBinary files differ deleted file mode 100644 index 7674a75ac3..0000000000 --- a/indra/newview/skins/default/textures/quick_tips/camera_preset_front_view.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/quick_tips/camera_preset_group_view.png b/indra/newview/skins/default/textures/quick_tips/camera_preset_group_view.pngBinary files differ deleted file mode 100644 index 9c9b923a5a..0000000000 --- a/indra/newview/skins/default/textures/quick_tips/camera_preset_group_view.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/quick_tips/camera_preset_rear_view.png b/indra/newview/skins/default/textures/quick_tips/camera_preset_rear_view.pngBinary files differ deleted file mode 100644 index 15c3053491..0000000000 --- a/indra/newview/skins/default/textures/quick_tips/camera_preset_rear_view.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/quick_tips/move_fly_first.png b/indra/newview/skins/default/textures/quick_tips/move_fly_first.pngBinary files differ deleted file mode 100644 index b6e2ce60e4..0000000000 --- a/indra/newview/skins/default/textures/quick_tips/move_fly_first.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/quick_tips/move_fly_second.png b/indra/newview/skins/default/textures/quick_tips/move_fly_second.pngBinary files differ deleted file mode 100644 index 84b63cc338..0000000000 --- a/indra/newview/skins/default/textures/quick_tips/move_fly_second.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/quick_tips/move_run_first.png b/indra/newview/skins/default/textures/quick_tips/move_run_first.pngBinary files differ deleted file mode 100644 index 16093dc683..0000000000 --- a/indra/newview/skins/default/textures/quick_tips/move_run_first.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/quick_tips/move_run_second.png b/indra/newview/skins/default/textures/quick_tips/move_run_second.pngBinary files differ deleted file mode 100644 index 19fa43ec32..0000000000 --- a/indra/newview/skins/default/textures/quick_tips/move_run_second.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/quick_tips/move_walk_first.png b/indra/newview/skins/default/textures/quick_tips/move_walk_first.pngBinary files differ deleted file mode 100644 index 92d120d53e..0000000000 --- a/indra/newview/skins/default/textures/quick_tips/move_walk_first.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/quick_tips/move_walk_second.png b/indra/newview/skins/default/textures/quick_tips/move_walk_second.pngBinary files differ deleted file mode 100644 index f8e28722be..0000000000 --- a/indra/newview/skins/default/textures/quick_tips/move_walk_second.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/show_btn.tga b/indra/newview/skins/default/textures/show_btn.tgaBinary files differ deleted file mode 100644 index 5f05f377e3..0000000000 --- a/indra/newview/skins/default/textures/show_btn.tga +++ /dev/null diff --git a/indra/newview/skins/default/textures/show_btn_selected.tga b/indra/newview/skins/default/textures/show_btn_selected.tgaBinary files differ deleted file mode 100644 index 00a2f34a37..0000000000 --- a/indra/newview/skins/default/textures/show_btn_selected.tga +++ /dev/null diff --git a/indra/newview/skins/default/textures/smicon_warn.tga b/indra/newview/skins/default/textures/smicon_warn.tgaBinary files differ deleted file mode 100644 index 90ccaa07e5..0000000000 --- a/indra/newview/skins/default/textures/smicon_warn.tga +++ /dev/null diff --git a/indra/newview/skins/default/textures/spacer35.tga b/indra/newview/skins/default/textures/spacer35.tgaBinary files differ deleted file mode 100644 index b88bc6680a..0000000000 --- a/indra/newview/skins/default/textures/spacer35.tga +++ /dev/null diff --git a/indra/newview/skins/default/textures/square_btn_32x128.tga b/indra/newview/skins/default/textures/square_btn_32x128.tgaBinary files differ deleted file mode 100644 index d7ce58dac3..0000000000 --- a/indra/newview/skins/default/textures/square_btn_32x128.tga +++ /dev/null diff --git a/indra/newview/skins/default/textures/square_btn_selected_32x128.tga b/indra/newview/skins/default/textures/square_btn_selected_32x128.tgaBinary files differ deleted file mode 100644 index 59ca365aa4..0000000000 --- a/indra/newview/skins/default/textures/square_btn_selected_32x128.tga +++ /dev/null diff --git a/indra/newview/skins/default/textures/startup_logo.j2c b/indra/newview/skins/default/textures/startup_logo.j2cBinary files differ deleted file mode 100644 index d1b991f17f..0000000000 --- a/indra/newview/skins/default/textures/startup_logo.j2c +++ /dev/null diff --git a/indra/newview/skins/default/textures/status_busy.tga b/indra/newview/skins/default/textures/status_busy.tgaBinary files differ deleted file mode 100644 index 7743d9c7bb..0000000000 --- a/indra/newview/skins/default/textures/status_busy.tga +++ /dev/null diff --git a/indra/newview/skins/default/textures/taskpanel/TabIcon_Appearance_Off.png b/indra/newview/skins/default/textures/taskpanel/TabIcon_Appearance_Off.pngBinary files differ deleted file mode 100644 index 0b91abfb0d..0000000000 --- a/indra/newview/skins/default/textures/taskpanel/TabIcon_Appearance_Off.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/taskpanel/TabIcon_Appearance_Selected.png b/indra/newview/skins/default/textures/taskpanel/TabIcon_Appearance_Selected.pngBinary files differ deleted file mode 100644 index 33a47236a5..0000000000 --- a/indra/newview/skins/default/textures/taskpanel/TabIcon_Appearance_Selected.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/taskpanel/TabIcon_Home_Off.png b/indra/newview/skins/default/textures/taskpanel/TabIcon_Home_Off.pngBinary files differ deleted file mode 100644 index 421f5e1705..0000000000 --- a/indra/newview/skins/default/textures/taskpanel/TabIcon_Home_Off.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/taskpanel/TabIcon_Me_Selected.png b/indra/newview/skins/default/textures/taskpanel/TabIcon_Me_Selected.pngBinary files differ deleted file mode 100644 index 905d4c973e..0000000000 --- a/indra/newview/skins/default/textures/taskpanel/TabIcon_Me_Selected.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/taskpanel/TabIcon_People_Selected.png b/indra/newview/skins/default/textures/taskpanel/TabIcon_People_Selected.pngBinary files differ deleted file mode 100644 index 909f0d0a47..0000000000 --- a/indra/newview/skins/default/textures/taskpanel/TabIcon_People_Selected.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/taskpanel/TabIcon_Places_Large.png b/indra/newview/skins/default/textures/taskpanel/TabIcon_Places_Large.pngBinary files differ deleted file mode 100644 index cc505c4a30..0000000000 --- a/indra/newview/skins/default/textures/taskpanel/TabIcon_Places_Large.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/taskpanel/TabIcon_Places_Selected.png b/indra/newview/skins/default/textures/taskpanel/TabIcon_Places_Selected.pngBinary files differ deleted file mode 100644 index 8e0fb9661e..0000000000 --- a/indra/newview/skins/default/textures/taskpanel/TabIcon_Places_Selected.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/taskpanel/TabIcon_Things_Selected.png b/indra/newview/skins/default/textures/taskpanel/TabIcon_Things_Selected.pngBinary files differ deleted file mode 100644 index d4ac451c8e..0000000000 --- a/indra/newview/skins/default/textures/taskpanel/TabIcon_Things_Selected.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml index bcdd73aeb8..8702ebde2a 100644 --- a/indra/newview/skins/default/textures/textures.xml +++ b/indra/newview/skins/default/textures/textures.xml @@ -39,7 +39,7 @@ with the same filename but different name    <texture name="Accordion_Over" file_name="containers/Accordion_Over.png" preload="false" />    <texture name="Accordion_Selected" file_name="containers/Accordion_Selected.png" preload="false" /> -<texture name="Activate_Checkmark" file_name="taskpanel/Activate_Checkmark.png" preload="false" /> +  <texture name="Activate_Checkmark" file_name="taskpanel/Activate_Checkmark.png" preload="false" />    <texture name="AddItem_Disabled" file_name="icons/AddItem_Disabled.png" preload="false" />    <texture name="AddItem_Off" file_name="icons/AddItem_Off.png" preload="false" /> @@ -48,9 +48,6 @@ with the same filename but different name    <texture name="Arrow_Left_Off" file_name="navbar/Arrow_Left_Off.png" preload="true" />    <texture name="Arrow_Right_Off" file_name="navbar/Arrow_Right_Off.png" preload="true" /> -<!-- ---> -    <texture name="Arrow_Small_Up" file_name="widgets/Arrow_Small_Up.png" preload="true" />    <texture name="Arrow_Small_Left" file_name="widgets/Arrow_Small_Left.png" preload="true" />    <texture name="Arrow_Small_Right" file_name="widgets/Arrow_Small_Right.png" preload="true" /> @@ -157,7 +154,6 @@ with the same filename but different name    <texture name="ComboButton_Disabled" file_name="widgets/ComboButton_Disabled.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" />    <texture name="ComboButton_Selected" file_name="widgets/ComboButton_Selected.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" />    <texture name="ComboButton_UpSelected" file_name="widgets/ComboButton_UpSelected.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" /> -  <texture name="ComboButton_Up_On_Selected" file_name="widgets/ComboButton_Up_On_Selected.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" />    <texture name="ComboButton_On" file_name="widgets/ComboButton_On.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" />    <texture name="ComboButton_Off" file_name="widgets/ComboButton_Off.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" />    <texture name="ComboButton_UpOff" file_name="widgets/ComboButton_UpOff.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" /> @@ -190,6 +186,10 @@ with the same filename but different name    <texture name="Flag" file_name="navbar/Flag.png" preload="false" /> +  <texture name="Flyout_Left" file_name="windows/Flyout_Left.png" preload="false" /> +  <texture name="Flyout_Pointer" file_name="windows/Flyout_Pointer.png" preload="false" /> +  <texture name="Flyout_Right" file_name="windows/Flyout_Right.png" preload="false" /> +    <texture name="Folder_Arrow" file_name="folder_arrow.tga" preload="false" />    <texture name="ForSale_Badge" file_name="icons/ForSale_Badge.png" preload="false" />    <texture name="ForwardArrow_Off" file_name="icons/ForwardArrow_Off.png" preload="false" /> @@ -572,21 +572,13 @@ with the same filename but different name    <texture name="Sync_Progress_5" file_name="icons/Sync_Progress_5.png" preload="true" />    <texture name="Sync_Progress_6" file_name="icons/Sync_Progress_6.png" preload="true" /> -  <texture name="TabIcon_Appearance_Off" file_name="taskpanel/TabIcon_Appearance_Off.png" preload="false" /> -  <texture name="TabIcon_Appearance_Selected" file_name="taskpanel/TabIcon_Appearance_Selected.png" preload="false" />    <texture name="TabIcon_Close_Off" file_name="taskpanel/TabIcon_Close_Off.png" preload="false" /> -  <texture name="TabIcon_Home_Off" file_name="taskpanel/TabIcon_Home_Off.png" preload="false" />    <texture name="TabIcon_Home_Selected" file_name="taskpanel/TabIcon_Home_Selected.png" preload="false" />    <texture name="TabIcon_Me_Off" file_name="taskpanel/TabIcon_Me_Off.png" preload="false" /> -  <texture name="TabIcon_Me_Selected" file_name="taskpanel/TabIcon_Me_Selected.png" preload="false" />    <texture name="TabIcon_Open_Off" file_name="taskpanel/TabIcon_Open_Off.png" preload="false" />    <texture name="TabIcon_People_Off" file_name="taskpanel/TabIcon_People_Off.png" preload="false" /> -  <texture name="TabIcon_People_Selected" file_name="taskpanel/TabIcon_People_Selected.png" preload="false" /> -  <texture name="TabIcon_Places_Large" file_name="taskpanel/TabIcon_Places_Large.png" preload="false" />    <texture name="TabIcon_Places_Off" file_name="taskpanel/TabIcon_Places_Off.png" preload="false" /> -  <texture name="TabIcon_Places_Selected" file_name="taskpanel/TabIcon_Places_Selected.png" preload="false" />    <texture name="TabIcon_Things_Off" file_name="taskpanel/TabIcon_Things_Off.png" preload="false" /> -  <texture name="TabIcon_Things_Selected" file_name="taskpanel/TabIcon_Things_Selected.png" preload="false" />    <texture name="TabTop_Right_Off" file_name="containers/TabTop_Right_Off.png" preload="false"  scale.left="8" scale.top="8" scale.right="62" scale.bottom="9" />    <texture name="TabTop_Right_Selected" file_name="containers/TabTop_Right_Selected.png" preload="false"  scale.left="8" scale.top="8" scale.right="62" scale.bottom="9" /> @@ -650,6 +642,12 @@ with the same filename but different name    <texture name="VoicePTT_Lvl3" file_name="bottomtray/VoicePTT_Lvl3.png" preload="false" />    <texture name="VoicePTT_Off" file_name="bottomtray/VoicePTT_Off.png" preload="false" />    <texture name="VoicePTT_On" file_name="bottomtray/VoicePTT_On.png" preload="false" /> +   +  <texture name="VoicePTT_Lvl1_Dark" file_name="bottomtray/VoicePTT_Lvl1_Dark.png" preload="false" /> +  <texture name="VoicePTT_Lvl2_Dark" file_name="bottomtray/VoicePTT_Lvl2_Dark.png" preload="false" /> +  <texture name="VoicePTT_Lvl3_Dark" file_name="bottomtray/VoicePTT_Lvl3_Dark.png" preload="false" /> +  <texture name="VoicePTT_Off_Dark" file_name="bottomtray/VoicePTT_Off_Dark.png" preload="false" /> +  <texture name="VoicePTT_On_Dark" file_name="bottomtray/VoicePTT_On_Dark.png" preload="false" />    <texture name="Wearables_Divider" file_name="windows/Wearables_Divider.png" preload="false" /> @@ -682,9 +680,6 @@ with the same filename but different name    <!--WARNING OLD ART BELOW *do not use*-->    <texture name="icn_media_web.tga" preload="true" />    <texture name="icn_media_movie.tga" preload="true" /> -  <texture name="icn_voice-localchat.tga" /> -  <texture name="icn_voice-groupfocus.tga" /> -  <texture name="icn_voice-pvtfocus.tga" />    <texture name="jump_left_out.tga" file_name="widgets/jump_left_out.png" />    <texture name="jump_left_in.tga" file_name="widgets/jump_left_in.png" /> @@ -718,7 +713,6 @@ with the same filename but different name    <texture name="icon_avatar_offline.tga" />    <texture name="icon_avatar_online.tga" /> -  <texture name="icon_day_cycle.tga" />    <texture name="icon_diurnal.tga" />    <texture name="icon_for_sale.tga" file_name="icons/Icon_For_Sale.png" />    <texture name="icon_top_pick.tga" /> @@ -735,7 +729,6 @@ with the same filename but different name    <texture name="map_avatar_16.tga" />    <texture name="map_avatar_8.tga" />    <texture name="map_event.tga" /> -  <texture name="map_event_mature.tga" />    <texture name="map_home.tga" />    <texture name="map_infohub.tga" />    <texture name="map_telehub.tga" /> diff --git a/indra/newview/skins/default/textures/widgets/Checkbox_On_Over.png b/indra/newview/skins/default/textures/widgets/Checkbox_On_Over.pngBinary files differ deleted file mode 100644 index bc504d130e..0000000000 --- a/indra/newview/skins/default/textures/widgets/Checkbox_On_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/widgets/Checkbox_Over.png b/indra/newview/skins/default/textures/widgets/Checkbox_Over.pngBinary files differ deleted file mode 100644 index 5a7162addf..0000000000 --- a/indra/newview/skins/default/textures/widgets/Checkbox_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/widgets/ComboButton_Up_On_Selected.png b/indra/newview/skins/default/textures/widgets/ComboButton_Up_On_Selected.pngBinary files differ deleted file mode 100644 index fd1d11dd0b..0000000000 --- a/indra/newview/skins/default/textures/widgets/ComboButton_Up_On_Selected.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/widgets/DisclosureArrow_Closed_Over.png b/indra/newview/skins/default/textures/widgets/DisclosureArrow_Closed_Over.pngBinary files differ deleted file mode 100644 index 45bcb0464e..0000000000 --- a/indra/newview/skins/default/textures/widgets/DisclosureArrow_Closed_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/widgets/DisclosureArrow_Opened_Over.png b/indra/newview/skins/default/textures/widgets/DisclosureArrow_Opened_Over.pngBinary files differ deleted file mode 100644 index dabbd85b34..0000000000 --- a/indra/newview/skins/default/textures/widgets/DisclosureArrow_Opened_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/widgets/PushButton_On_Over.png b/indra/newview/skins/default/textures/widgets/PushButton_On_Over.pngBinary files differ deleted file mode 100644 index 064a4c4f7f..0000000000 --- a/indra/newview/skins/default/textures/widgets/PushButton_On_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/widgets/PushButton_Selected_Over.png b/indra/newview/skins/default/textures/widgets/PushButton_Selected_Over.pngBinary files differ deleted file mode 100644 index 064a4c4f7f..0000000000 --- a/indra/newview/skins/default/textures/widgets/PushButton_Selected_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/widgets/RadioButton_On_Over.png b/indra/newview/skins/default/textures/widgets/RadioButton_On_Over.pngBinary files differ deleted file mode 100644 index 3e7d803a28..0000000000 --- a/indra/newview/skins/default/textures/widgets/RadioButton_On_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/widgets/RadioButton_Over.png b/indra/newview/skins/default/textures/widgets/RadioButton_Over.pngBinary files differ deleted file mode 100644 index a5c8cbe293..0000000000 --- a/indra/newview/skins/default/textures/widgets/RadioButton_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Down_Over.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Down_Over.pngBinary files differ deleted file mode 100644 index 605d159eaa..0000000000 --- a/indra/newview/skins/default/textures/widgets/ScrollArrow_Down_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Left_Over.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Left_Over.pngBinary files differ deleted file mode 100644 index c79547dffd..0000000000 --- a/indra/newview/skins/default/textures/widgets/ScrollArrow_Left_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Right_Over.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Right_Over.pngBinary files differ deleted file mode 100644 index e353542ad9..0000000000 --- a/indra/newview/skins/default/textures/widgets/ScrollArrow_Right_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Up_Over.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Up_Over.pngBinary files differ deleted file mode 100644 index dd2fceb716..0000000000 --- a/indra/newview/skins/default/textures/widgets/ScrollArrow_Up_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/widgets/ScrollThumb_Horiz_Over.png b/indra/newview/skins/default/textures/widgets/ScrollThumb_Horiz_Over.pngBinary files differ deleted file mode 100644 index cf78ea3924..0000000000 --- a/indra/newview/skins/default/textures/widgets/ScrollThumb_Horiz_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/widgets/ScrollThumb_Vert_Over.png b/indra/newview/skins/default/textures/widgets/ScrollThumb_Vert_Over.pngBinary files differ deleted file mode 100644 index 53587197da..0000000000 --- a/indra/newview/skins/default/textures/widgets/ScrollThumb_Vert_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_On.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_On.pngBinary files differ deleted file mode 100644 index 7afb9c99c3..0000000000 --- a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_On.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_On_Disabled.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_On_Disabled.pngBinary files differ deleted file mode 100644 index 77c4224539..0000000000 --- a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_On_Disabled.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_On_Over.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_On_Over.pngBinary files differ deleted file mode 100644 index 8b93dd551e..0000000000 --- a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_On_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_On_Selected.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_On_Selected.pngBinary files differ deleted file mode 100644 index 3f207cbea2..0000000000 --- a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Left_On_Selected.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_On.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_On.pngBinary files differ deleted file mode 100644 index 220df9db25..0000000000 --- a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_On.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_On_Over.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_On_Over.pngBinary files differ deleted file mode 100644 index 5bbcdcb0b4..0000000000 --- a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_On_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_On_Press.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_On_Press.pngBinary files differ deleted file mode 100644 index dde367f05e..0000000000 --- a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_On_Press.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Over.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Over.pngBinary files differ deleted file mode 100644 index d4f30b9adb..0000000000 --- a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected_Over.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected_Over.pngBinary files differ deleted file mode 100644 index 5bbcdcb0b4..0000000000 --- a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Middle_Selected_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_On.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_On.pngBinary files differ deleted file mode 100644 index 467c43fc90..0000000000 --- a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_On.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_On_Over.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_On_Over.pngBinary files differ deleted file mode 100644 index 2049736897..0000000000 --- a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_On_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Selected_Over.png b/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Selected_Over.pngBinary files differ deleted file mode 100644 index 2049736897..0000000000 --- a/indra/newview/skins/default/textures/widgets/SegmentedBtn_Right_Selected_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/widgets/SliderThumb_Over.png b/indra/newview/skins/default/textures/widgets/SliderThumb_Over.pngBinary files differ deleted file mode 100644 index b6f900d3bd..0000000000 --- a/indra/newview/skins/default/textures/widgets/SliderThumb_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/widgets/Stepper_Down_Over.png b/indra/newview/skins/default/textures/widgets/Stepper_Down_Over.pngBinary files differ deleted file mode 100644 index 01e0a2d9f1..0000000000 --- a/indra/newview/skins/default/textures/widgets/Stepper_Down_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/widgets/Stepper_Up_Over.png b/indra/newview/skins/default/textures/widgets/Stepper_Up_Over.pngBinary files differ deleted file mode 100644 index 2ce84ea5be..0000000000 --- a/indra/newview/skins/default/textures/widgets/Stepper_Up_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/windows/Flyout.png b/indra/newview/skins/default/textures/windows/Flyout.pngBinary files differ deleted file mode 100644 index 5596b194c9..0000000000 --- a/indra/newview/skins/default/textures/windows/Flyout.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/windows/Flyout_Pointer_Up.png b/indra/newview/skins/default/textures/windows/Flyout_Pointer_Up.pngBinary files differ deleted file mode 100644 index 361fab59e0..0000000000 --- a/indra/newview/skins/default/textures/windows/Flyout_Pointer_Up.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/windows/Icon_Gear_Over.png b/indra/newview/skins/default/textures/windows/Icon_Gear_Over.pngBinary files differ deleted file mode 100644 index 67bd399358..0000000000 --- a/indra/newview/skins/default/textures/windows/Icon_Gear_Over.png +++ /dev/null diff --git a/indra/newview/skins/default/textures/windows/Icon_Undock_Press.png b/indra/newview/skins/default/textures/windows/Icon_Undock_Press.pngBinary files differ deleted file mode 100644 index 3ab8c3666a..0000000000 --- a/indra/newview/skins/default/textures/windows/Icon_Undock_Press.png +++ /dev/null diff --git a/indra/newview/skins/default/xui/en/floater_avatar.xml b/indra/newview/skins/default/xui/en/floater_avatar.xml index 2d973e7d90..6009821f7f 100644 --- a/indra/newview/skins/default/xui/en/floater_avatar.xml +++ b/indra/newview/skins/default/xui/en/floater_avatar.xml @@ -16,11 +16,11 @@   save_rect="true"   save_visibility="true"   title="AVATAR PICKER" - width="635"> + width="700">      <web_browser        top="25"        height="200" -      width="635" +      width="700"        follows="all"        name="avatar_picker_contents"        trusted_content="true"/> diff --git a/indra/newview/skins/default/xui/en/floater_buy_currency_html.xml b/indra/newview/skins/default/xui/en/floater_buy_currency_html.xml index b9c415633f..0637eedfb2 100644 --- a/indra/newview/skins/default/xui/en/floater_buy_currency_html.xml +++ b/indra/newview/skins/default/xui/en/floater_buy_currency_html.xml @@ -23,6 +23,5 @@      right="-1"       top="1"      bottom="-1"  -    ignore_ui_scale="false"      name="browser"/>  </floater> diff --git a/indra/newview/skins/default/xui/en/floater_toybox.xml b/indra/newview/skins/default/xui/en/floater_toybox.xml index ef3951a1cd..493d44a9cf 100644 --- a/indra/newview/skins/default/xui/en/floater_toybox.xml +++ b/indra/newview/skins/default/xui/en/floater_toybox.xml @@ -5,7 +5,7 @@    can_minimize="false"    can_resize="false"    default_tab_group="1" -  height="460" +  height="330"    help_topic="toybox"    layout="topleft"    legacy_header_height="18" @@ -46,7 +46,7 @@        Buttons will appear as shown or as icon-only depending on each toolbar's settings.    </text>    <toolbar -    bottom="395" +    bottom="265"      button_display_mode="icons_with_text"      follows="all"      left="20" @@ -82,20 +82,32 @@    <panel      bevel_style="none"      border="true" -    bottom="396" +    bottom="266"      follows="left|bottom|right"      left="20"      right="-20" -    top="396" /> +    top="266" /> +  <button +    follows="left|bottom|right" +    height="23" +    label="Clear all toolbars" +    label_selected="Clear all toolbars" +    layout="topleft" +    left="185" +    name="btn_clear_all" +    top="285" +    width="130"> +    <button.commit_callback function="Toybox.ClearAll" /> +  </button>    <button      follows="left|bottom|right"      height="23"      label="Restore defaults"      label_selected="Restore defaults"      layout="topleft" -    left="260" +    left="335"      name="btn_restore_defaults" -    top="415" +    top="285"      width="130">      <button.commit_callback function="Toybox.RestoreDefaults" />    </button> diff --git a/indra/newview/skins/default/xui/en/menu_toolbars.xml b/indra/newview/skins/default/xui/en/menu_toolbars.xml index 7384114d7d..fbe40a7244 100644 --- a/indra/newview/skins/default/xui/en/menu_toolbars.xml +++ b/indra/newview/skins/default/xui/en/menu_toolbars.xml @@ -3,9 +3,15 @@        layout="topleft"        name="Toolbars Popup"        visible="false"> +  <menu_item_call label="Remove this button" +                  layout="topleft" +                  name="Remove button"> +    <menu_item_call.on_click function="Toolbars.RemoveSelectedCommand" /> +  </menu_item_call> +  <menu_item_separator layout="topleft" />    <menu_item_call label="Toolbar buttons..."                    layout="topleft" -                  name="Chose Buttons"> +                  name="Choose Buttons">      <menu_item_call.on_click function="Floater.Show"                               parameter="toybox" />    </menu_item_call> diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index 9c44d90a6e..263d961be1 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -538,13 +538,13 @@  	    <menu  	     create_jump_keys="true" -	     label="Enviroment Editor" -	     name="Enviroment Editor" +	     label="Environment Editor" +	     name="Environment Editor"  	     tear_off="true">  	     	<menu_item_call -	     	 label="Enviroment Settings..." -	     	 name="Enviroment Settings"> +	     	 label="Environment Settings..." +	     	 name="Environment Settings">  	     	 	<menu_item_call.on_click  	     	 	 function="World.EnvSettings"                   parameter="editor"/> diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 3ed8c30ca8..e4458f33b1 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -4636,7 +4636,21 @@ Are you sure you want to quit?     name="ConfirmRestoreToybox"     type="alertmodal">      <unique/> -Are you sure you want to restore your default buttons and toolbars?  +This action will restore your default buttons and toolbars. + +You cannot undo this action. +    <usetemplate +     name="okcancelbuttons" +     notext="Cancel" +     yestext="OK"/> +  </notification> + +  <notification +   icon="alertmodal.tga" +   name="ConfirmClearAllToybox" +   type="alertmodal"> +    <unique/> +This action will return all buttons to the toolbox and your toolbars will be empty.  You cannot undo this action.      <usetemplate @@ -4644,7 +4658,7 @@ You cannot undo this action.       notext="Cancel"       yestext="OK"/>    </notification> -   +    <notification     icon="alertmodal.tga"     name="DeleteItems" diff --git a/indra/newview/skins/default/xui/en/panel_edit_jacket.xml b/indra/newview/skins/default/xui/en/panel_edit_jacket.xml index 8e8d8e6505..0f8c37c691 100644 --- a/indra/newview/skins/default/xui/en/panel_edit_jacket.xml +++ b/indra/newview/skins/default/xui/en/panel_edit_jacket.xml @@ -32,7 +32,7 @@          name="Upper Fabric"          tool_tip="Click to choose a picture"          top="10" -        width="74" > +        width="75" >           <texture_picker.commit_callback               function="TexturePicker.Commit" />         </texture_picker> diff --git a/indra/newview/skins/default/xui/en/panel_login.xml b/indra/newview/skins/default/xui/en/panel_login.xml index 3835cd17b6..6521bf2a4e 100644 --- a/indra/newview/skins/default/xui/en/panel_login.xml +++ b/indra/newview/skins/default/xui/en/panel_login.xml @@ -22,17 +22,17 @@ top="600"  <!-- *NOTE: Custom resize logic for login_html in llpanellogin.cpp -->  <web_browser    tab_stop="false"  -trusted_content="true"  -bg_opaque_color="Black" -border_visible="false" -bottom="600" -follows="all" -left="0" -name="login_html" -start_url="" -top="0" -height="600" -     width="980" /> +  trusted_content="true"  +  bg_opaque_color="Black" +  border_visible="false" +  bottom="600" +  follows="all" +  left="0" +  name="login_html" +  start_url="" +  top="0" +  height="600" +  width="980"/>  <layout_stack  follows="left|bottom|right"  name="login_widgets" diff --git a/indra/newview/skins/default/xui/en/panel_places.xml b/indra/newview/skins/default/xui/en/panel_places.xml index 5d7334f780..670aa47313 100644 --- a/indra/newview/skins/default/xui/en/panel_places.xml +++ b/indra/newview/skins/default/xui/en/panel_places.xml @@ -202,7 +202,7 @@ background_visible="true"  					</layout_panel>  					<layout_panel -					follows="bottom|left|right" +					follows="bottom|right"  					height="23"  					layout="bottomleft"  					left_pad="0" @@ -212,7 +212,7 @@ background_visible="true"  				    auto_resize="true"  					width="24">  						<menu_button -				         follows="bottom|left|right" +				         follows="bottom|right"  				         height="23"  						 image_disabled="ComboButton_UpOff"  						 image_unselected="ComboButton_UpOff" diff --git a/indra/newview/skins/default/xui/en/widgets/chiclet_im_adhoc.xml b/indra/newview/skins/default/xui/en/widgets/chiclet_im_adhoc.xml index 413ca1d1ef..f47e9874b4 100644 --- a/indra/newview/skins/default/xui/en/widgets/chiclet_im_adhoc.xml +++ b/indra/newview/skins/default/xui/en/widgets/chiclet_im_adhoc.xml @@ -12,13 +12,19 @@       tab_stop="false"       width="25" />      <chiclet_im_adhoc.speaker -     auto_update="true" -     draw_border="false" -     height="23" -     left="25" -     name="speaker" -     visible="false" -     width="20" /> +      image_mute="Parcel_VoiceNo_Light" +      image_off="VoicePTT_Off_Dark" +      image_on="VoicePTT_On_Dark" +      image_level_1="VoicePTT_Lvl1_Dark" +      image_level_2="VoicePTT_Lvl2_Dark" +      image_level_3="VoicePTT_Lvl3_Dark" +      auto_update="true" +      draw_border="false" +      height="24" +      left="25" +      name="speaker" +      visible="false" +      width="20" />      <chiclet_im_adhoc.avatar_icon       bottom="3"       follows="left|top|bottom" diff --git a/indra/newview/skins/default/xui/en/widgets/chiclet_im_group.xml b/indra/newview/skins/default/xui/en/widgets/chiclet_im_group.xml index 372a89cbc7..8dfdf95e80 100644 --- a/indra/newview/skins/default/xui/en/widgets/chiclet_im_group.xml +++ b/indra/newview/skins/default/xui/en/widgets/chiclet_im_group.xml @@ -12,13 +12,19 @@       tab_stop="false"       width="25" />      <chiclet_im_group.speaker -     auto_update="true" -     draw_border="false" -     height="25" -     left="25" -     name="speaker" -     visible="false" -     width="20" /> +      image_mute="Parcel_VoiceNo_Light" +      image_off="VoicePTT_Off_Dark" +      image_on="VoicePTT_On_Dark" +      image_level_1="VoicePTT_Lvl1_Dark" +      image_level_2="VoicePTT_Lvl2_Dark" +      image_level_3="VoicePTT_Lvl3_Dark" +      auto_update="true" +      draw_border="false" +      height="24" +      left="25" +      name="speaker" +      visible="false" +      width="20" />      <chiclet_im_group.group_icon       bottom="3"       default_icon="Generic_Group" diff --git a/indra/newview/skins/default/xui/en/widgets/chiclet_im_p2p.xml b/indra/newview/skins/default/xui/en/widgets/chiclet_im_p2p.xml index d27c14f4e7..cef698e577 100644 --- a/indra/newview/skins/default/xui/en/widgets/chiclet_im_p2p.xml +++ b/indra/newview/skins/default/xui/en/widgets/chiclet_im_p2p.xml @@ -12,13 +12,19 @@       tab_stop="false"       width="25"/>      <chiclet_im_p2p.speaker -     auto_update="true" -     draw_border="false" -     height="23" -     left="25" -     name="speaker" -     visible="false" -     width="20" /> +      image_mute="Parcel_VoiceNo_Light" +      image_off="VoicePTT_Off_Dark" +      image_on="VoicePTT_On_Dark" +      image_level_1="VoicePTT_Lvl1_Dark" +      image_level_2="VoicePTT_Lvl2_Dark" +      image_level_3="VoicePTT_Lvl3_Dark" +      auto_update="true" +      draw_border="false" +      height="24" +      left="25" +      name="speaker" +      visible="false" +      width="20" />      <chiclet_im_p2p.avatar_icon       bottom="3"       color="white" diff --git a/indra/newview/skins/default/xui/en/widgets/inbox_folder_view_item.xml b/indra/newview/skins/default/xui/en/widgets/inbox_folder_view_item.xml new file mode 100644 index 0000000000..7a7a6e9a09 --- /dev/null +++ b/indra/newview/skins/default/xui/en/widgets/inbox_folder_view_item.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<inbox_folder_view_item +  item_height="20"  +  item_top_pad="4" +  selection_image="Rounded_Square" +  > +	<new_badge  +        label="New"  +        label_offset_horiz="-1" +        location="right"  +        padding_horiz="12.5"  +        padding_vert="2" +        location_offset_hcenter="-23" +        border_image="New_Tag_Border" +        border_color="DkGray2" +        image="New_Tag_Background" +        image_color="Black" +        /> +</inbox_folder_view_item> diff --git a/indra/newview/skins/minimal/xui/ru/menu_script_chiclet.xml b/indra/newview/skins/minimal/xui/ru/menu_script_chiclet.xml deleted file mode 100644 index f95913ef2b..0000000000 --- a/indra/newview/skins/minimal/xui/ru/menu_script_chiclet.xml +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="ScriptChiclet Menu"> -	<menu_item_call label="Close (TODO: translate to Russian)" name="Close"/> -</menu> diff --git a/indra/newview/skins/minimal/xui/tr/menu_script_chiclet.xml b/indra/newview/skins/minimal/xui/tr/menu_script_chiclet.xml deleted file mode 100644 index 2efe6d7e71..0000000000 --- a/indra/newview/skins/minimal/xui/tr/menu_script_chiclet.xml +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="ScriptChiclet Menu"> -	<menu_item_call label="Close (TODO: translate to Turkish)" name="Close"/> -</menu> diff --git a/indra/newview/skins/minimal/xui/zh/menu_script_chiclet.xml b/indra/newview/skins/minimal/xui/zh/menu_script_chiclet.xml deleted file mode 100644 index a0a8520650..0000000000 --- a/indra/newview/skins/minimal/xui/zh/menu_script_chiclet.xml +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<menu name="ScriptChiclet Menu"> -	<menu_item_call label="Close (TODO: translate to Traditional Chinese)" name="Close"/> -</menu> | 
