Skip to content
Snippets Groups Projects
Commit 159af6fe authored by William Todd Stinson's avatar William Todd Stinson
Browse files

PATH-723: Only drawing the rebake navmesh panel if a user has access rights to rebake.

parent 37e6aa60
No related branches found
No related tags found
No related merge requests found
...@@ -87,8 +87,11 @@ BOOL LLPanelNavMeshRebake::postBuild() ...@@ -87,8 +87,11 @@ BOOL LLPanelNavMeshRebake::postBuild()
void LLPanelNavMeshRebake::draw() void LLPanelNavMeshRebake::draw()
{ {
updatePosition(); if (doDraw())
LLPanel::draw(); {
updatePosition();
LLPanel::draw();
}
} }
BOOL LLPanelNavMeshRebake::handleToolTip( S32 x, S32 y, MASK mask ) BOOL LLPanelNavMeshRebake::handleToolTip( S32 x, S32 y, MASK mask )
...@@ -104,9 +107,10 @@ BOOL LLPanelNavMeshRebake::handleToolTip( S32 x, S32 y, MASK mask ) ...@@ -104,9 +107,10 @@ BOOL LLPanelNavMeshRebake::handleToolTip( S32 x, S32 y, MASK mask )
} }
LLPanelNavMeshRebake::LLPanelNavMeshRebake() LLPanelNavMeshRebake::LLPanelNavMeshRebake()
: mCanRebakeRegion(TRUE), : mCanRebakeRegion(FALSE),
mNavMeshRebakeButton( NULL ), mRebakeNavMeshMode(kRebakeNavMesh_Default),
mNavMeshBakingButton( NULL ), mNavMeshRebakeButton(NULL),
mNavMeshBakingButton(NULL),
mNavMeshSlot(), mNavMeshSlot(),
mRegionCrossingSlot(), mRegionCrossingSlot(),
mAgentStateSlot() mAgentStateSlot()
...@@ -125,7 +129,6 @@ LLPanelNavMeshRebake* LLPanelNavMeshRebake::getPanel() ...@@ -125,7 +129,6 @@ LLPanelNavMeshRebake* LLPanelNavMeshRebake::getPanel()
{ {
LLPanelNavMeshRebake* panel = new LLPanelNavMeshRebake(); LLPanelNavMeshRebake* panel = new LLPanelNavMeshRebake();
panel->buildFromFile("panel_navmesh_rebake.xml"); panel->buildFromFile("panel_navmesh_rebake.xml");
panel->setVisible(FALSE);
return panel; return panel;
} }
...@@ -133,7 +136,7 @@ void LLPanelNavMeshRebake::setMode(ERebakeNavMeshMode pRebakeNavMeshMode) ...@@ -133,7 +136,7 @@ void LLPanelNavMeshRebake::setMode(ERebakeNavMeshMode pRebakeNavMeshMode)
{ {
mNavMeshRebakeButton->setVisible(pRebakeNavMeshMode == kRebakeNavMesh_Available); mNavMeshRebakeButton->setVisible(pRebakeNavMeshMode == kRebakeNavMesh_Available);
mNavMeshBakingButton->setVisible(pRebakeNavMeshMode == kRebakeNavMesh_RequestSent); mNavMeshBakingButton->setVisible(pRebakeNavMeshMode == kRebakeNavMesh_RequestSent);
setVisible(pRebakeNavMeshMode != kRebakeNavMesh_NotAvailable); mRebakeNavMeshMode = pRebakeNavMeshMode;
} }
void LLPanelNavMeshRebake::onNavMeshRebakeClick() void LLPanelNavMeshRebake::onNavMeshRebakeClick()
...@@ -144,8 +147,8 @@ void LLPanelNavMeshRebake::onNavMeshRebakeClick() ...@@ -144,8 +147,8 @@ void LLPanelNavMeshRebake::onNavMeshRebakeClick()
void LLPanelNavMeshRebake::handleAgentState(BOOL pCanRebakeRegion) void LLPanelNavMeshRebake::handleAgentState(BOOL pCanRebakeRegion)
{ {
mCanRebakeRegion = pCanRebakeRegion;
llinfos << "STINSON DEBUG: canRebakeRegion => " << (pCanRebakeRegion ? "TRUE" : "FALSE") << llendl; llinfos << "STINSON DEBUG: canRebakeRegion => " << (pCanRebakeRegion ? "TRUE" : "FALSE") << llendl;
mCanRebakeRegion = pCanRebakeRegion;
} }
void LLPanelNavMeshRebake::handleRebakeNavMeshResponse(bool pResponseStatus) void LLPanelNavMeshRebake::handleRebakeNavMeshResponse(bool pResponseStatus)
...@@ -161,17 +164,13 @@ void LLPanelNavMeshRebake::handleNavMeshStatus(const LLPathfindingNavMeshStatus ...@@ -161,17 +164,13 @@ void LLPanelNavMeshRebake::handleNavMeshStatus(const LLPathfindingNavMeshStatus
switch (pNavMeshStatus.getStatus()) switch (pNavMeshStatus.getStatus())
{ {
case LLPathfindingNavMeshStatus::kPending : case LLPathfindingNavMeshStatus::kPending :
case LLPathfindingNavMeshStatus::kRepending :
rebakeNavMeshMode = kRebakeNavMesh_Available; rebakeNavMeshMode = kRebakeNavMesh_Available;
break; break;
case LLPathfindingNavMeshStatus::kBuilding : case LLPathfindingNavMeshStatus::kBuilding :
rebakeNavMeshMode = kRebakeNavMesh_NotAvailable;
break;
case LLPathfindingNavMeshStatus::kComplete : case LLPathfindingNavMeshStatus::kComplete :
rebakeNavMeshMode = kRebakeNavMesh_NotAvailable; rebakeNavMeshMode = kRebakeNavMesh_NotAvailable;
break; break;
case LLPathfindingNavMeshStatus::kRepending :
rebakeNavMeshMode = kRebakeNavMesh_Available;
break;
default : default :
rebakeNavMeshMode = kRebakeNavMesh_Default; rebakeNavMeshMode = kRebakeNavMesh_Default;
llassert(0); llassert(0);
...@@ -194,6 +193,7 @@ void LLPanelNavMeshRebake::createNavMeshStatusListenerForCurrentRegion() ...@@ -194,6 +193,7 @@ void LLPanelNavMeshRebake::createNavMeshStatusListenerForCurrentRegion()
{ {
mNavMeshSlot.disconnect(); mNavMeshSlot.disconnect();
} }
mCanRebakeRegion = FALSE;
LLViewerRegion *currentRegion = gAgent.getRegion(); LLViewerRegion *currentRegion = gAgent.getRegion();
if (currentRegion != NULL) if (currentRegion != NULL)
...@@ -203,6 +203,11 @@ void LLPanelNavMeshRebake::createNavMeshStatusListenerForCurrentRegion() ...@@ -203,6 +203,11 @@ void LLPanelNavMeshRebake::createNavMeshStatusListenerForCurrentRegion()
} }
} }
bool LLPanelNavMeshRebake::doDraw() const
{
return (mCanRebakeRegion && (mRebakeNavMeshMode != kRebakeNavMesh_NotAvailable));
}
void LLPanelNavMeshRebake::updatePosition() void LLPanelNavMeshRebake::updatePosition()
{ {
S32 y_pos = 0; S32 y_pos = 0;
......
...@@ -80,11 +80,15 @@ class LLPanelNavMeshRebake : public LLPanel ...@@ -80,11 +80,15 @@ class LLPanelNavMeshRebake : public LLPanel
void createNavMeshStatusListenerForCurrentRegion(); void createNavMeshStatusListenerForCurrentRegion();
bool doDraw() const;
void updatePosition(); void updatePosition();
BOOL mCanRebakeRegion; BOOL mCanRebakeRegion;
ERebakeNavMeshMode mRebakeNavMeshMode;
LLButton* mNavMeshRebakeButton; LLButton* mNavMeshRebakeButton;
LLButton* mNavMeshBakingButton; LLButton* mNavMeshBakingButton;
LLPathfindingNavMesh::navmesh_slot_t mNavMeshSlot; LLPathfindingNavMesh::navmesh_slot_t mNavMeshSlot;
boost::signals2::connection mRegionCrossingSlot; boost::signals2::connection mRegionCrossingSlot;
LLPathfindingManager::agent_state_slot_t mAgentStateSlot; LLPathfindingManager::agent_state_slot_t mAgentStateSlot;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment