Inventory Link auto-detection
This commit is contained in:
@@ -39,6 +39,7 @@
|
||||
#include "llsd.h"
|
||||
#include "message.h"
|
||||
#include <boost/tokenizer.hpp>
|
||||
#include "../newview/hippogridmanager.h"
|
||||
|
||||
#include "llsdutil.h"
|
||||
|
||||
@@ -553,6 +554,10 @@ BOOL LLInventoryItem::unpackMessage(LLMessageSystem* msg, const char* block, S32
|
||||
S8 type;
|
||||
msg->getS8Fast(block, _PREHASH_Type, type, block_num);
|
||||
mType = static_cast<LLAssetType::EType>(type);
|
||||
if (mType == LLAssetType::AT_LINK || mType == LLAssetType::AT_LINK_FOLDER)
|
||||
{
|
||||
gHippoGridManager->getConnectedGrid()->setSupportsInvLinks(true);
|
||||
}
|
||||
msg->getS8(block, "InvType", type, block_num);
|
||||
mInventoryType = static_cast<LLInventoryType::EType>(type);
|
||||
mPermissions.initMasks(mInventoryType);
|
||||
@@ -1122,6 +1127,11 @@ bool LLInventoryItem::fromLLSD(const LLSD& sd)
|
||||
S8 type = (U8)sd[w].asInteger();
|
||||
mType = static_cast<LLAssetType::EType>(type);
|
||||
}
|
||||
|
||||
if (mType == LLAssetType::AT_LINK || mType == LLAssetType::AT_LINK_FOLDER)
|
||||
{
|
||||
gHippoGridManager->getConnectedGrid()->setSupportsInvLinks(true);
|
||||
}
|
||||
}
|
||||
w = INV_INVENTORY_TYPE_LABEL;
|
||||
if (sd.has(w))
|
||||
|
||||
@@ -57,6 +57,7 @@ HippoGridInfo::HippoGridInfo(const std::string& gridNick) :
|
||||
mXmlState(XML_VOID),
|
||||
mVoiceConnector("SLVoice"),
|
||||
mRenderCompat(true),
|
||||
mInvLinks(false),
|
||||
mMaxAgentGroups(-1),
|
||||
mCurrencySymbol("OS$"),
|
||||
mRealCurrencySymbol("US$"),
|
||||
@@ -612,10 +613,16 @@ void HippoGridInfo::initFallback()
|
||||
bool HippoGridInfo::supportsInvLinks(){
|
||||
if(isSecondLife())
|
||||
return true;
|
||||
else if(mLoginUri.find("avination.")!=std::string::npos)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
return mInvLinks;
|
||||
}
|
||||
|
||||
void HippoGridInfo::setSupportsInvLinks(bool b) {
|
||||
if (b == true && mInvLinks == false)
|
||||
{
|
||||
llinfos << "Inventory Link support detected" << llendl;
|
||||
}
|
||||
mInvLinks = b;
|
||||
}
|
||||
|
||||
// ********************************************************************
|
||||
@@ -927,6 +934,7 @@ void HippoGridManager::parseData(LLSD &gridInfo, bool mergeIfNewer)
|
||||
if (gridMap.has("password")) grid->setPasswordUrl(gridMap["password"]);
|
||||
if (gridMap.has("search")) grid->setSearchUrl(gridMap["search"]);
|
||||
if (gridMap.has("render_compat")) grid->setRenderCompat(gridMap["render_compat"]);
|
||||
if (gridMap.has("inventory_links")) grid->setSupportsInvLinks(gridMap["inventory_links"]);
|
||||
// if (gridMap.has("firstname")) grid->setFirstName(gridMap["firstname"]);
|
||||
// if (gridMap.has("lastname")) grid->setLastName(gridMap["lastname"]);
|
||||
// if (gridMap.has("avatarpassword")) grid->setAvatarPassword(gridMap["avatarpassword"]);
|
||||
@@ -967,6 +975,7 @@ void HippoGridManager::saveFile()
|
||||
|
||||
gridInfo[i]["search"] = grid->getSearchUrl();
|
||||
gridInfo[i]["render_compat"] = grid->isRenderCompat();
|
||||
gridInfo[i]["inventory_links"] = grid->supportsInvLinks();
|
||||
}
|
||||
|
||||
// write client grid info file
|
||||
|
||||
@@ -87,6 +87,7 @@ public:
|
||||
void setRealCurrencySymbol(const std::string& sym);
|
||||
void setDirectoryFee(int fee);
|
||||
bool supportsInvLinks();
|
||||
void setSupportsInvLinks(bool b);
|
||||
|
||||
bool retrieveGridInfo();
|
||||
|
||||
@@ -113,6 +114,7 @@ private:
|
||||
std::string mLastName;
|
||||
std::string mAvatarPassword;
|
||||
bool mRenderCompat;
|
||||
bool mInvLinks;
|
||||
int mMaxAgentGroups;
|
||||
|
||||
std::string mCurrencySymbol;
|
||||
|
||||
Reference in New Issue
Block a user