PATH-482: BUGFIX Automatically reloading the character and linksets floaters on region crossing.
parent
d23fbd0dd0
commit
9d22b22d96
|
|
@ -47,6 +47,7 @@
|
|||
#include "llviewerobjectlist.h"
|
||||
#include "llviewermenu.h"
|
||||
#include "llselectmgr.h"
|
||||
#include "llenvmanager.h"
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// LLFloaterPathfindingCharacters
|
||||
|
|
@ -112,10 +113,20 @@ void LLFloaterPathfindingCharacters::onOpen(const LLSD& pKey)
|
|||
{
|
||||
mSelectionUpdateSlot = LLSelectMgr::getInstance()->mUpdateSignal.connect(boost::bind(&LLFloaterPathfindingCharacters::updateControls, this));
|
||||
}
|
||||
|
||||
if (!mRegionBoundarySlot.connected())
|
||||
{
|
||||
mRegionBoundarySlot = LLEnvManagerNew::instance().setRegionChangeCallback(boost::bind(&LLFloaterPathfindingCharacters::onRegionBoundaryCross, this));
|
||||
}
|
||||
}
|
||||
|
||||
void LLFloaterPathfindingCharacters::onClose(bool pAppQuitting)
|
||||
{
|
||||
if (mRegionBoundarySlot.connected())
|
||||
{
|
||||
mRegionBoundarySlot.disconnect();
|
||||
}
|
||||
|
||||
if (mSelectionUpdateSlot.connected())
|
||||
{
|
||||
mSelectionUpdateSlot.disconnect();
|
||||
|
|
@ -167,16 +178,6 @@ void LLFloaterPathfindingCharacters::openCharactersViewer()
|
|||
LLFloaterReg::toggleInstanceOrBringToFront("pathfinding_characters");
|
||||
}
|
||||
|
||||
LLFloaterPathfindingCharacters::EMessagingState LLFloaterPathfindingCharacters::getMessagingState() const
|
||||
{
|
||||
return mMessagingState;
|
||||
}
|
||||
|
||||
BOOL LLFloaterPathfindingCharacters::isMessagingInProgress() const
|
||||
{
|
||||
return (mMessagingState == kMessagingGetRequestSent);
|
||||
}
|
||||
|
||||
LLFloaterPathfindingCharacters::LLFloaterPathfindingCharacters(const LLSD& pSeed)
|
||||
: LLFloater(pSeed),
|
||||
mCharactersScrollList(NULL),
|
||||
|
|
@ -191,6 +192,7 @@ LLFloaterPathfindingCharacters::LLFloaterPathfindingCharacters(const LLSD& pSeed
|
|||
mDeleteButton(NULL),
|
||||
mTeleportButton(NULL),
|
||||
mMessagingState(kMessagingUnknown),
|
||||
mMessagingRequestId(0U),
|
||||
mCharacterListPtr(),
|
||||
mCharacterSelection(),
|
||||
mSelectionUpdateSlot()
|
||||
|
|
@ -201,6 +203,11 @@ LLFloaterPathfindingCharacters::~LLFloaterPathfindingCharacters()
|
|||
{
|
||||
}
|
||||
|
||||
LLFloaterPathfindingCharacters::EMessagingState LLFloaterPathfindingCharacters::getMessagingState() const
|
||||
{
|
||||
return mMessagingState;
|
||||
}
|
||||
|
||||
void LLFloaterPathfindingCharacters::setMessagingState(EMessagingState pMessagingState)
|
||||
{
|
||||
mMessagingState = pMessagingState;
|
||||
|
|
@ -209,22 +216,42 @@ void LLFloaterPathfindingCharacters::setMessagingState(EMessagingState pMessagin
|
|||
|
||||
void LLFloaterPathfindingCharacters::requestGetCharacters()
|
||||
{
|
||||
llassert(!isMessagingInProgress());
|
||||
if (!isMessagingInProgress())
|
||||
switch (LLPathfindingManager::getInstance()->requestGetCharacters(++mMessagingRequestId, boost::bind(&LLFloaterPathfindingCharacters::handleNewCharacters, this, _1, _2, _3)))
|
||||
{
|
||||
switch (LLPathfindingManager::getInstance()->requestGetCharacters(boost::bind(&LLFloaterPathfindingCharacters::handleNewCharacters, this, _1, _2)))
|
||||
case LLPathfindingManager::kRequestStarted :
|
||||
setMessagingState(kMessagingGetRequestSent);
|
||||
break;
|
||||
case LLPathfindingManager::kRequestCompleted :
|
||||
clearCharacters();
|
||||
setMessagingState(kMessagingComplete);
|
||||
break;
|
||||
case LLPathfindingManager::kRequestNotEnabled :
|
||||
clearCharacters();
|
||||
setMessagingState(kMessagingNotEnabled);
|
||||
break;
|
||||
case LLPathfindingManager::kRequestError :
|
||||
setMessagingState(kMessagingGetError);
|
||||
break;
|
||||
default :
|
||||
setMessagingState(kMessagingGetError);
|
||||
llassert(0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void LLFloaterPathfindingCharacters::handleNewCharacters(LLPathfindingManager::request_id_t pRequestId, LLPathfindingManager::ERequestStatus pCharacterRequestStatus, LLPathfindingCharacterListPtr pCharacterListPtr)
|
||||
{
|
||||
llassert(pRequestId <= mMessagingRequestId);
|
||||
if (pRequestId == mMessagingRequestId)
|
||||
{
|
||||
mCharacterListPtr = pCharacterListPtr;
|
||||
updateScrollList();
|
||||
|
||||
switch (pCharacterRequestStatus)
|
||||
{
|
||||
case LLPathfindingManager::kRequestStarted :
|
||||
setMessagingState(kMessagingGetRequestSent);
|
||||
break;
|
||||
case LLPathfindingManager::kRequestCompleted :
|
||||
clearCharacters();
|
||||
setMessagingState(kMessagingComplete);
|
||||
break;
|
||||
case LLPathfindingManager::kRequestNotEnabled :
|
||||
clearCharacters();
|
||||
setMessagingState(kMessagingNotEnabled);
|
||||
break;
|
||||
case LLPathfindingManager::kRequestError :
|
||||
setMessagingState(kMessagingGetError);
|
||||
break;
|
||||
|
|
@ -236,26 +263,6 @@ void LLFloaterPathfindingCharacters::requestGetCharacters()
|
|||
}
|
||||
}
|
||||
|
||||
void LLFloaterPathfindingCharacters::handleNewCharacters(LLPathfindingManager::ERequestStatus pCharacterRequestStatus, LLPathfindingCharacterListPtr pCharacterListPtr)
|
||||
{
|
||||
mCharacterListPtr = pCharacterListPtr;
|
||||
updateScrollList();
|
||||
|
||||
switch (pCharacterRequestStatus)
|
||||
{
|
||||
case LLPathfindingManager::kRequestCompleted :
|
||||
setMessagingState(kMessagingComplete);
|
||||
break;
|
||||
case LLPathfindingManager::kRequestError :
|
||||
setMessagingState(kMessagingGetError);
|
||||
break;
|
||||
default :
|
||||
setMessagingState(kMessagingGetError);
|
||||
llassert(0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void LLFloaterPathfindingCharacters::onCharactersSelectionChange()
|
||||
{
|
||||
mCharacterSelection.clear();
|
||||
|
|
@ -345,6 +352,11 @@ void LLFloaterPathfindingCharacters::onTeleportCharacterToMeClicked()
|
|||
}
|
||||
}
|
||||
|
||||
void LLFloaterPathfindingCharacters::onRegionBoundaryCross()
|
||||
{
|
||||
requestGetCharacters();
|
||||
}
|
||||
|
||||
void LLFloaterPathfindingCharacters::selectAllCharacters()
|
||||
{
|
||||
mCharactersScrollList->selectAll();
|
||||
|
|
|
|||
|
|
@ -68,9 +68,6 @@ public:
|
|||
|
||||
static void openCharactersViewer();
|
||||
|
||||
EMessagingState getMessagingState() const;
|
||||
BOOL isMessagingInProgress() const;
|
||||
|
||||
protected:
|
||||
|
||||
private:
|
||||
|
|
@ -86,19 +83,23 @@ private:
|
|||
LLButton *mDeleteButton;
|
||||
LLButton *mTeleportButton;
|
||||
|
||||
EMessagingState mMessagingState;
|
||||
LLPathfindingCharacterListPtr mCharacterListPtr;
|
||||
LLObjectSelectionHandle mCharacterSelection;
|
||||
boost::signals2::connection mSelectionUpdateSlot;
|
||||
EMessagingState mMessagingState;
|
||||
LLPathfindingManager::request_id_t mMessagingRequestId;
|
||||
LLPathfindingCharacterListPtr mCharacterListPtr;
|
||||
LLObjectSelectionHandle mCharacterSelection;
|
||||
boost::signals2::connection mSelectionUpdateSlot;
|
||||
boost::signals2::connection mRegionBoundarySlot;
|
||||
|
||||
// Does its own instance management, so clients not allowed
|
||||
// to allocate or destroy.
|
||||
LLFloaterPathfindingCharacters(const LLSD& pSeed);
|
||||
virtual ~LLFloaterPathfindingCharacters();
|
||||
|
||||
void setMessagingState(EMessagingState pMessagingState);
|
||||
EMessagingState getMessagingState() const;
|
||||
void setMessagingState(EMessagingState pMessagingState);
|
||||
|
||||
void requestGetCharacters();
|
||||
void handleNewCharacters(LLPathfindingManager::ERequestStatus pCharacterRequestStatus, LLPathfindingCharacterListPtr pCharacterListPtr);
|
||||
void handleNewCharacters(LLPathfindingManager::request_id_t pRequestId, LLPathfindingManager::ERequestStatus pCharacterRequestStatus, LLPathfindingCharacterListPtr pCharacterListPtr);
|
||||
|
||||
void onCharactersSelectionChange();
|
||||
void onRefreshCharactersClicked();
|
||||
|
|
@ -109,6 +110,7 @@ private:
|
|||
void onReturnCharactersClicked();
|
||||
void onDeleteCharactersClicked();
|
||||
void onTeleportCharacterToMeClicked();
|
||||
void onRegionBoundaryCross();
|
||||
|
||||
void selectAllCharacters();
|
||||
void selectNoneCharacters();
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@
|
|||
#include "llpathfindinglinksetlist.h"
|
||||
#include "llpathfindingmanager.h"
|
||||
#include "llnotificationsutil.h"
|
||||
#include "llenvmanager.h"
|
||||
|
||||
#include <boost/bind.hpp>
|
||||
#include <boost/signals2.hpp>
|
||||
|
|
@ -218,10 +219,20 @@ void LLFloaterPathfindingLinksets::onOpen(const LLSD& pKey)
|
|||
{
|
||||
mSelectionUpdateSlot = LLSelectMgr::getInstance()->mUpdateSignal.connect(boost::bind(&LLFloaterPathfindingLinksets::updateControls, this));
|
||||
}
|
||||
|
||||
if (!mRegionBoundarySlot.connected())
|
||||
{
|
||||
mRegionBoundarySlot = LLEnvManagerNew::instance().setRegionChangeCallback(boost::bind(&LLFloaterPathfindingLinksets::onRegionBoundaryCross, this));
|
||||
}
|
||||
}
|
||||
|
||||
void LLFloaterPathfindingLinksets::onClose(bool pAppQuitting)
|
||||
{
|
||||
if (mRegionBoundarySlot.connected())
|
||||
{
|
||||
mRegionBoundarySlot.disconnect();
|
||||
}
|
||||
|
||||
if (mSelectionUpdateSlot.connected())
|
||||
{
|
||||
mSelectionUpdateSlot.disconnect();
|
||||
|
|
@ -277,16 +288,6 @@ void LLFloaterPathfindingLinksets::openLinksetsEditor()
|
|||
LLFloaterReg::toggleInstanceOrBringToFront("pathfinding_linksets");
|
||||
}
|
||||
|
||||
LLFloaterPathfindingLinksets::EMessagingState LLFloaterPathfindingLinksets::getMessagingState() const
|
||||
{
|
||||
return mMessagingState;
|
||||
}
|
||||
|
||||
bool LLFloaterPathfindingLinksets::isMessagingInProgress() const
|
||||
{
|
||||
return ((mMessagingState == kMessagingGetRequestSent) || (mMessagingState == kMessagingSetRequestSent));
|
||||
}
|
||||
|
||||
LLFloaterPathfindingLinksets::LLFloaterPathfindingLinksets(const LLSD& pSeed)
|
||||
: LLFloater(pSeed),
|
||||
mFilterByName(NULL),
|
||||
|
|
@ -315,6 +316,7 @@ LLFloaterPathfindingLinksets::LLFloaterPathfindingLinksets(const LLSD& pSeed)
|
|||
mEditD(NULL),
|
||||
mApplyEditsButton(NULL),
|
||||
mMessagingState(kMessagingUnknown),
|
||||
mMessagingRequestId(0U),
|
||||
mLinksetsListPtr(),
|
||||
mLinksetsSelection(),
|
||||
mAgentStateSlot(),
|
||||
|
|
@ -326,6 +328,11 @@ LLFloaterPathfindingLinksets::~LLFloaterPathfindingLinksets()
|
|||
{
|
||||
}
|
||||
|
||||
LLFloaterPathfindingLinksets::EMessagingState LLFloaterPathfindingLinksets::getMessagingState() const
|
||||
{
|
||||
return mMessagingState;
|
||||
}
|
||||
|
||||
void LLFloaterPathfindingLinksets::setMessagingState(EMessagingState pMessagingState)
|
||||
{
|
||||
mMessagingState = pMessagingState;
|
||||
|
|
@ -334,49 +341,96 @@ void LLFloaterPathfindingLinksets::setMessagingState(EMessagingState pMessagingS
|
|||
|
||||
void LLFloaterPathfindingLinksets::requestGetLinksets()
|
||||
{
|
||||
llassert(!isMessagingInProgress());
|
||||
if (!isMessagingInProgress())
|
||||
switch (LLPathfindingManager::getInstance()->requestGetLinksets(++mMessagingRequestId, boost::bind(&LLFloaterPathfindingLinksets::handleNewLinksets, this, _1, _2, _3)))
|
||||
{
|
||||
switch (LLPathfindingManager::getInstance()->requestGetLinksets(boost::bind(&LLFloaterPathfindingLinksets::handleNewLinksets, this, _1, _2)))
|
||||
{
|
||||
case LLPathfindingManager::kRequestStarted :
|
||||
setMessagingState(kMessagingGetRequestSent);
|
||||
break;
|
||||
case LLPathfindingManager::kRequestCompleted :
|
||||
clearLinksets();
|
||||
setMessagingState(kMessagingComplete);
|
||||
break;
|
||||
case LLPathfindingManager::kRequestNotEnabled :
|
||||
clearLinksets();
|
||||
setMessagingState(kMessagingNotEnabled);
|
||||
break;
|
||||
case LLPathfindingManager::kRequestError :
|
||||
setMessagingState(kMessagingGetError);
|
||||
break;
|
||||
default :
|
||||
setMessagingState(kMessagingGetError);
|
||||
llassert(0);
|
||||
break;
|
||||
}
|
||||
case LLPathfindingManager::kRequestStarted :
|
||||
setMessagingState(kMessagingGetRequestSent);
|
||||
break;
|
||||
case LLPathfindingManager::kRequestCompleted :
|
||||
clearLinksets();
|
||||
setMessagingState(kMessagingComplete);
|
||||
break;
|
||||
case LLPathfindingManager::kRequestNotEnabled :
|
||||
clearLinksets();
|
||||
setMessagingState(kMessagingNotEnabled);
|
||||
break;
|
||||
case LLPathfindingManager::kRequestError :
|
||||
setMessagingState(kMessagingGetError);
|
||||
break;
|
||||
default :
|
||||
setMessagingState(kMessagingGetError);
|
||||
llassert(0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void LLFloaterPathfindingLinksets::requestSetLinksets(LLPathfindingLinksetListPtr pLinksetList, LLPathfindingLinkset::ELinksetUse pLinksetUse, S32 pA, S32 pB, S32 pC, S32 pD)
|
||||
{
|
||||
llassert(!isMessagingInProgress());
|
||||
if (!isMessagingInProgress())
|
||||
switch (LLPathfindingManager::getInstance()->requestSetLinksets(++mMessagingRequestId, pLinksetList, pLinksetUse, pA, pB, pC, pD, boost::bind(&LLFloaterPathfindingLinksets::handleUpdateLinksets, this, _1, _2, _3)))
|
||||
{
|
||||
switch (LLPathfindingManager::getInstance()->requestSetLinksets(pLinksetList, pLinksetUse, pA, pB, pC, pD, boost::bind(&LLFloaterPathfindingLinksets::handleUpdateLinksets, this, _1, _2)))
|
||||
case LLPathfindingManager::kRequestStarted :
|
||||
setMessagingState(kMessagingSetRequestSent);
|
||||
break;
|
||||
case LLPathfindingManager::kRequestCompleted :
|
||||
setMessagingState(kMessagingComplete);
|
||||
break;
|
||||
case LLPathfindingManager::kRequestNotEnabled :
|
||||
clearLinksets();
|
||||
setMessagingState(kMessagingNotEnabled);
|
||||
break;
|
||||
case LLPathfindingManager::kRequestError :
|
||||
setMessagingState(kMessagingSetError);
|
||||
break;
|
||||
default :
|
||||
setMessagingState(kMessagingSetError);
|
||||
llassert(0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void LLFloaterPathfindingLinksets::handleNewLinksets(LLPathfindingManager::request_id_t pRequestId, LLPathfindingManager::ERequestStatus pLinksetsRequestStatus, LLPathfindingLinksetListPtr pLinksetsListPtr)
|
||||
{
|
||||
llassert(pRequestId <= mMessagingRequestId);
|
||||
if (pRequestId == mMessagingRequestId)
|
||||
{
|
||||
mLinksetsListPtr = pLinksetsListPtr;
|
||||
updateScrollList();
|
||||
|
||||
switch (pLinksetsRequestStatus)
|
||||
{
|
||||
case LLPathfindingManager::kRequestStarted :
|
||||
setMessagingState(kMessagingSetRequestSent);
|
||||
break;
|
||||
case LLPathfindingManager::kRequestCompleted :
|
||||
setMessagingState(kMessagingComplete);
|
||||
break;
|
||||
case LLPathfindingManager::kRequestNotEnabled :
|
||||
clearLinksets();
|
||||
setMessagingState(kMessagingNotEnabled);
|
||||
case LLPathfindingManager::kRequestError :
|
||||
setMessagingState(kMessagingGetError);
|
||||
break;
|
||||
default :
|
||||
setMessagingState(kMessagingGetError);
|
||||
llassert(0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void LLFloaterPathfindingLinksets::handleUpdateLinksets(LLPathfindingManager::request_id_t pRequestId, LLPathfindingManager::ERequestStatus pLinksetsRequestStatus, LLPathfindingLinksetListPtr pLinksetsListPtr)
|
||||
{
|
||||
llassert(pRequestId <= mMessagingRequestId);
|
||||
if (pRequestId == mMessagingRequestId)
|
||||
{
|
||||
if (mLinksetsListPtr == NULL)
|
||||
{
|
||||
mLinksetsListPtr = pLinksetsListPtr;
|
||||
}
|
||||
else
|
||||
{
|
||||
mLinksetsListPtr->update(*pLinksetsListPtr);
|
||||
}
|
||||
updateScrollList();
|
||||
|
||||
switch (pLinksetsRequestStatus)
|
||||
{
|
||||
case LLPathfindingManager::kRequestCompleted :
|
||||
setMessagingState(kMessagingComplete);
|
||||
break;
|
||||
case LLPathfindingManager::kRequestError :
|
||||
setMessagingState(kMessagingSetError);
|
||||
|
|
@ -389,53 +443,6 @@ void LLFloaterPathfindingLinksets::requestSetLinksets(LLPathfindingLinksetListPt
|
|||
}
|
||||
}
|
||||
|
||||
void LLFloaterPathfindingLinksets::handleNewLinksets(LLPathfindingManager::ERequestStatus pLinksetsRequestStatus, LLPathfindingLinksetListPtr pLinksetsListPtr)
|
||||
{
|
||||
mLinksetsListPtr = pLinksetsListPtr;
|
||||
updateScrollList();
|
||||
|
||||
switch (pLinksetsRequestStatus)
|
||||
{
|
||||
case LLPathfindingManager::kRequestCompleted :
|
||||
setMessagingState(kMessagingComplete);
|
||||
break;
|
||||
case LLPathfindingManager::kRequestError :
|
||||
setMessagingState(kMessagingGetError);
|
||||
break;
|
||||
default :
|
||||
setMessagingState(kMessagingGetError);
|
||||
llassert(0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void LLFloaterPathfindingLinksets::handleUpdateLinksets(LLPathfindingManager::ERequestStatus pLinksetsRequestStatus, LLPathfindingLinksetListPtr pLinksetsListPtr)
|
||||
{
|
||||
if (mLinksetsListPtr == NULL)
|
||||
{
|
||||
mLinksetsListPtr = pLinksetsListPtr;
|
||||
}
|
||||
else
|
||||
{
|
||||
mLinksetsListPtr->update(*pLinksetsListPtr);
|
||||
}
|
||||
updateScrollList();
|
||||
|
||||
switch (pLinksetsRequestStatus)
|
||||
{
|
||||
case LLPathfindingManager::kRequestCompleted :
|
||||
setMessagingState(kMessagingComplete);
|
||||
break;
|
||||
case LLPathfindingManager::kRequestError :
|
||||
setMessagingState(kMessagingSetError);
|
||||
break;
|
||||
default :
|
||||
setMessagingState(kMessagingSetError);
|
||||
llassert(0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void LLFloaterPathfindingLinksets::onApplyAllFilters()
|
||||
{
|
||||
applyFilters();
|
||||
|
|
@ -562,6 +569,11 @@ void LLFloaterPathfindingLinksets::onAgentStateCB(LLPathfindingManager::EAgentSt
|
|||
updateControls();
|
||||
}
|
||||
|
||||
void LLFloaterPathfindingLinksets::onRegionBoundaryCross()
|
||||
{
|
||||
requestGetLinksets();
|
||||
}
|
||||
|
||||
void LLFloaterPathfindingLinksets::applyFilters()
|
||||
{
|
||||
updateScrollList();
|
||||
|
|
|
|||
|
|
@ -71,9 +71,6 @@ public:
|
|||
|
||||
static void openLinksetsEditor();
|
||||
|
||||
EMessagingState getMessagingState() const;
|
||||
bool isMessagingInProgress() const;
|
||||
|
||||
protected:
|
||||
|
||||
private:
|
||||
|
|
@ -111,21 +108,25 @@ private:
|
|||
LLButton *mApplyEditsButton;
|
||||
|
||||
EMessagingState mMessagingState;
|
||||
LLPathfindingManager::request_id_t mMessagingRequestId;
|
||||
LLPathfindingLinksetListPtr mLinksetsListPtr;
|
||||
LLObjectSelectionHandle mLinksetsSelection;
|
||||
LLPathfindingManager::agent_state_slot_t mAgentStateSlot;
|
||||
boost::signals2::connection mSelectionUpdateSlot;
|
||||
boost::signals2::connection mRegionBoundarySlot;
|
||||
|
||||
// Does its own instance management, so clients not allowed
|
||||
// to allocate or destroy.
|
||||
LLFloaterPathfindingLinksets(const LLSD& pSeed);
|
||||
virtual ~LLFloaterPathfindingLinksets();
|
||||
|
||||
void setMessagingState(EMessagingState pMessagingState);
|
||||
EMessagingState getMessagingState() const;
|
||||
void setMessagingState(EMessagingState pMessagingState);
|
||||
|
||||
void requestGetLinksets();
|
||||
void requestSetLinksets(LLPathfindingLinksetListPtr pLinksetList, LLPathfindingLinkset::ELinksetUse pLinksetUse, S32 pA, S32 pB, S32 pC, S32 pD);
|
||||
void handleNewLinksets(LLPathfindingManager::ERequestStatus pLinksetsRequestStatus, LLPathfindingLinksetListPtr pLinksetsListPtr);
|
||||
void handleUpdateLinksets(LLPathfindingManager::ERequestStatus pLinksetsRequestStatus, LLPathfindingLinksetListPtr pLinksetsListPtr);
|
||||
void handleNewLinksets(LLPathfindingManager::request_id_t pRequestId, LLPathfindingManager::ERequestStatus pLinksetsRequestStatus, LLPathfindingLinksetListPtr pLinksetsListPtr);
|
||||
void handleUpdateLinksets(LLPathfindingManager::request_id_t pRequestId, LLPathfindingManager::ERequestStatus pLinksetsRequestStatus, LLPathfindingLinksetListPtr pLinksetsListPtr);
|
||||
|
||||
void onApplyAllFilters();
|
||||
void onClearFiltersClicked();
|
||||
|
|
@ -141,6 +142,7 @@ private:
|
|||
void onWalkabilityCoefficientEntered(LLUICtrl *pUICtrl);
|
||||
void onApplyChangesClicked();
|
||||
void onAgentStateCB(LLPathfindingManager::EAgentState pAgentState);
|
||||
void onRegionBoundaryCross();
|
||||
|
||||
void applyFilters();
|
||||
void clearFilters();
|
||||
|
|
|
|||
|
|
@ -156,7 +156,7 @@ private:
|
|||
class LinksetsResponder
|
||||
{
|
||||
public:
|
||||
LinksetsResponder(LLPathfindingManager::linksets_callback_t pLinksetsCallback, bool pIsObjectRequested, bool pIsTerrainRequested);
|
||||
LinksetsResponder(LLPathfindingManager::request_id_t pRequestId, LLPathfindingManager::linksets_callback_t pLinksetsCallback, bool pIsObjectRequested, bool pIsTerrainRequested);
|
||||
virtual ~LinksetsResponder();
|
||||
|
||||
void handleObjectLinksetsResult(const LLSD &pContent);
|
||||
|
|
@ -177,6 +177,7 @@ private:
|
|||
kReceivedError
|
||||
} EMessagingState;
|
||||
|
||||
LLPathfindingManager::request_id_t mRequestId;
|
||||
LLPathfindingManager::linksets_callback_t mLinksetsCallback;
|
||||
|
||||
EMessagingState mObjectMessagingState;
|
||||
|
|
@ -235,7 +236,7 @@ private:
|
|||
class CharactersResponder : public LLHTTPClient::Responder
|
||||
{
|
||||
public:
|
||||
CharactersResponder(const std::string &pCapabilityURL, LLPathfindingManager::characters_callback_t pCharactersCallback);
|
||||
CharactersResponder(const std::string &pCapabilityURL, LLPathfindingManager::request_id_t pRequestId, LLPathfindingManager::characters_callback_t pCharactersCallback);
|
||||
virtual ~CharactersResponder();
|
||||
|
||||
virtual void result(const LLSD &pContent);
|
||||
|
|
@ -245,6 +246,7 @@ protected:
|
|||
|
||||
private:
|
||||
std::string mCapabilityURL;
|
||||
LLPathfindingManager::request_id_t mRequestId;
|
||||
LLPathfindingManager::characters_callback_t mCharactersCallback;
|
||||
};
|
||||
|
||||
|
|
@ -383,7 +385,7 @@ void LLPathfindingManager::requestSetAgentState(EAgentState pRequestedAgentState
|
|||
}
|
||||
}
|
||||
|
||||
LLPathfindingManager::ERequestStatus LLPathfindingManager::requestGetLinksets(linksets_callback_t pLinksetsCallback) const
|
||||
LLPathfindingManager::ERequestStatus LLPathfindingManager::requestGetLinksets(request_id_t pRequestId, linksets_callback_t pLinksetsCallback) const
|
||||
{
|
||||
ERequestStatus status;
|
||||
|
||||
|
|
@ -396,7 +398,7 @@ LLPathfindingManager::ERequestStatus LLPathfindingManager::requestGetLinksets(li
|
|||
else
|
||||
{
|
||||
bool doRequestTerrain = isAllowViewTerrainProperties();
|
||||
LinksetsResponderPtr linksetsResponderPtr(new LinksetsResponder(pLinksetsCallback, true, doRequestTerrain));
|
||||
LinksetsResponderPtr linksetsResponderPtr(new LinksetsResponder(pRequestId, pLinksetsCallback, true, doRequestTerrain));
|
||||
|
||||
LLHTTPClient::ResponderPtr objectLinksetsResponder = new ObjectLinksetsResponder(objectLinksetsURL, linksetsResponderPtr);
|
||||
LLHTTPClient::get(objectLinksetsURL, objectLinksetsResponder);
|
||||
|
|
@ -413,7 +415,7 @@ LLPathfindingManager::ERequestStatus LLPathfindingManager::requestGetLinksets(li
|
|||
return status;
|
||||
}
|
||||
|
||||
LLPathfindingManager::ERequestStatus LLPathfindingManager::requestSetLinksets(LLPathfindingLinksetListPtr pLinksetList, LLPathfindingLinkset::ELinksetUse pLinksetUse, S32 pA, S32 pB, S32 pC, S32 pD, linksets_callback_t pLinksetsCallback) const
|
||||
LLPathfindingManager::ERequestStatus LLPathfindingManager::requestSetLinksets(request_id_t pRequestId, LLPathfindingLinksetListPtr pLinksetList, LLPathfindingLinkset::ELinksetUse pLinksetUse, S32 pA, S32 pB, S32 pC, S32 pD, linksets_callback_t pLinksetsCallback) const
|
||||
{
|
||||
ERequestStatus status = kRequestNotEnabled;
|
||||
|
||||
|
|
@ -438,7 +440,7 @@ LLPathfindingManager::ERequestStatus LLPathfindingManager::requestSetLinksets(LL
|
|||
}
|
||||
else
|
||||
{
|
||||
LinksetsResponderPtr linksetsResponderPtr(new LinksetsResponder(pLinksetsCallback, !objectPostData.isUndefined(), !terrainPostData.isUndefined()));
|
||||
LinksetsResponderPtr linksetsResponderPtr(new LinksetsResponder(pRequestId, pLinksetsCallback, !objectPostData.isUndefined(), !terrainPostData.isUndefined()));
|
||||
|
||||
if (!objectPostData.isUndefined())
|
||||
{
|
||||
|
|
@ -459,7 +461,7 @@ LLPathfindingManager::ERequestStatus LLPathfindingManager::requestSetLinksets(LL
|
|||
return status;
|
||||
}
|
||||
|
||||
LLPathfindingManager::ERequestStatus LLPathfindingManager::requestGetCharacters(characters_callback_t pCharactersCallback) const
|
||||
LLPathfindingManager::ERequestStatus LLPathfindingManager::requestGetCharacters(request_id_t pRequestId, characters_callback_t pCharactersCallback) const
|
||||
{
|
||||
ERequestStatus status;
|
||||
|
||||
|
|
@ -470,7 +472,7 @@ LLPathfindingManager::ERequestStatus LLPathfindingManager::requestGetCharacters(
|
|||
}
|
||||
else
|
||||
{
|
||||
LLHTTPClient::ResponderPtr charactersResponder = new CharactersResponder(charactersURL, pCharactersCallback);
|
||||
LLHTTPClient::ResponderPtr charactersResponder = new CharactersResponder(charactersURL, pRequestId, pCharactersCallback);
|
||||
LLHTTPClient::get(charactersURL, charactersResponder);
|
||||
|
||||
status = kRequestStarted;
|
||||
|
|
@ -822,8 +824,9 @@ void AgentStateResponder::error(U32 pStatus, const std::string &pReason)
|
|||
// LinksetsResponder
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
LinksetsResponder::LinksetsResponder(LLPathfindingManager::linksets_callback_t pLinksetsCallback, bool pIsObjectRequested, bool pIsTerrainRequested)
|
||||
: mLinksetsCallback(pLinksetsCallback),
|
||||
LinksetsResponder::LinksetsResponder(LLPathfindingManager::request_id_t pRequestId, LLPathfindingManager::linksets_callback_t pLinksetsCallback, bool pIsObjectRequested, bool pIsTerrainRequested)
|
||||
: mRequestId(pRequestId),
|
||||
mLinksetsCallback(pLinksetsCallback),
|
||||
mObjectMessagingState(pIsObjectRequested ? kWaiting : kNotRequested),
|
||||
mTerrainMessagingState(pIsTerrainRequested ? kWaiting : kNotRequested),
|
||||
mObjectLinksetListPtr(),
|
||||
|
|
@ -895,7 +898,7 @@ void LinksetsResponder::sendCallback()
|
|||
mObjectLinksetListPtr->insert(std::pair<std::string, LLPathfindingLinksetPtr>(mTerrainLinksetPtr->getUUID().asString(), mTerrainLinksetPtr));
|
||||
}
|
||||
|
||||
mLinksetsCallback(requestStatus, mObjectLinksetListPtr);
|
||||
mLinksetsCallback(mRequestId, requestStatus, mObjectLinksetListPtr);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
|
|
@ -952,9 +955,10 @@ void TerrainLinksetsResponder::error(U32 pStatus, const std::string &pReason)
|
|||
// CharactersResponder
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
CharactersResponder::CharactersResponder(const std::string &pCapabilityURL, LLPathfindingManager::characters_callback_t pCharactersCallback)
|
||||
CharactersResponder::CharactersResponder(const std::string &pCapabilityURL, LLPathfindingManager::request_id_t pRequestId, LLPathfindingManager::characters_callback_t pCharactersCallback)
|
||||
: LLHTTPClient::Responder(),
|
||||
mCapabilityURL(pCapabilityURL),
|
||||
mRequestId(pRequestId),
|
||||
mCharactersCallback(pCharactersCallback)
|
||||
{
|
||||
}
|
||||
|
|
@ -966,7 +970,7 @@ CharactersResponder::~CharactersResponder()
|
|||
void CharactersResponder::result(const LLSD &pContent)
|
||||
{
|
||||
LLPathfindingCharacterListPtr characterListPtr = LLPathfindingCharacterListPtr(new LLPathfindingCharacterList(pContent));
|
||||
mCharactersCallback(LLPathfindingManager::kRequestCompleted, characterListPtr);
|
||||
mCharactersCallback(mRequestId, LLPathfindingManager::kRequestCompleted, characterListPtr);
|
||||
}
|
||||
|
||||
void CharactersResponder::error(U32 pStatus, const std::string &pReason)
|
||||
|
|
@ -974,5 +978,5 @@ void CharactersResponder::error(U32 pStatus, const std::string &pReason)
|
|||
llwarns << "error with request to URL '" << mCapabilityURL << "' because " << pReason << " (statusCode:" << pStatus << ")" << llendl;
|
||||
|
||||
LLPathfindingCharacterListPtr characterListPtr;
|
||||
mCharactersCallback(LLPathfindingManager::kRequestError, characterListPtr);
|
||||
mCharactersCallback(mRequestId, LLPathfindingManager::kRequestError, characterListPtr);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -73,8 +73,10 @@ public:
|
|||
kRequestError
|
||||
} ERequestStatus;
|
||||
|
||||
typedef boost::function<void (ERequestStatus, LLPathfindingLinksetListPtr)> linksets_callback_t;
|
||||
typedef boost::function<void (ERequestStatus, LLPathfindingCharacterListPtr)> characters_callback_t;
|
||||
typedef U32 request_id_t;
|
||||
|
||||
typedef boost::function<void (request_id_t, ERequestStatus, LLPathfindingLinksetListPtr)> linksets_callback_t;
|
||||
typedef boost::function<void (request_id_t, ERequestStatus, LLPathfindingCharacterListPtr)> characters_callback_t;
|
||||
|
||||
LLPathfindingManager();
|
||||
virtual ~LLPathfindingManager();
|
||||
|
|
@ -96,10 +98,10 @@ public:
|
|||
EAgentState getLastKnownNonErrorAgentState() const;
|
||||
void requestSetAgentState(EAgentState pAgentState);
|
||||
|
||||
ERequestStatus requestGetLinksets(linksets_callback_t pLinksetsCallback) const;
|
||||
ERequestStatus requestSetLinksets(LLPathfindingLinksetListPtr pLinksetList, LLPathfindingLinkset::ELinksetUse pLinksetUse, S32 pA, S32 pB, S32 pC, S32 pD, linksets_callback_t pLinksetsCallback) const;
|
||||
ERequestStatus requestGetLinksets(request_id_t pRequestId, linksets_callback_t pLinksetsCallback) const;
|
||||
ERequestStatus requestSetLinksets(request_id_t pRequestId, LLPathfindingLinksetListPtr pLinksetList, LLPathfindingLinkset::ELinksetUse pLinksetUse, S32 pA, S32 pB, S32 pC, S32 pD, linksets_callback_t pLinksetsCallback) const;
|
||||
|
||||
ERequestStatus requestGetCharacters(characters_callback_t pCharactersCallback) const;
|
||||
ERequestStatus requestGetCharacters(request_id_t pRequestId, characters_callback_t pCharactersCallback) const;
|
||||
|
||||
protected:
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue