Merge Firestorm LGPL
commit
93767f6e52
|
|
@ -952,11 +952,11 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>e137cd0eacda5df6204150b3bb51a971</string>
|
||||
<string>177f3e948368aa09803ffae0884acc12</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>md5</string>
|
||||
<key>url</key>
|
||||
<string>file:///opt/firestorm/fmodstudio-1.10.09-darwin-183011234.tar.bz2</string>
|
||||
<string>file:///opt/firestorm/fmodstudio-1.10.10-darwin-183562214.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin</string>
|
||||
|
|
@ -1976,9 +1976,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>1b87073540bf081136e60777d99f09f2</string>
|
||||
<string>9a08c678a8c6c3c10bb913219b7931b6</string>
|
||||
<key>url</key>
|
||||
<string>file:///opt/firestorm/kdu-7.A.5-darwin-182950050.tar.bz2</string>
|
||||
<string>file:///opt/firestorm/kdu-7.A.6-darwin-183562147.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin</string>
|
||||
|
|
@ -1988,9 +1988,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>1b87073540bf081136e60777d99f09f2</string>
|
||||
<string>9a08c678a8c6c3c10bb913219b7931b6</string>
|
||||
<key>url</key>
|
||||
<string>file:///opt/firestorm/kdu-7.A.5-darwin-182950050.tar.bz2</string>
|
||||
<string>file:///opt/firestorm/kdu-7.A.6-darwin-183562147.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin64</string>
|
||||
|
|
@ -2832,9 +2832,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>ee185657aed3a7fcabcd9a1335a6050b</string>
|
||||
<string>0d3db04b9b10085b100b345c68381cb0</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/ogg_vorbis-1.2.2-1.3.2.180871245-linux-180871245.tar.bz2</string>
|
||||
<string>http://downloads.phoenixviewer.com/ogg_vorbis-1.3.3-1.3.6.183570207-linux-183570207.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -2844,9 +2844,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>ec5fd10d3a504e528b61d339522ca0f9</string>
|
||||
<string>5e23c312d37367bb2d23dad395891b00</string>
|
||||
<key>url</key>
|
||||
<string>http://downloads.phoenixviewer.com/ogg_vorbis-1.2.2-1.3.2.180841550-linux64-180841550.tar.bz2</string>
|
||||
<string>http://downloads.phoenixviewer.com/ogg_vorbis-1.3.3-1.3.6.183570202-linux64-183570202.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux64</string>
|
||||
|
|
|
|||
|
|
@ -32,6 +32,8 @@
|
|||
<true/>
|
||||
<key>NSAppSleepDisabled</key>
|
||||
<true/>
|
||||
<key>NSMicrophoneUsageDescription</key>
|
||||
<string>Microphone access is needed to allow connection to voice.</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>${MACOSX_BUNDLE_COPYRIGHT}</string>
|
||||
<key>CFBundleDocumentTypes</key>
|
||||
|
|
|
|||
|
|
@ -9029,7 +9029,7 @@
|
|||
<key>MeshPreviewBaseColor</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Canvas colour for the Mesh uploader</string>
|
||||
<string>Diffuse colour for the Mesh uploader when textures not shown</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
|
|
@ -18944,7 +18944,18 @@ Change of this parameter will affect the layout of buttons in notification toast
|
|||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>FSIgnoreFinishAnimation</key>
|
||||
<key>FSIgnoreClientsideMeshValidation</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Treat the errors from Clientside mesh validation as warnings and do not block upload. This setting allows you to fall back on server side checks and per Grid quality control levels.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>FSIgnoreFinishAnimation</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Disable the wait for pre-jump or landing. Credit to Zwagoth Klaar for coding this.</string>
|
||||
|
|
|
|||
|
|
@ -94,6 +94,7 @@ void main()
|
|||
// col.rgb += light_diffuse[2].rgb*calcPointLightOrSpotLight(pos.xyz, norm, light_position[2], light_direction[2], light_attenuation[2].x, light_attenuation[2].z);
|
||||
col.rgb += light_diffuse[2].rgb * calcDirectionalLight(norm, light_position[2].xyz);
|
||||
// col.rgb += light_diffuse[3].rgb*calcPointLightOrSpotLight(pos.xyz, norm, light_position[3], light_direction[3], light_attenuation[3].x, light_attenuation[3].z);
|
||||
col.rgb += light_diffuse[3].rgb * calcDirectionalLight(norm, light_position[3].xyz);
|
||||
col /= 2.0;
|
||||
vertex_color = col*color;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -131,7 +131,7 @@ void LLViewerDynamicTexture::preRender(BOOL clear_depth)
|
|||
//llassert(mFullWidth <= 512);
|
||||
gPipeline.allocatePhysicsBuffer();
|
||||
llassert(mFullWidth <= static_cast<S32>(gPipeline.mPhysicsDisplay.getWidth()));
|
||||
llassert(mFullWidth <= static_cast<S32>(gPipeline.mPhysicsDisplay.getHeight()));
|
||||
llassert(mFullHeight <= static_cast<S32>(gPipeline.mPhysicsDisplay.getHeight()));
|
||||
|
||||
// if (gGLManager.mHasFramebufferObject && gPipeline.mWaterDis.isComplete() && !gGLManager.mIsATI)
|
||||
if (gGLManager.mHasFramebufferObject && gPipeline.mPhysicsDisplay.isComplete() && !gGLManager.mIsATI)
|
||||
|
|
|
|||
|
|
@ -52,12 +52,16 @@ LLFloaterLinkReplace::~LLFloaterLinkReplace()
|
|||
|
||||
BOOL LLFloaterLinkReplace::postBuild()
|
||||
{
|
||||
childSetVisible("delete_text", false); // <FS:Beq> FIRE-17695 - Delete links capability
|
||||
mStartBtn = getChild<LLButton>("btn_start");
|
||||
mStartBtn->setCommitCallback(boost::bind(&LLFloaterLinkReplace::onStartClicked, this));
|
||||
|
||||
mRefreshBtn = getChild<LLButton>("btn_refresh");
|
||||
mRefreshBtn->setCommitCallback(boost::bind(&LLFloaterLinkReplace::checkEnableStart, this));
|
||||
|
||||
// <FS:Beq> FIRE-17695 - Delete links capability
|
||||
mDeleteOnlyToggle = getChild<LLCheckBoxCtrl>("delete_links_only");
|
||||
mDeleteOnlyToggle->setCommitCallback(boost::bind(&LLFloaterLinkReplace::onDeleteOnlyToggle, this));
|
||||
// </FS:Beq>
|
||||
mSourceEditor = getChild<LLInventoryLinkReplaceDropTarget>("source_uuid_editor");
|
||||
mTargetEditor = getChild<LLInventoryLinkReplaceDropTarget>("target_uuid_editor");
|
||||
|
||||
|
|
@ -92,9 +96,40 @@ void LLFloaterLinkReplace::onSourceItemDrop(const LLUUID& source_item_id)
|
|||
|
||||
void LLFloaterLinkReplace::onTargetItemDrop(const LLUUID& target_item_id)
|
||||
{
|
||||
mTargetUUID = target_item_id;
|
||||
// <FS:Beq> FIRE-17695 - option to bulk delete links.
|
||||
//mTargetUUID = target_item_id;
|
||||
//checkEnableStart();
|
||||
if (!mDeleteOnly)
|
||||
{
|
||||
mTargetUUID = target_item_id;
|
||||
checkEnableStart();
|
||||
}
|
||||
else
|
||||
{
|
||||
mTargetEditor->setItem(nullptr);
|
||||
mTargetEditor->setText(getString("DeleteNotReplace"));
|
||||
mTargetUUID.setNull();
|
||||
}
|
||||
// </FS:Beq>
|
||||
}
|
||||
|
||||
// <FS:Beq> FIRE-17695 - Delete links capability
|
||||
void LLFloaterLinkReplace::onDeleteOnlyToggle()
|
||||
{
|
||||
auto enabled = mDeleteOnlyToggle->getValue().asBoolean();
|
||||
mTargetEditor->setEnabled(!enabled);
|
||||
mTargetEditor->setVisible(!enabled);
|
||||
childSetVisible("target_label", !enabled);
|
||||
childSetVisible("delete_text", enabled);
|
||||
mDeleteOnly = enabled;
|
||||
if (mDeleteOnly)
|
||||
{
|
||||
mTargetEditor->setItem(nullptr);
|
||||
mTargetUUID.setNull();
|
||||
}
|
||||
checkEnableStart();
|
||||
}
|
||||
// </FS:Beq>
|
||||
|
||||
void LLFloaterLinkReplace::updateFoundLinks()
|
||||
{
|
||||
|
|
@ -123,20 +158,36 @@ void LLFloaterLinkReplace::checkEnableStart()
|
|||
{
|
||||
updateFoundLinks();
|
||||
}
|
||||
// <FS:Beq> FIRE-17695 - Delete links capability
|
||||
// mStartBtn->setEnabled(mRemainingItems > 0 && mSourceUUID.notNull() && mTargetUUID.notNull() && mSourceUUID != mTargetUUID);
|
||||
bool enable = mRemainingItems > 0 && (
|
||||
(mDeleteOnly && mSourceUUID.notNull() ) ||
|
||||
(mSourceUUID.notNull() && mTargetUUID.notNull() && mSourceUUID != mTargetUUID));
|
||||
|
||||
mStartBtn->setEnabled(mRemainingItems > 0 && mSourceUUID.notNull() && mTargetUUID.notNull() && mSourceUUID != mTargetUUID);
|
||||
mStartBtn->setEnabled(enable);
|
||||
// </FS:Beq>
|
||||
}
|
||||
|
||||
void LLFloaterLinkReplace::onStartClicked()
|
||||
{
|
||||
LL_INFOS() << "Starting inventory link replace" << LL_ENDL;
|
||||
|
||||
if (mSourceUUID.isNull() || mTargetUUID.isNull())
|
||||
// <FS:Beq> FIRE-17695 - option to bulk delete links.
|
||||
// if (mSourceUUID.isNull() || mTargetUUID.isNull())
|
||||
if (!mDeleteOnly && (mSourceUUID.isNull() || mTargetUUID.isNull()))
|
||||
// </FS:Beq>
|
||||
{
|
||||
LL_WARNS() << "Cannot replace. Either source or target UUID is null." << LL_ENDL;
|
||||
return;
|
||||
}
|
||||
|
||||
// <FS:Beq> FIRE-17695 - option to bulk delete links.
|
||||
if (!mDeleteOnly && mSourceUUID.isNull())
|
||||
{
|
||||
LL_WARNS() << "Cannot delete links. Source UUID is null." << LL_ENDL;
|
||||
return;
|
||||
}
|
||||
// </FS:Beq>
|
||||
|
||||
if (mSourceUUID == mTargetUUID)
|
||||
{
|
||||
LL_WARNS() << "Cannot replace. Source and target are identical." << LL_ENDL;
|
||||
|
|
@ -155,7 +206,10 @@ void LLFloaterLinkReplace::onStartClicked()
|
|||
if (mRemainingInventoryItems.size() > 0)
|
||||
{
|
||||
LLViewerInventoryItem* target_item = gInventory.getItem(mTargetUUID);
|
||||
if (target_item)
|
||||
// <FS:Beq> FIRE-17695 - option to bulk delete links.
|
||||
//if (target_item)
|
||||
if (target_item || mDeleteOnly)
|
||||
// </FS:Beq>
|
||||
{
|
||||
mRemainingItems = (U32)mRemainingInventoryItems.size();
|
||||
|
||||
|
|
@ -307,26 +361,63 @@ void LLFloaterLinkReplace::processBatch(LLInventoryModel::item_array_t items)
|
|||
|
||||
if (source_item->getParentUUID() != cof_folder_id)
|
||||
{
|
||||
// <FS:Beq> FIRE-17695 bulk delete unwanted links
|
||||
//bool is_outfit_folder = gInventory.isObjectDescendentOf(source_item->getParentUUID(), outfit_folder_id);
|
||||
//// If either the new or old item in the COF is a wearable, we need to update wearable ordering after the link has been replaced
|
||||
//bool needs_wearable_ordering_update = (is_outfit_folder && source_item->getType() == LLAssetType::AT_CLOTHING) || target_item->getType() == LLAssetType::AT_CLOTHING;
|
||||
//// Other items in the COF need a description update (description of the actual link item must be empty)
|
||||
//bool needs_description_update = is_outfit_folder && target_item->getType() != LLAssetType::AT_CLOTHING;
|
||||
|
||||
//LL_DEBUGS() << "is_outfit_folder = " << (is_outfit_folder ? "true" : "false") << LL_NEWLINE
|
||||
// << "needs_wearable_ordering_update = " << (needs_wearable_ordering_update ? "true" : "false") << LL_NEWLINE
|
||||
// << "needs_description_update = " << (needs_description_update ? "true" : "false") << LL_ENDL;
|
||||
|
||||
//LLInventoryObject::const_object_list_t obj_array;
|
||||
//obj_array.push_back(LLConstPointer<LLInventoryObject>(target_item));
|
||||
//LLPointer<LLInventoryCallback> cb = new LLBoostFuncInventoryCallback(boost::bind(&LLFloaterLinkReplace::linkCreatedCallback,
|
||||
// getDerivedHandle<LLFloaterLinkReplace>(),
|
||||
// source_item->getUUID(),
|
||||
// target_item->getUUID(),
|
||||
// needs_wearable_ordering_update,
|
||||
// needs_description_update,
|
||||
// (is_outfit_folder ? source_item->getParentUUID() : LLUUID::null) ));
|
||||
//link_inventory_array(source_item->getParentUUID(), obj_array, cb);
|
||||
|
||||
bool is_outfit_folder = gInventory.isObjectDescendentOf(source_item->getParentUUID(), outfit_folder_id);
|
||||
// If either the new or old item in the COF is a wearable, we need to update wearable ordering after the link has been replaced
|
||||
bool needs_wearable_ordering_update = (is_outfit_folder && source_item->getType() == LLAssetType::AT_CLOTHING) || target_item->getType() == LLAssetType::AT_CLOTHING;
|
||||
bool needs_wearable_ordering_update = (is_outfit_folder && source_item->getType() == LLAssetType::AT_CLOTHING) || (!mDeleteOnly && target_item->getType() == LLAssetType::AT_CLOTHING);
|
||||
// Other items in the COF need a description update (description of the actual link item must be empty)
|
||||
bool needs_description_update = is_outfit_folder && target_item->getType() != LLAssetType::AT_CLOTHING;
|
||||
bool needs_description_update = !mDeleteOnly && is_outfit_folder && target_item->getType() != LLAssetType::AT_CLOTHING;
|
||||
|
||||
LL_DEBUGS() << "is_outfit_folder = " << (is_outfit_folder ? "true" : "false") << LL_NEWLINE
|
||||
<< "needs_wearable_ordering_update = " << (needs_wearable_ordering_update ? "true" : "false") << LL_NEWLINE
|
||||
<< "needs_description_update = " << (needs_description_update ? "true" : "false") << LL_ENDL;
|
||||
|
||||
LLInventoryObject::const_object_list_t obj_array;
|
||||
obj_array.push_back(LLConstPointer<LLInventoryObject>(target_item));
|
||||
LLPointer<LLInventoryCallback> cb = new LLBoostFuncInventoryCallback(boost::bind(&LLFloaterLinkReplace::linkCreatedCallback,
|
||||
getDerivedHandle<LLFloaterLinkReplace>(),
|
||||
source_item->getUUID(),
|
||||
target_item->getUUID(),
|
||||
needs_wearable_ordering_update,
|
||||
needs_description_update,
|
||||
(is_outfit_folder ? source_item->getParentUUID() : LLUUID::null) ));
|
||||
link_inventory_array(source_item->getParentUUID(), obj_array, cb);
|
||||
if (!mDeleteOnly)
|
||||
{
|
||||
LLInventoryObject::const_object_list_t obj_array;
|
||||
obj_array.push_back(LLConstPointer<LLInventoryObject>(target_item));
|
||||
LLPointer<LLInventoryCallback> cb = new LLBoostFuncInventoryCallback(boost::bind(&LLFloaterLinkReplace::linkCreatedCallback,
|
||||
getDerivedHandle<LLFloaterLinkReplace>(),
|
||||
source_item->getUUID(),
|
||||
target_item->getUUID(),
|
||||
needs_wearable_ordering_update,
|
||||
needs_description_update,
|
||||
(is_outfit_folder ? source_item->getParentUUID() : LLUUID::null)));
|
||||
link_inventory_array(source_item->getParentUUID(), obj_array, cb);
|
||||
}
|
||||
else
|
||||
{
|
||||
LLUUID outfit_update_folder_id = LLUUID::null;
|
||||
if (needs_wearable_ordering_update)
|
||||
{
|
||||
outfit_update_folder_id = outfit_folder_id;
|
||||
}
|
||||
LLPointer<LLInventoryCallback> cb = new LLBoostFuncInventoryCallback(boost::bind(&LLFloaterLinkReplace::itemRemovedCallback, getDerivedHandle<LLFloaterLinkReplace>(), outfit_update_folder_id));
|
||||
remove_inventory_object(source_item->getUUID(), cb);
|
||||
LL_INFOS() << "Requested delete of " << source_item->getUUID() << LL_ENDL;
|
||||
}
|
||||
// </FS:Beq>
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@
|
|||
#include "lllineeditor.h"
|
||||
#include "llinventoryfunctions.h"
|
||||
#include "llviewerinventory.h"
|
||||
#include "llcheckboxctrl.h" // <FS:Beq> FIRE-17695 - Delete links capability
|
||||
|
||||
class LLButton;
|
||||
class LLTextBox;
|
||||
|
|
@ -104,12 +105,14 @@ private:
|
|||
|
||||
void onSourceItemDrop(const LLUUID& source_item_id);
|
||||
void onTargetItemDrop(const LLUUID& target_item_id);
|
||||
void onDeleteOnlyToggle();// <FS:Beq> FIRE-17695 - Delete links capability
|
||||
|
||||
LLInventoryLinkReplaceDropTarget* mSourceEditor;
|
||||
LLInventoryLinkReplaceDropTarget* mTargetEditor;
|
||||
LLButton* mStartBtn;
|
||||
LLButton* mRefreshBtn;
|
||||
LLTextBox* mStatusText;
|
||||
LLCheckBoxCtrl* mDeleteOnlyToggle;// <FS:Beq> FIRE-17695 - Delete links capability
|
||||
|
||||
LLUUID mSourceUUID;
|
||||
LLUUID mTargetUUID;
|
||||
|
|
@ -117,6 +120,7 @@ private:
|
|||
U32 mBatchSize;
|
||||
|
||||
LLInventoryModel::item_array_t mRemainingInventoryItems;
|
||||
bool mDeleteOnly;// <FS:Beq> FIRE-17695 - Delete links capability
|
||||
};
|
||||
|
||||
#endif // LL_FLOATERLINKREPLACE_H
|
||||
|
|
|
|||
|
|
@ -3060,19 +3060,35 @@ void LLModelPreview::updateStatusMessages()
|
|||
U16 index_a = face.mIndices[k+0];
|
||||
U16 index_b = face.mIndices[k+1];
|
||||
U16 index_c = face.mIndices[k+2];
|
||||
// <FS:Beq> FIRE-23367/23387 - Allow forced empty triangle placeholders created by the LOD processing.
|
||||
// LLVector4a v1; v1.setMul(face.mPositions[index_a], scale);
|
||||
// LLVector4a v2; v2.setMul(face.mPositions[index_b], scale);
|
||||
// LLVector4a v3; v3.setMul(face.mPositions[index_c], scale);
|
||||
|
||||
LLVector4a v1; v1.setMul(face.mPositions[index_a], scale);
|
||||
LLVector4a v2; v2.setMul(face.mPositions[index_b], scale);
|
||||
LLVector4a v3; v3.setMul(face.mPositions[index_c], scale);
|
||||
|
||||
if (ll_is_degenerate(v1,v2,v3))
|
||||
// if (ll_is_degenerate(v1, v2, v3))
|
||||
// {
|
||||
// mHasDegenerate = true;// <FS:Beq> make has_degenerate a member
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// k += 3;
|
||||
// }
|
||||
if (index_c == 0 && index_b == 0 && index_a == 0) // test in reverse as 3rd index is less likely to be 0 in a normal case
|
||||
{
|
||||
mHasDegenerate = true;// <FS:Beq> make has_degenerate a member
|
||||
LL_DEBUGS("MeshValidation") << "Empty placeholder triangle (3 identical index 0 verts) ignored" << LL_ENDL;
|
||||
}
|
||||
else
|
||||
{
|
||||
k += 3;
|
||||
LLVector4a v1; v1.setMul(face.mPositions[index_a], scale);
|
||||
LLVector4a v2; v2.setMul(face.mPositions[index_b], scale);
|
||||
LLVector4a v3; v3.setMul(face.mPositions[index_c], scale);
|
||||
if (ll_is_degenerate(v1, v2, v3))
|
||||
{
|
||||
mHasDegenerate = true;// <FS:Beq> make has_degenerate a member
|
||||
}
|
||||
}
|
||||
k += 3;
|
||||
// </FS:Beq>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3319,7 +3335,7 @@ void LLModelPreview::updateStatusMessages()
|
|||
//if (!mModelNoErrors || mHasDegenerate)
|
||||
//{
|
||||
// mFMP->childDisable("ok_btn");
|
||||
if (!mModelNoErrors || (has_physics_error > PhysicsError::NOHAVOK)) // block for all cases of phsyics error except NOHAVOK
|
||||
if ((gSavedSettings.getBOOL("FSIgnoreClientsideMeshValidation")==FALSE) && (!mModelNoErrors || (has_physics_error > PhysicsError::NOHAVOK))) // block for all cases of phsyics error except NOHAVOK
|
||||
{
|
||||
mFMP->childDisable("ok_btn");
|
||||
mFMP->childDisable("calculate_btn");
|
||||
|
|
|
|||
|
|
@ -2118,7 +2118,7 @@ bool LLTextureCache::writeToFastCache(LLUUID image_id, S32 id, LLPointer<LLImage
|
|||
catch (...)
|
||||
{
|
||||
removeFromCache(image_id);
|
||||
LL_ERRS() << "Failed to cache image: " << image_id
|
||||
LL_WARNS() << "Failed to cache image: " << image_id
|
||||
<< " local id: " << id
|
||||
<< " Exception: " << boost::current_exception_diagnostic_information()
|
||||
<< " Image new width: " << w
|
||||
|
|
|
|||
|
|
@ -301,6 +301,7 @@ void ParticleEditor::onParameterChange()
|
|||
if (mWindCheckBox->getValue().asBoolean()) flags |= LLPartData::LL_PART_WIND_MASK;
|
||||
if (mRibbonCheckBox->getValue().asBoolean()) flags |= LLPartData::LL_PART_RIBBON_MASK;
|
||||
mParticles.mPartData.setFlags(flags);
|
||||
mParticles.setUseNewAngle();
|
||||
|
||||
mParticles.mTargetUUID = mTargetKeyInput->getValue().asUUID();
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<floater name="fs_linkreplace" title="Inventar-Links ersetzen">
|
||||
<floater name="linkreplace" title="Inventar-Links ersetzen">
|
||||
<string name="Ready">
|
||||
Bereit...
|
||||
</string>
|
||||
|
|
@ -18,14 +18,21 @@
|
|||
<string name="ReplaceFinished">
|
||||
Ersetzen von Inventar-Links beendet.
|
||||
</string>
|
||||
<string name="DeleteNotReplace">
|
||||
Keine Ersetzung.
|
||||
</string>
|
||||
<text name="source_label">
|
||||
Alt:
|
||||
</text>
|
||||
<inventory_link_replace_drop_target name="source_uuid_editor" tool_tip="Quell-Objekt aus dem Inventar hier per Drag&Drop hineinziehen."/>
|
||||
<text name="delete_text">
|
||||
Verknüpfungen zu diesem Objekt werden entfernt.
|
||||
</text>
|
||||
<text name="target_label">
|
||||
Neu:
|
||||
</text>
|
||||
<inventory_link_replace_drop_target name="target_uuid_editor" tool_tip="Ziel-Objekt aus dem Inventar hier per Drag&Drop hineinziehen."/>
|
||||
<check_box label="Nur Verknüpfungen entfernen" name="delete_links_only"/>
|
||||
<text name="status_text">
|
||||
Bereit...
|
||||
</text>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
positioning="centered"
|
||||
title="Replace Inventory Links"
|
||||
width="333"
|
||||
height="130"
|
||||
height="150"
|
||||
save_rect="true"
|
||||
can_minimize="true"
|
||||
can_close="true">
|
||||
|
|
@ -27,6 +27,9 @@
|
|||
<string name="ReplaceFinished">
|
||||
Finished replacing inventory links.
|
||||
</string>
|
||||
<string name="DeleteNotReplace">
|
||||
No replacement.
|
||||
</string>
|
||||
<text
|
||||
type="string"
|
||||
follows="left|top"
|
||||
|
|
@ -49,6 +52,18 @@
|
|||
top_delta="-3"
|
||||
right="-10"
|
||||
tool_tip="Drag and drop the current inventory item here that should be replaced."/>
|
||||
<text
|
||||
type="string"
|
||||
follows="left|top"
|
||||
font="SanSerif"
|
||||
height="23"
|
||||
layout="topleft"
|
||||
top_pad="10"
|
||||
left="10"
|
||||
right="-10"
|
||||
name="delete_text">
|
||||
Links to this item will be removed.
|
||||
</text>
|
||||
<text
|
||||
type="string"
|
||||
follows="left|top"
|
||||
|
|
@ -58,7 +73,7 @@
|
|||
left="10"
|
||||
width="35"
|
||||
name="target_label"
|
||||
top_pad="10">
|
||||
top_delta="0">
|
||||
New:
|
||||
</text>
|
||||
<inventory_link_replace_drop_target
|
||||
|
|
@ -71,6 +86,15 @@
|
|||
top_delta="-3"
|
||||
right="-10"
|
||||
tool_tip="Drag and drop new inventory item here."/>
|
||||
<check_box
|
||||
follows="top|left"
|
||||
height="20"
|
||||
label="Delete links only"
|
||||
left="10"
|
||||
right="-10"
|
||||
layout="topleft"
|
||||
top_pad="5"
|
||||
name="delete_links_only"/>
|
||||
<text
|
||||
type="string"
|
||||
follows="left|top|right"
|
||||
|
|
|
|||
|
|
@ -276,7 +276,8 @@
|
|||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Refresh Attachments"
|
||||
name="Refresh Attachments">
|
||||
name="Refresh Attachments"
|
||||
shortcut="alt|shift|R">
|
||||
<menu_item_call.on_click
|
||||
function="Advanced.RefreshAttachments" />
|
||||
</menu_item_call>
|
||||
|
|
|
|||
|
|
@ -2471,8 +2471,8 @@ URL: [MEDIAURL]
|
|||
<notification name="AudioAlert">
|
||||
Questo lotto fornisce musica da :
|
||||
|
||||
Dominio: [MEDIADOMAIN]
|
||||
URL: [MEDIAURL]
|
||||
Dominio: [AUDIODOMAIN]
|
||||
URL: [AUDIOURL]
|
||||
<form name="form">
|
||||
<button name="Allow" text="Permetti"/>
|
||||
<button name="Deny" text="Nega"/>
|
||||
|
|
@ -2481,8 +2481,8 @@ URL: [MEDIAURL]
|
|||
<notification name="AudioAlert2">
|
||||
Ricordare la scelta fatta e [LCONDITION] permettere la musica da questa fonte?
|
||||
|
||||
Dominio: [MEDIADOMAIN]
|
||||
URL: [MEDIAURL]
|
||||
Dominio: [AUDIODOMAIN]
|
||||
URL: [AUDIOURL]
|
||||
<form name="form">
|
||||
<button name="Do Now" text="[ACTION] adesso"/>
|
||||
<button name="RememberDomain" text="[CONDITION] permetti questo dominio"/>
|
||||
|
|
@ -2492,8 +2492,8 @@ URL: [MEDIAURL]
|
|||
<notification name="AudioAlertSingle">
|
||||
Ricordare la scelta fatta e [LCONDITION] permettere la musica da questa fonte?
|
||||
|
||||
Dominio: [MEDIADOMAIN]
|
||||
URL: [MEDIAURL]
|
||||
Dominio: [AUDIODOMAIN]
|
||||
URL: [AUDIOURL]
|
||||
<form name="form">
|
||||
<button name="Allow" text="Permetti"/>
|
||||
<button name="Deny" text="Nega"/>
|
||||
|
|
|
|||
|
|
@ -18,14 +18,21 @@
|
|||
<string name="ReplaceFinished">
|
||||
Zakończono zastępowanie linków.
|
||||
</string>
|
||||
<string name="DeleteNotReplace">
|
||||
Brak zmian.
|
||||
</string>
|
||||
<text name="source_label">
|
||||
Stary:
|
||||
</text>
|
||||
<inventory_link_replace_drop_target name="source_uuid_editor" tool_tip="Przeciągnij i upuść tutaj przedmiot, którego linki chcesz zastąpić." />
|
||||
<text name="delete_text">
|
||||
Linki tego obiektu zostaną usunięte.
|
||||
</text>
|
||||
<text name="target_label">
|
||||
Nowy:
|
||||
</text>
|
||||
<inventory_link_replace_drop_target name="target_uuid_editor" tool_tip="Przeciągnij i upuść tutaj przedmiot, którego linki zastąpią linki do przedmiotu pierwotnego." />
|
||||
<check_box label="Tylko usuń linki" name="delete_links_only" />
|
||||
<text name="status_text">
|
||||
Gotowy...
|
||||
</text>
|
||||
|
|
|
|||
Loading…
Reference in New Issue