From ec4763f53edc60d77999c6e95fbeea1721009872 Mon Sep 17 00:00:00 2001 From: McCabe Maxsted Date: Wed, 9 Jun 2010 18:53:23 -0700 Subject: Applied slviewer-0-v12350-AllowInvisibleTextureInPicker_v2.patch by Henri Beauchamp from the cool viewer --- linden/indra/newview/app_settings/settings.xml | 11 +++++++++++ linden/indra/newview/lltexturectrl.cpp | 21 +++++++++++++++++++++ linden/indra/newview/lltexturectrl.h | 4 ++++ .../default/xui/en-us/floater_texture_ctrl.xml | 3 +++ .../skins/default/xui/en-us/floater_tools.xml | 2 +- 5 files changed, 40 insertions(+), 1 deletion(-) (limited to 'linden') diff --git a/linden/indra/newview/app_settings/settings.xml b/linden/indra/newview/app_settings/settings.xml index 32b29d0..8a48016 100644 --- a/linden/indra/newview/app_settings/settings.xml +++ b/linden/indra/newview/app_settings/settings.xml @@ -663,6 +663,17 @@ Value 1.0 + UIImgInvisibleUUID + + Comment + + Persist + 0 + Type + String + Value + f54a0c32-3cd1-d49a-5b4f-7b792bebc204 + VerticalIMTabs Comment diff --git a/linden/indra/newview/lltexturectrl.cpp b/linden/indra/newview/lltexturectrl.cpp index 635c2b0..7946604 100644 --- a/linden/indra/newview/lltexturectrl.cpp +++ b/linden/indra/newview/lltexturectrl.cpp @@ -154,6 +154,7 @@ public: static void onBtnPipette( void* userdata ); //static void onBtnRevert( void* userdata ); static void onBtnWhite( void* userdata ); + static void onBtnInvisible( void* userdata ); static void onBtnNone( void* userdata ); static void onBtnClear( void* userdata ); static void onSelectionChange(const std::deque &items, BOOL user_action, void* data); @@ -170,6 +171,7 @@ protected: std::string mFallbackImageName; // What to show if currently selected texture is null. LLUUID mWhiteImageAssetID; + LLUUID mInvisibleImageAssetID; LLUUID mSpecialCurrentImageAssetID; // Used when the asset id has no corresponding texture in the user's inventory. LLUUID mOriginalImageAssetID; @@ -210,6 +212,7 @@ LLFloaterTexturePicker::LLFloaterTexturePicker( mImageAssetID( owner->getImageAssetID() ), mFallbackImageName( fallback_image_name ), mWhiteImageAssetID( gSavedSettings.getString( "UIImgWhiteUUID" ) ), + mInvisibleImageAssetID(gSavedSettings.getString("UIImgInvisibleUUID")), mOriginalImageAssetID(owner->getImageAssetID()), mLabel(label), mTentativeLabel(NULL), @@ -231,6 +234,7 @@ LLFloaterTexturePicker::LLFloaterTexturePicker( childSetAction("Default",LLFloaterTexturePicker::onBtnSetToDefault,this); childSetAction("None", LLFloaterTexturePicker::onBtnNone,this); childSetAction("Blank", LLFloaterTexturePicker::onBtnWhite,this); + childSetAction("Invisible", LLFloaterTexturePicker::onBtnInvisible,this); childSetCommitCallback("show_folders_check", onShowFolders, this); @@ -571,6 +575,7 @@ void LLFloaterTexturePicker::draw() childSetEnabled("Default", mImageAssetID != mOwner->getDefaultImageAssetID()); childSetEnabled("Blank", mImageAssetID != mWhiteImageAssetID ); + childSetEnabled("Invisible", mOwner->getAllowInvisibleTexture() && mImageAssetID != mInvisibleImageAssetID ); childSetEnabled("None", mOwner->getAllowNoTexture() && !mImageAssetID.isNull() ); LLFloater::draw(); @@ -706,6 +711,15 @@ void LLFloaterTexturePicker::onBtnWhite(void* userdata) // static +void LLFloaterTexturePicker::onBtnInvisible(void* userdata) +{ + LLFloaterTexturePicker* self = (LLFloaterTexturePicker*) userdata; + self->setImageID(self->mInvisibleImageAssetID); + self->commitIfImmediateSet(); +} + + +// static void LLFloaterTexturePicker::onBtnNone(void* userdata) { LLFloaterTexturePicker* self = (LLFloaterTexturePicker*) userdata; @@ -918,6 +932,7 @@ LLTextureCtrl::LLTextureCtrl( mDefaultImageName( default_image_name ), mLabel( label ), mAllowNoTexture( FALSE ), + mAllowInvisibleTexture(FALSE), mImmediateFilterPermMask( PERM_NONE ), mNonImmediateFilterPermMask( PERM_NONE ), mCanApplyImmediately( FALSE ), @@ -977,6 +992,8 @@ LLXMLNodePtr LLTextureCtrl::getXML(bool save_children) const node->createChild("allow_no_texture", TRUE)->setBoolValue(mAllowNoTexture); + node->createChild("allow_invisible_texture", TRUE)->setBoolValue(mAllowInvisibleTexture); + node->createChild("can_apply_immediately", TRUE)->setBoolValue(mCanApplyImmediately ); return node; @@ -1005,6 +1022,9 @@ LLView* LLTextureCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactor BOOL allow_no_texture = FALSE; node->getAttributeBOOL("allow_no_texture", allow_no_texture); + BOOL allow_invisible_texture = FALSE; + node->getAttributeBOOL("allow_invisible_texture", allow_invisible_texture); + BOOL can_apply_immediately = FALSE; node->getAttributeBOOL("can_apply_immediately", can_apply_immediately); @@ -1021,6 +1041,7 @@ LLView* LLTextureCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactor LLUUID(default_image_id), default_image_name ); texture_picker->setAllowNoTexture(allow_no_texture); + texture_picker->setAllowInvisibleTexture(allow_invisible_texture); texture_picker->setCanApplyImmediately(can_apply_immediately); texture_picker->initFromXML(node, parent); diff --git a/linden/indra/newview/lltexturectrl.h b/linden/indra/newview/lltexturectrl.h index 623f15e..dccdbc5 100644 --- a/linden/indra/newview/lltexturectrl.h +++ b/linden/indra/newview/lltexturectrl.h @@ -110,6 +110,9 @@ public: void setAllowNoTexture( BOOL b ) { mAllowNoTexture = b; } bool getAllowNoTexture() const { return mAllowNoTexture; } + void setAllowInvisibleTexture(BOOL b) { mAllowInvisibleTexture = b; } + bool getAllowInvisibleTexture() const { return mAllowInvisibleTexture; } + const LLUUID& getImageItemID() { return mImageItemID; } void setImageAssetID(const LLUUID &image_asset_id); @@ -174,6 +177,7 @@ private: LLTextBox* mCaption; std::string mLabel; BOOL mAllowNoTexture; // If true, the user can select "none" as an option + BOOL mAllowInvisibleTexture; // If true, the user can select "Invisible" as an option LLCoordGL mLastFloaterLeftTop; PermissionMask mImmediateFilterPermMask; PermissionMask mNonImmediateFilterPermMask; diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_texture_ctrl.xml b/linden/indra/newview/skins/default/xui/en-us/floater_texture_ctrl.xml index feb243a..97b12e0 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_texture_ctrl.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_texture_ctrl.xml @@ -27,6 +27,9 @@