diff --git a/indra/llcharacter/llbvhconsts.h b/indra/llcharacter/llbvhconsts.h
index d5876aa07..b77732de1 100644
--- a/indra/llcharacter/llbvhconsts.h
+++ b/indra/llcharacter/llbvhconsts.h
@@ -33,7 +33,7 @@
#ifndef LL_LLBVHCONSTS_H
#define LL_LLBVHCONSTS_H
-const F32 MAX_ANIM_DURATION = 30.f;
+const F32 MAX_ANIM_DURATION = 60.f;
typedef enum e_constraint_type
{
diff --git a/indra/newview/llpanelobject.cpp b/indra/newview/llpanelobject.cpp
index b1f702bcd..4e5bc6987 100644
--- a/indra/newview/llpanelobject.cpp
+++ b/indra/newview/llpanelobject.cpp
@@ -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)
diff --git a/indra/newview/llpanelobject.h b/indra/newview/llpanelobject.h
index ae2397294..e34d318c6 100644
--- a/indra/newview/llpanelobject.h
+++ b/indra/newview/llpanelobject.h
@@ -50,6 +50,10 @@ class LLColorSwatchCtrl;
class LLTextureCtrl;
class LLInventoryItem;
class LLUUID;
+class LLFlexibleObjectData;
+class LLLightParams;
+class LLLightImageParams;
+class LLSculptParams;
class LLPanelObject : public LLPanel
{
@@ -119,6 +123,10 @@ protected:
static LLVector3 mClipboardSize;
static LLVector3 mClipboardRot;
static LLVolumeParams mClipboardVolumeParams;
+ static LLFlexibleObjectData* mClipboardFlexiParams;
+ static LLLightParams* mClipboardLightParams;
+ static LLSculptParams* mClipboardSculptParams;
+ static LLLightImageParams* mClipboardLightImageParams;
static BOOL hasParamClipboard;
S32 mComboMaterialItemCount;
diff --git a/indra/newview/skins/default/xui/en-us/floater_tools.xml b/indra/newview/skins/default/xui/en-us/floater_tools.xml
index b981ef791..fe18acba2 100644
--- a/indra/newview/skins/default/xui/en-us/floater_tools.xml
+++ b/indra/newview/skins/default/xui/en-us/floater_tools.xml
@@ -779,7 +779,7 @@
+ tool_tip="Copy Parameters to Clipboard" width="42" />
diff --git a/indra/newview/skins/default/xui/fr/floater_instant_message_group.xml b/indra/newview/skins/default/xui/fr/floater_instant_message_group.xml
index 94fb6b281..eac7c1929 100644
--- a/indra/newview/skins/default/xui/fr/floater_instant_message_group.xml
+++ b/indra/newview/skins/default/xui/fr/floater_instant_message_group.xml
@@ -33,9 +33,9 @@
-
+
-
+
diff --git a/indra/newview/skins/default/xui/fr/floater_tools.xml b/indra/newview/skins/default/xui/fr/floater_tools.xml
index ab33cf73e..93a131ffc 100644
--- a/indra/newview/skins/default/xui/fr/floater_tools.xml
+++ b/indra/newview/skins/default/xui/fr/floater_tools.xml
@@ -17,7 +17,7 @@
- Axe:
+ Axe :
@@ -65,7 +65,7 @@
- Bulldozer:
+ Bulldozer :
Taille
@@ -74,28 +74,28 @@
Force
- Objets sélectionnés: [COUNT]
+ Objets sélectionnés : [COUNT]
- Prims: [COUNT]
+ Prims : [COUNT]
- Nom:
+ Nom :
- Description:
+ Description :
- Créateur:
+ Créateur :
Thrax Linden
- Propriétaire:
+ Propriétaire :
@@ -111,15 +111,15 @@
- Groupe:
+ Groupe :
Les Lindens
-
- Droits:
+
+ Droits :
Vous pouvez modifier cet objet.
@@ -151,7 +151,7 @@
- Le prochain propriétaire pourra:
+ Le prochain propriétaire pourra :
@@ -184,22 +184,22 @@
- B:
+ B :
- O:
+ O :
- G:
+ G :
- E:
+ E :
- N:
+ N :
- F:
+ F :
Vous pouvez modifier cet objet.
@@ -217,13 +217,13 @@
Sélectionnez l'objet en entier.
- Prix: [CURRENCY]
+ Prix : [CURRENCY]
- Prix total: [CURRENCY]
+ Prix total : [CURRENCY]
- Prix par: [CURRENCY]
+ Prix par : [CURRENCY]
Prix mixte
@@ -419,7 +419,7 @@
Sélectionnez un prim pour modifier les attributs.
- Modifiez les attributs de l'objet:
+ Modifiez les attributs de l'objet :
@@ -567,7 +567,11 @@
Ajuster la texture du média
(chargement préalable)
-
+
+
+ Paramètres
+
+
@@ -579,7 +583,7 @@
Informations sur la parcelle
- Prix : [PRICE][CURRENCY] pour [AREA] m².
+ Prix : [PRICE] [CURRENCY] pour [AREA] m².
Surface : [AREA] m²
diff --git a/indra/newview/skins/default/xui/fr/menu_viewer.xml b/indra/newview/skins/default/xui/fr/menu_viewer.xml
index fe680af24..9dcf5e26c 100644
--- a/indra/newview/skins/default/xui/fr/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/fr/menu_viewer.xml
@@ -1,46 +1,20 @@