Issue 220: Copy/paste params in the build tools like phoenix
Adds mClipboardFlexiParams, mClipboardLightParams, mClipboardSculptParams, and mClipboardLightImageParams to LLPanelObject. Corrects the tooltip on the the copy button.
This commit is contained in:
@@ -130,6 +130,10 @@ LLVector3 LLPanelObject::mClipboardPos;
|
||||
LLVector3 LLPanelObject::mClipboardSize;
|
||||
LLVector3 LLPanelObject::mClipboardRot;
|
||||
LLVolumeParams LLPanelObject::mClipboardVolumeParams;
|
||||
LLFlexibleObjectData* LLPanelObject::mClipboardFlexiParams = NULL;
|
||||
LLLightParams* LLPanelObject::mClipboardLightParams = NULL;
|
||||
LLSculptParams* LLPanelObject::mClipboardSculptParams = NULL;
|
||||
LLLightImageParams* LLPanelObject::mClipboardLightImageParams = NULL;
|
||||
BOOL LLPanelObject::hasParamClipboard = FALSE;
|
||||
|
||||
BOOL LLPanelObject::postBuild()
|
||||
@@ -2493,15 +2497,65 @@ void LLPanelObject::onCopyRot(void* user_data)
|
||||
void LLPanelObject::onCopyParams(void* user_data)
|
||||
{
|
||||
LLPanelObject* self = (LLPanelObject*) user_data;
|
||||
if (!self) return;
|
||||
|
||||
self->getVolumeParams(mClipboardVolumeParams);
|
||||
hasParamClipboard = TRUE;
|
||||
|
||||
LLViewerObject* objp = self->mObject;
|
||||
|
||||
mClipboardFlexiParams = (LLFlexibleObjectData*)objp->getParameterEntry(LLNetworkData::PARAMS_FLEXIBLE);
|
||||
mClipboardLightParams = (LLLightParams*)objp->getParameterEntry(LLNetworkData::PARAMS_LIGHT);
|
||||
mClipboardSculptParams = (LLSculptParams*)objp->getParameterEntry(LLNetworkData::PARAMS_SCULPT);
|
||||
if (mClipboardSculptParams)
|
||||
{
|
||||
LLUUID id = mClipboardSculptParams->getSculptTexture();
|
||||
|
||||
// Texture perms check
|
||||
if (!(id.isNull() || gInventory.isObjectDescendentOf(id, gInventory.getLibraryRootFolderID())
|
||||
|| id == LLUUID(gSavedSettings.getString("UIImgWhiteUUID"))
|
||||
|| id == LLUUID(gSavedSettings.getString("UIImgInvisibleUUID"))
|
||||
|| id == LLUUID(std::string("8dcd4a48-2d37-4909-9f78-f7a9eb4ef903"))) // alpha
|
||||
&& findItemID(id).isNull())
|
||||
{
|
||||
mClipboardSculptParams->setSculptTexture(LLUUID(SCULPT_DEFAULT_TEXTURE));
|
||||
}
|
||||
}
|
||||
mClipboardLightImageParams = (LLLightImageParams*)objp->getParameterEntry(LLNetworkData::PARAMS_LIGHT_IMAGE);
|
||||
if (mClipboardLightImageParams)
|
||||
{
|
||||
LLUUID id = mClipboardLightImageParams->getLightTexture();
|
||||
|
||||
// Texture perms check
|
||||
if (!(id.isNull() || gInventory.isObjectDescendentOf(id, gInventory.getLibraryRootFolderID())
|
||||
|| id == LLUUID(gSavedSettings.getString("UIImgWhiteUUID"))
|
||||
|| id == LLUUID(gSavedSettings.getString("UIImgInvisibleUUID"))
|
||||
|| id == LLUUID("8dcd4a48-2d37-4909-9f78-f7a9eb4ef903"))) // alpha
|
||||
{
|
||||
mClipboardLightImageParams->setLightTexture(findItemID(id));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void LLPanelObject::onPasteParams(void* user_data)
|
||||
{
|
||||
if(!hasParamClipboard) return;
|
||||
|
||||
LLPanelObject* self = (LLPanelObject*) user_data;
|
||||
if(hasParamClipboard)
|
||||
self->mObject->updateVolume(mClipboardVolumeParams);
|
||||
if(!self) return;
|
||||
|
||||
LLViewerObject* objp = self->mObject;
|
||||
|
||||
objp->updateVolume(mClipboardVolumeParams);
|
||||
|
||||
if (mClipboardFlexiParams)
|
||||
objp->setParameterEntry(LLNetworkData::PARAMS_FLEXIBLE, *mClipboardFlexiParams, true);
|
||||
if (mClipboardLightParams)
|
||||
objp->setParameterEntry(LLNetworkData::PARAMS_LIGHT, *mClipboardLightParams, true);
|
||||
if (mClipboardSculptParams)
|
||||
objp->setParameterEntry(LLNetworkData::PARAMS_SCULPT, *mClipboardSculptParams, true);
|
||||
if (mClipboardLightImageParams)
|
||||
objp->setParameterEntry(LLNetworkData::PARAMS_LIGHT_IMAGE, *mClipboardLightImageParams, true);
|
||||
}
|
||||
|
||||
void LLPanelObject::onLinkObj(void* user_data)
|
||||
|
||||
Reference in New Issue
Block a user