diff options
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/app_settings/settings.xml | 4 | ||||
| -rw-r--r-- | indra/newview/llappviewer.cpp | 12 | ||||
| -rw-r--r-- | indra/newview/llbottomtray.cpp | 35 | ||||
| -rw-r--r-- | indra/newview/llbottomtray.h | 2 | ||||
| -rw-r--r-- | indra/newview/llfloatersearch.cpp | 65 | ||||
| -rw-r--r-- | indra/newview/llfolderview.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llfolderviewitem.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/llpanelgroupgeneral.cpp | 5 | ||||
| -rw-r--r-- | indra/newview/llpanelmarketplaceinboxinventory.cpp | 7 | ||||
| -rw-r--r-- | indra/newview/llviewermessage.cpp | 50 | ||||
| -rw-r--r-- | indra/newview/llvoicevivox.cpp | 31 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/notifications.xml | 26 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/panel_bottomtray.xml | 6 | ||||
| -rw-r--r-- | indra/newview/viewer_manifest.py | 8 | 
14 files changed, 108 insertions, 149 deletions
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 7ab9f36b87..60025707a4 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -1858,7 +1858,7 @@      <key>Type</key>      <string>Boolean</string>      <key>Value</key> -    <integer>0</integer> +    <integer>1</integer>    </map>      <key>Cursor3D</key>      <map> @@ -4059,7 +4059,7 @@        <key>Type</key>        <string>String</string>        <key>Value</key> -      <string>http://search.secondlife.com/viewer/[CATEGORY]/?q=[QUERY]</string> +      <string>http://search.secondlife.com/viewer/[CATEGORY]/?q=[QUERY]&p=[AUTH_TOKEN]&r=[MATURITY]&lang=[LANGUAGE]&g=[GODLIKE]&sid=[SESSION_ID]&rid=[REGION_ID]&pid=[PARCEL_ID]&channel=[CHANNEL]&version=[VERSION]&major=[VERSION_MAJOR]&minor=[VERSION_MINOR]&patch=[VERSION_PATCH]&build=[VERSION_BUILD]</string>      </map>      <key>WebProfileURL</key>      <map> diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 7e597fe5dc..4e1ef59765 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -786,6 +786,12 @@ bool LLAppViewer::init()  		&LLUI::sGLScaleFactor);  	LL_INFOS("InitInfo") << "UI initialized." << LL_ENDL ; +	// Setup paths and LLTrans after LLUI::initClass has been called. +	LLUI::setupPaths(); +	LLTransUtil::parseStrings("strings.xml", default_trans_args); +	LLTransUtil::parseLanguageStrings("language_settings.xml"); + +	// Setup notifications after LLUI::setupPaths() has been called.  	LLNotifications::instance();  	LL_INFOS("InitInfo") << "Notifications initialized." << LL_ENDL ; @@ -831,12 +837,6 @@ bool LLAppViewer::init()  		LLError::setPrintLocation(true);  	} - -	// Setup paths and LLTrans after LLUI::initClass has been called -	LLUI::setupPaths(); -	LLTransUtil::parseStrings("strings.xml", default_trans_args);		 -	LLTransUtil::parseLanguageStrings("language_settings.xml"); -	  	// LLKeyboard relies on LLUI to know what some accelerator keys are called.  	LLKeyboard::setStringTranslatorFunc( LLTrans::getKeyboardString ); diff --git a/indra/newview/llbottomtray.cpp b/indra/newview/llbottomtray.cpp index 79e6c7b66b..c8cfe5b51e 100644 --- a/indra/newview/llbottomtray.cpp +++ b/indra/newview/llbottomtray.cpp @@ -201,7 +201,8 @@ public:  };  LLBottomTray::LLBottomTray(const LLSD&) -:	mChicletPanel(NULL), +:	mDesiredNearbyChatWidth(0), +	mChicletPanel(NULL),  	mSpeakPanel(NULL),  	mSpeakBtn(NULL),  	mNearbyChatBar(NULL), @@ -1095,33 +1096,35 @@ S32 LLBottomTray::processWidthDecreased(S32 delta_width)  	if (still_should_be_processed)  	{  		processShrinkButtons(delta_width, buttons_freed_width); +		still_should_be_processed = delta_width < 0;  	} +  	// 3. Decreasing width of nearby chat.  	const S32 chatbar_panel_min_width = get_panel_min_width(mToolbarStack, mChatBarContainer);  	const S32 chatbar_panel_width = mChatBarContainer->getRect().getWidth();  	if (still_should_be_processed && chatbar_panel_width > chatbar_panel_min_width)  	{  		// we have some space to decrease chatbar panel -		S32 panel_delta_min = chatbar_panel_width - chatbar_panel_min_width; +		S32 chatbar_shrink_headroom = chatbar_panel_width - chatbar_panel_min_width; -		S32 delta_panel = llmin(-delta_width, panel_delta_min); +		S32 shrink_by = llmin(-delta_width, chatbar_shrink_headroom);  		// is chatbar panel wide enough to process resizing? -		delta_width += panel_delta_min; +		delta_width += chatbar_shrink_headroom;  		still_should_be_processed = delta_width < 0;  		// chatbar should only be shrunk here, not stretched -		if(delta_panel > 0) +		if (shrink_by > 0)  		{ -			lldebugs << "Shrinking nearby chat bar by " << delta_panel << " px " << llendl; -			mChatBarContainer->reshape(mNearbyChatBar->getRect().getWidth() - delta_panel, mChatBarContainer->getRect().getHeight()); +			lldebugs << "Shrinking nearby chat bar by " << shrink_by << " px " << llendl; +			mChatBarContainer->reshape(mNearbyChatBar->getRect().getWidth() - shrink_by, mChatBarContainer->getRect().getHeight());  		}  		log(mNearbyChatBar, "after processing panel decreasing via nearby chatbar panel");  		lldebugs << "RS_CHATBAR_INPUT" -			<< ", delta_panel: " << delta_panel +			<< ", shrink_by: " << shrink_by  			<< ", delta_width: " << delta_width  			<< llendl;  	} @@ -1200,16 +1203,16 @@ void LLBottomTray::processWidthIncreased(S32 delta_width)  		<< ", mDesiredNearbyChatWidth = " << mDesiredNearbyChatWidth << llendl;  	if (delta_width > 0 && chatbar_panel_width < mDesiredNearbyChatWidth)  	{ -		S32 delta_panel_max = mDesiredNearbyChatWidth - chatbar_panel_width; -		S32 delta_panel = llmin(delta_width, delta_panel_max); -		lldebugs << "Unprocesed delta width: " << delta_width -			<< ", can be applied to chatbar: " << delta_panel_max -			<< ", will be applied: " << delta_panel +		S32 extend_by_max = mDesiredNearbyChatWidth - chatbar_panel_width; +		S32 extend_by = llmin(delta_width, extend_by_max); +		lldebugs << "Unprocessed delta width: " << delta_width +			<< " px, chatbar can be extended by " << extend_by_max +			<< " px, extending it by " << extend_by << " px"  			<< llendl; -		delta_width -= delta_panel_max; -		lldebugs << "Extending nearby chat bar by " << delta_panel << " px " << llendl; -		mChatBarContainer->reshape(chatbar_panel_width + delta_panel, mChatBarContainer->getRect().getHeight()); +		delta_width -= extend_by_max; +		lldebugs << "Extending nearby chat bar by " << extend_by << " px " << llendl; +		mChatBarContainer->reshape(chatbar_panel_width + extend_by, mChatBarContainer->getRect().getHeight());  		log(mNearbyChatBar, "applied unprocessed delta width");  	} diff --git a/indra/newview/llbottomtray.h b/indra/newview/llbottomtray.h index 62718531ef..e26b0792e9 100644 --- a/indra/newview/llbottomtray.h +++ b/indra/newview/llbottomtray.h @@ -323,7 +323,7 @@ private:  	void processExtendButtons(S32& available_width);  	/** -	 * Extends the Speak button if there is anough headroom. +	 * Extends the Speak button if there is enough headroom.  	 *  	 * Unlike other buttons, the Speak buttons has only two possible widths:  	 * the minimal one (without label) and the maximal (default) one. diff --git a/indra/newview/llfloatersearch.cpp b/indra/newview/llfloatersearch.cpp index 23cc23376f..2a946b1edf 100644 --- a/indra/newview/llfloatersearch.cpp +++ b/indra/newview/llfloatersearch.cpp @@ -27,26 +27,16 @@  #include "llviewerprecompiledheaders.h" -#include "llappviewer.h" -#include "llbase64.h"  #include "llcommandhandler.h"  #include "llfloaterreg.h"  #include "llfloatersearch.h"  #include "llmediactrl.h"  #include "llnotificationsutil.h" -#include "llparcel.h" -#include "llplugincookiestore.h"  #include "lllogininstance.h"  #include "lluri.h"  #include "llagent.h" -#include "llsdserialize.h"  #include "llui.h"  #include "llviewercontrol.h" -#include "llviewerregion.h" -#include "llversioninfo.h" -#include "llviewermedia.h" -#include "llviewernetwork.h" -#include "llviewerparcelmgr.h"  #include "llweb.h"  // support secondlife:///app/search/{CATEGORY}/{QUERY} SLapps @@ -178,14 +168,12 @@ void LLFloaterSearch::search(const SearchQuery &p)  	// add the permissions token that login.cgi gave us  	// We use "search_token", and fallback to "auth_token" if not present. -	LLSD search_cookie; -  	LLSD search_token = LLLoginInstance::getInstance()->getResponse("search_token");  	if (search_token.asString().empty())  	{  		search_token = LLLoginInstance::getInstance()->getResponse("auth_token");  	} -	search_cookie["AUTH_TOKEN"] = search_token.asString(); +	subs["AUTH_TOKEN"] = search_token.asString();  	// add the user's preferred maturity (can be changed via prefs)  	std::string maturity; @@ -201,57 +189,10 @@ void LLFloaterSearch::search(const SearchQuery &p)  	{  		maturity = "13";  // PG  	} -	search_cookie["MATURITY"] = maturity; +	subs["MATURITY"] = maturity;  	// add the user's god status -	search_cookie["GODLIKE"] = gAgent.isGodlike() ? "1" : "0"; -	search_cookie["VERSION"] = LLVersionInfo::getVersion(); -	search_cookie["VERSION_MAJOR"] = LLVersionInfo::getMajor(); -	search_cookie["VERSION_MINOR"] = LLVersionInfo::getMinor(); -	search_cookie["VERSION_PATCH"] = LLVersionInfo::getPatch(); -	search_cookie["VERSION_BUILD"] = LLVersionInfo::getBuild(); -	search_cookie["CHANNEL"] = LLVersionInfo::getChannel(); -	search_cookie["GRID"] = LLGridManager::getInstance()->getGridLabel(); -	search_cookie["OS"] = LLAppViewer::instance()->getOSInfo().getOSStringSimple(); -	search_cookie["SESSION_ID"] = gAgent.getSessionID(); -	search_cookie["FIRST_LOGIN"] = gAgent.isFirstLogin(); - -	std::string lang = LLUI::getLanguage(); -	if (lang == "en-us") -	{ -		lang = "en"; -	} -	search_cookie["LANGUAGE"] = lang; - -	// find the region ID -	LLUUID region_id; -	LLViewerRegion *region = gAgent.getRegion(); -	if (region) -	{ -		region_id = region->getRegionID(); -	} -	search_cookie["REGION_ID"] = region_id; - -	// find the parcel local ID -	S32 parcel_id = 0; -	LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); -	if (parcel) -	{ -		parcel_id = parcel->getLocalID(); -	} -	search_cookie["PARCEL_ID"] = llformat("%d", parcel_id); - -	std::stringstream cookie_string_stream; -	LLSDSerialize::toXML(search_cookie, cookie_string_stream); -	std::string cookie_string = cookie_string_stream.str(); - -	U8* cookie_string_buffer = (U8*)cookie_string.c_str(); -	std::string cookie_value = LLBase64::encode(cookie_string_buffer, cookie_string.size()); - -	// for staging services -	LLViewerMedia::getCookieStore()->setCookiesFromHost(std::string("viewer_session_info=") + cookie_value, ".lindenlab.com"); -	// for live services -	LLViewerMedia::getCookieStore()->setCookiesFromHost(std::string("viewer_session_info=") + cookie_value, ".secondlife.com"); +	subs["GODLIKE"] = gAgent.isGodlike() ? "1" : "0";  	// get the search URL and expand all of the substitutions  	// (also adds things like [LANGUAGE], [VERSION], [OS], etc.) diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp index 8b72d83830..9ba5f827e2 100644 --- a/indra/newview/llfolderview.cpp +++ b/indra/newview/llfolderview.cpp @@ -1723,7 +1723,7 @@ BOOL LLFolderView::handleUnicodeCharHere(llwchar uni_char)  	}  	BOOL handled = FALSE; -	if (gFocusMgr.childHasKeyboardFocus(getRoot())) +	if (mParentPanel->hasFocus())  	{  		// SL-51858: Key presses are not being passed to the Popup menu.  		// A proper fix is non-trivial so instead just close the menu. diff --git a/indra/newview/llfolderviewitem.cpp b/indra/newview/llfolderviewitem.cpp index 2888f779f4..622dcfe8dd 100644 --- a/indra/newview/llfolderviewitem.cpp +++ b/indra/newview/llfolderviewitem.cpp @@ -282,9 +282,9 @@ void LLFolderViewItem::refreshFromListener()  		setToolTip(mLabel);  		setIcon(mListener->getIcon());  		time_t creation_date = mListener->getCreationDate(); -		if (mCreationDate != creation_date) +		if ((creation_date > 0) && (mCreationDate != creation_date))  		{ -			setCreationDate(mListener->getCreationDate()); +			setCreationDate(creation_date);  			dirtyFilter();  		}  		if (mRoot->useLabelSuffix()) diff --git a/indra/newview/llpanelgroupgeneral.cpp b/indra/newview/llpanelgroupgeneral.cpp index 1576ccccdf..bc594b5517 100644 --- a/indra/newview/llpanelgroupgeneral.cpp +++ b/indra/newview/llpanelgroupgeneral.cpp @@ -579,6 +579,11 @@ void LLPanelGroupGeneral::update(LLGroupChange gc)  	} +	// After role member data was changed in Roles->Members +	// need to update role titles. See STORM-918. +	if (gc == GC_ROLE_MEMBER_DATA) +		LLGroupMgr::getInstance()->sendGroupTitlesRequest(mGroupID); +  	// If this was just a titles update, we are done.  	if (gc == GC_TITLES) return; diff --git a/indra/newview/llpanelmarketplaceinboxinventory.cpp b/indra/newview/llpanelmarketplaceinboxinventory.cpp index f525dbf434..faba6dc0cf 100644 --- a/indra/newview/llpanelmarketplaceinboxinventory.cpp +++ b/indra/newview/llpanelmarketplaceinboxinventory.cpp @@ -192,10 +192,13 @@ void LLInboxFolderViewFolder::draw()  void LLInboxFolderViewFolder::computeFreshness()  { -	const U32 last_expansion = gSavedPerAccountSettings.getU32("LastInventoryInboxActivity"); +	const U32 last_expansion_utc = gSavedPerAccountSettings.getU32("LastInventoryInboxActivity"); -	if (last_expansion > 0) +	if (last_expansion_utc > 0)  	{ +		const U32 time_offset_for_pdt = 7 * 60 * 60; +		const U32 last_expansion = last_expansion_utc - time_offset_for_pdt; +  		mFresh = (mCreationDate > last_expansion);  #if DEBUGGING_FRESHNESS diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 68745d5aeb..6435904fee 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -1299,29 +1299,12 @@ bool highlight_offered_object(const LLUUID& obj_id)  void inventory_offer_mute_callback(const LLUUID& blocked_id,  								   const std::string& full_name, -								   bool is_group, -								   boost::shared_ptr<LLNotificationResponderInterface> offer_ptr) +								   bool is_group)  { -	LLOfferInfo* offer =  dynamic_cast<LLOfferInfo*>(offer_ptr.get()); -	 -	std::string from_name = full_name; -	LLMute::EType type; -	if (is_group) -	{ -		type = LLMute::GROUP; -	} -	else if(offer && offer->mFromObject) -	{ -		//we have to block object by name because blocked_id is an id of owner -		type = LLMute::BY_NAME; -	} -	else -	{ -		type = LLMute::AGENT; -	} +	// *NOTE: blocks owner if the offer came from an object +	LLMute::EType mute_type = is_group ? LLMute::GROUP : LLMute::AGENT; -	// id should be null for BY_NAME mute, see  LLMuteList::add for details   -	LLMute mute(type == LLMute::BY_NAME ? LLUUID::null : blocked_id, from_name, type); +	LLMute mute(blocked_id, full_name, mute_type);  	if (LLMuteList::getInstance()->add(mute))  	{  		LLPanelBlockedList::showPanelAndSelect(blocked_id); @@ -1335,6 +1318,7 @@ void inventory_offer_mute_callback(const LLUUID& blocked_id,  		bool matches(const LLNotificationPtr notification) const  		{  			if(notification->getName() == "ObjectGiveItem"  +				|| notification->getName() == "OwnObjectGiveItem"  				|| notification->getName() == "UserGiveItem")  			{  				return (notification->getPayload()["from_id"].asUUID() == blocked_id); @@ -1495,7 +1479,7 @@ bool LLOfferInfo::inventory_offer_callback(const LLSD& notification, const LLSD&  		llassert(notification_ptr != NULL);  		if (notification_ptr != NULL)  		{ -			gCacheName->get(mFromID, mFromGroup, boost::bind(&inventory_offer_mute_callback,_1,_2,_3,notification_ptr->getResponderPtr())); +			gCacheName->get(mFromID, mFromGroup, boost::bind(&inventory_offer_mute_callback, _1, _2, _3));  		}  	} @@ -1640,7 +1624,7 @@ bool LLOfferInfo::inventory_task_offer_callback(const LLSD& notification, const  		llassert(notification_ptr != NULL);  		if (notification_ptr != NULL)  		{ -			gCacheName->get(mFromID, mFromGroup, boost::bind(&inventory_offer_mute_callback,_1,_2,_3,notification_ptr->getResponderPtr())); +			gCacheName->get(mFromID, mFromGroup, boost::bind(&inventory_offer_mute_callback, _1, _2, _3));  		}  	} @@ -1818,6 +1802,7 @@ void LLOfferInfo::initRespondFunctionMap()  	if(mRespondFunctions.empty())  	{  		mRespondFunctions["ObjectGiveItem"] = boost::bind(&LLOfferInfo::inventory_task_offer_callback, this, _1, _2); +		mRespondFunctions["OwnObjectGiveItem"] = boost::bind(&LLOfferInfo::inventory_task_offer_callback, this, _1, _2);  		mRespondFunctions["UserGiveItem"] = boost::bind(&LLOfferInfo::inventory_offer_callback, this, _1, _2);  	}  } @@ -1905,7 +1890,7 @@ void inventory_offer_handler(LLOfferInfo* info)  	std::string verb = "select?name=" + LLURI::escape(msg);  	args["ITEM_SLURL"] = LLSLURL("inventory", info->mObjectID, verb.c_str()).getSLURLString(); -	LLNotification::Params p("ObjectGiveItem"); +	LLNotification::Params p;  	// Object -> Agent Inventory Offer  	if (info->mFromObject) @@ -1915,7 +1900,10 @@ void inventory_offer_handler(LLOfferInfo* info)  		// Note: sets inventory_task_offer_callback as the callback  		p.substitutions(args).payload(payload).functor.responder(LLNotificationResponderPtr(info));  		info->mPersist = true; -		p.name = "ObjectGiveItem"; + +		// Offers from your own objects need a special notification template. +		p.name = info->mFromID == gAgentID ? "OwnObjectGiveItem" : "ObjectGiveItem"; +  		// Pop up inv offer chiclet and let the user accept (keep), or reject (and silently delete) the inventory.  	    LLPostponedNotification::add<LLPostponedOfferNotification>(p, info->mFromID, info->mFromGroup == TRUE);  	} @@ -2594,8 +2582,9 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)  				bucketp = (struct offer_agent_bucket_t*) &binary_bucket[0];  				info->mType = (LLAssetType::EType) bucketp->asset_type;  				info->mObjectID = bucketp->object_id; +				info->mFromObject = FALSE;  			} -			else +			else // IM_TASK_INVENTORY_OFFERED  			{  				if (sizeof(S8) != binary_bucket_size)  				{ @@ -2605,6 +2594,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)  				}  				info->mType = (LLAssetType::EType) binary_bucket[0];  				info->mObjectID = LLUUID::null; +				info->mFromObject = TRUE;  			}  			info->mIM = dialog; @@ -2613,14 +2603,6 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)  			info->mTransactionID = session_id;  			info->mFolderID = gInventory.findCategoryUUIDForType(LLFolderType::assetTypeToFolderType(info->mType)); -			if (dialog == IM_TASK_INVENTORY_OFFERED) -			{ -				info->mFromObject = TRUE; -			} -			else -			{ -				info->mFromObject = FALSE; -			}  			info->mFromName = name;  			info->mDesc = message;  			info->mHost = msg->getSender(); diff --git a/indra/newview/llvoicevivox.cpp b/indra/newview/llvoicevivox.cpp index 8b942fbc6a..90a05cd9e5 100644 --- a/indra/newview/llvoicevivox.cpp +++ b/indra/newview/llvoicevivox.cpp @@ -4498,17 +4498,25 @@ bool LLVivoxVoiceClient::parcelVoiceInfoReceived(state requesting_state)  bool LLVivoxVoiceClient::requestParcelVoiceInfo()  { -	LL_DEBUGS("Voice") << "sending ParcelVoiceInfoRequest (" << mCurrentRegionName << ", " << mCurrentParcelLocalID << ")" << LL_ENDL; - -	// grab the cap for parcel voice info from the region.    	LLViewerRegion * region = gAgent.getRegion(); -	if (region == NULL) +	if (region == NULL || !region->capabilitiesReceived())  	{ +		// we don't have the cap yet, so return false so the caller can try again later. + +		LL_DEBUGS("Voice") << "ParcelVoiceInfoRequest capability not yet available, deferring" << LL_ENDL;  		return false;  	} +  	// grab the cap.  	std::string url = gAgent.getRegion()->getCapability("ParcelVoiceInfoRequest"); -	if (!url.empty()) +	if (url.empty()) +	{ +		// Region dosn't have the cap. Stop probing. +		LL_DEBUGS("Voice") << "ParcelVoiceInfoRequest capability not available in this region" << LL_ENDL; +		setState(stateDisableCleanup); +		return false; +	} +	else   	{  		// if we've already retrieved the cap from the region, go ahead and make the request,  		// and return true so we can go into the state that waits for the response. @@ -4517,18 +4525,11 @@ bool LLVivoxVoiceClient::requestParcelVoiceInfo()  		LL_DEBUGS("Voice") << "sending ParcelVoiceInfoRequest (" << mCurrentRegionName << ", " << mCurrentParcelLocalID << ")" << LL_ENDL;  		LLHTTPClient::post( -						   url, -						   data, -						   new LLVivoxVoiceClientCapResponder(getState())); +						url, +						data, +						new LLVivoxVoiceClientCapResponder(getState()));  		return true;  	} -	else  -	{ -		 -		// we don't have the cap yet, so return false so the caller can try again later. -		LL_DEBUGS("Voice") << "ParcelVoiceInfoRequest cap not yet available, deferring" << LL_ENDL; -		return false; -	}  }  void LLVivoxVoiceClient::switchChannel( diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 9d42a40e85..41a90f5984 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -5628,7 +5628,7 @@ You can be hurt here. If you die, you will be teleported to your home location.     persist="true"     type="notify">      <unique/> -    <tag>fail</tag> +   <tag>fail</tag>  This area has flying disabled.  You can't fly here.    </notification> @@ -5951,7 +5951,25 @@ An object named <nolink>[OBJECTFROMNAME]</nolink> owned by [NAME_SLU        <button         index="2"         name="Mute" -       text="Block"/> +       text="Block Owner"/> +    </form> +  </notification> + +  <notification +   icon="notify.tga" +   name="OwnObjectGiveItem" +   type="offer"> +Your object named <nolink>[OBJECTFROMNAME]</nolink> has given you this [OBJECTTYPE]: +<nolink>[ITEM_SLURL]</nolink> +    <form name="form"> +      <button +       index="0" +       name="Keep" +       text="Keep"/> +      <button +       index="1" +       name="Discard" +       text="Discard"/>      </form>    </notification> @@ -5963,7 +5981,7 @@ An object named <nolink>[OBJECTFROMNAME]</nolink> owned by [NAME_SLU  [ITEM_SLURL]      <form name="form">        <button -       index="4" +       index="3"         name="Show"         text="Show"/>        <button @@ -7082,7 +7100,7 @@ Mute everyone?       notext="Cancel">        <unique/>      </usetemplate> -    </notification> +  </notification>    <notification    name="HintChat"    label="Chat" diff --git a/indra/newview/skins/default/xui/en/panel_bottomtray.xml b/indra/newview/skins/default/xui/en/panel_bottomtray.xml index c8f8d07701..ec5853649e 100644 --- a/indra/newview/skins/default/xui/en/panel_bottomtray.xml +++ b/indra/newview/skins/default/xui/en/panel_bottomtray.xml @@ -47,13 +47,13 @@           mouse_opaque="false"  		 name="chat_bar_layout_panel"           user_resize="true" -     width="310" > +     width="250" >            <panel              name="chat_bar"              filename="panel_nearby_chat_bar.xml"              left="0"              height="28" -        width="308" +        width="248"              top="0"              mouse_opaque="false"              follows="left|right" @@ -341,7 +341,7 @@ Disabled for now.           height="28"           layout="topleft"           min_height="28" -     min_width="52" +     min_width="62"           mouse_opaque="false"           name="mini_map_btn_panel"           user_resize="false" diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 0a21d8714c..f0bee2bfee 100644 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -66,12 +66,14 @@ class ViewerManifest(LLManifest):                  # include the extracted list of contributors                  contributor_names = self.extract_names("../../doc/contributions.txt")                  self.put_in_file(contributor_names, "contributors.txt") +                self.file_list.append(["../../doc/contributions.txt",self.dst_path_of("contributors.txt")])                  # include the extracted list of translators                  translator_names = self.extract_names("../../doc/translations.txt")                  self.put_in_file(translator_names, "translators.txt") +                self.file_list.append(["../../doc/translations.txt",self.dst_path_of("translators.txt")])                  # include the list of Lindens (if any)                  #   see https://wiki.lindenlab.com/wiki/Generated_Linden_Credits -                linden_names_path = os.getenv("linden_credits") +                linden_names_path = os.getenv("LINDEN_CREDITS")                  if linden_names_path :                      try:                          linden_file = open(linden_names_path,'r') @@ -79,9 +81,13 @@ class ViewerManifest(LLManifest):                          linden_names = ', '.join(linden_file.readlines())                          self.put_in_file(linden_names, "lindens.txt")                          linden_file.close() +                        print "Linden names extracted from '%s'" % linden_names_path +                        self.file_list.append([linden_names_path,self.dst_path_of("lindens.txt")])                      except IOError:                          print "No Linden names found at '%s', using built-in list" % linden_names_path                          pass +                else : +                    print "No 'LINDEN_CREDITS' specified in environment, using built-in list"                  # ... and the entire windlight directory                  self.path("windlight")  | 
