Merge from Kitty Barnett's RLVa 1.4
commit
fa58cafc14
|
|
@ -1,3 +1,2 @@
|
|||
66fb72119f033ed886d5712631343f88e1ead934
|
||||
1ff5ef68e9f33642e755b7e3840bdae7b7284597
|
||||
9ce13e5a6cacb30d5e01bdaf774a48b19823bcd6
|
||||
20fb0c21c1d212361e2dce85a55dedd2e74bce5b
|
||||
ca307c3bf9d3bb7dfb64420a018ae77374c9e5d8
|
||||
|
|
@ -1 +1 @@
|
|||
1ff5ef68e9f33642e755b7e3840bdae7b7284597
|
||||
7765c3aa3a23513f1e43d63ce4131e37c7d8ddfb
|
||||
|
|
@ -13,6 +13,9 @@
|
|||
-> normal-drop : replace wear
|
||||
-> Ctrl-drop : add wear
|
||||
- fixed : LLAppearanceMgr::registerAttachment() fails to (re)add a link for worn attachments that aren't linked to in COF at log-on
|
||||
- fixed : LLViewerObject::getAttachmentItemID() sometimes returns the NULL UUID for the avatar's own attachments
|
||||
- fixed : LLAppearanceMgr::updateAppearanceFromCOF() doesn't properly filter items collected from folder links
|
||||
-> create an outfit with a folder link + "Replace Outfit" == wearables that exist in both COF and the linked folder will end up worn multiple times
|
||||
- changed : deprecated removeItemFromAvatar() in favour of having LLAppearanceMgr::removeItemFromAvatar() handle it directly/correctly
|
||||
-> wearables can't be worn/removed in 2.X without the viewer already having an LLWearable instance for it anyway
|
||||
- changed : enable "Replace Current Outfit" on the base outfit if it's marked dirty
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
1ff5ef68e9f33642e755b7e3840bdae7b7284597
|
||||
7765c3aa3a23513f1e43d63ce4131e37c7d8ddfb
|
||||
|
|
@ -1 +1 @@
|
|||
1b5d993cfdc83ef8799518045bfbb8c00ac93579
|
||||
9904ec98044702d4e26d11b4a78e1e294b57d2e8
|
||||
|
|
@ -1 +1 @@
|
|||
78d1d228709c1e2c27a5278603d12c8b1d922bb9
|
||||
ddfc2ed6aee12d68f8c6baebfec54f69a965a1d2
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
[Viewer/Build]
|
||||
- changed : compiler options for "Release with Debug" builds
|
||||
- changed : compiler and linker options for "Release" builds
|
||||
- added : imported SNOW-788 - Fix boost lib detection with Visual Studio to allow multiple VS versions
|
||||
- changed : removed LL's changeset tags and added new (consistent) SL-2.X.Y tags for releases
|
||||
- changed : break into the debugger rather than forcing the process into an unrecoverable state for "llerrs" on non-release builds
|
||||
-> Windows only
|
||||
|
|
|
|||
17
.hgtags
17
.hgtags
|
|
@ -117,3 +117,20 @@ bb1075286b3b147b1dae2e3d6b2d56f04ff03f35 DRTVWR-52_2.6.6-beta1
|
|||
bb1075286b3b147b1dae2e3d6b2d56f04ff03f35 2.6.6-beta1
|
||||
e67da2c6e3125966dd49eef98b36317afac1fcfe 2.6.9-start
|
||||
07f65b6181edcc2edddd4e084e7aa0e5c67fcb84 FSmerge-2.6.9
|
||||
4f777ffb99fefdc6497c61385c22688ff149c659 SL-2.0.0
|
||||
668851b2ef0f8cf8df07a0fba429e4a6c1e70abb SL-2.0.1
|
||||
b03065d018b8a2e28b7de85b293a4c992cb4c12d SL-2.1.0
|
||||
bb38ff1a763738609e1b3cada6d15fa61e5e84b9 SL-2.1.1
|
||||
1415e6538d54fd5d568ee88343424d57c6803c2c SL-2.2.0
|
||||
6ad3d6fa35a4e320e9ce442fce2bf9c7fc852556 SL-2.3.0
|
||||
1ed382c6a08ba3850b6ce9061bc551ddece0ea07 SL-2.4.0
|
||||
b723921b5c711bd24dbe77dc76ef488b544dac78 SL-2.5.0
|
||||
4dede9ae1ec74d41f6887719f6f1de7340d8578d SL-2.5.1
|
||||
b53a0576eec80614d7767ed72b40ed67aeff27c9 SL-2.5.2
|
||||
42f32494bac475d0737799346f6831558ae8bf5d SL-2.6.0
|
||||
c9182ed77d427c759cfacf49a7b71a2e20d522aa SL-2.6.1
|
||||
214180ad5714ce8392b82bbebcc92f4babd98300 SL-2.6.2
|
||||
425f96b1e81e01644bf5e951961e7d1023bffb89 RLVa-1.2.0
|
||||
fc0cbb86f5bd6e7737159e35aea2c4cf9f619b62 RLVa-1.2.1
|
||||
43cb7dc1804de1a25c0b2b3f0715584af1f8b470 RLVa-1.2.2
|
||||
89532c8dfd5b6c29f1cb032665b44a74a52452e1 RLVa-1.3.0
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ Other examples:
|
|||
|
||||
autobuild build -c ReleaseFS --no-configure # default quick rebuild
|
||||
autobuild build -c ReleaseFS --no-configure -- --clean # Clean rebuild
|
||||
autobuild build -c ReleaseFS -- --package # Complete a build and package it into a tarball for sharing
|
||||
|
||||
Any of the configure options can also be used (and do the same thing) with the build options.
|
||||
|
||||
|
|
|
|||
|
|
@ -46,10 +46,10 @@ if (WINDOWS)
|
|||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /Od /Zi /MDd /MP -D_SCL_SECURE_NO_WARNINGS=1"
|
||||
CACHE STRING "C++ compiler debug options" FORCE)
|
||||
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO
|
||||
"${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /Od /Zi /MD /MP /Ob2 -D_SECURE_STL=0"
|
||||
"${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /Od /Zi /MD /Ob2 /Gm -D_SECURE_STL=0"
|
||||
CACHE STRING "C++ compiler release-with-debug options" FORCE)
|
||||
set(CMAKE_CXX_FLAGS_RELEASE
|
||||
"${CMAKE_CXX_FLAGS_RELEASE} ${LL_CXX_FLAGS} /O2 /Zi /MD /MP /Ob2 -D_SECURE_STL=0 -D_HAS_ITERATOR_DEBUGGING=0 /arch:SSE2"
|
||||
"${CMAKE_CXX_FLAGS_RELEASE} ${LL_CXX_FLAGS} /O2 /Zi /MD /MP /Ob2 /Oi /Ot /GF /Gy /arch:SSE2 -D_SECURE_STL=0 -D_HAS_ITERATOR_DEBUGGING=0"
|
||||
CACHE STRING "C++ compiler release options" FORCE)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /LARGEADDRESSAWARE /INCREMENTAL")
|
||||
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ def start_client(grid, slurl, build_config, my_args):
|
|||
f = open("start-client.log", "w")
|
||||
print >>f, "Viewer startup arguments:"
|
||||
llstart.start("viewer", "../../newview",
|
||||
"%s/newview/%s/secondlife-bin.exe" % (build_path, build_config),
|
||||
"%s/newview/%s/firestorm-bin.exe" % (build_path, build_config),
|
||||
viewer_args, f)
|
||||
f.close()
|
||||
|
||||
|
|
|
|||
|
|
@ -29,8 +29,8 @@
|
|||
|
||||
const S32 LL_VERSION_MAJOR = 2;
|
||||
const S32 LL_VERSION_MINOR = 6;
|
||||
const S32 LL_VERSION_PATCH = 9;
|
||||
const S32 LL_VERSION_BUILD = 18380;
|
||||
const S32 LL_VERSION_PATCH = 1;
|
||||
const S32 LL_VERSION_BUILD = 18382;
|
||||
|
||||
const char * const LL_CHANNEL = "Second Life Server";
|
||||
|
||||
|
|
|
|||
|
|
@ -29,10 +29,10 @@
|
|||
|
||||
const S32 LL_VERSION_MAJOR = 2;
|
||||
const S32 LL_VERSION_MINOR = 6;
|
||||
const S32 LL_VERSION_PATCH = 9;
|
||||
const S32 LL_VERSION_BUILD = 18380;
|
||||
const S32 LL_VERSION_PATCH = 1;
|
||||
const S32 LL_VERSION_BUILD = 18382;
|
||||
|
||||
const char * const LL_CHANNEL = "Firestorm-private-Romana";
|
||||
const char * const LL_CHANNEL = "Firestorm-private-ubuntu";
|
||||
|
||||
#if LL_DARWIN
|
||||
const char * const LL_VERSION_BUNDLE_ID = "com.phoenixviewer.firestorm.viewer";
|
||||
|
|
|
|||
|
|
@ -24,8 +24,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
|||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 2,6,9,18380
|
||||
PRODUCTVERSION 2,6,9,18380
|
||||
FILEVERSION 2,6,1,18382
|
||||
PRODUCTVERSION 2,6,1,18382
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
|
|
@ -42,12 +42,12 @@ BEGIN
|
|||
BEGIN
|
||||
VALUE "CompanyName", "Phoenix Viewer"
|
||||
VALUE "FileDescription", "Phoenix Firestorm Viewer Common Library"
|
||||
VALUE "FileVersion", "2.6.9.18380"
|
||||
VALUE "FileVersion", "2.6.1.18382"
|
||||
VALUE "InternalName", "llcommon.dll"
|
||||
VALUE "LegalCopyright", "Copyright © 2010 Phoenix Viewer"
|
||||
VALUE "OriginalFilename", "llcommon.dll"
|
||||
VALUE "ProductName", "Phoenix Firestorm Viewer"
|
||||
VALUE "ProductVersion", "2.6.9.18380"
|
||||
VALUE "ProductVersion", "2.6.1.18382"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ namespace LLAvatarNameCache
|
|||
void setUseDisplayNames(bool use);
|
||||
bool useDisplayNames();
|
||||
|
||||
// [RLVa:KB] - Checked: 2010-12-08 (RLVa-1.2.2c) | Added: RLVa-1.2.2c
|
||||
// [RLVa:KB] - Checked: 2010-12-08 (RLVa-1.4.0a) | Added: RLVa-1.2.2c
|
||||
bool getForceDisplayNames();
|
||||
void setForceDisplayNames(bool force);
|
||||
// [/RLVa:KB]
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ std::set<std::string> LLFloaterReg::sAlwaysShowableList;
|
|||
|
||||
static LLFloaterRegListener sFloaterRegListener;
|
||||
|
||||
// [RLVa:KB] - Checked: 2010-02-28 (RLVa-1.2.0a) | Modified: RLVa-1.2.0a
|
||||
// [RLVa:KB] - Checked: 2010-02-28 (RLVa-1.4.0a) | Modified: RLVa-1.2.0a
|
||||
LLFloaterReg::validate_signal_t LLFloaterReg::mValidateSignal;
|
||||
// [/RLVa:KB]
|
||||
|
||||
|
|
@ -235,7 +235,7 @@ LLFloater* LLFloaterReg::showInstance(const std::string& name, const LLSD& key,
|
|||
// if( sBlockShowFloaters
|
||||
// // see EXT-7090
|
||||
// && sAlwaysShowableList.find(name) == sAlwaysShowableList.end())
|
||||
// [RLVa:KB] - Checked: 2010-02-28 (RLVa-1.2.0a) | Modified: RLVa-1.2.0a
|
||||
// [RLVa:KB] - Checked: 2010-02-28 (RLVa-1.4.0a) | Modified: RLVa-1.2.0a
|
||||
if ( (sBlockShowFloaters && sAlwaysShowableList.find(name) == sAlwaysShowableList.end()) || (!mValidateSignal(name, key)) )
|
||||
// [/RLVa:KB]
|
||||
return 0;//
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ private:
|
|||
*/
|
||||
static std::set<std::string> sAlwaysShowableList;
|
||||
|
||||
// [RLVa:KB] - Checked: 2010-02-28 (RLVa-1.2.0a) | Modified: RLVa-1.2.0a
|
||||
// [RLVa:KB] - Checked: 2010-02-28 (RLVa-1.4.0a) | Modified: RLVa-1.2.0a
|
||||
// Used to determine whether a floater can be shown
|
||||
public:
|
||||
typedef boost::signals2::signal<bool(const std::string&, const LLSD&), boost_boolean_combiner> validate_signal_t;
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@
|
|||
</dict>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>2.6.9.18380</string>
|
||||
<string>2.6.1.18382</string>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
|
|
|||
|
|
@ -14929,6 +14929,17 @@ Change of this parameter will affect the layout of buttons in notification toast
|
|||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>NearbyListShowMap</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Show/hide map above nearby people list (unused by firestorm)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
|
||||
</map>
|
||||
</llsd>
|
||||
|
|
|
|||
|
|
@ -743,7 +743,10 @@ void LLAgent::setRegion(LLViewerRegion *regionp)
|
|||
|
||||
LLSelectMgr::getInstance()->updateSelectionCenter();
|
||||
|
||||
LLFloaterMove::sUpdateFlyingStatus();
|
||||
// LLFloaterMove::sUpdateFlyingStatus();
|
||||
// [RLVa:KB] - Checked: 2011-05-27 (RLVa-1.4.0a) | Added: RLVa-1.4.0a
|
||||
LLFloaterMove::sUpdateMovementStatus();
|
||||
// [/RLVa:KB]
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -43,6 +43,10 @@
|
|||
// [/RLVa:KB]
|
||||
#include "llsdutil.h"
|
||||
#include "llsdutil_math.h"
|
||||
// [RLVa:KB] - Checked: 2011-05-22 (RLVa-1.3.1a)
|
||||
#include "rlvhandler.h"
|
||||
#include "llvoavatarself.h"
|
||||
// [/RLVa:KB]
|
||||
|
||||
LLAgentListener::LLAgentListener(LLAgent &agent)
|
||||
: LLEventAPI("LLAgent",
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ public:
|
|||
|
||||
BOOL isWearableCopyable(LLWearableType::EType type, U32 index /*= 0*/) const;
|
||||
BOOL areWearablesLoaded() const;
|
||||
// [SL:KB] - Patch: Appearance-InitialWearablesLoadedCallback | Checked: 2010-08-14 (Catznip-2.5.0a) | Added: Catznip-2.1.1d
|
||||
// [SL:KB] - Patch: Appearance-InitialWearablesLoadedCallback | Checked: 2010-08-14 (Catznip-2.6.0a) | Added: Catznip-2.1.1d
|
||||
bool areInitalWearablesLoaded() const { return mInitialWearablesLoaded; }
|
||||
// [/SL:KB]
|
||||
bool isCOFChangeInProgress() const { return mCOFChangeInProgress; }
|
||||
|
|
@ -223,7 +223,7 @@ public:
|
|||
typedef std::vector<LLViewerObject*> llvo_vec_t;
|
||||
|
||||
// static void userUpdateAttachments(LLInventoryModel::item_array_t& obj_item_array);
|
||||
// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-09-22 (Catznip-2.5.0a) | Added: Catznip-2.2.0a
|
||||
// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-09-22 (Catznip-2.6.0a) | Added: Catznip-2.2.0a
|
||||
// Not the best way to go about this but other attempts changed far too much LL code to be a viable solution
|
||||
static void userUpdateAttachments(LLInventoryModel::item_array_t& obj_item_array, bool fAttachOnly = false);
|
||||
// [/SL:KB]
|
||||
|
|
@ -245,7 +245,7 @@ public:
|
|||
typedef boost::function<void()> loaded_callback_t;
|
||||
typedef boost::signals2::signal<void()> loaded_signal_t;
|
||||
boost::signals2::connection addLoadedCallback(loaded_callback_t cb);
|
||||
// [SL:KB] - Patch: Appearance-InitialWearablesLoadedCallback | Checked: 2010-08-14 (Catznip-2.5.0a) | Added: Catznip-2.1.1d
|
||||
// [SL:KB] - Patch: Appearance-InitialWearablesLoadedCallback | Checked: 2010-08-14 (Catznip-2.6.0a) | Added: Catznip-2.1.1d
|
||||
boost::signals2::connection addInitialWearablesLoadedCallback(loaded_callback_t cb);
|
||||
// [/SL:KB]
|
||||
|
||||
|
|
@ -255,7 +255,7 @@ public:
|
|||
private:
|
||||
loading_started_signal_t mLoadingStartedSignal; // should be called before wearables are changed
|
||||
loaded_signal_t mLoadedSignal; // emitted when all agent wearables get loaded
|
||||
// [SL:KB] - Patch: Appearance-InitialWearablesLoadedCallback | Checked: 2010-08-14 (Catznip-2.5.0a) | Added: Catznip-2.1.1d
|
||||
// [SL:KB] - Patch: Appearance-InitialWearablesLoadedCallback | Checked: 2010-08-14 (Catznip-2.6.0a) | Added: Catznip-2.1.1d
|
||||
loaded_signal_t mInitialWearablesLoadedSignal; // emitted once when the initial wearables are loaded
|
||||
// [/SL:KB]
|
||||
|
||||
|
|
@ -268,7 +268,7 @@ private:
|
|||
wearableentry_map_t mWearableDatas;
|
||||
|
||||
static BOOL mInitialWearablesUpdateReceived;
|
||||
// [SL:KB] - Patch: Appearance-InitialWearablesLoadedCallback | Checked: 2010-08-14 (Catznip-2.5.0a) | Added: Catznip-2.2.0a
|
||||
// [SL:KB] - Patch: Appearance-InitialWearablesLoadedCallback | Checked: 2010-08-14 (Catznip-2.6.0a) | Added: Catznip-2.2.0a
|
||||
static bool mInitialWearablesLoaded;
|
||||
// [/SL:KB]
|
||||
BOOL mWearablesLoaded;
|
||||
|
|
|
|||
|
|
@ -128,7 +128,7 @@ void LLInitialWearablesFetch::processContents()
|
|||
gInventory.collectDescendentsIf(mComplete.front(), cat_array, wearable_array,
|
||||
LLInventoryModel::EXCLUDE_TRASH, is_wearable);
|
||||
|
||||
// [SL:KB] - Patch: Appearance-MixedViewers | Checked: 2010-05-18 (Catznip-2.5.0a) | Modified: Catznip-2.0.0h
|
||||
// [SL:KB] - Patch: Appearance-MixedViewers | Checked: 2010-05-18 (Catznip-2.6.0a) | Modified: Catznip-2.0.0h
|
||||
// NOTE: don't use the current COF contents if 'wearable_array' is empty (ie first logon with 2.0 or some other problem)
|
||||
bool fUpdateFromCOF = !wearable_array.empty();
|
||||
if (fUpdateFromCOF)
|
||||
|
|
@ -142,8 +142,6 @@ void LLInitialWearablesFetch::processContents()
|
|||
(itWearableData != mAgentInitialWearables.end()) && (fUpdateFromCOF); ++itWearableData)
|
||||
{
|
||||
const LLUUID& idItem = itWearableData->mItemID; bool fFound = false;
|
||||
|
||||
// TODO-Catznip: [SL-2.2.0] Bit of a hack until LL supports changing the descriptions of links
|
||||
for (S32 idxItem = 0, cntItem = items_by_type[itWearableData->mType].size(); idxItem < cntItem; idxItem++)
|
||||
{
|
||||
const LLViewerInventoryItem* pCOFItem = items_by_type[itWearableData->mType].get(idxItem);
|
||||
|
|
@ -161,7 +159,7 @@ void LLInitialWearablesFetch::processContents()
|
|||
|
||||
LLAppearanceMgr::instance().setAttachmentInvLinkEnable(true);
|
||||
// if (wearable_array.count() > 0)
|
||||
// [SL:KB] - Patch: Appearance-MixedViewers | Checked: 2010-04-28 (Catznip-2.5.0a) | Modified: Catznip-2.0.0e
|
||||
// [SL:KB] - Patch: Appearance-MixedViewers | Checked: 2010-04-28 (Catznip-2.6.0a) | Modified: Catznip-2.0.0e
|
||||
if (fUpdateFromCOF)
|
||||
// [/SL:KB]
|
||||
{
|
||||
|
|
@ -214,12 +212,12 @@ public:
|
|||
link_waiter);
|
||||
}
|
||||
*/
|
||||
// [SL:KB] - Patch: Appearance-MixedViewers | Checked: 2010-08-14 (Catznip-2.5.0a) | Added: Catznip-2.1.1d
|
||||
// [SL:KB] - Patch: Appearance-MixedViewers | Checked: 2010-08-14 (Catznip-2.6.0a) | Added: Catznip-2.1.1d
|
||||
doOnIdleOneTime(boost::bind(&LLFetchAndLinkObserver::doneIdle, this));
|
||||
// [/SL:KB]
|
||||
}
|
||||
|
||||
// [SL:KB] - Patch: Appearance-MixedViewers | Checked: 2010-04-02 (Catznip-2.5.0a) | Added: Catznip-2.0.0a
|
||||
// [SL:KB] - Patch: Appearance-MixedViewers | Checked: 2010-04-02 (Catznip-2.6.0a) | Added: Catznip-2.0.0a
|
||||
void doneIdle()
|
||||
{
|
||||
// NOTE: the code above makes the assumption that COF is empty which won't be the case the way it's used now
|
||||
|
|
@ -252,7 +250,7 @@ void LLInitialWearablesFetch::processWearablesMessage()
|
|||
{
|
||||
// Populate the current outfit folder with links to the wearables passed in the message
|
||||
// InitialWearableData *wearable_data = new InitialWearableData(mAgentInitialWearables[i]); // This will be deleted in the callback.
|
||||
// [SL:KB] - Patch: Appearance-MixedViewers | Checked: 2010-05-02 (Catznip-2.5.0a) | Added: Catznip-2.0.0f
|
||||
// [SL:KB] - Patch: Appearance-MixedViewers | Checked: 2010-05-02 (Catznip-2.6.0a) | Added: Catznip-2.0.0f
|
||||
// Fixes minor leak: since COF is used onInitialWearableAssetArrived() will never get called and "wearable_data" leaks
|
||||
InitialWearableData* wearable_data = &mAgentInitialWearables[i];
|
||||
// [/SL:KB]
|
||||
|
|
|
|||
|
|
@ -2916,12 +2916,12 @@ void LLAppearanceMgr::removeItemFromAvatar(const LLUUID& id_to_remove)
|
|||
// //*TODO move here the exact removing code from LLWearableBridge::removeItemFromAvatar in the future
|
||||
// LLWearableBridge::removeItemFromAvatar(item_to_remove);
|
||||
// }
|
||||
// [SL:KB] - Patch: Appearance-RemoveretoWearableFromAvatar | Checked: 2010-08-13 (Catznip-2.6.0a) | Added: Catznip-2.1.1d
|
||||
// [SL:KB] - Patch: Appearance-RemoveWearableFromAvatar | Checked: 2010-08-13 (Catznip-2.6.0a) | Added: Catznip-2.1.1d
|
||||
// [RLVa:KB] - Checked: 2010-09-04 (RLVa-1.2.1c) | Added: RLVa-1.2.1c
|
||||
if ( (!rlv_handler_t::isEnabled()) || (gRlvWearableLocks.canRemove(item_to_remove)) )
|
||||
// [/RLVa:KB]
|
||||
{
|
||||
/*const*/ LLWearable* pWearable = gAgentWearables.getWearableFromItemID(item_to_remove->getLinkedUUID());
|
||||
const LLWearable* pWearable = gAgentWearables.getWearableFromItemID(item_to_remove->getLinkedUUID());
|
||||
if ( (pWearable) && (LLAssetType::AT_BODYPART != pWearable->getAssetType()) )
|
||||
{
|
||||
U32 idxWearable = gAgentWearables.getWearableIndex(pWearable);
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ public:
|
|||
typedef std::vector<LLInventoryModel::item_array_t> wearables_by_type_t;
|
||||
|
||||
void updateAppearanceFromCOF(bool update_base_outfit_ordering = false);
|
||||
// [SL:KB] - Patch: Appearance-MixedViewers | Checked: 2010-04-02 (Catznip-2.5.0a) | Added: Catznip-2.0.0a
|
||||
// [SL:KB] - Patch: Appearance-MixedViewers | Checked: 2010-04-02 (Catznip-2.6.0a) | Added: Catznip-2.0.0a
|
||||
void updateAppearanceFromInitialWearables(LLInventoryModel::item_array_t& initial_items);
|
||||
// [/SL:KB]
|
||||
bool needToSaveCOF();
|
||||
|
|
@ -238,7 +238,7 @@ private:
|
|||
|
||||
std::auto_ptr<LLOutfitUnLockTimer> mUnlockOutfitTimer;
|
||||
|
||||
// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-09-18 (Catznip-2.5.0a) | Modified: Catznip-2.1.2e
|
||||
// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-09-18 (Catznip-2.6.0a) | Modified: Catznip-2.1.2e
|
||||
public:
|
||||
void linkPendingAttachments();
|
||||
void onRegisterAttachmentComplete(const LLUUID& idItem);
|
||||
|
|
@ -272,7 +272,7 @@ private:
|
|||
bool mUpdateBaseOrder;
|
||||
};
|
||||
|
||||
// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-08-31 (Catznip-2.5.0a) | Added: Catznip-2.1.2a
|
||||
// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-08-31 (Catznip-2.6.0a) | Added: Catznip-2.1.2a
|
||||
class LLRegisterAttachmentCallback : public LLInventoryCallback
|
||||
{
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -88,6 +88,7 @@
|
|||
// [RLVa:KB] - Checked: 2010-05-03 (RLVa-1.2.0g)
|
||||
#include "rlvhandler.h"
|
||||
// [/RLVa:KB]
|
||||
|
||||
#include "llweb.h"
|
||||
#include "llsecondlifeurls.h"
|
||||
#include "llupdaterservice.h"
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -853,9 +853,9 @@ void LLBumpImageList::destroyGL()
|
|||
|
||||
void LLBumpImageList::restoreGL()
|
||||
{
|
||||
if(!gTextureList.isInitialized())
|
||||
{
|
||||
return ;
|
||||
if(!gTextureList.isInitialized())
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
LLStandardBumpmap::restoreGL();
|
||||
|
|
|
|||
|
|
@ -44,7 +44,6 @@
|
|||
#include "rlvhandler.h"
|
||||
#include "llagent.h"
|
||||
// [/RLVa:KB]
|
||||
|
||||
#include "llavatarname.h"
|
||||
#include "lltrans.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -213,31 +213,18 @@ void LLFloaterSettingsDebug::updateControl(LLControlVariable* controlp)
|
|||
|
||||
if (controlp)
|
||||
{
|
||||
// [RLVa:KB] - Checked: 2010-03-18 (RLVa-1.2.0e) | Modified: RLVa-0.2.1d
|
||||
// TODO-RLVa: [RLVa-1.2.1] Look into rewriting the whole debug setting blocking code
|
||||
if (rlv_handler_t::isEnabled())
|
||||
{
|
||||
// Don't allow changing DBG_WRITE debug settings under @setdebug=n
|
||||
bool fEnable = !( (gRlvHandler.hasBehaviour(RLV_BHVR_SETDEBUG)) &&
|
||||
(RlvExtGetSet::getDebugSettingFlags(controlp->getName()) & RlvExtGetSet::DBG_WRITE) );
|
||||
// Don't allow toggling "Basic Shaders" and/or "Atmopsheric Shaders" through the debug settings under @setenv=n
|
||||
fEnable &= !((gRlvHandler.hasBehaviour(RLV_BHVR_SETENV)) &&
|
||||
(("VertexShaderEnable" == controlp->getName()) || ("WindLightUseAtmosShaders" == controlp->getName())));
|
||||
#ifdef RLV_EXTENSION_STARTLOCATION
|
||||
// Don't allow toggling RestrainedLoveLoginLastLocation
|
||||
fEnable &= !(RLV_SETTING_LOGINLASTLOCATION == controlp->getName());
|
||||
#endif // RLV_EXTENSION_STARTLOCATION
|
||||
|
||||
// NOTE: this runs per-frame so there's no need to explictly handle onCommitSettings() or onClickDefault()
|
||||
spinner1->setEnabled(fEnable);
|
||||
spinner2->setEnabled(fEnable);
|
||||
spinner3->setEnabled(fEnable);
|
||||
spinner4->setEnabled(fEnable);
|
||||
color_swatch->setEnabled(fEnable);
|
||||
childSetEnabled("val_text", fEnable);
|
||||
childSetEnabled("boolean_combo", fEnable);
|
||||
childSetEnabled("default_btn", fEnable);
|
||||
}
|
||||
// [RLVa:KB] - Checked: 2011-05-28 (RLVa-1.4.0a) | Modified: RLVa-1.4.0a
|
||||
// If "HideFromEditor" was toggled while the floater is open then we need to manually disable access to the control
|
||||
// NOTE: this runs per-frame so there's no need to explictly handle onCommitSettings() or onClickDefault()
|
||||
bool fEnable = !controlp->isHiddenFromSettingsEditor();
|
||||
spinner1->setEnabled(fEnable);
|
||||
spinner2->setEnabled(fEnable);
|
||||
spinner3->setEnabled(fEnable);
|
||||
spinner4->setEnabled(fEnable);
|
||||
color_swatch->setEnabled(fEnable);
|
||||
childSetEnabled("val_text", fEnable);
|
||||
childSetEnabled("boolean_combo", fEnable);
|
||||
childSetEnabled("default_btn", fEnable);
|
||||
// [/RLVa:KB]
|
||||
|
||||
eControlType type = controlp->type();
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@
|
|||
#include "message.h"
|
||||
|
||||
#include "llagent.h"
|
||||
#include "llslurl.h"
|
||||
#include "llcommandhandler.h"
|
||||
#include "llfloaterreg.h"
|
||||
#include "llgroupmgr.h"
|
||||
|
|
@ -45,6 +44,7 @@
|
|||
#include "llpanelgroup.h"
|
||||
//-TT
|
||||
// [RLVa:KB] - Checked: 2011-03-28 (RLVa-1.3.0f) | Added: RLVa-1.3.0f
|
||||
#include "llslurl.h"
|
||||
#include "rlvhandler.h"
|
||||
// [/RLVa:KB]
|
||||
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@
|
|||
#include "llstatusbar.h"
|
||||
#include "llmenugl.h"
|
||||
#include "pipeline.h"
|
||||
// [RLVa:KB] - Checked: 2010-03-27 (RLVa-1.2.2a)
|
||||
// [RLVa:KB] - Checked: 2010-03-27 (RLVa-1.4.0a)
|
||||
#include "rlvhandler.h"
|
||||
// [/RLVa:KB]
|
||||
#include <boost/tokenizer.hpp>
|
||||
|
|
@ -258,7 +258,7 @@ void LLHUDText::setString(const std::string &text_utf8)
|
|||
{
|
||||
mTextSegments.clear();
|
||||
// addLine(text_utf8, mColor);
|
||||
// [RLVa:KB] - Checked: 2010-03-02 (RLVa-1.2.2a) | Modified: RLVa-1.0.0f
|
||||
// [RLVa:KB] - Checked: 2010-03-02 (RLVa-1.4.0a) | Modified: RLVa-1.0.0f
|
||||
// NOTE: setString() is called for debug and map beacons as well
|
||||
if (rlv_handler_t::isEnabled())
|
||||
{
|
||||
|
|
@ -663,17 +663,14 @@ F32 LLHUDText::LLHUDTextSegment::getWidth(const LLFontGL* font)
|
|||
}
|
||||
}
|
||||
|
||||
// [RLVa:KB] - Checked: 2010-03-27 (RLVa-1.2.2a) | Added: RLVa-1.0.0f
|
||||
// [RLVa:KB] - Checked: 2010-03-27 (RLVa-1.4.0a) | Added: RLVa-1.0.0f
|
||||
void LLHUDText::refreshAllObjectText()
|
||||
{
|
||||
for (TextObjectIterator itText = sTextObjects.begin(); itText != sTextObjects.end(); itText++)
|
||||
for (TextObjectIterator itText = sTextObjects.begin(); itText != sTextObjects.end(); ++itText)
|
||||
{
|
||||
LLHUDText* pText = *itText;
|
||||
if ( (pText) && (!pText->mObjText.empty() && ("" != pText->mObjText) ) &&
|
||||
(pText->mSourceObject) && (LL_PCODE_VOLUME == pText->mSourceObject->getPCode()) )
|
||||
{
|
||||
if ( (pText) && (!pText->mObjText.empty()) && (pText->mSourceObject) && (LL_PCODE_VOLUME == pText->mSourceObject->getPCode()) )
|
||||
pText->setString(pText->mObjText);
|
||||
}
|
||||
}
|
||||
}
|
||||
// [/RLVa:KB]
|
||||
|
|
|
|||
|
|
@ -124,7 +124,7 @@ public:
|
|||
static void reshape();
|
||||
static void setDisplayText(BOOL flag) { sDisplayText = flag ; }
|
||||
|
||||
// [RLVa:KB] - Checked: 2010-03-27 (RLVa-1.2.2a) | Added: RLVa-1.0.0f
|
||||
// [RLVa:KB] - Checked: 2010-03-27 (RLVa-1.4.0a) | Added: RLVa-1.0.0f
|
||||
const std::string& getObjectText() const { return mObjText; }
|
||||
void setObjectText(const std::string &utf8string) { mObjText = utf8string; }
|
||||
static void refreshAllObjectText();
|
||||
|
|
@ -166,7 +166,7 @@ private:
|
|||
ETextAlignment mTextAlignment;
|
||||
EVertAlignment mVertAlignment;
|
||||
BOOL mHidden;
|
||||
// [RLVa:KB] - Checked: 2010-03-27 (RLVa-1.2.2a) | Added: RLVa-1.0.0f
|
||||
// [RLVa:KB] - Checked: 2010-03-27 (RLVa-1.4.0a) | Added: RLVa-1.0.0f
|
||||
std::string mObjText;
|
||||
// [/RLVa:KB]
|
||||
|
||||
|
|
|
|||
|
|
@ -2665,7 +2665,7 @@ void LLFolderBridge::folderOptionsMenu()
|
|||
// BAP change once we're no longer treating regular categories as ensembles.
|
||||
const bool is_ensemble = (type == LLFolderType::FT_NONE ||
|
||||
LLFolderType::lookupIsEnsembleType(type));
|
||||
// [SL:KB] - Patch: Appearance-Misc | Checked: 2010-11-24 (Catznip-2.5.0a) | Added: Catznip-2.4.0e
|
||||
// [SL:KB] - Patch: Appearance-Misc | Checked: 2010-11-24 (Catznip-2.6.0a) | Added: Catznip-2.4.0e
|
||||
const bool is_outfit = (type == LLFolderType::FT_OUTFIT);
|
||||
// [/SL:KB]
|
||||
|
||||
|
|
@ -2724,7 +2724,7 @@ void LLFolderBridge::folderOptionsMenu()
|
|||
disabled_items.push_back(std::string("Remove From Outfit"));
|
||||
}
|
||||
// if (!LLAppearanceMgr::instance().getCanReplaceCOF(mUUID))
|
||||
// [SL:KB] - Patch: Appearance-Misc | Checked: 2010-11-24 (Catznip-2.5.0a) | Added: Catznip-2.4.0e
|
||||
// [SL:KB] - Patch: Appearance-Misc | Checked: 2010-11-24 (Catznip-2.6.0a) | Added: Catznip-2.4.0e
|
||||
if ( ((is_outfit) && (!LLAppearanceMgr::instance().getCanReplaceCOF(mUUID))) ||
|
||||
((!is_outfit) && (gAgentWearables.isCOFChangeInProgress())) )
|
||||
// [/SL:KB]
|
||||
|
|
@ -3284,7 +3284,7 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item,
|
|||
}
|
||||
if (is_movable)
|
||||
{
|
||||
is_movable = (!RlvFolderLocks::instance().hasLockedFolder(RLV_LOCK_ANY)) ||
|
||||
is_movable = (RlvFolderLocks::instance().hasLockedFolder(RLV_LOCK_ANY)) &&
|
||||
(RlvFolderLocks::instance().canMoveItem(inv_item->getUUID(), mUUID));
|
||||
}
|
||||
}
|
||||
|
|
@ -4789,18 +4789,12 @@ void remove_inventory_category_from_avatar_step2( BOOL proceed, LLUUID category_
|
|||
continue;
|
||||
if (get_is_item_worn(item->getUUID()))
|
||||
{
|
||||
/*
|
||||
// [RLVa:KB] - Checked: 2010-04-04 (RLVa-1.2.0c) | Modified: RLVa-0.2.2a
|
||||
if ( (rlv_handler_t::isEnabled()) && (!gRlvWearableLocks.canRemove(item)) )
|
||||
continue;
|
||||
// [/RLVa:KB]
|
||||
LLWearableList::instance().getAsset(item->getAssetUUID(),
|
||||
item->getName(),
|
||||
item->getType(),
|
||||
LLWearableBridge::onRemoveFromAvatarArrived,
|
||||
new OnRemoveStruct(item->getLinkedUUID()));
|
||||
*/
|
||||
// [SL:KB] - Patch: Appearance-RemoveWearableFromAvatar | Checked: 2010-08-13 (Catznip-2.5.0a) | Added: Catznip-2.1.1d
|
||||
// LLWearableList::instance().getAsset(item->getAssetUUID(),
|
||||
// item->getName(),
|
||||
// item->getType(),
|
||||
// LLWearableBridge::onRemoveFromAvatarArrived,
|
||||
// new OnRemoveStruct(item->getLinkedUUID()));
|
||||
// [SL:KB] - Patch: Appearance-RemoveWearableFromAvatar | Checked: 2010-08-13 (Catznip-2.6.0a) | Added: Catznip-2.1.1d
|
||||
LLAppearanceMgr::instance().removeItemFromAvatar(item->getUUID());
|
||||
// [/SL:KB]
|
||||
}
|
||||
|
|
@ -5057,60 +5051,56 @@ void LLWearableBridge::wearAddOnAvatar()
|
|||
}
|
||||
|
||||
// static
|
||||
/*
|
||||
void LLWearableBridge::onWearOnAvatarArrived( LLWearable* wearable, void* userdata )
|
||||
{
|
||||
LLUUID* item_id = (LLUUID*) userdata;
|
||||
if(wearable)
|
||||
{
|
||||
LLViewerInventoryItem* item = NULL;
|
||||
item = (LLViewerInventoryItem*)gInventory.getItem(*item_id);
|
||||
if(item)
|
||||
{
|
||||
if(item->getAssetUUID() == wearable->getAssetID())
|
||||
{
|
||||
gAgentWearables.setWearableItem(item, wearable);
|
||||
gInventory.notifyObservers();
|
||||
//self->getFolderItem()->refreshFromRoot();
|
||||
}
|
||||
else
|
||||
{
|
||||
llinfos << "By the time wearable asset arrived, its inv item already pointed to a different asset." << llendl;
|
||||
}
|
||||
}
|
||||
}
|
||||
delete item_id;
|
||||
}
|
||||
*/
|
||||
//void LLWearableBridge::onWearOnAvatarArrived( LLWearable* wearable, void* userdata )
|
||||
//{
|
||||
// LLUUID* item_id = (LLUUID*) userdata;
|
||||
// if(wearable)
|
||||
// {
|
||||
// LLViewerInventoryItem* item = NULL;
|
||||
// item = (LLViewerInventoryItem*)gInventory.getItem(*item_id);
|
||||
// if(item)
|
||||
// {
|
||||
// if(item->getAssetUUID() == wearable->getAssetID())
|
||||
// {
|
||||
// gAgentWearables.setWearableItem(item, wearable);
|
||||
// gInventory.notifyObservers();
|
||||
// //self->getFolderItem()->refreshFromRoot();
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// llinfos << "By the time wearable asset arrived, its inv item already pointed to a different asset." << llendl;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// delete item_id;
|
||||
//}
|
||||
|
||||
// static
|
||||
// BAP remove the "add" code path once everything is fully COF-ified.
|
||||
/*
|
||||
void LLWearableBridge::onWearAddOnAvatarArrived( LLWearable* wearable, void* userdata )
|
||||
{
|
||||
LLUUID* item_id = (LLUUID*) userdata;
|
||||
if(wearable)
|
||||
{
|
||||
LLViewerInventoryItem* item = NULL;
|
||||
item = (LLViewerInventoryItem*)gInventory.getItem(*item_id);
|
||||
if(item)
|
||||
{
|
||||
if(item->getAssetUUID() == wearable->getAssetID())
|
||||
{
|
||||
bool do_append = true;
|
||||
gAgentWearables.setWearableItem(item, wearable, do_append);
|
||||
gInventory.notifyObservers();
|
||||
//self->getFolderItem()->refreshFromRoot();
|
||||
}
|
||||
else
|
||||
{
|
||||
llinfos << "By the time wearable asset arrived, its inv item already pointed to a different asset." << llendl;
|
||||
}
|
||||
}
|
||||
}
|
||||
delete item_id;
|
||||
}
|
||||
*/
|
||||
//void LLWearableBridge::onWearAddOnAvatarArrived( LLWearable* wearable, void* userdata )
|
||||
//{
|
||||
// LLUUID* item_id = (LLUUID*) userdata;
|
||||
// if(wearable)
|
||||
// {
|
||||
// LLViewerInventoryItem* item = NULL;
|
||||
// item = (LLViewerInventoryItem*)gInventory.getItem(*item_id);
|
||||
// if(item)
|
||||
// {
|
||||
// if(item->getAssetUUID() == wearable->getAssetID())
|
||||
// {
|
||||
// bool do_append = true;
|
||||
// gAgentWearables.setWearableItem(item, wearable, do_append);
|
||||
// gInventory.notifyObservers();
|
||||
// //self->getFolderItem()->refreshFromRoot();
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// llinfos << "By the time wearable asset arrived, its inv item already pointed to a different asset." << llendl;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// delete item_id;
|
||||
//}
|
||||
|
||||
// static
|
||||
BOOL LLWearableBridge::canEditOnAvatar(void* user_data)
|
||||
|
|
@ -5148,66 +5138,48 @@ BOOL LLWearableBridge::canRemoveFromAvatar(void* user_data)
|
|||
}
|
||||
|
||||
// static
|
||||
/*
|
||||
void LLWearableBridge::onRemoveFromAvatar(void* user_data)
|
||||
{
|
||||
LLWearableBridge* self = (LLWearableBridge*)user_data;
|
||||
if(!self) return;
|
||||
if(get_is_item_worn(self->mUUID))
|
||||
{
|
||||
LLViewerInventoryItem* item = self->getItem();
|
||||
if (item)
|
||||
{
|
||||
LLUUID parent_id = item->getParentUUID();
|
||||
LLWearableList::instance().getAsset(item->getAssetUUID(),
|
||||
item->getName(),
|
||||
item->getType(),
|
||||
onRemoveFromAvatarArrived,
|
||||
new OnRemoveStruct(LLUUID(self->mUUID)));
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
//void LLWearableBridge::onRemoveFromAvatar(void* user_data)
|
||||
//{
|
||||
// LLWearableBridge* self = (LLWearableBridge*)user_data;
|
||||
// if(!self) return;
|
||||
// if(get_is_item_worn(self->mUUID))
|
||||
// {
|
||||
// LLViewerInventoryItem* item = self->getItem();
|
||||
// if (item)
|
||||
// {
|
||||
// LLUUID parent_id = item->getParentUUID();
|
||||
// LLWearableList::instance().getAsset(item->getAssetUUID(),
|
||||
// item->getName(),
|
||||
// item->getType(),
|
||||
// onRemoveFromAvatarArrived,
|
||||
// new OnRemoveStruct(LLUUID(self->mUUID)));
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
|
||||
// static
|
||||
/*
|
||||
void LLWearableBridge::onRemoveFromAvatarArrived(LLWearable* wearable,
|
||||
void* userdata)
|
||||
{
|
||||
OnRemoveStruct *on_remove_struct = (OnRemoveStruct*) userdata;
|
||||
const LLUUID &item_id = gInventory.getLinkedItemID(on_remove_struct->mUUID);
|
||||
|
||||
// [RLVa:KB] - Checked: 2010-03-20 (RLVa-1.2.0c) | Modified: RLVa-1.2.0a
|
||||
if ( (rlv_handler_t::isEnabled()) && ((!wearable) || (!gRlvWearableLocks.canRemove(gInventory.getItem(item_id)))) )
|
||||
{
|
||||
delete on_remove_struct;
|
||||
return;
|
||||
}
|
||||
// [/RLVa:KB]
|
||||
|
||||
if(wearable)
|
||||
{
|
||||
if( get_is_item_worn( item_id ) )
|
||||
{
|
||||
LLWearableType::EType type = wearable->getType();
|
||||
|
||||
if( !(type==LLWearableType::WT_SHAPE || type==LLWearableType::WT_SKIN || type==LLWearableType::WT_HAIR || type==LLWearableType::WT_EYES ) ) //&&
|
||||
//!((!gAgent.isTeen()) && ( type==LLWearableType::WT_UNDERPANTS || type==LLWearableType::WT_UNDERSHIRT )) )
|
||||
{
|
||||
bool do_remove_all = false;
|
||||
U32 index = gAgentWearables.getWearableIndex(wearable);
|
||||
gAgentWearables.removeWearable( type, do_remove_all, index );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Find and remove this item from the COF.
|
||||
LLAppearanceMgr::instance().removeCOFItemLinks(item_id,false);
|
||||
gInventory.notifyObservers();
|
||||
|
||||
delete on_remove_struct;
|
||||
}
|
||||
*/
|
||||
// if(wearable)
|
||||
// {
|
||||
// if( get_is_item_worn( item_id ) )
|
||||
// {
|
||||
// LLWearableType::EType type = wearable->getType();
|
||||
//
|
||||
// if( !(type==LLWearableType::WT_SHAPE || type==LLWearableType::WT_SKIN || type==LLWearableType::WT_HAIR || type==LLWearableType::WT_EYES ) ) //&&
|
||||
// //!((!gAgent.isTeen()) && ( type==LLWearableType::WT_UNDERPANTS || type==LLWearableType::WT_UNDERSHIRT )) )
|
||||
// {
|
||||
// bool do_remove_all = false;
|
||||
// U32 index = gAgentWearables.getWearableIndex(wearable);
|
||||
// gAgentWearables.removeWearable( type, do_remove_all, index );
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// // Find and remove this item from the COF.
|
||||
// LLAppearanceMgr::instance().removeCOFItemLinks(item_id,false);
|
||||
// gInventory.notifyObservers();
|
||||
//
|
||||
// delete on_remove_struct;
|
||||
//}
|
||||
|
||||
// static
|
||||
void LLWearableBridge::removeAllClothesFromAvatar()
|
||||
|
|
@ -5219,7 +5191,7 @@ void LLWearableBridge::removeAllClothesFromAvatar()
|
|||
continue;
|
||||
|
||||
// for (S32 index = gAgentWearables.getWearableCount(itype)-1; index >= 0 ; --index)
|
||||
// [SL:KB] - Patch: Appearance-Misc | Checked: 2010-09-04 (Catznip-2.5.0a) | Added: Catznip-2.1.2a
|
||||
// [SL:KB] - Patch: Appearance-Misc | Checked: 2010-09-04 (Catznip-2.6.0a) | Added: Catznip-2.1.2a
|
||||
for (S32 index = gAgentWearables.getWearableCount((LLWearableType::EType)itype)-1; index >= 0 ; --index)
|
||||
// [/SL:KB]
|
||||
{
|
||||
|
|
@ -5255,14 +5227,12 @@ void LLWearableBridge::removeItemFromAvatar(LLViewerInventoryItem *item)
|
|||
{
|
||||
if (item)
|
||||
{
|
||||
/*
|
||||
LLWearableList::instance().getAsset(item->getAssetUUID(),
|
||||
item->getName(),
|
||||
item->getType(),
|
||||
LLWearableBridge::onRemoveFromAvatarArrived,
|
||||
new OnRemoveStruct(item->getUUID()));
|
||||
*/
|
||||
// [SL:KB] - Patch: Appearance-RemoveWearableFromAvatar | Checked: 2010-08-13 (Catznip-2.5.0a) | Added: Catznip-2.1.1d
|
||||
// LLWearableList::instance().getAsset(item->getAssetUUID(),
|
||||
// item->getName(),
|
||||
// item->getType(),
|
||||
// LLWearableBridge::onRemoveFromAvatarArrived,
|
||||
// new OnRemoveStruct(item->getUUID()));
|
||||
// [SL:KB] - Patch: Appearance-RemoveWearableFromAvatar | Checked: 2010-08-13 (Catznip-2.6.0a) | Added: Catznip-2.1.1d
|
||||
LLAppearanceMgr::instance().removeItemFromAvatar(item->getUUID());
|
||||
// [/SL:KB]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -148,7 +148,10 @@ BOOL LLFloaterMove::postBuild()
|
|||
|
||||
initMovementMode();
|
||||
|
||||
LLViewerParcelMgr::getInstance()->addAgentParcelChangedCallback(LLFloaterMove::sUpdateFlyingStatus);
|
||||
// LLViewerParcelMgr::getInstance()->addAgentParcelChangedCallback(LLFloaterMove::sUpdateFlyingStatus);
|
||||
// [RLVa:KB] - Checked: 2011-05-27 (RLVa-1.4.0a) | Added: RLVa-1.4.0a
|
||||
LLViewerParcelMgr::getInstance()->addAgentParcelChangedCallback(LLFloaterMove::sUpdateMovementStatus);
|
||||
// [/RLVa:KB]
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
|
@ -477,12 +480,23 @@ void LLFloaterMove::updatePosition()
|
|||
}
|
||||
|
||||
//static
|
||||
void LLFloaterMove::sUpdateFlyingStatus()
|
||||
//void LLFloaterMove::sUpdateFlyingStatus()
|
||||
//{
|
||||
// LLFloaterMove *floater = LLFloaterReg::findTypedInstance<LLFloaterMove>("moveview");
|
||||
// if (floater) floater->mModeControlButtonMap[MM_FLY]->setEnabled(gAgent.canFly());
|
||||
//
|
||||
//}
|
||||
// [RLVa:KB] - Checked: 2011-05-27 (RLVa-1.4.0a) | Added: RLVa-1.4.0a
|
||||
void LLFloaterMove::sUpdateMovementStatus()
|
||||
{
|
||||
LLFloaterMove *floater = LLFloaterReg::findTypedInstance<LLFloaterMove>("moveview");
|
||||
if (floater) floater->mModeControlButtonMap[MM_FLY]->setEnabled(gAgent.canFly());
|
||||
|
||||
LLFloaterMove* pFloater = LLFloaterReg::findTypedInstance<LLFloaterMove>("moveview");
|
||||
if (pFloater)
|
||||
{
|
||||
pFloater->mModeControlButtonMap[MM_RUN]->setEnabled(gRlvHandler.hasBehaviour(RLV_BHVR_ALWAYSRUN));
|
||||
pFloater->mModeControlButtonMap[MM_FLY]->setEnabled(gAgent.canFly());
|
||||
}
|
||||
}
|
||||
// [/RLVa:KB]
|
||||
|
||||
void LLFloaterMove::showModeButtons(BOOL bShow)
|
||||
{
|
||||
|
|
@ -528,7 +542,10 @@ void LLFloaterMove::onOpen(const LLSD& key)
|
|||
// anchor_panel, this,
|
||||
// getDockTongue(), LLDockControl::TOP));
|
||||
|
||||
sUpdateFlyingStatus();
|
||||
// sUpdateFlyingStatus();
|
||||
// [RLVa:KB] - Checked: 2011-05-27 (RLVa-1.4.0a) | Added: RLVa-1.4.0a
|
||||
sUpdateMovementStatus();
|
||||
// [/RLVa:KB]
|
||||
}
|
||||
|
||||
//virtual
|
||||
|
|
|
|||
|
|
@ -60,7 +60,10 @@ public:
|
|||
/*virtual*/ void onOpen(const LLSD& key);
|
||||
/*virtual*/ void setDocked(bool docked, bool pop_on_undock = true);
|
||||
|
||||
static void sUpdateFlyingStatus();
|
||||
// static void sUpdateFlyingStatus();
|
||||
// [RLVa:KB] - Checked: 2011-05-27 (RLVa-1.4.0a) | Added: RLVa-1.4.0a
|
||||
static void sUpdateMovementStatus();
|
||||
// [/RLVa:KB]
|
||||
|
||||
protected:
|
||||
void turnLeft();
|
||||
|
|
|
|||
|
|
@ -52,6 +52,9 @@
|
|||
// [/RLVa:KB]
|
||||
#include "chatbar_as_cmdline.h"
|
||||
#include "llviewerchat.h"
|
||||
// [RLVa:KB] - Checked: 2010-02-27 (RLVa-1.2.0b)
|
||||
#include "rlvhandler.h"
|
||||
// [/RLVa:KB]
|
||||
|
||||
S32 LLNearbyChatBar::sLastSpecialChatChannel = 0;
|
||||
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ public:
|
|||
|
||||
static LLSidepanelAppearance* getAppearanceSP();
|
||||
|
||||
// [RLVa:KB] - Checked: 2010-08-24 (RLVa-1.2.1a) | Added: RLVa-1.2.1a
|
||||
// [RLVa:KB] - Checked: 2010-08-24 (RLVa-1.4.0a) | Added: RLVa-1.2.1a
|
||||
LLTabContainer* getAppearanceTabs() { return mAppearanceTabs; }
|
||||
LLOutfitsList* getMyOutfitsPanel() { return mMyOutfitsPanel; }
|
||||
LLPanelWearing* getCurrentOutfitPanel() { return mCurrentOutfitPanel; }
|
||||
|
|
|
|||
|
|
@ -63,8 +63,8 @@
|
|||
#include "roles_constants.h"
|
||||
#include "llgroupactions.h"
|
||||
// [RLVa:KB] - Checked: 2010-08-25 (RLVa-1.2.2a)
|
||||
#include "rlvhandler.h"
|
||||
#include "llslurl.h"
|
||||
#include "rlvhandler.h"
|
||||
// [/RLVa:KB]
|
||||
|
||||
U8 string_value_to_click_action(std::string p_value);
|
||||
|
|
|
|||
|
|
@ -62,8 +62,8 @@
|
|||
#include "roles_constants.h"
|
||||
#include "llgroupactions.h"
|
||||
// [RLVa:KB] - Checked: 2010-08-25 (RLVa-1.2.2a)
|
||||
#include "rlvhandler.h"
|
||||
#include "llslurl.h"
|
||||
#include "rlvhandler.h"
|
||||
// [/RLVa:KB]
|
||||
|
||||
///----------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -106,7 +106,8 @@ LLSideTrayTab::LLSideTrayTab(const Params& p)
|
|||
|
||||
LLSideTrayTab::~LLSideTrayTab()
|
||||
{
|
||||
// [RLVa:KB] - Checked: 2010-12-13 (RLVa-1.2.2c) | Added: RLVa-1.2.2c
|
||||
// [RLVa:KB] - Checked: 2010-12-13 (RLVa-1.4.0a) | Added: RLVa-1.2.2c
|
||||
// NOTE-RLVa: [RLVa-1.4.0a] This isn't really needed anymore with LLFloaterSideTrayTab since onClose will redock the tab anyway
|
||||
if (LLSideTray::instanceCreated())
|
||||
LLSideTray::getInstance()->onTabDestroy(this);
|
||||
// [/RLVa:KB]
|
||||
|
|
@ -215,6 +216,10 @@ void LLSideTrayTab::toggleTabDocked(bool toggle_floater /* = true */)
|
|||
|
||||
LLFloater* floater_tab = LLFloaterReg::getInstance("side_bar_tab", tab_name);
|
||||
if (!floater_tab) return;
|
||||
// [RLVa:KB] - Checked: 2010-12-14 (RLVa-1.4.0a) | Added: RLVa-1.2.2c
|
||||
if (floater_tab->isMinimized())
|
||||
floater_tab->setMinimized(FALSE);
|
||||
// [/RLVa:KB]
|
||||
|
||||
// bool docking = LLFloater::isShown(floater_tab);
|
||||
// [RLVa:KB] - Checked: 2010-12-14 (RLVa-1.2.2c) | Added: RLVa-1.2.2c
|
||||
|
|
@ -760,10 +765,14 @@ LLPanel* LLSideTray::openChildPanel(LLSideTrayTab* tab, const std::string& panel
|
|||
|
||||
std::string tab_name = tab->getName();
|
||||
|
||||
// [RLVa:KB] - Checked: 2011-05-26 (RLVa-1.4.0a) | Modified: RLVa-1.4.0a
|
||||
// Don't open a child panel if the tab it belongs to has its tab button disabled
|
||||
const LLButton* pTabBtn = getButtonFromName(tab->getName());
|
||||
if ( (pTabBtn) && (!pTabBtn->getEnabled()) )
|
||||
return NULL;
|
||||
|
||||
// [RLVa:KB] - Checked: 2010-09-07 (RLVa-1.2.1a) | Modified: RLVa-1.2.1a
|
||||
// NOTE: - "panel_name" is a name of a panel *inside* of the tab, not the name of the tab that's being switched to
|
||||
if ( (mValidateSignal) && (!(*mValidateSignal)(tab, LLSD(tab_name))) )
|
||||
// NOTE: "panel_name" is a name of a panel *inside* of the tab, not the name of the tab that's being switched to
|
||||
if ( (mValidateSignal) && (!(*mValidateSignal)(tab, LLSD(panel_name))) )
|
||||
return NULL;
|
||||
// [/RLVa:KB]
|
||||
|
||||
|
|
@ -836,11 +845,15 @@ bool LLSideTray::selectTabByName(const std::string& name, bool keep_prev_visible
|
|||
if (new_tab == mActiveTab)
|
||||
return false;
|
||||
|
||||
// [RLVa:KB] - Checked: 2010-12-14 (RLVa-1.2.2c) | Added: RLVa-1.2.2c
|
||||
// [RLVa:KB] - Checked: 2011-05-26 (RLVa-1.4.0a) | Modified: RLVa-1.4.0a
|
||||
// Don't switch to a tab if its tab button is disabled
|
||||
const LLButton* pTabBtn = getButtonFromName(new_tab->getName());
|
||||
if ( (pTabBtn) && (!pTabBtn->getEnabled()) )
|
||||
return false;
|
||||
|
||||
// Fire the validation signal to see if anyone objects to this tab being selected
|
||||
if ( (mValidateSignal) && (!(*mValidateSignal)(new_tab, LLSD())) )
|
||||
return false;
|
||||
// [/RLVa:KB]
|
||||
|
||||
//deselect old tab
|
||||
|
|
@ -975,7 +988,7 @@ bool LLSideTray::removeTab(LLSideTrayTab* tab)
|
|||
while ((*next_tab_it)->getName() == "sidebar_openclose");
|
||||
|
||||
// selectTabByName((*next_tab_it)->getName(), true); // Don't hide the tab being removed.
|
||||
// [RLVa:KB] - Checked: 2010-12-14 (RLVa-1.2.2c) | Added: RLVa-1.2.2c
|
||||
// [RLVa:KB] - Checked: 2010-12-14 (RLVa-1.4.0a) | Added: RLVa-1.2.2c
|
||||
// If there are no tabs that can be switched to then mActiveTab should be NULL rather than point to a now undocked tab
|
||||
if (!selectTabByName((*next_tab_it)->getName(), true))
|
||||
mActiveTab = NULL;
|
||||
|
|
@ -1133,7 +1146,7 @@ void LLSideTray::onToggleCollapse()
|
|||
collapseSideBar();
|
||||
}
|
||||
|
||||
// [RLVa:KB] - Checked: 2010-12-13 (RLVa-1.2.2c) | Added: RLVa-1.2.2c
|
||||
// [RLVa:KB] - Checked: 2010-12-13 (RLVa-1.4.0a) | Added: RLVa-1.2.2c
|
||||
bool LLSideTray::onTabDestroy(const LLSideTrayTab* tab)
|
||||
{
|
||||
child_vector_iter_t itDetachedTab = std::find(mDetachedTabs.begin(), mDetachedTabs.end(), tab);
|
||||
|
|
@ -1268,7 +1281,7 @@ void LLSideTray::collapseSideBar()
|
|||
|
||||
void LLSideTray::expandSideBar(bool open_active)
|
||||
{
|
||||
// [RLVa:KB] - Checked: 2010-12-14 (RLVa-1.2.2c) | Added: RLVa-1.2.2c
|
||||
// [RLVa:KB] - Checked: 2010-12-14 (RLVa-1.4.0a) | Added: RLVa-1.2.2c
|
||||
// Don't expand the sidebar unless the currently active tab's button is enabled, or we have another tab we can switch to
|
||||
const LLPanel* pActiveTab = getActiveTab();
|
||||
const LLButton* pTabBtn = (pActiveTab) ? getButtonFromName(pActiveTab->getName()) : NULL;
|
||||
|
|
@ -1619,7 +1632,7 @@ bool LLSideTray::isFloaterPanelVisible(const std::string& panel_name)
|
|||
}
|
||||
//-TT
|
||||
|
||||
// [RLVa:KB] - Checked: 2010-03-01 (RLVa-1.2.0a) | Added: RLVa-1.2.0a
|
||||
// [RLVa:KB] - Checked: 2010-03-01 (RLVa-1.4.0a) | Added: RLVa-1.2.0a
|
||||
const LLPanel* LLSideTray::getActiveTab() const
|
||||
{
|
||||
return mActiveTab;
|
||||
|
|
|
|||
|
|
@ -142,7 +142,7 @@ public:
|
|||
/*
|
||||
* get currently active tab
|
||||
*/
|
||||
// [RLVa:KB] - Checked: 2010-03-01 (RLVa-1.2.0a) | Added: RLVa-1.2.0a
|
||||
// [RLVa:KB] - Checked: 2010-03-01 (RLVa-1.4.0a) | Added: RLVa-1.2.0a
|
||||
// *sighs* LLSideTrayTab is defined in llsidetray.cpp... we can make do with an LLPanel* though
|
||||
const LLPanel* getActiveTab() const;
|
||||
// [/RLVa:KB]
|
||||
|
|
@ -172,10 +172,10 @@ public:
|
|||
}
|
||||
|
||||
LLPanel* getButtonsPanel() { return mButtonsPanel; }
|
||||
// [RLVa:KB] - Checked: 2010-02-28 (RLVa-1.2.0a) | Added: RLVa-1.2.0a
|
||||
// [RLVa:KB] - Checked: 2010-02-28 (RLVa-1.4.0a) | Added: RLVa-1.2.0a
|
||||
LLButton* getButtonFromName(const std::string& strName)
|
||||
{
|
||||
std::map<std::string, LLButton*>::const_iterator itBtn = mTabButtons.find(strName);
|
||||
button_map_t::const_iterator itBtn = mTabButtons.find(strName);
|
||||
return (mTabButtons.end() != itBtn) ? itBtn->second : NULL;
|
||||
}
|
||||
// [/RLVa:KB]
|
||||
|
|
@ -247,7 +247,7 @@ protected:
|
|||
LLPanel* openChildPanel (LLSideTrayTab* tab, const std::string& panel_name, const LLSD& params);
|
||||
|
||||
void onTabButtonClick(std::string name);
|
||||
// [RLVa:KB] - Checked: 2010-12-13 (RLVa-1.2.2c) | Added: RLVa-1.2.2c
|
||||
// [RLVa:KB] - Checked: 2010-12-13 (RLVa-1.4.0a) | Added: RLVa-1.2.2c
|
||||
bool onTabDestroy (const LLSideTrayTab* tab);
|
||||
// [/RLVa:KB]
|
||||
void onToggleCollapse();
|
||||
|
|
|
|||
|
|
@ -1680,7 +1680,7 @@ EAcceptance LLToolDragAndDrop::dad3dRezAttachmentFromInv(
|
|||
if (mSource == SOURCE_LIBRARY)
|
||||
{
|
||||
// LLPointer<LLInventoryCallback> cb = new RezAttachmentCallback(0);
|
||||
// [SL:KB] - Patch: Appearance-Misc | Checked: 2010-09-28 (Catznip-2.5.0a) | Added: Catznip-2.2.0a
|
||||
// [SL:KB] - Patch: Appearance-Misc | Checked: 2010-09-28 (Catznip-2.6.0a) | Added: Catznip-2.2.0a
|
||||
// Make this behave consistent with dad3dWearItem
|
||||
LLPointer<LLInventoryCallback> cb = new RezAttachmentCallback(0, !(mask & MASK_CONTROL));
|
||||
// [/SL:KB]
|
||||
|
|
@ -1695,7 +1695,7 @@ EAcceptance LLToolDragAndDrop::dad3dRezAttachmentFromInv(
|
|||
else
|
||||
{
|
||||
// rez_attachment(item, 0);
|
||||
// [SL:KB] - Patch: Appearance-Misc | Checked: 2010-09-28 (Catznip-2.5.0a) | Added: Catznip-2.2.0a
|
||||
// [SL:KB] - Patch: Appearance-Misc | Checked: 2010-09-28 (Catznip-2.6.0a) | Added: Catznip-2.2.0a
|
||||
// Make this behave consistent with dad3dWearItem
|
||||
rez_attachment(item, 0, !(mask & MASK_CONTROL));
|
||||
// [/SL:KB]
|
||||
|
|
|
|||
|
|
@ -570,6 +570,7 @@ BOOL LLToolPie::handleHover(S32 x, S32 y, MASK mask)
|
|||
return TRUE;
|
||||
}
|
||||
// [/RLVa:KB]
|
||||
|
||||
if (object)
|
||||
{
|
||||
parent = object->getRootEdit();
|
||||
|
|
@ -630,7 +631,13 @@ BOOL LLToolPie::handleHover(S32 x, S32 y, MASK mask)
|
|||
gViewerWindow->setCursor(cursor);
|
||||
lldebugst(LLERR_USER_INPUT) << "hover handled by LLToolPie (inactive)" << llendl;
|
||||
}
|
||||
|
||||
// [RLVa:KB] - Checked: 2010-03-11 (RLVa-1.2.0e) | Added: RLVa-1.1.0l
|
||||
else if ( (object) && (rlv_handler_t::isEnabled()) && (!gRlvHandler.canTouch(object)) )
|
||||
{
|
||||
// Block showing the "grab" or "touch" cursor if we can't touch the object (@fartouch=n is handled above)
|
||||
gViewerWindow->setCursor(UI_CURSOR_ARROW);
|
||||
}
|
||||
// [/RLVa:KB]
|
||||
else if ((object && !object->isAvatar() && object->usePhysics())
|
||||
|| (parent && !parent->isAvatar() && parent->usePhysics()))
|
||||
{
|
||||
|
|
@ -1070,7 +1077,6 @@ BOOL LLToolPie::handleTooltipObject( LLViewerObject* hover_object, std::string l
|
|||
p.click_callback(boost::bind(showAvatarInspector, hover_object->getID()));
|
||||
p.visible_time_near(6.f);
|
||||
p.visible_time_far(3.f);
|
||||
//p.delay_time(0.35f);
|
||||
p.delay_time(gSavedSettings.getF32("AvatarInspectorTooltipDelay"));
|
||||
p.wrap(false);
|
||||
|
||||
|
|
@ -1201,7 +1207,6 @@ BOOL LLToolPie::handleTooltipObject( LLViewerObject* hover_object, std::string l
|
|||
p.click_homepage_callback(boost::bind(VisitHomePage, mHoverPick));
|
||||
p.visible_time_near(6.f);
|
||||
p.visible_time_far(3.f);
|
||||
//p.delay_time(0.35f);
|
||||
p.delay_time(gSavedSettings.getF32("ObjectInspectorTooltipDelay"));
|
||||
p.wrap(false);
|
||||
|
||||
|
|
@ -1213,7 +1218,6 @@ BOOL LLToolPie::handleTooltipObject( LLViewerObject* hover_object, std::string l
|
|||
LLToolTipMgr::instance().show(tooltip_msg);
|
||||
}
|
||||
// [/RLVa:KB]
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -957,7 +957,7 @@ void ModifiedCOFCallback::fire(const LLUUID& inv_item)
|
|||
}
|
||||
|
||||
//RezAttachmentCallback::RezAttachmentCallback(LLViewerJointAttachment *attachmentp)
|
||||
// [SL:KB] - Patch: Appearance-Misc | Checked: 2010-09-28 (Catznip-2.5.0a) | Added: Catznip-2.2.0a
|
||||
// [SL:KB] - Patch: Appearance-Misc | Checked: 2010-09-28 (Catznip-2.6.0a) | Added: Catznip-2.2.0a
|
||||
RezAttachmentCallback::RezAttachmentCallback(LLViewerJointAttachment *attachmentp, bool replace)
|
||||
: mAttach(attachmentp), mReplace(replace)
|
||||
// [/SL:KB]
|
||||
|
|
@ -977,7 +977,7 @@ void RezAttachmentCallback::fire(const LLUUID& inv_item)
|
|||
if (item)
|
||||
{
|
||||
// rez_attachment(item, mAttach);
|
||||
// [SL:KB] - Patch: Appearance-Misc | Checked: 2010-09-28 (Catznip-2.5.0a) | Added: Catznip-2.2.0a
|
||||
// [SL:KB] - Patch: Appearance-Misc | Checked: 2010-09-28 (Catznip-2.6.0a) | Added: Catznip-2.2.0a
|
||||
rez_attachment(item, mAttach, mReplace);
|
||||
// [/SL:KB]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -264,7 +264,7 @@ class RezAttachmentCallback : public LLInventoryCallback
|
|||
{
|
||||
public:
|
||||
// RezAttachmentCallback(LLViewerJointAttachment *attachmentp);
|
||||
// [SL:KB] - Patch: Appearance-Misc | Checked: 2010-09-28 (Catznip-2.5.0a) | Added: Catznip-2.2.0a
|
||||
// [SL:KB] - Patch: Appearance-Misc | Checked: 2010-09-28 (Catznip-2.6.0a) | Added: Catznip-2.2.0a
|
||||
RezAttachmentCallback(LLViewerJointAttachment *attachmentp, bool replace = false);
|
||||
// [/SL:KB]
|
||||
void fire(const LLUUID& inv_item);
|
||||
|
|
@ -274,7 +274,7 @@ protected:
|
|||
|
||||
private:
|
||||
LLViewerJointAttachment* mAttach;
|
||||
// [SL:KB] - Patch: Appearance-Misc | Checked: 2010-09-28 (Catznip-2.5.0a) | Added: Catznip-2.2.0a
|
||||
// [SL:KB] - Patch: Appearance-Misc | Checked: 2010-09-28 (Catznip-2.6.0a) | Added: Catznip-2.2.0a
|
||||
bool mReplace;
|
||||
// [/SL:KB]
|
||||
};
|
||||
|
|
|
|||
|
|
@ -169,7 +169,7 @@ BOOL LLViewerJointAttachment::addObject(LLViewerObject* object)
|
|||
// re-connect object to the joint correctly
|
||||
}
|
||||
|
||||
// [SL:KB] - Patch: Appearance-Misc | Checked: Catznip-2.4.0h (2011-01-13) | Added: Catznip-2.4.0h
|
||||
// [SL:KB] - Patch: Appearance-Misc | Checked: Catznip-2.6.0a (2011-01-13) | Added: Catznip-2.4.0h
|
||||
// LLViewerJointAttachment::removeObject() sets the object's item to the NULL UUID so we need to extract it *after* the block above
|
||||
object->extractAttachmentItemID();
|
||||
// [/SL:KB]
|
||||
|
|
|
|||
|
|
@ -8967,4 +8967,13 @@ void initialize_menus()
|
|||
// [/RLVa:KB]
|
||||
commit.add("Destination.show", boost::bind(&toggle_destination_and_avatar_picker, 0));
|
||||
commit.add("Avatar.show", boost::bind(&toggle_destination_and_avatar_picker, 1));
|
||||
|
||||
// [RLVa:KB] - Checked: 2010-04-23 (RLVa-1.2.0g) | Added: RLVa-1.2.0
|
||||
commit.add("RLV.ToggleEnabled", boost::bind(&rlvMenuToggleEnabled));
|
||||
enable.add("RLV.CheckEnabled", boost::bind(&rlvMenuCheckEnabled));
|
||||
if (rlv_handler_t::isEnabled())
|
||||
{
|
||||
enable.add("RLV.EnableIfNot", boost::bind(&rlvMenuEnableIfNot, _2));
|
||||
}
|
||||
// [/RLVa:KB]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1503,6 +1503,7 @@ bool LLOfferInfo::inventory_offer_callback(const LLSD& notification, const LLSD&
|
|||
gInventory.addObserver(pOfferObserver);
|
||||
}
|
||||
// [/RLVa:KB]
|
||||
|
||||
if (gSavedSettings.getBOOL("ShowOfferedInventory"))
|
||||
{
|
||||
LLOpenAgentOffer* open_agent_offer = new LLOpenAgentOffer(mObjectID, from_string);
|
||||
|
|
@ -1828,6 +1829,7 @@ bool LLOfferInfo::inventory_task_offer_callback(const LLSD& notification, const
|
|||
log_message_args["NAME"] = mFromName;
|
||||
log_message = LLTrans::getString("InvOfferDecline", log_message_args);
|
||||
|
||||
|
||||
LLSD args;
|
||||
args["MESSAGE"] = log_message;
|
||||
LLNotificationsUtil::add("SystemMessage", args);
|
||||
|
|
@ -5903,10 +5905,10 @@ bool attempt_standard_notification(LLMessageSystem* msgsystem)
|
|||
{
|
||||
// notification was specified using the new mechanism, so we can just handle it here
|
||||
std::string notificationID;
|
||||
msgsystem->getStringFast(_PREHASH_AlertInfo, _PREHASH_Message, notificationID);
|
||||
if (!LLNotifications::getInstance()->templateExists(notificationID))
|
||||
{
|
||||
return false;
|
||||
msgsystem->getStringFast(_PREHASH_AlertInfo, _PREHASH_Message, notificationID);
|
||||
if (!LLNotifications::getInstance()->templateExists(notificationID))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
std::string llsdRaw;
|
||||
|
|
|
|||
|
|
@ -1104,7 +1104,7 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,
|
|||
coloru.mV[3] = 255 - coloru.mV[3];
|
||||
mText->setColor(LLColor4(coloru));
|
||||
mText->setString(temp_string);
|
||||
// [RLVa:KB] - Checked: 2010-03-27 (RLVa-1.2.0b) | Added: RLVa-1.0.0f
|
||||
// [RLVa:KB] - Checked: 2010-03-27 (RLVa-1.4.0a) | Added: RLVa-1.0.0f
|
||||
if (rlv_handler_t::isEnabled())
|
||||
{
|
||||
mText->setObjectText(temp_string);
|
||||
|
|
@ -1502,7 +1502,7 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,
|
|||
coloru.mV[3] = 255 - coloru.mV[3];
|
||||
mText->setColor(LLColor4(coloru));
|
||||
mText->setString(temp_string);
|
||||
// [RLVa:KB] - Checked: 2010-03-27 (RLVa-1.2.0b) | Added: RLVa-1.0.0f
|
||||
// [RLVa:KB] - Checked: 2010-03-27 (RLVa-1.4.0a) | Added: RLVa-1.0.0f
|
||||
if (rlv_handler_t::isEnabled())
|
||||
{
|
||||
mText->setObjectText(temp_string);
|
||||
|
|
|
|||
|
|
@ -118,8 +118,8 @@
|
|||
|
||||
// Library includes from llvfs
|
||||
#include "lldir.h"
|
||||
|
||||
// Library includes from llmessage project
|
||||
|
||||
// Library includes from llmessage project
|
||||
#include "llcachename.h"
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -110,8 +110,8 @@ void LLViewerTextureList::doPreloadImages()
|
|||
{
|
||||
LL_DEBUGS("ViewerImages") << "Preloading images..." << LL_ENDL;
|
||||
|
||||
llassert_always(mInitialized) ;
|
||||
llassert_always(mImageList.empty()) ;
|
||||
llassert_always(mInitialized) ;
|
||||
llassert_always(mImageList.empty()) ;
|
||||
llassert_always(mUUIDMap.empty()) ;
|
||||
|
||||
// Set the "missing asset" image
|
||||
|
|
|
|||
|
|
@ -5799,7 +5799,7 @@ LLViewerJointAttachment* LLVOAvatar::getTargetAttachmentPoint(LLViewerObject* vi
|
|||
llwarns << "Object attachment point invalid: " << attachmentID << llendl;
|
||||
}
|
||||
// attachment = get_if_there(mAttachmentPoints, 1, (LLViewerJointAttachment*)NULL); // Arbitrary using 1 (chest)
|
||||
// [SL:KB] - Patch: Appearance-LegacyMultiAttachment | Checked: 2010-08-28 (Catznip-2.5.0a) | Added: Catznip-2.1.2a
|
||||
// [SL:KB] - Patch: Appearance-LegacyMultiAttachment | Checked: 2010-08-28 (Catznip-2.6.0a) | Added: Catznip-2.1.2a
|
||||
S32 idxAttachPt = 1;
|
||||
if ( (!isSelf()) && (gSavedSettings.getBOOL("LegacyMultiAttachmentSupport")) && (attachmentID > 38) && (attachmentID <= 68) )
|
||||
idxAttachPt = attachmentID - 38;
|
||||
|
|
@ -6305,7 +6305,7 @@ BOOL LLVOAvatar::isFullyLoaded() const
|
|||
// return TRUE;
|
||||
// else
|
||||
// return mFullyLoaded;
|
||||
// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-09-22 (Catznip-2.5.0a) | Added: Catznip-2.2.0a
|
||||
// [SL:KB] - Patch: Appearance-SyncAttach | Checked: 2010-09-22 (Catznip-2.6.0a) | Added: Catznip-2.2.0a
|
||||
// Changes to LLAppearanceMgr::updateAppearanceFromCOF() expect this function to actually return mFullyLoaded for gAgentAvatarp
|
||||
if ( (!isSelf()) && (gSavedSettings.getBOOL("RenderUnloadedAvatar")) )
|
||||
return TRUE;
|
||||
|
|
|
|||
|
|
@ -69,6 +69,10 @@
|
|||
// [/RLVa:KB]
|
||||
#include "lldatapacker.h"
|
||||
#include "llvocache.h"
|
||||
// [RLVa:KB] - Checked: 2011-05-22 (RLVa-1.3.1a)
|
||||
#include "rlvhandler.h"
|
||||
#include "rlvlocks.h"
|
||||
// [/RLVa:KB]
|
||||
|
||||
const S32 MIN_QUIET_FRAMES_COALESCE = 30;
|
||||
const F32 FORCE_SIMPLE_RENDER_AREA = 512.f;
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ void LLWearableList::processGetAssetReply( const char* filename, const LLAssetID
|
|||
BOOL isNewWearable = FALSE;
|
||||
LLWearableArrivedData* data = (LLWearableArrivedData*) userdata;
|
||||
// LLWearable* wearable = NULL; // NULL indicates failure
|
||||
// [SL:KB] - Patch: Appearance-Misc | Checked: 2010-08-13 (Catznip-2.5.0a) | Added: Catznip-2.1.1d
|
||||
// [SL:KB] - Patch: Appearance-Misc | Checked: 2010-08-13 (Catznip-2.6.0a) | Added: Catznip-2.1.1d
|
||||
LLWearable* wearable = get_if_there(LLWearableList::instance().mList, uuid, (LLWearable*)NULL);
|
||||
if (wearable)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -63,9 +63,9 @@ const S32 RLV_VERSION_BUILD = 0;
|
|||
|
||||
// Implementation version
|
||||
const S32 RLVa_VERSION_MAJOR = 1;
|
||||
const S32 RLVa_VERSION_MINOR = 3;
|
||||
const S32 RLVa_VERSION_PATCH = 1;
|
||||
const S32 RLVa_VERSION_BUILD = 1;
|
||||
const S32 RLVa_VERSION_MINOR = 4;
|
||||
const S32 RLVa_VERSION_PATCH = 0;
|
||||
const S32 RLVa_VERSION_BUILD = 0;
|
||||
|
||||
// Uncomment before a final release
|
||||
//#define RLV_RELEASE
|
||||
|
|
|
|||
|
|
@ -1268,22 +1268,6 @@ ERlvCmdRet RlvHandler::processAddRemCommand(const RlvCommand& rlvCmd)
|
|||
pObj->mText->setString( (RLV_TYPE_ADD == eType) ? "" : pObj->mText->getObjectText());
|
||||
}
|
||||
break;
|
||||
case RLV_BHVR_ALWAYSRUN: // @alwaysrun=n|y - Checked: 2011-05-11 (RLVa-1.3.0i) | Added: RLVa-1.3.0i
|
||||
{
|
||||
VERIFY_OPTION_REF(strOption.empty());
|
||||
|
||||
if (RLV_TYPE_ADD == eType)
|
||||
gAgent.clearAlwaysRun();
|
||||
}
|
||||
break;
|
||||
case RLV_BHVR_TEMPRUN: // @temprun=n|y - Checked: 2011-05-11 (RLVa-1.3.0i) | Added: RLVa-1.3.0i
|
||||
{
|
||||
VERIFY_OPTION_REF(strOption.empty());
|
||||
|
||||
if (RLV_TYPE_ADD == eType)
|
||||
gAgent.clearTempRun();
|
||||
}
|
||||
break;
|
||||
// The following block is only valid if there's no option
|
||||
case RLV_BHVR_SHOWLOC: // @showloc=n|y - Checked: 2009-12-05 (RLVa-1.1.0h) | Modified: RLVa-1.1.0h
|
||||
case RLV_BHVR_SHOWNAMES: // @shownames=n|y - Checked: 2009-12-05 (RLVa-1.1.0h) | Modified: RLVa-1.1.0h
|
||||
|
|
@ -1319,6 +1303,8 @@ ERlvCmdRet RlvHandler::processAddRemCommand(const RlvCommand& rlvCmd)
|
|||
case RLV_BHVR_TOUCHALL: // @touchall=n|y - Checked: 2011-01-21 (RLVa-1.3.0e) | Added: RLVa-1.3.0e
|
||||
case RLV_BHVR_TOUCHME: // @touchme=n|y - Checked: 2011-04-11 (RLVa-1.3.0h) | Added: RLVa-1.3.0h
|
||||
case RLV_BHVR_FLY: // @fly=n|y - Checked: 2010-03-02 (RLVa-1.2.0a)
|
||||
case RLV_BHVR_ALWAYSRUN: // @alwaysrun=n|y - Checked: 2011-05-11 (RLVa-1.3.0i) | Added: RLVa-1.3.0i
|
||||
case RLV_BHVR_TEMPRUN: // @temprun=n|y - Checked: 2011-05-11 (RLVa-1.3.0i) | Added: RLVa-1.3.0i
|
||||
case RLV_BHVR_UNSIT: // @unsit=n|y - Checked: 2009-12-05 (RLVa-1.1.0h) | Modified: RLVa-1.1.0h
|
||||
case RLV_BHVR_SIT: // @sit=n|y - Checked: 2009-12-05 (RLVa-1.1.0h) | Modified: RLVa-1.1.0h
|
||||
case RLV_BHVR_SITTP: // @sittp=n|y - Checked: 2009-12-05 (RLVa-1.1.0h) | Modified: RLVa-1.1.0h
|
||||
|
|
|
|||
|
|
@ -268,7 +268,7 @@ inline bool RlvHandler::canSendIM(const LLUUID& idRecipient) const
|
|||
( (!hasBehaviour(RLV_BHVR_SENDIMTO)) || (!isException(RLV_BHVR_SENDIMTO, idRecipient)) );
|
||||
}
|
||||
|
||||
// Checked: 2010-03-27 (RLVa-1.2.0b) | Modified: RLVa-1.0.0f
|
||||
// Checked: 2010-03-27 (RLVa-1.4.0a) | Modified: RLVa-1.0.0f
|
||||
inline bool RlvHandler::canShowHoverText(const LLViewerObject *pObj) const
|
||||
{
|
||||
return ( (!pObj) || (LL_PCODE_VOLUME != pObj->getPCode()) ||
|
||||
|
|
|
|||
|
|
@ -46,10 +46,11 @@
|
|||
|
||||
#include "rlvui.h"
|
||||
#include "rlvhandler.h"
|
||||
#include "rlvextensions.h"
|
||||
|
||||
// ============================================================================
|
||||
|
||||
// Checked: 2010-02-28 (RLVa-1.2.0a) | Added: RLVa-1.2.0a
|
||||
// Checked: 2010-02-28 (RLVa-1.4.0a) | Added: RLVa-1.2.0a
|
||||
RlvUIEnabler::RlvUIEnabler()
|
||||
{
|
||||
// Connect us to the behaviour toggle signal
|
||||
|
|
@ -62,6 +63,11 @@ RlvUIEnabler::RlvUIEnabler()
|
|||
m_Handlers.insert(std::pair<ERlvBehaviour, behaviour_handler_t>(RLV_BHVR_SHOWHOVERTEXTWORLD, boost::bind(&RlvUIEnabler::onRefreshHoverText, this)));
|
||||
m_Handlers.insert(std::pair<ERlvBehaviour, behaviour_handler_t>(RLV_BHVR_SHOWHOVERTEXTHUD, boost::bind(&RlvUIEnabler::onRefreshHoverText, this)));
|
||||
|
||||
// onToggleMovement
|
||||
m_Handlers.insert(std::pair<ERlvBehaviour, behaviour_handler_t>(RLV_BHVR_FLY, boost::bind(&RlvUIEnabler::onToggleMovement, this)));
|
||||
m_Handlers.insert(std::pair<ERlvBehaviour, behaviour_handler_t>(RLV_BHVR_ALWAYSRUN, boost::bind(&RlvUIEnabler::onToggleMovement, this)));
|
||||
m_Handlers.insert(std::pair<ERlvBehaviour, behaviour_handler_t>(RLV_BHVR_TEMPRUN, boost::bind(&RlvUIEnabler::onToggleMovement, this)));
|
||||
|
||||
// onToggleViewXXX
|
||||
m_Handlers.insert(std::pair<ERlvBehaviour, behaviour_handler_t>(RLV_BHVR_VIEWNOTE, boost::bind(&RlvUIEnabler::onToggleViewXXX, this)));
|
||||
m_Handlers.insert(std::pair<ERlvBehaviour, behaviour_handler_t>(RLV_BHVR_VIEWSCRIPT, boost::bind(&RlvUIEnabler::onToggleViewXXX, this)));
|
||||
|
|
@ -69,8 +75,8 @@ RlvUIEnabler::RlvUIEnabler()
|
|||
|
||||
// onToggleXXX
|
||||
m_Handlers.insert(std::pair<ERlvBehaviour, behaviour_handler_t>(RLV_BHVR_EDIT, boost::bind(&RlvUIEnabler::onToggleEdit, this)));
|
||||
m_Handlers.insert(std::pair<ERlvBehaviour, behaviour_handler_t>(RLV_BHVR_FLY, boost::bind(&RlvUIEnabler::onToggleFly, this)));
|
||||
m_Handlers.insert(std::pair<ERlvBehaviour, behaviour_handler_t>(RLV_BHVR_REZ, boost::bind(&RlvUIEnabler::onToggleRez, this)));
|
||||
m_Handlers.insert(std::pair<ERlvBehaviour, behaviour_handler_t>(RLV_BHVR_SETDEBUG, boost::bind(&RlvUIEnabler::onToggleSetDebug, this)));
|
||||
m_Handlers.insert(std::pair<ERlvBehaviour, behaviour_handler_t>(RLV_BHVR_SETENV, boost::bind(&RlvUIEnabler::onToggleSetEnv, this)));
|
||||
m_Handlers.insert(std::pair<ERlvBehaviour, behaviour_handler_t>(RLV_BHVR_SHOWINV, boost::bind(&RlvUIEnabler::onToggleShowInv, this, _1)));
|
||||
m_Handlers.insert(std::pair<ERlvBehaviour, behaviour_handler_t>(RLV_BHVR_SHOWLOC, boost::bind(&RlvUIEnabler::onToggleShowLoc, this)));
|
||||
|
|
@ -90,7 +96,7 @@ RlvUIEnabler::RlvUIEnabler()
|
|||
#endif // RLV_EXTENSION_STARTLOCATION
|
||||
}
|
||||
|
||||
// Checked: 2010-02-28 (RLVa-1.2.0b) | Added: RLVa-1.2.0a
|
||||
// Checked: 2010-02-28 (RLVa-1.4.0a) | Added: RLVa-1.2.0a
|
||||
void RlvUIEnabler::onBehaviourToggle(ERlvBehaviour eBhvr, ERlvParamType eType)
|
||||
{
|
||||
bool fQuitting = LLApp::isQuitting();
|
||||
|
|
@ -103,7 +109,7 @@ void RlvUIEnabler::onBehaviourToggle(ERlvBehaviour eBhvr, ERlvParamType eType)
|
|||
|
||||
// ============================================================================
|
||||
|
||||
// Checked: 2010-03-02 (RLVa-1.2.0b) | Added: RLVa-1.2.0a
|
||||
// Checked: 2010-03-02 (RLVa-1.4.0a) | Added: RLVa-1.2.0a
|
||||
void RlvUIEnabler::onRefreshHoverText()
|
||||
{
|
||||
// Refresh all hover text each time any of the monitored behaviours get set or unset
|
||||
|
|
@ -139,26 +145,38 @@ void RlvUIEnabler::onToggleEdit()
|
|||
removeGenericFloaterFilter("beacons");
|
||||
}
|
||||
|
||||
// Checked: 2010-03-02 (RLVa-1.2.0d) | Added: RLVa-1.2.0a
|
||||
void RlvUIEnabler::onToggleFly()
|
||||
// Checked: 2010-03-02 (RLVa-1.4.0a) | Modified: RLVa-1.4.0a
|
||||
void RlvUIEnabler::onToggleMovement()
|
||||
{
|
||||
bool fEnable = !gRlvHandler.hasBehaviour(RLV_BHVR_FLY);
|
||||
|
||||
// Drop the avie out of the sky if currently flying and restricted
|
||||
if ( (!fEnable) && (gAgent.getFlying()) )
|
||||
if ( (gRlvHandler.hasBehaviour(RLV_BHVR_FLY)) && (gAgent.getFlying()) )
|
||||
gAgent.setFlying(FALSE);
|
||||
if ( (gRlvHandler.hasBehaviour(RLV_BHVR_ALWAYSRUN)) && (gAgent.getAlwaysRun()) )
|
||||
gAgent.clearAlwaysRun();
|
||||
if ( (gRlvHandler.hasBehaviour(RLV_BHVR_TEMPRUN)) && (gAgent.getTempRun()) )
|
||||
gAgent.clearTempRun();
|
||||
|
||||
// Force an update since the status only updates when the current parcel changes [see LLFloaterMove::postBuild()]
|
||||
LLFloaterMove::sUpdateFlyingStatus();
|
||||
LLFloaterMove::sUpdateMovementStatus();
|
||||
}
|
||||
|
||||
// Checked: 2010-09-11 (RLVa-1.2.1d) | Added: RLVa-1.2.1d
|
||||
// Checked: 2010-09-11 (RLVa-1.4.0a) | Added: RLVa-1.2.1d
|
||||
void RlvUIEnabler::onToggleRez()
|
||||
{
|
||||
// Enable/disable the "Build" bottom tray button
|
||||
LLBottomTray::getInstance()->getChild<LLButton>("build_btn")->setEnabled(isBuildEnabled());
|
||||
}
|
||||
|
||||
// Checked: 2011-05-28 (RLVa-1.4.0a) | Added: RLVa-1.4.0a
|
||||
void RlvUIEnabler::onToggleSetDebug()
|
||||
{
|
||||
//bool fEnable = !gRlvHandler.hasBehaviour(RLV_BHVR_SETDEBUG);
|
||||
//for (auto itSetting = RlvExtGetSet::m_DbgAllowed.cbegin(); itSetting != RlvExtGetSet::m_DbgAllowed.cend(); ++itSetting)
|
||||
//{
|
||||
// if (itSetting->second & RlvExtGetSet::DBG_WRITE)
|
||||
// gSavedSettings.getControl(itSetting->first)->setHiddenFromSettingsEditor(!fEnable);
|
||||
//}
|
||||
}
|
||||
|
||||
// Checked: 2010-03-17 (RLVa-1.2.0a) | Added: RLVa-1.2.0a
|
||||
void RlvUIEnabler::onToggleSetEnv()
|
||||
{
|
||||
|
|
@ -180,9 +198,13 @@ void RlvUIEnabler::onToggleSetEnv()
|
|||
removeGenericFloaterFilter(strEnvFloaters[idxFloater]);
|
||||
}
|
||||
}
|
||||
|
||||
// Don't allow toggling "Basic Shaders" and/or "Atmopsheric Shaders" through the debug settings under @setenv=n
|
||||
gSavedSettings.getControl("VertexShaderEnable")->setHiddenFromSettingsEditor(!fEnable);
|
||||
gSavedSettings.getControl("WindLightUseAtmosShaders")->setHiddenFromSettingsEditor(!fEnable);
|
||||
}
|
||||
|
||||
// Checked: 2010-09-07 (RLVa-1.2.1a) | Modified: RLVa-1.2.1a
|
||||
// Checked: 2010-09-07 (RLVa-1.4.0a) | Modified: RLVa-1.2.1a
|
||||
void RlvUIEnabler::onToggleShowInv(bool fQuitting)
|
||||
{
|
||||
if (fQuitting)
|
||||
|
|
@ -203,7 +225,7 @@ void RlvUIEnabler::onToggleShowInv(bool fQuitting)
|
|||
bool fCollapsed = pSideTray->getCollapsed();
|
||||
const LLPanel* pActiveTab = pSideTray->getActiveTab();
|
||||
|
||||
pSideTray->toggleTabDocked("sidebar_inventory");
|
||||
pSideTray->setTabDocked("sidebar_inventory", true, false);
|
||||
|
||||
if (pActiveTab)
|
||||
pSideTray->selectTabByName(pActiveTab->getName());
|
||||
|
|
@ -267,17 +289,20 @@ void RlvUIEnabler::onToggleShowInv(bool fQuitting)
|
|||
(*itFloater)->closeFloater();
|
||||
}
|
||||
|
||||
// Enable/disable the "Inventory" bottom tray button
|
||||
const LLBottomTray* pTray = LLBottomTray::getInstance();
|
||||
LLView* pBtnView = (pTray) ? pTray->getChildView("sidebar_inv_btn") : NULL;
|
||||
if (pBtnView)
|
||||
pBtnView->setEnabled(fEnable);
|
||||
|
||||
// Filter out (or stop filtering) newly spawned old style inventory floaters
|
||||
//
|
||||
// Filter (or stop filtering) opening the inventory sidebar tab and spawning old style inventory floaters
|
||||
//
|
||||
RLV_ASSERT_DBG( (fEnable) || (!m_ConnSidePanelInventory.connected()) );
|
||||
if (!fEnable)
|
||||
{
|
||||
m_ConnSidePanelInventory = pSideTray->setValidateCallback(boost::bind(&RlvUIEnabler::canOpenSidebarTab, this, RLV_BHVR_SHOWINV, "sidebar_inventory", _1, _2));
|
||||
addGenericFloaterFilter("inventory");
|
||||
}
|
||||
else
|
||||
{
|
||||
m_ConnSidePanelInventory.disconnect();
|
||||
removeGenericFloaterFilter("inventory");
|
||||
}
|
||||
}
|
||||
|
||||
// Checked: 2010-04-22 (RLVa-1.2.0f) | Modified: RLVa-1.2.0f
|
||||
|
|
@ -340,7 +365,7 @@ void RlvUIEnabler::onToggleShowLoc()
|
|||
m_ConnFloaterShowLoc.disconnect();
|
||||
}
|
||||
|
||||
// Checked: 2011-05-22 (RLVa-1.3.1b) | Modified: RLVa-1.3.1b
|
||||
// Checked: 2010-02-28 (RLVa-1.4.0a) | Added: RLVa-1.2.0a
|
||||
void RlvUIEnabler::onToggleShowMinimap()
|
||||
{
|
||||
bool fEnable = !gRlvHandler.hasBehaviour(RLV_BHVR_SHOWMINIMAP);
|
||||
|
|
@ -361,6 +386,7 @@ void RlvUIEnabler::onToggleShowMinimap()
|
|||
// Enable/disable the "Mini-Map" bottom tray button
|
||||
const LLBottomTray* pTray = LLBottomTray::getInstance();
|
||||
LLView* pBtnView = (pTray) ? pTray->getChildView("mini_map_btn") : NULL;
|
||||
RLV_ASSERT(pBtnView);
|
||||
if (pBtnView)
|
||||
pBtnView->setEnabled(fEnable);
|
||||
|
||||
|
|
@ -377,7 +403,7 @@ void RlvUIEnabler::onToggleShowMinimap()
|
|||
}
|
||||
}
|
||||
|
||||
// Checked: 2010-12-08 (RLVa-1.2.2c) | Modified: RLVa-1.2.2c
|
||||
// Checked: 2010-12-08 (RLVa-1.4.0a) | Modified: RLVa-1.2.2c
|
||||
void RlvUIEnabler::onToggleShowNames(bool fQuitting)
|
||||
{
|
||||
if (fQuitting)
|
||||
|
|
@ -409,7 +435,7 @@ void RlvUIEnabler::onToggleShowNames(bool fQuitting)
|
|||
LLVOAvatar::invalidateNameTags(); // See handleDisplayNamesOptionChanged()
|
||||
}
|
||||
|
||||
// Checked: 2010-02-28 (RLVa-1.2.0b) | Added: RLVa-1.2.0a
|
||||
// Checked: 2010-02-28 (RLVa-1.4.0a) | Added: RLVa-1.2.0a
|
||||
void RlvUIEnabler::onToggleShowWorldMap()
|
||||
{
|
||||
bool fEnable = !gRlvHandler.hasBehaviour(RLV_BHVR_SHOWWORLDMAP);
|
||||
|
|
@ -421,6 +447,7 @@ void RlvUIEnabler::onToggleShowWorldMap()
|
|||
// Enable/disable the "Map" bottom tray button
|
||||
const LLBottomTray* pTray = LLBottomTray::getInstance();
|
||||
LLView* pBtnView = (pTray) ? pTray->getChildView("world_map_btn") : NULL;
|
||||
RLV_ASSERT(pBtnView);
|
||||
if (pBtnView)
|
||||
pBtnView->setEnabled(fEnable);
|
||||
|
||||
|
|
@ -479,8 +506,8 @@ void RlvUIEnabler::onUpdateLoginLastLocation()
|
|||
|
||||
// ============================================================================
|
||||
|
||||
// Checked: 2010-02-28 (RLVa-1.2.0b) | Added: RLVa-1.2.0a
|
||||
inline void RlvUIEnabler::addGenericFloaterFilter(const std::string& strFloaterName)
|
||||
// Checked: 2010-02-28 (RLVa-1.4.0a) | Added: RLVa-1.2.0a
|
||||
void RlvUIEnabler::addGenericFloaterFilter(const std::string& strFloaterName)
|
||||
{
|
||||
m_FilteredFloaters.insert(strFloaterName);
|
||||
|
||||
|
|
@ -488,8 +515,8 @@ inline void RlvUIEnabler::addGenericFloaterFilter(const std::string& strFloaterN
|
|||
m_ConnFloaterGeneric = LLFloaterReg::setValidateCallback(boost::bind(&RlvUIEnabler::filterFloaterGeneric, this, _1, _2));
|
||||
}
|
||||
|
||||
// Checked: 2010-02-28 (RLVa-1.2.0b) | Added: RLVa-1.2.0a
|
||||
inline void RlvUIEnabler::removeGenericFloaterFilter(const std::string& strFloaterName)
|
||||
// Checked: 2010-02-28 (RLVa-1.4.0a) | Added: RLVa-1.2.0a
|
||||
void RlvUIEnabler::removeGenericFloaterFilter(const std::string& strFloaterName)
|
||||
{
|
||||
std::multiset<std::string>::iterator itFloater = m_FilteredFloaters.find(strFloaterName);
|
||||
RLV_ASSERT_DBG(itFloater != m_FilteredFloaters.end());
|
||||
|
|
@ -500,10 +527,10 @@ inline void RlvUIEnabler::removeGenericFloaterFilter(const std::string& strFloat
|
|||
m_ConnFloaterGeneric.disconnect();
|
||||
}
|
||||
|
||||
// Checked: 2010-02-28 (RLVa-1.2.0b) | Added: RLVa-1.2.0a
|
||||
// Checked: 2010-02-28 (RLVa-1.4.0a) | Added: RLVa-1.2.0a
|
||||
bool RlvUIEnabler::filterFloaterGeneric(const std::string& strName, const LLSD&)
|
||||
{
|
||||
return m_FilteredFloaters.find(strName) == m_FilteredFloaters.end();
|
||||
return m_FilteredFloaters.end() == m_FilteredFloaters.find(strName);
|
||||
}
|
||||
|
||||
// Checked: 2010-04-22 (RLVa-1.2.0f) | Added: RLVa-1.2.0f
|
||||
|
|
@ -539,6 +566,13 @@ bool RlvUIEnabler::filterFloaterViewXXX(const std::string& strName, const LLSD&)
|
|||
return true;
|
||||
}
|
||||
|
||||
// Checked: 2010-03-01 (RLVa-1.4.0a) | Added: RLVa-1.2.0a
|
||||
bool RlvUIEnabler::canOpenSidebarTab(ERlvBehaviour eBhvrFilter, const std::string& strNameFilter, LLUICtrl* pCtrl, const LLSD& sdParam)
|
||||
{
|
||||
// NOTE: pCtrl->getName() is the name of the sidebar tab and sdParam is the name of the child panel being activated (can be omitted)
|
||||
return (!gRlvHandler.hasBehaviour(eBhvrFilter)) || (strNameFilter != pCtrl->getName());
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
|
||||
// Checked: 2010-04-20 (RLVa-1.2.0f) | Modified: RLVa-1.2.0f
|
||||
|
|
|
|||
|
|
@ -37,8 +37,6 @@ protected:
|
|||
* Signal callbacks
|
||||
*/
|
||||
public:
|
||||
typedef boost::function<void(bool)> behaviour_handler_t;
|
||||
void addBehaviourToggleCallback(ERlvBehaviour eBhvr, behaviour_handler_t cb);
|
||||
void onBehaviourToggle(ERlvBehaviour eBhvr, ERlvParamType eType); // RlvHandler::rlv_behaviour_signal_t
|
||||
|
||||
/*
|
||||
|
|
@ -47,8 +45,9 @@ public:
|
|||
protected:
|
||||
void onRefreshHoverText(); // showloc, shownames, showhovertext(all|world|hud)
|
||||
void onToggleEdit(); // edit
|
||||
void onToggleFly(); // fly
|
||||
void onToggleMovement(); // fly, alwaysrun and temprun
|
||||
void onToggleRez(); // rez
|
||||
void onToggleSetDebug(); // setdebug
|
||||
void onToggleSetEnv(); // setenv
|
||||
void onToggleShowInv(bool fQuitting); // showinv
|
||||
void onToggleShowLoc(); // showloc
|
||||
|
|
@ -60,20 +59,23 @@ protected:
|
|||
void onToggleViewXXX(); // viewnote, viewscript, viewtexture
|
||||
void onUpdateLoginLastLocation(); // tploc and unsit
|
||||
|
||||
/*
|
||||
* Floater validation callbacks
|
||||
/*
|
||||
* Floater and sidebar validation callbacks
|
||||
*/
|
||||
protected:
|
||||
void addGenericFloaterFilter(const std::string& strFloaterName);
|
||||
void removeGenericFloaterFilter(const std::string& strFloaterName);
|
||||
|
||||
bool filterFloaterGeneric(const std::string&, const LLSD&);
|
||||
boost::signals2::connection m_ConnFloaterGeneric;
|
||||
|
||||
bool filterFloaterShowLoc(const std::string&, const LLSD& );
|
||||
boost::signals2::connection m_ConnFloaterShowLoc; // showloc
|
||||
bool filterFloaterViewXXX(const std::string&, const LLSD&);
|
||||
boost::signals2::connection m_ConnFloaterViewXXX; // viewnote, viewscript, viewtexture
|
||||
|
||||
bool canOpenSidebarTab(ERlvBehaviour, const std::string&, LLUICtrl*, const LLSD&);
|
||||
boost::signals2::connection m_ConnSidePanelInventory; // showinv
|
||||
|
||||
/*
|
||||
* Helper functions
|
||||
*/
|
||||
|
|
@ -88,21 +90,13 @@ public:
|
|||
* Member variables
|
||||
*/
|
||||
protected:
|
||||
typedef boost::function<void(bool)> behaviour_handler_t;
|
||||
typedef std::multimap<ERlvBehaviour, behaviour_handler_t> behaviour_handler_map_t;
|
||||
behaviour_handler_map_t m_Handlers;
|
||||
|
||||
std::multiset<std::string> m_FilteredFloaters;
|
||||
};
|
||||
|
||||
// ============================================================================
|
||||
// Inlined member functions
|
||||
|
||||
// Checked: 2010-11-02 (RLVa-1.2.2a) | Added: RLVa-1.2.2a
|
||||
inline void RlvUIEnabler::addBehaviourToggleCallback(ERlvBehaviour eBhvr, behaviour_handler_t cb)
|
||||
{
|
||||
m_Handlers.insert(std::pair<ERlvBehaviour, behaviour_handler_t>(eBhvr, cb));
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
|
||||
#endif // RLV_UI_H
|
||||
|
|
|
|||
Loading…
Reference in New Issue