FIRE-34908: Pose only Animeshes you own

removed unused posingAnyoneOnScrollList() method, renamed a UI-control that had a duplicate name.
master
Angeldark Raymaker 2025-01-26 11:49:37 +00:00
parent 9402a6b6f8
commit b909b05745
3 changed files with 19 additions and 35 deletions

View File

@ -238,7 +238,7 @@ void FSFloaterPoser::onClose(bool app_quitting)
gSavedSettings.setBOOL(POSER_ADVANCEDWINDOWSTATE_SAVE_KEY, mToggleAdvancedPanelBtn->getValue().asBoolean());
if (gSavedSettings.getBOOL(POSER_STOPPOSINGWHENCLOSED_SAVE_KEY))
stopPosingSelf();
stopPosingAllAvatars();
LLFloater::onClose(app_quitting);
}
@ -892,20 +892,24 @@ void FSFloaterPoser::startPosingSelf()
onAvatarSelect();
}
void FSFloaterPoser::stopPosingSelf()
void FSFloaterPoser::stopPosingAllAvatars()
{
if (!gAgentAvatarp || gAgentAvatarp.isNull())
return;
LLVOAvatar* avatar = getAvatarByUuid(gAgentAvatarp->getID());
if (!avatar)
return;
for (auto listItem : mAvatarSelectionScrollList->getAllData())
{
LLScrollListCell* cell = listItem->getColumn(COL_UUID);
if (!cell)
continue;
bool arePosingSelected = mPoserAnimator.isPosingAvatar(avatar);
if (!arePosingSelected)
return;
LLUUID selectedAvatarId = cell->getValue().asUUID();
LLVOAvatar* listAvatar = getAvatarByUuid(selectedAvatarId);
if (mPoserAnimator.isPosingAvatar(listAvatar))
mPoserAnimator.stopPosingAvatar(listAvatar);
}
mPoserAnimator.stopPosingAvatar(avatar);
onAvatarSelect();
}
@ -2074,7 +2078,7 @@ void FSFloaterPoser::onAvatarsRefresh()
LLAvatarName av_name;
std::string animeshName = getControlAvatarName(avatar);
if (animeshName.empty())
animeshName = avatar->getFullname();
continue;
LLSD row;
row["columns"][COL_ICON]["column"] = "icon";
@ -2109,6 +2113,9 @@ std::string FSFloaterPoser::getControlAvatarName(const LLControlAvatar* avatar)
if (attachedItem)
return attachedItem->getName();
if (rootEditObject->permYouOwner())
return avatar->getFullname();
return "";
}
@ -2146,24 +2153,6 @@ void FSFloaterPoser::setSavePosesButtonText(bool setAsSaveDiff)
setAsSaveDiff ? mSavePosesBtn->setLabel("Save Diff") : mSavePosesBtn->setLabel("Save Pose");
}
bool FSFloaterPoser::posingAnyoneOnScrollList()
{
for (auto listItem : mAvatarSelectionScrollList->getAllData())
{
LLScrollListCell* cell = listItem->getColumn(COL_UUID);
if (!cell)
continue;
LLUUID selectedAvatarId = cell->getValue().asUUID();
LLVOAvatar* listAvatar = getAvatarByUuid(selectedAvatarId);
if (mPoserAnimator.isPosingAvatar(listAvatar))
return true;
}
return false;
}
void FSFloaterPoser::addBoldToScrollList(LLScrollListCtrl* list, LLVOAvatar* avatar)
{
if (!avatar)

View File

@ -236,7 +236,7 @@ class FSFloaterPoser : public LLFloater
void enableOrDisableRedoButton();
void onPoseStartStop();
void startPosingSelf();
void stopPosingSelf();
void stopPosingAllAvatars();
void onLimbTrackballChanged();
void onYawPitchRollSliderChanged();
void onAvatarPositionSet();
@ -328,11 +328,6 @@ class FSFloaterPoser : public LLFloater
/// <param name="setAsSaveDiff">Whether to indicate a diff will be saved, instead of a pose.</param>
void setSavePosesButtonText(bool setAsSaveDiff);
/// <summary>
/// Gets whether any avatar know by the UI is being posed.
/// </summary>
bool posingAnyoneOnScrollList();
/// <summary>
/// Applies the appropriate font-face (such as bold) to the text of the supplied list, to indicate use.
/// </summary>

View File

@ -923,7 +923,7 @@ width="403">
layout="topleft"
image_overlay="Inv_TrashOpen"
image_unselected="Toolbar_Middle_Off"
name="refresh_avatars"
name="poser_joint_reset"
tool_tip="Double click to reset all selected body parts to when you first started posing"
width="18"
top_delta="0"