Merge viewer-bear
commit
b18cee4f33
|
|
@ -200,6 +200,7 @@ Ansariel Hiller
|
|||
MAINT-6552
|
||||
STORM-2133
|
||||
MAINT-6511
|
||||
MAINT-6612
|
||||
Aralara Rajal
|
||||
Arare Chantilly
|
||||
CHUIBUG-191
|
||||
|
|
|
|||
|
|
@ -209,9 +209,9 @@ void LLUriParser::glue(std::string& uri) const
|
|||
uri = first_part + second_part;
|
||||
}
|
||||
|
||||
void LLUriParser::glueFirst(std::string& uri) const
|
||||
void LLUriParser::glueFirst(std::string& uri, bool use_scheme) const
|
||||
{
|
||||
if (mScheme.size())
|
||||
if (use_scheme && mScheme.size())
|
||||
{
|
||||
uri = mScheme;
|
||||
uri += "://";
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ public:
|
|||
|
||||
void extractParts();
|
||||
void glue(std::string& uri) const;
|
||||
void glueFirst(std::string& uri) const;
|
||||
void glueFirst(std::string& uri, bool use_scheme = true) const;
|
||||
void glueSecond(std::string& uri) const;
|
||||
bool test() const;
|
||||
S32 normalize();
|
||||
|
|
|
|||
|
|
@ -2184,19 +2184,22 @@ BOOL LLVolume::generate()
|
|||
|
||||
F32 profile_detail = mDetail;
|
||||
F32 path_detail = mDetail;
|
||||
|
||||
U8 path_type = mParams.getPathParams().getCurveType();
|
||||
U8 profile_type = mParams.getProfileParams().getCurveType();
|
||||
|
||||
if (path_type == LL_PCODE_PATH_LINE && profile_type == LL_PCODE_PROFILE_CIRCLE)
|
||||
{ //cylinders don't care about Z-Axis
|
||||
mLODScaleBias.setVec(0.6f, 0.6f, 0.0f);
|
||||
|
||||
if ((mParams.getSculptType() & LL_SCULPT_TYPE_MASK) != LL_SCULPT_TYPE_MESH)
|
||||
{
|
||||
U8 path_type = mParams.getPathParams().getCurveType();
|
||||
U8 profile_type = mParams.getProfileParams().getCurveType();
|
||||
if (path_type == LL_PCODE_PATH_LINE && profile_type == LL_PCODE_PROFILE_CIRCLE)
|
||||
{
|
||||
//cylinders don't care about Z-Axis
|
||||
mLODScaleBias.setVec(0.6f, 0.6f, 0.0f);
|
||||
}
|
||||
else if (path_type == LL_PCODE_PATH_CIRCLE)
|
||||
{
|
||||
mLODScaleBias.setVec(0.6f, 0.6f, 0.6f);
|
||||
}
|
||||
}
|
||||
else if (path_type == LL_PCODE_PATH_CIRCLE)
|
||||
{
|
||||
mLODScaleBias.setVec(0.6f, 0.6f, 0.6f);
|
||||
}
|
||||
|
||||
|
||||
BOOL regenPath = mPathp->generate(mParams.getPathParams(), path_detail, split);
|
||||
BOOL regenProf = mProfilep->generate(mParams.getProfileParams(), mPathp->isOpen(),profile_detail, split);
|
||||
|
||||
|
|
|
|||
|
|
@ -123,7 +123,15 @@ bool LLClipboard::copyToClipboard(const LLWString &src, S32 pos, S32 len, bool u
|
|||
// Concatenate the input string to the LL and the system clipboard
|
||||
bool LLClipboard::addToClipboard(const LLWString &src, S32 pos, S32 len, bool use_primary)
|
||||
{
|
||||
mString = src.substr(pos, len);
|
||||
try
|
||||
{
|
||||
mString = src.substr(pos, len);
|
||||
}
|
||||
catch (const std::exception& e)
|
||||
{
|
||||
LL_WARNS() << "Can't add the substring to clipboard: " << e.what() << LL_ENDL;
|
||||
return false;
|
||||
}
|
||||
return (use_primary ? LLView::getWindow()->copyTextToPrimary(mString) : LLView::getWindow()->copyTextToClipboard(mString));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -208,9 +208,15 @@ std::string LLUrlEntryBase::urlToGreyQuery(const std::string &url) const
|
|||
|
||||
std::string label;
|
||||
up.extractParts();
|
||||
up.glueFirst(label);
|
||||
std::string query = url.substr(label.size());
|
||||
return query;
|
||||
up.glueFirst(label, false);
|
||||
|
||||
size_t pos = url.find(label);
|
||||
if (pos == std::string::npos)
|
||||
{
|
||||
return "";
|
||||
}
|
||||
pos += label.size();
|
||||
return url.substr(pos);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -12876,7 +12876,7 @@ Change of this parameter will affect the layout of buttons in notification toast
|
|||
<key>Type</key>
|
||||
<string>F32</string>
|
||||
<key>Value</key>
|
||||
<real>7.5</real>
|
||||
<real>6.5</real>
|
||||
</map>
|
||||
<key>RenderWater</key>
|
||||
<map>
|
||||
|
|
|
|||
|
|
@ -109,10 +109,8 @@ public:
|
|||
static const std::string sCheckUpdateListenerName;
|
||||
|
||||
static void startFetchServerReleaseNotes();
|
||||
static void fetchServerReleaseNotesCoro(const std::string& cap_url);
|
||||
static void handleServerReleaseNotes(LLSD results);
|
||||
|
||||
// <FS:Ansariel> FIRE-19760: In Help/About Firestorm server release notes not getting fetched
|
||||
static void fetchServerReleaseNotesCoro(const std::string& cap_url);
|
||||
};
|
||||
|
||||
|
||||
|
|
@ -230,76 +228,63 @@ void LLFloaterAbout::startFetchServerReleaseNotes()
|
|||
// an URL suitable for external browsers in the "Location:" HTTP header.
|
||||
std::string cap_url = region->getCapability("ServerReleaseNotes");
|
||||
|
||||
// <FS:Ansariel> FIRE-19760: In Help/About Firestorm server release notes not getting fetched
|
||||
//LLCoreHttpUtil::HttpCoroutineAdapter::callbackHttpGet(cap_url,
|
||||
// &LLFloaterAbout::handleServerReleaseNotes, &LLFloaterAbout::handleServerReleaseNotes);
|
||||
LLCoros::instance().launch("fetchServerReleaseNotesCoro", boost::bind(&LLFloaterAbout::fetchServerReleaseNotesCoro, cap_url));
|
||||
// </FS:Ansariel>
|
||||
LLCoros::instance().launch("fetchServerReleaseNotesCoro", boost::bind(&LLFloaterAbout::fetchServerReleaseNotesCoro, cap_url));
|
||||
|
||||
}
|
||||
|
||||
/*static*/
|
||||
void LLFloaterAbout::fetchServerReleaseNotesCoro(const std::string& cap_url)
|
||||
{
|
||||
LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t
|
||||
httpAdapter(new LLCoreHttpUtil::HttpCoroutineAdapter("fetchServerReleaseNotesCoro", LLCore::HttpRequest::DEFAULT_POLICY_ID));
|
||||
LLCore::HttpRequest::ptr_t httpRequest(new LLCore::HttpRequest);
|
||||
LLCore::HttpOptions::ptr_t httpOpts(new LLCore::HttpOptions);
|
||||
|
||||
httpOpts->setWantHeaders(true);
|
||||
httpOpts->setFollowRedirects(false);
|
||||
|
||||
LLSD result = httpAdapter->getAndSuspend(httpRequest, cap_url, httpOpts);
|
||||
|
||||
LLSD httpResults = result[LLCoreHttpUtil::HttpCoroutineAdapter::HTTP_RESULTS];
|
||||
LLCore::HttpStatus status = LLCoreHttpUtil::HttpCoroutineAdapter::getStatusFromLLSD(httpResults);
|
||||
if (!status)
|
||||
{
|
||||
handleServerReleaseNotes(httpResults);
|
||||
}
|
||||
else
|
||||
{
|
||||
handleServerReleaseNotes(result);
|
||||
}
|
||||
}
|
||||
|
||||
/*static*/
|
||||
void LLFloaterAbout::handleServerReleaseNotes(LLSD results)
|
||||
{
|
||||
// LLFloaterAbout* floater_about = LLFloaterReg::getTypedInstance<LLFloaterAbout>("sl_about");
|
||||
// if (floater_about)
|
||||
// {
|
||||
LLSD http_headers;
|
||||
if (results.has(LLCoreHttpUtil::HttpCoroutineAdapter::HTTP_RESULTS))
|
||||
{
|
||||
LLSD http_results = results[LLCoreHttpUtil::HttpCoroutineAdapter::HTTP_RESULTS];
|
||||
http_headers = http_results[LLCoreHttpUtil::HttpCoroutineAdapter::HTTP_RESULTS_HEADERS];
|
||||
}
|
||||
else
|
||||
{
|
||||
http_headers = results[LLCoreHttpUtil::HttpCoroutineAdapter::HTTP_RESULTS_HEADERS];
|
||||
}
|
||||
|
||||
std::string location = http_headers[HTTP_IN_HEADER_LOCATION].asString();
|
||||
if (location.empty())
|
||||
{
|
||||
location = LLTrans::getString("ErrorFetchingServerReleaseNotesURL");
|
||||
}
|
||||
LLAppViewer::instance()->setServerReleaseNotesURL(location);
|
||||
// }
|
||||
LLSD http_headers;
|
||||
if (results.has(LLCoreHttpUtil::HttpCoroutineAdapter::HTTP_RESULTS))
|
||||
{
|
||||
LLSD http_results = results[LLCoreHttpUtil::HttpCoroutineAdapter::HTTP_RESULTS];
|
||||
http_headers = http_results[LLCoreHttpUtil::HttpCoroutineAdapter::HTTP_RESULTS_HEADERS];
|
||||
}
|
||||
else
|
||||
{
|
||||
http_headers = results[LLCoreHttpUtil::HttpCoroutineAdapter::HTTP_RESULTS_HEADERS];
|
||||
}
|
||||
|
||||
// <FS:Ansariel> FIRE-19760: In Help/About Firestorm server release notes not getting fetched
|
||||
LLFloaterAbout* floater_about = LLFloaterReg::findTypedInstance<LLFloaterAbout>("sl_about");
|
||||
if (floater_about)
|
||||
{
|
||||
floater_about->setSupportText(location);
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
std::string location = http_headers[HTTP_IN_HEADER_LOCATION].asString();
|
||||
if (location.empty())
|
||||
{
|
||||
location = LLTrans::getString("ErrorFetchingServerReleaseNotesURL");
|
||||
}
|
||||
LLAppViewer::instance()->setServerReleaseNotesURL(location);
|
||||
|
||||
LLFloaterAbout* floater_about = LLFloaterReg::findTypedInstance<LLFloaterAbout>("sl_about");
|
||||
if (floater_about)
|
||||
{
|
||||
floater_about->setSupportText(location);
|
||||
}
|
||||
}
|
||||
|
||||
// <FS:Ansariel> FIRE-19760: In Help/About Firestorm server release notes not getting fetched
|
||||
/*static*/
|
||||
void LLFloaterAbout::fetchServerReleaseNotesCoro(const std::string& cap_url)
|
||||
{
|
||||
LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t
|
||||
httpAdapter(new LLCoreHttpUtil::HttpCoroutineAdapter("fetchServerReleaseNotesCoro", LLCore::HttpRequest::DEFAULT_POLICY_ID));
|
||||
LLCore::HttpRequest::ptr_t httpRequest(new LLCore::HttpRequest);
|
||||
LLCore::HttpOptions::ptr_t httpOpts(new LLCore::HttpOptions);
|
||||
|
||||
httpOpts->setWantHeaders(true);
|
||||
httpOpts->setFollowRedirects(false);
|
||||
|
||||
LLSD result = httpAdapter->getAndSuspend(httpRequest, cap_url, httpOpts);
|
||||
|
||||
LLSD httpResults = result[LLCoreHttpUtil::HttpCoroutineAdapter::HTTP_RESULTS];
|
||||
LLCore::HttpStatus status = LLCoreHttpUtil::HttpCoroutineAdapter::getStatusFromLLSD(httpResults);
|
||||
|
||||
if (!status)
|
||||
{
|
||||
handleServerReleaseNotes(httpResults);
|
||||
}
|
||||
else
|
||||
{
|
||||
handleServerReleaseNotes(result);
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
}
|
||||
|
||||
|
||||
class LLFloaterAboutListener: public LLEventAPI
|
||||
{
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -63,6 +63,8 @@
|
|||
#include "fsscrolllistctrl.h"
|
||||
#include "lltransientfloatermgr.h"
|
||||
|
||||
static const U32 AVATAR_PICKER_SEARCH_TIMEOUT = 180U;
|
||||
|
||||
//put it back as a member once the legacy path is out?
|
||||
static std::map<LLUUID, LLAvatarName> sAvatarNameMap;
|
||||
|
||||
|
|
@ -628,10 +630,13 @@ void LLFloaterAvatarPicker::findCoro(std::string url, LLUUID queryID, std::strin
|
|||
LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t
|
||||
httpAdapter(new LLCoreHttpUtil::HttpCoroutineAdapter("genericPostCoro", httpPolicy));
|
||||
LLCore::HttpRequest::ptr_t httpRequest(new LLCore::HttpRequest);
|
||||
LLCore::HttpOptions::ptr_t httpOpts(new LLCore::HttpOptions);
|
||||
|
||||
LL_INFOS("HttpCoroutineAdapter", "genericPostCoro") << "Generic POST for " << url << LL_ENDL;
|
||||
|
||||
LLSD result = httpAdapter->getAndSuspend(httpRequest, url);
|
||||
httpOpts->setTimeout(AVATAR_PICKER_SEARCH_TIMEOUT);
|
||||
|
||||
LLSD result = httpAdapter->getAndSuspend(httpRequest, url, httpOpts);
|
||||
|
||||
LLSD httpResults = result[LLCoreHttpUtil::HttpCoroutineAdapter::HTTP_RESULTS];
|
||||
LLCore::HttpStatus status = LLCoreHttpUtil::HttpCoroutineAdapter::getStatusFromLLSD(httpResults);
|
||||
|
|
|
|||
|
|
@ -280,7 +280,7 @@ void LLFloaterBuyCurrencyUI::onClickCancel()
|
|||
|
||||
void LLFloaterBuyCurrencyUI::onClickErrorWeb()
|
||||
{
|
||||
LLWeb::loadURLExternal(mManager.errorURI());
|
||||
LLWeb::loadURL(mManager.errorURI());
|
||||
closeFloater();
|
||||
// Update L$ balance
|
||||
LLStatusBar::sendMoneyBalanceRequest();
|
||||
|
|
|
|||
|
|
@ -192,7 +192,6 @@ BOOL LLFloaterReporter::postBuild()
|
|||
mOwnerName = LLStringUtil::null;
|
||||
|
||||
getChild<LLUICtrl>("summary_edit")->setFocus(TRUE);
|
||||
getChild<LLCheckBoxCtrl>("screen_check")->set(TRUE);
|
||||
|
||||
mDefaultSummary = getChild<LLUICtrl>("details_edit")->getValue().asString();
|
||||
|
||||
|
|
@ -249,8 +248,6 @@ LLFloaterReporter::~LLFloaterReporter()
|
|||
// virtual
|
||||
void LLFloaterReporter::draw()
|
||||
{
|
||||
getChildView("screen_check")->setEnabled(TRUE );
|
||||
|
||||
LLFloater::draw();
|
||||
}
|
||||
|
||||
|
|
@ -258,7 +255,6 @@ void LLFloaterReporter::enableControls(BOOL enable)
|
|||
{
|
||||
getChildView("category_combo")->setEnabled(enable);
|
||||
getChildView("chat_check")->setEnabled(enable);
|
||||
getChildView("screen_check")->setEnabled(enable);
|
||||
getChildView("screenshot")->setEnabled(FALSE);
|
||||
getChildView("pick_btn")->setEnabled(enable);
|
||||
getChildView("summary_edit")->setEnabled(enable);
|
||||
|
|
@ -463,19 +459,10 @@ void LLFloaterReporter::onClickSend(void *userdata)
|
|||
}
|
||||
else
|
||||
{
|
||||
if(self->getChild<LLUICtrl>("screen_check")->getValue())
|
||||
{
|
||||
self->getChildView("send_btn")->setEnabled(FALSE);
|
||||
self->getChildView("cancel_btn")->setEnabled(FALSE);
|
||||
// the callback from uploading the image calls sendReportViaLegacy()
|
||||
self->uploadImage();
|
||||
}
|
||||
else
|
||||
{
|
||||
self->sendReportViaLegacy(self->gatherReport());
|
||||
LLUploadDialog::modalUploadFinished();
|
||||
self->closeFloater();
|
||||
}
|
||||
self->getChildView("send_btn")->setEnabled(FALSE);
|
||||
self->getChildView("cancel_btn")->setEnabled(FALSE);
|
||||
// the callback from uploading the image calls sendReportViaLegacy()
|
||||
self->uploadImage();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -724,10 +711,7 @@ LLSD LLFloaterReporter::gatherReport()
|
|||
// only send a screenshot ID if we're asked to and the email is
|
||||
// going to LL - Estate Owners cannot see the screenshot asset
|
||||
LLUUID screenshot_id = LLUUID::null;
|
||||
if (getChild<LLUICtrl>("screen_check")->getValue())
|
||||
{
|
||||
screenshot_id = getChild<LLUICtrl>("screenshot")->getValue();
|
||||
};
|
||||
screenshot_id = getChild<LLUICtrl>("screenshot")->getValue();
|
||||
|
||||
LLSD report = LLSD::emptyMap();
|
||||
report["report-type"] = (U8) mReportType;
|
||||
|
|
@ -781,7 +765,7 @@ void LLFloaterReporter::finishedARPost(const LLSD &)
|
|||
|
||||
void LLFloaterReporter::sendReportViaCaps(std::string url, std::string sshot_url, const LLSD& report)
|
||||
{
|
||||
if(getChild<LLUICtrl>("screen_check")->getValue().asBoolean() && !sshot_url.empty())
|
||||
if(!sshot_url.empty())
|
||||
{
|
||||
// try to upload screenshot
|
||||
LLResourceUploadInfo::ptr_t uploadInfo(new LLARScreenShotUploader(report, mResourceDatap->mAssetInfo.mUuid, mResourceDatap->mAssetInfo.mType));
|
||||
|
|
|
|||
|
|
@ -2166,13 +2166,15 @@ BOOL LLItemBridge::removeItem()
|
|||
}
|
||||
|
||||
// move it to the trash
|
||||
LLPreview::hide(mUUID, TRUE);
|
||||
LLInventoryModel* model = getInventoryModel();
|
||||
if(!model) return FALSE;
|
||||
const LLUUID& trash_id = model->findCategoryUUIDForType(LLFolderType::FT_TRASH);
|
||||
LLViewerInventoryItem* item = getItem();
|
||||
if (!item) return FALSE;
|
||||
|
||||
if (item->getType() != LLAssetType::AT_LSL_TEXT)
|
||||
{
|
||||
LLPreview::hide(mUUID, TRUE);
|
||||
}
|
||||
// Already in trash
|
||||
if (model->isObjectDescendentOf(mUUID, trash_id)) return FALSE;
|
||||
|
||||
|
|
|
|||
|
|
@ -1536,7 +1536,11 @@ void LLInventoryModel::onObjectDeletedFromServer(const LLUUID& object_id, bool f
|
|||
}
|
||||
|
||||
// From purgeObject()
|
||||
LLPreview::hide(object_id);
|
||||
LLViewerInventoryItem *item = getItem(object_id);
|
||||
if (item && (item->getType() != LLAssetType::AT_LSL_TEXT))
|
||||
{
|
||||
LLPreview::hide(object_id, TRUE);
|
||||
}
|
||||
deleteObject(object_id, fix_broken_links, do_notify_observers);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -425,7 +425,8 @@ LLScriptEdCore::LLScriptEdCore(
|
|||
mPostEditor(NULL),
|
||||
// </FS:CR>
|
||||
mCompiling(false), //<FS:KC> Compile indicators, recompile button
|
||||
mHasScriptData(FALSE)
|
||||
mHasScriptData(FALSE),
|
||||
mScriptRemoved(FALSE)
|
||||
{
|
||||
setFollowsAll();
|
||||
setBorderVisible(FALSE);
|
||||
|
|
@ -768,8 +769,7 @@ void LLScriptEdCore::initButtonBar()
|
|||
|
||||
void LLScriptEdCore::updateButtonBar()
|
||||
{
|
||||
mSaveBtn->setEnabled(hasChanged());
|
||||
// mSaveBtn2->setEnabled(hasChanged()); // <FS:Zi> support extra save button
|
||||
mSaveBtn->setEnabled(hasChanged() && !mScriptRemoved);
|
||||
mCutBtn->setEnabled(mEditor->canCut());
|
||||
mCopyBtn->setEnabled(mEditor->canCopy());
|
||||
mPasteBtn->setEnabled(mEditor->canPaste());
|
||||
|
|
@ -779,7 +779,7 @@ void LLScriptEdCore::updateButtonBar()
|
|||
mLoadFromDiskBtn->setEnabled(mEditor->canLoadOrSaveToFile());
|
||||
//<FS:Kadah> Recompile button
|
||||
static LLCachedControl<bool> FSScriptEditorRecompileButton(gSavedSettings, "FSScriptEditorRecompileButton");
|
||||
mSaveBtn2->setEnabled(hasChanged() || (mLSLProc && FSScriptEditorRecompileButton && !mCompiling));
|
||||
mSaveBtn2->setEnabled((hasChanged() && !mScriptRemoved) || (mLSLProc && FSScriptEditorRecompileButton && !mCompiling));
|
||||
mSaveBtn2->setLabel((!mLSLProc || !FSScriptEditorRecompileButton || hasChanged()) ? LLTrans::getString("save_file_verb") : LLTrans::getString("recompile_script_verb"));
|
||||
//</FS:Kadah>
|
||||
}
|
||||
|
|
@ -957,7 +957,7 @@ void LLScriptEdCore::draw()
|
|||
{
|
||||
// <FS:CR> Advanced Script Editor
|
||||
//BOOL script_changed = hasChanged();
|
||||
//mSaveBtn->setEnabled(script_changed);
|
||||
//mSaveBtn->setEnabled(script_changed && !mScriptRemoved);
|
||||
updateButtonBar();
|
||||
// </FS:CR>
|
||||
|
||||
|
|
@ -1133,7 +1133,7 @@ void LLScriptEdCore::addHelpItemToHistory(const std::string& help_string)
|
|||
|
||||
BOOL LLScriptEdCore::canClose()
|
||||
{
|
||||
if(mForceClose || !hasChanged())
|
||||
if(mForceClose || !hasChanged() || mScriptRemoved)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
|
@ -1956,6 +1956,17 @@ BOOL LLPreviewLSL::postBuild()
|
|||
return LLPreview::postBuild();
|
||||
}
|
||||
|
||||
void LLPreviewLSL::draw()
|
||||
{
|
||||
const LLInventoryItem* item = getItem();
|
||||
if(!item)
|
||||
{
|
||||
setTitle(LLTrans::getString("ScriptWasDeleted"));
|
||||
mScriptEd->setItemRemoved(TRUE);
|
||||
}
|
||||
|
||||
LLPreview::draw();
|
||||
}
|
||||
// virtual
|
||||
void LLPreviewLSL::callbackLSLCompileSucceeded()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -140,6 +140,8 @@ public:
|
|||
|
||||
void setScriptName(const std::string& name){mScriptName = name;};
|
||||
|
||||
void setItemRemoved(bool script_removed){mScriptRemoved = script_removed;};
|
||||
|
||||
private:
|
||||
// NaCl - LSL Preprocessor
|
||||
void onToggleProc();
|
||||
|
|
@ -199,6 +201,7 @@ private:
|
|||
BOOL mHasScriptData;
|
||||
LLLiveLSLFile* mLiveFile;
|
||||
LLUUID mAssociatedExperience;
|
||||
BOOL mScriptRemoved;
|
||||
LLTextBox* mLineCol;
|
||||
// <FS:CR> Advanced Script Editor
|
||||
//LLView* mSaveBtn;
|
||||
|
|
@ -274,6 +277,7 @@ public:
|
|||
// [/SL:KB]
|
||||
|
||||
protected:
|
||||
virtual void draw();
|
||||
virtual BOOL canClose();
|
||||
void closeIfNeeded();
|
||||
|
||||
|
|
|
|||
|
|
@ -1302,7 +1302,18 @@ BOOL LLVOVolume::calcLOD()
|
|||
lod_factor *= LLVOVolume::sRiggedFactorMultiplier;
|
||||
distance = avatar->mDrawable->mDistanceWRTCamera;
|
||||
F32 avatar_radius = avatar->getBinRadius();
|
||||
F32 object_radius = getVolume() ? getVolume()->mLODScaleBias.scaledVec(getScale()).length() : getScale().length();
|
||||
F32 object_radius;
|
||||
if (mDrawable.notNull() && !mDrawable->isDead())
|
||||
{
|
||||
const LLVector4a* ext = mDrawable->getSpatialExtents();
|
||||
LLVector4a diff;
|
||||
diff.setSub(ext[1], ext[0]);
|
||||
object_radius = diff.getLength3().getF32();
|
||||
}
|
||||
else
|
||||
{
|
||||
object_radius = getVolume() ? getVolume()->mLODScaleBias.scaledVec(getScale()).length() : getScale().length();
|
||||
}
|
||||
radius = object_radius * LLVOVolume::sRiggedFactorMultiplier;
|
||||
radius = llmin(radius, avatar_radius);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
Max. Bandbreite:
|
||||
</text>
|
||||
<slider name="max_bandwidth"/>
|
||||
<text name="Maximum complexity" width="105" tool_tip="Legt fest, ab welchem Wert ein visuell komplexer Avatar als Jelly Doll dargestellt wird.">
|
||||
<text name="Maximum complexity" width="105" tool_tip="Legt fest, ab welchem Wert ein visuell komplexer Avatar als JellyDoll dargestellt wird.">
|
||||
Max. Komplexität:
|
||||
</text>
|
||||
<slider name="IndirectMaxComplexity" right="-68"/>
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@
|
|||
<check_box label="Alte Position für Avatarnamen" name="FSLegacyNametagPosition" tool_tip="Falls aktiviert, wird die Position des Avatarnamens fest an der Position des Avatars angezeigt und folgt nicht der Bewegung des Kopfes bei Animationen." />
|
||||
<check_box label="„Automatische Antwort“-Modus anzeigen" name="FSShowAutorespondInNameTag" tool_tip="Falls aktiviert, wird der Modus „Automatische Antwort“ im eigenen Avatarnamen angezeigt."/>
|
||||
<check_box label="Komplexität anzeigen" name="FSTagShowARW" tool_tip="Falls aktiviert, wird die aktuelle Avatar-Komplexität angezeigt."/>
|
||||
<check_box label="Nur falls zu komplex" name="FSTagShowTooComplexOnlyARW" tool_tip="Falls aktiviert, wird die aktuelle Avatar-Komplexität nur angezeigt, wenn der Avatar zu komplex ist und als Jelly Doll dargestellt wird."/>
|
||||
<check_box label="Nur falls zu komplex" name="FSTagShowTooComplexOnlyARW" tool_tip="Falls aktiviert, wird die aktuelle Avatar-Komplexität nur angezeigt, wenn der Avatar zu komplex ist und als JellyDoll dargestellt wird."/>
|
||||
<check_box label="Eigene Komplexität anzeigen" name="FSTagShowOwnARW" tool_tip="Falls aktiviert, wird die eigene aktuelle Avatar-Komplexität angezeigt."/>
|
||||
|
||||
<check_box label="Viewer-UI-Tipps aktivieren" name="viewer_hints_check"/>
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@
|
|||
m
|
||||
</text>
|
||||
<slider label="Max. Partikelanzahl:" name="MaxParticleCount"/>
|
||||
<slider label="Max. Komplexität:" name="IndirectMaxComplexity" tool_tip="Legt fest, ab welchem Wert ein visuell komplexer Avatar als Jelly Doll dargestellt wird."/>
|
||||
<slider label="Max. Komplexität:" name="IndirectMaxComplexity" tool_tip="Legt fest, ab welchem Wert ein visuell komplexer Avatar als JellyDoll dargestellt wird."/>
|
||||
<slider label="Max. voll dargestellte Avatare:" name="IndirectMaxNonImpostors"/>
|
||||
<slider label="Post-Processing-Qualität:" name="RenderPostProcess"/>
|
||||
<text name="PostProcessText">
|
||||
|
|
|
|||
|
|
@ -117,7 +117,7 @@
|
|||
|
||||
<slider
|
||||
control_name="IndirectMaxComplexity"
|
||||
tool_tip="Controls at what point a visually complex avatar is drawn as a jelly doll"
|
||||
tool_tip="Controls at what point a visually complex avatar is drawn as a JellyDoll"
|
||||
follows="left|top"
|
||||
height="16"
|
||||
initial_value="101"
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<floater
|
||||
legacy_header_height="18"
|
||||
height="580"
|
||||
height="560"
|
||||
layout="topleft"
|
||||
name="floater_report_abuse"
|
||||
help_topic="floater_report_abuse"
|
||||
|
|
@ -19,7 +19,7 @@
|
|||
layout="topleft"
|
||||
left="60"
|
||||
name="screenshot"
|
||||
top="15"
|
||||
top="20"
|
||||
width="220" />
|
||||
<button
|
||||
follows="top|left"
|
||||
|
|
@ -30,16 +30,8 @@
|
|||
tool_tip="Refresh Screenshot"
|
||||
name="refresh_screenshot"
|
||||
left_pad="5"
|
||||
top="121"
|
||||
top="126"
|
||||
width="25"/>
|
||||
<check_box
|
||||
height="15"
|
||||
label="Use this screenshot"
|
||||
layout="topleft"
|
||||
left="8"
|
||||
name="screen_check"
|
||||
top_pad="5"
|
||||
width="116" />
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
|
|
@ -50,7 +42,7 @@
|
|||
layout="topleft"
|
||||
left="10"
|
||||
name="reporter_title"
|
||||
top_pad="0"
|
||||
top_pad="5"
|
||||
width="100">
|
||||
Reporter:
|
||||
</text>
|
||||
|
|
@ -417,7 +409,7 @@
|
|||
left="80"
|
||||
follows="left|top"
|
||||
height="23"
|
||||
top="550"
|
||||
top="532"
|
||||
label="Report Abuse"
|
||||
label_selected="Report Abuse"
|
||||
layout="topleft"
|
||||
|
|
|
|||
|
|
@ -455,7 +455,7 @@
|
|||
width="140"
|
||||
top_pad="3"
|
||||
name="FSTagShowTooComplexOnlyARW"
|
||||
tool_tip="If enabled, the nametag will show the current avatar complexity only if the avatar is too complex and shown as a jelly doll."/>
|
||||
tool_tip="If enabled, the nametag will show the current avatar complexity only if the avatar is too complex and shown as a JellyDoll."/>
|
||||
<check_box
|
||||
control_name="FSTagShowOwnARW"
|
||||
height="16"
|
||||
|
|
|
|||
|
|
@ -533,7 +533,7 @@
|
|||
width="301" />
|
||||
<slider
|
||||
control_name="IndirectMaxComplexity"
|
||||
tool_tip="Controls at what point a visually complex avatar is drawn as a jelly doll"
|
||||
tool_tip="Controls at what point a visually complex avatar is drawn as a JellyDoll"
|
||||
decimal_digits="0"
|
||||
follows="left|top"
|
||||
height="15"
|
||||
|
|
|
|||
|
|
@ -1030,7 +1030,8 @@ This feature is currently in Beta. Please add your name to this [http://goo.gl/f
|
|||
<string name="SaveComplete">Save complete.</string>
|
||||
<string name="UploadFailed">File upload failed: [REASON]</string>
|
||||
<string name="ObjectOutOfRange">Script (object out of range)</string>
|
||||
|
||||
<string name="ScriptWasDeleted">Script (deleted from inventory)</string>
|
||||
|
||||
<!-- god tools -->
|
||||
<string name="GodToolsObjectOwnedBy">Object [OBJECT] owned by [OWNER]</string>
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
<text name="AvatarText">
|
||||
Avatar
|
||||
</text>
|
||||
<slider label="Complexité max. :" name="IndirectMaxComplexity" tool_tip="Contrôle à quel moment un avatar complexe est représenté comme un « jelly doll » (forme de couleur unie)"/>
|
||||
<slider label="Complexité max. :" name="IndirectMaxComplexity" tool_tip="Contrôle à quel moment un avatar complexe est représenté comme un « JellyDoll » (forme de couleur unie)"/>
|
||||
<text name="IndirectMaxComplexityText">
|
||||
0
|
||||
</text>
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
<text name="AvatarText">
|
||||
Awatar
|
||||
</text>
|
||||
<slider tool_tip="Kontroluje w jakim momencie awatar, który jest graficznie złożony zostanie zastąpiony przez mniej obciążającą komputer formę (tzw. Jelly Doll)" label="Maks. szczegółowość awatarów:" name="IndirectMaxComplexity" />
|
||||
<slider tool_tip="Kontroluje w jakim momencie awatar, który jest graficznie złożony zostanie zastąpiony przez mniej obciążającą komputer formę (tzw. JellyDoll)" label="Maks. szczegółowość awatarów:" name="IndirectMaxComplexity" />
|
||||
<slider label="Maks. il. wyświetlanych awatarów:" name="IndirectMaxNonImpostors" />
|
||||
<slider label="Detale:" name="AvatarMeshDetail" />
|
||||
<text name="AvatarMeshDetailText">
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
<text name="Maximum bandwidth" tool_tip="Ustaw przepustowość swojej sieci w Kbps (kilobitach na sekundę)">
|
||||
Maks. przepust.:
|
||||
</text>
|
||||
<text name="Maximum complexity" tool_tip="Kontroluje w jakim momencie awatar, który jest graficznie złożony zostanie zastąpiony przez mniej obciążającą komputer formę (tzw. Jelly Doll)">
|
||||
<text name="Maximum complexity" tool_tip="Kontroluje w jakim momencie awatar, który jest graficznie złożony zostanie zastąpiony przez mniej obciążającą komputer formę (tzw. JellyDoll)">
|
||||
Maks. złożoność:
|
||||
</text>
|
||||
<text name="IndirectMaxComplexityText">
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@
|
|||
<check_box label="Pozycje imion w stary sposób" name="FSLegacyNametagPosition" tool_tip="Gdy włączysz tą opcję, to tag imienia będzie zawieszony na stałej wysokości ponad awatarem i nie będzie podążać za jego głową, jeśli poruszy się ona np. w wyniku animacji."/>
|
||||
<check_box label="Pokaż tryb autoodpowiedzi w moim tagu imienia" name="FSShowAutorespondInNameTag" tool_tip="Status będzie widoczny, gdy włączysz autoodpowiedź."/>
|
||||
<check_box label="Pokazuj złożoność" name="FSTagShowARW" tool_tip="Gdy włączysz tą opcję, to tag imienia będzie pokazywać obecną złożoność graficzną awatara."/>
|
||||
<check_box label="Tylko gdy jest zbyt duża" name="FSTagShowTooComplexOnlyARW" tool_tip="Gdy włączysz tą opcję, to tag imienia będzie pokazywać złożoność graficzną awatara tylko wtedy, gdy będzie on zbyt złożony i zastępowany przez mniej obciążającą komputer formę (tzw. Jelly Doll)."/>
|
||||
<check_box label="Tylko gdy jest zbyt duża" name="FSTagShowTooComplexOnlyARW" tool_tip="Gdy włączysz tą opcję, to tag imienia będzie pokazywać złożoność graficzną awatara tylko wtedy, gdy będzie on zbyt złożony i zastępowany przez mniej obciążającą komputer formę (tzw. JellyDoll)."/>
|
||||
<check_box label="Pokazuj własną złożoność" name="FSTagShowOwnARW" tool_tip="Gdy włączysz tą opcję, to tag imienia będzie pokazywać Twoją własną, obecną złożoność graficzną."/>
|
||||
<text name="title_afk_text">
|
||||
Zasypiaj po czasie:
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@
|
|||
</combo_box>
|
||||
<slider label="Pole widzenia" name="DrawDistance"/>
|
||||
<slider label="Maks. ilość cząsteczek" name="MaxParticleCount"/>
|
||||
<slider label="Maks. złożoność awatarów" name="IndirectMaxComplexity" tool_tip="Kontroluje w jakim momencie awatar, który jest graficznie złożony zostanie zastąpiony przez mniej obciążającą komputer formę (tzw. Jelly Doll)" />
|
||||
<slider label="Maks. złożoność awatarów" name="IndirectMaxComplexity" tool_tip="Kontroluje w jakim momencie awatar, który jest graficznie złożony zostanie zastąpiony przez mniej obciążającą komputer formę (tzw. JellyDoll)" />
|
||||
<slider label="Maks. il. wyświetlanych awatarów" name="IndirectMaxNonImpostors"/>
|
||||
<slider label="Jakość post-procesu" name="RenderPostProcess"/>
|
||||
<text name="PostProcessText">
|
||||
|
|
|
|||
Loading…
Reference in New Issue