diff options
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/app_settings/settings.xml | 11 | ||||
| -rw-r--r-- | indra/newview/llagentwearables.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llfloaterpreference.cpp | 20 | ||||
| -rw-r--r-- | indra/newview/llfloaterpreference.h | 1 | ||||
| -rw-r--r-- | indra/newview/llfolderview.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/llinventorybridge.cpp | 7 | ||||
| -rw-r--r-- | indra/newview/llinventorypanel.cpp | 21 | ||||
| -rw-r--r-- | indra/newview/llinventorypanel.h | 2 | ||||
| -rw-r--r-- | indra/newview/llpaneloutfitsinventory.cpp | 6 | ||||
| -rw-r--r-- | indra/newview/llsidepanelappearance.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llvovolume.cpp | 7 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/panel_outfits_inventory.xml | 4 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/panel_preferences_privacy.xml | 5 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/panel_prim_media_controls.xml | 18 | 
14 files changed, 87 insertions, 23 deletions
| diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index d43432e215..7d98a4b6ce 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -4820,6 +4820,17 @@        <key>Value</key>        <integer>0</integer>      </map> +	<key>MyOutfitsAutofill</key> +	<map> +		<key>Comment</key> +		<string>Always autofill My Outfits from library when empty (else happens just once).</string> +		<key>Persist</key> +		<integer>1</integer> +		<key>Type</key> +		<string>Boolean</string> +		<key>Value</key> +		<integer>0</integer> +	</map>      <key>NearMeRange</key>      <map>        <key>Comment</key> diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp index d21965568d..29530c9c05 100644 --- a/indra/newview/llagentwearables.cpp +++ b/indra/newview/llagentwearables.cpp @@ -911,7 +911,7 @@ void LLAgentWearables::processAgentInitialWearablesUpdate(LLMessageSystem* mesgs  	// If this is the very first time the user has logged into viewer2+ (from a legacy viewer, or new account)  	// then auto-populate outfits from the library into the My Outfits folder. -	if (LLInventoryModel::getIsFirstTimeInViewer2()) +	if (LLInventoryModel::getIsFirstTimeInViewer2() || gSavedSettings.getBOOL("MyOutfitsAutofill"))  	{  		gAgentWearables.populateMyOutfitsFolder();  	} diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index 11dd48056c..d0716f67b8 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -325,6 +325,7 @@ LLFloaterPreference::LLFloaterPreference(const LLSD& key)  	mCommitCallbackRegistrar.add("Pref.WindowedMod",            boost::bind(&LLFloaterPreference::onCommitWindowedMode, this));	  	mCommitCallbackRegistrar.add("Pref.UpdateSliderText",       boost::bind(&LLFloaterPreference::onUpdateSliderText,this, _1,_2));	  	mCommitCallbackRegistrar.add("Pref.AutoDetectAspect",       boost::bind(&LLFloaterPreference::onCommitAutoDetectAspect, this));	 +	mCommitCallbackRegistrar.add("Pref.ParcelMediaAutoPlayEnable",       boost::bind(&LLFloaterPreference::onCommitParcelMediaAutoPlayEnable, this));	  	mCommitCallbackRegistrar.add("Pref.onSelectAspectRatio",    boost::bind(&LLFloaterPreference::onKeystrokeAspectRatio, this));	  	mCommitCallbackRegistrar.add("Pref.QualityPerformance",     boost::bind(&LLFloaterPreference::onChangeQuality, this, _2));	  	mCommitCallbackRegistrar.add("Pref.applyUIColor",			boost::bind(&LLFloaterPreference::applyUIColor, this ,_1, _2)); @@ -986,6 +987,25 @@ void LLFloaterPreference::onCommitAutoDetectAspect()  	}  } +void LLFloaterPreference::onCommitParcelMediaAutoPlayEnable() +{ +	BOOL autoplay = getChild<LLCheckBoxCtrl>("autoplay_enabled")->get(); +		 +	gSavedSettings.setBOOL(LLViewerMedia::AUTO_PLAY_MEDIA_SETTING, autoplay); + +	lldebugs << "autoplay now = " << int(autoplay) << llendl; + +	if (autoplay) +	{ +		// autoplay toggle has gone from FALSE to TRUE; ensure that +		// the media system is thus actually turned on too. +		gSavedSettings.setBOOL("AudioStreamingVideo", TRUE); +		gSavedSettings.setBOOL("AudioStreamingMusic", TRUE); +		gSavedSettings.setBOOL("AudioStreamingMedia", TRUE); +		llinfos << "autoplay turned on, turned all media subsystems on" << llendl; +	} +} +  void LLFloaterPreference::refresh()  {  	LLPanel::refresh(); diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h index 74a53d673c..b2bc34231d 100644 --- a/indra/newview/llfloaterpreference.h +++ b/indra/newview/llfloaterpreference.h @@ -132,6 +132,7 @@ public:  //	void fractionFromDecimal(F32 decimal_val, S32& numerator, S32& denominator);  	void onCommitAutoDetectAspect(); +	void onCommitParcelMediaAutoPlayEnable();  	void applyResolution();  	void applyUIColor(LLUICtrl* ctrl, const LLSD& param);  	void getUIColor(LLUICtrl* ctrl, const LLSD& param);	 diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp index 112b23d2df..41f4d1a663 100644 --- a/indra/newview/llfolderview.cpp +++ b/indra/newview/llfolderview.cpp @@ -569,6 +569,8 @@ LLFolderViewItem* LLFolderView::getCurSelectedItem( void )  BOOL LLFolderView::setSelection(LLFolderViewItem* selection, BOOL openitem,  								BOOL take_keyboard_focus)  { +	mSignalSelectCallback = take_keyboard_focus ? SIGNAL_KEYBOARD_FOCUS : SIGNAL_NO_KEYBOARD_FOCUS; +  	if( selection == this )  	{  		return FALSE; @@ -596,8 +598,6 @@ BOOL LLFolderView::setSelection(LLFolderViewItem* selection, BOOL openitem,  	llassert(mSelectedItems.size() <= 1); -	mSignalSelectCallback = take_keyboard_focus ? SIGNAL_KEYBOARD_FOCUS : SIGNAL_NO_KEYBOARD_FOCUS; -  	return rv;  } diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 47d593ca89..2a395d79dc 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -2627,6 +2627,13 @@ void LLFolderBridge::buildContextMenu(LLMenuGL& menu, U32 flags)  			{  				mItems.push_back(std::string("Rename"));  				mItems.push_back(std::string("Delete")); + +				// EXT-4030: disallow deletion of currently worn outfit +				const LLViewerInventoryItem *base_outfit_link = LLAppearanceManager::instance().getBaseOutfitLink(); +				if (base_outfit_link && (cat == base_outfit_link->getLinkedCategory())) +				{ +					mDisabledItems.push_back(std::string("Delete")); +				}  			}  		} diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp index 2e5526a273..498a29728c 100644 --- a/indra/newview/llinventorypanel.cpp +++ b/indra/newview/llinventorypanel.cpp @@ -433,11 +433,10 @@ void LLInventoryPanel::initializeViews()  	{  		mStartFolderID = (preferred_type != LLFolderType::FT_NONE ? gInventory.findCategoryUUIDForType(preferred_type) : LLUUID::null);  	} -	llinfos << this << " Generating views for start folder " << mStartFolderString << llendl;  	rebuildViewsFor(mStartFolderID);  	mViewsInitialized = true; -	defaultOpenInventory(); +	openStartFolderOrMyInventory();  }  void LLInventoryPanel::rebuildViewsFor(const LLUUID& id) @@ -577,7 +576,7 @@ void LLInventoryPanel::buildNewViews(const LLUUID& id)  }  // bit of a hack to make sure the inventory is open. -void LLInventoryPanel::defaultOpenInventory() +void LLInventoryPanel::openStartFolderOrMyInventory()  {  	if (mStartFolderString != "")  	{ @@ -585,13 +584,17 @@ void LLInventoryPanel::defaultOpenInventory()  	}  	else  	{ -		// Get the first child (it should be "My Inventory") and -		// open it up by name (just to make sure the first child is actually a folder). -		LLView* first_child = mFolders->getFirstChild(); -		if (first_child) +		// Find My Inventory folder and open it up by name +		for (LLView *child = mFolders->getFirstChild(); child; child = mFolders->findNextSibling(child))  		{ -			const std::string& first_child_name = first_child->getName(); -			mFolders->openFolder(first_child_name); +			LLFolderViewFolder *fchild = dynamic_cast<LLFolderViewFolder*>(child); +			if (fchild && fchild->getListener() && +				(fchild->getListener()->getUUID() == gInventory.getRootFolderID())) +			{ +				const std::string& child_name = child->getName(); +				mFolders->openFolder(child_name); +				break; +			}  		}  	}  } diff --git a/indra/newview/llinventorypanel.h b/indra/newview/llinventorypanel.h index 4f7f0a79f6..09533b52f1 100644 --- a/indra/newview/llinventorypanel.h +++ b/indra/newview/llinventorypanel.h @@ -167,7 +167,7 @@ public:  	static LLInventoryPanel *getActiveInventoryPanel(BOOL auto_open = TRUE);  protected: -	void defaultOpenInventory(); // open the first level of inventory +	void openStartFolderOrMyInventory(); // open the first level of inventory  	LLInventoryModel*			mInventory;  	LLInventoryObserver*		mInventoryObserver; diff --git a/indra/newview/llpaneloutfitsinventory.cpp b/indra/newview/llpaneloutfitsinventory.cpp index 29fa4b319c..a1c12412b5 100644 --- a/indra/newview/llpaneloutfitsinventory.cpp +++ b/indra/newview/llpaneloutfitsinventory.cpp @@ -415,7 +415,7 @@ BOOL LLPanelOutfitsInventory::isActionEnabled(const LLSD& userdata)  	if (command_name == "wear" ||  		command_name == "make_outfit")  	{ -		const BOOL is_my_outfits = (mActivePanel->getName() == "outfitslist_accordionpanel"); +		const BOOL is_my_outfits = (mActivePanel->getName() == "outfitslist_tab");  		if (!is_my_outfits)  		{  			return FALSE; @@ -468,11 +468,11 @@ void LLPanelOutfitsInventory::initTabPanels()  {  	mTabPanels.resize(2); -	LLInventoryPanel *cof_panel = getChild<LLInventoryPanel>("cof_accordionpanel"); +	LLInventoryPanel *cof_panel = getChild<LLInventoryPanel>("cof_tab");  	cof_panel->setShowFolderState(LLInventoryFilter::SHOW_NON_EMPTY_FOLDERS);  	mTabPanels[0] = cof_panel; -	LLInventoryPanel *myoutfits_panel = getChild<LLInventoryPanel>("outfitslist_accordionpanel"); +	LLInventoryPanel *myoutfits_panel = getChild<LLInventoryPanel>("outfitslist_tab");  	myoutfits_panel->setFilterTypes(1LL << LLFolderType::FT_OUTFIT, LLInventoryFilter::FILTERTYPE_CATEGORY);  	myoutfits_panel->setShowFolderState(LLInventoryFilter::SHOW_NON_EMPTY_FOLDERS);  	mTabPanels[1] = myoutfits_panel; diff --git a/indra/newview/llsidepanelappearance.cpp b/indra/newview/llsidepanelappearance.cpp index 0aefebce10..d870009e4f 100644 --- a/indra/newview/llsidepanelappearance.cpp +++ b/indra/newview/llsidepanelappearance.cpp @@ -213,7 +213,7 @@ void LLSidepanelAppearance::onOpenOutfitButtonClicked()  	if (tab_outfits)  	{  		tab_outfits->changeOpenClose(FALSE); -		LLInventoryPanel *inventory_panel = tab_outfits->findChild<LLInventoryPanel>("outfitslist_accordionpanel"); +		LLInventoryPanel *inventory_panel = tab_outfits->findChild<LLInventoryPanel>("outfitslist_tab");  		if (inventory_panel)  		{  			LLFolderView *folder = inventory_panel->getRootFolder(); diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp index 70bfc67523..55609621b3 100644 --- a/indra/newview/llvovolume.cpp +++ b/indra/newview/llvovolume.cpp @@ -2689,13 +2689,16 @@ U32 LLVOVolume::getRenderCost(std::set<LLUUID> &textures) const  		const LLTextureEntry* te = face->getTextureEntry();  		const LLViewerTexture* img = face->getTexture(); -		textures.insert(img->getID()); +		if (img) +		{ +			textures.insert(img->getID()); +		}  		if (face->getPoolType() == LLDrawPool::POOL_ALPHA)  		{  			alpha++;  		} -		else if (img->getPrimaryFormat() == GL_ALPHA) +		else if (img && img->getPrimaryFormat() == GL_ALPHA)  		{  			invisi = 1;  		} diff --git a/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml b/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml index 7e512f9594..a65bddd1db 100644 --- a/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml +++ b/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml @@ -31,7 +31,7 @@          left="0"          top="0"          mouse_opaque="true" -        name="cof_accordionpanel" +        name="cof_tab"          start_folder="Current Outfit" />           <inventory_panel             label="MY OUTFITS" @@ -44,7 +44,7 @@             height="500"             width="290"             mouse_opaque="true" -           name="outfitslist_accordionpanel" +           name="outfitslist_tab"             start_folder="My Outfits" />      </tab_container>  	<panel diff --git a/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml index 25d7ba0903..5dd93d0f7e 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml @@ -85,7 +85,10 @@       left="30"       name="autoplay_enabled"       top_pad="10" -     width="350" /> +     width="350"> +       <check_box.commit_callback +          function="Pref.ParcelMediaAutoPlayEnable" /> +    </check_box>     <text        type="string"      length="1" diff --git a/indra/newview/skins/default/xui/en/panel_prim_media_controls.xml b/indra/newview/skins/default/xui/en/panel_prim_media_controls.xml index 4cef1f9c60..075d9232b1 100644 --- a/indra/newview/skins/default/xui/en/panel_prim_media_controls.xml +++ b/indra/newview/skins/default/xui/en/panel_prim_media_controls.xml @@ -14,7 +14,7 @@    <string name="min_width">300</string>    <string name="min_height">75</string>    <string name="zoom_near_padding">1.0</string> -  <string name="zoom_medium_padding">1.25</string> +  <string name="zoom_medium_padding">1.1</string>    <string name="zoom_far_padding">1.5</string>    <string name="top_world_view_avoid_zone">50</string>    <layout_stack @@ -113,6 +113,7 @@  	</layout_panel>  	<layout_panel  		name="fwd" +		mouse_opaque="false"  		auto_resize="false"  		user_resize="false"  		layout="topleft" @@ -140,6 +141,7 @@  	</layout_panel>  	<layout_panel  		name="home" +		mouse_opaque="false"  		auto_resize="false"  		user_resize="false"  		layout="topleft" @@ -167,6 +169,7 @@  	</layout_panel>  	<layout_panel  		name="media_stop" +		mouse_opaque="false"  		auto_resize="false"  		user_resize="false"  		layout="topleft" @@ -194,6 +197,7 @@  	</layout_panel>  	<layout_panel  		name="reload" +		mouse_opaque="false"  		auto_resize="false"  		user_resize="false"  		layout="topleft" @@ -221,6 +225,7 @@  	</layout_panel>  	<layout_panel  		name="stop" +		mouse_opaque="false"  		auto_resize="false"  		user_resize="false"  		layout="topleft" @@ -248,6 +253,7 @@  	</layout_panel>  	<layout_panel  		name="play" +		mouse_opaque="false"  		auto_resize="false"  		user_resize="false"  		layout="topleft" @@ -276,6 +282,7 @@  	</layout_panel>  	<layout_panel  		name="pause" +		mouse_opaque="false"  		auto_resize="false"  		user_resize="false"  		layout="topleft" @@ -303,6 +310,7 @@  	<!-- media URL entry  -->  	<layout_panel  		name="media_address" +		mouse_opaque="false"  		auto_resize="true"  		user_resize="false"  		height="24" @@ -367,6 +375,7 @@  	</layout_panel>  	<layout_panel  		name="media_play_position" +		mouse_opaque="false"  		auto_resize="true"  		user_resize="false"  		follows="left|right" @@ -392,6 +401,7 @@  	</layout_panel>  	<layout_panel  		name="skip_back" +		mouse_opaque="false"  		auto_resize="false"  		user_resize="false"  		layout="topleft" @@ -419,6 +429,7 @@  	</layout_panel>  	<layout_panel  		name="skip_forward" +		mouse_opaque="false"  		auto_resize="false"  		user_resize="false"  		layout="topleft" @@ -445,6 +456,7 @@  	</layout_panel>  	<layout_panel  		name="media_volume" +		mouse_opaque="false"  		auto_resize="false"  		user_resize="false"  		layout="topleft" @@ -501,6 +513,7 @@  	</layout_panel>  	<layout_panel  		name="zoom_frame" +		mouse_opaque="false"  		auto_resize="false"  		user_resize="false"  		layout="topleft" @@ -528,6 +541,7 @@  	</layout_panel>  	<layout_panel  		name="close" +		mouse_opaque="false"  		auto_resize="false"  		user_resize="false"  		layout="topleft" @@ -554,6 +568,7 @@  	</layout_panel>  	<layout_panel  		name="new_window" +		mouse_opaque="false"  		auto_resize="false"  		user_resize="false"  		layout="topleft" @@ -581,6 +596,7 @@  	<!-- bookend panel -->  	<layout_panel  		name="right_bookend" +		mouse_opaque="false"  		top="0"  		width="0"  		layout="topleft" | 
