Merge viewer-bear

master
Ansariel 2016-08-11 21:48:43 +02:00
commit b18cee4f33
29 changed files with 161 additions and 144 deletions

View File

@ -200,6 +200,7 @@ Ansariel Hiller
MAINT-6552
STORM-2133
MAINT-6511
MAINT-6612
Aralara Rajal
Arare Chantilly
CHUIBUG-191

View File

@ -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 += "://";

View File

@ -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();

View File

@ -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);

View File

@ -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));
}

View File

@ -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);
}

View File

@ -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>

View File

@ -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:

View File

@ -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);

View File

@ -280,7 +280,7 @@ void LLFloaterBuyCurrencyUI::onClickCancel()
void LLFloaterBuyCurrencyUI::onClickErrorWeb()
{
LLWeb::loadURLExternal(mManager.errorURI());
LLWeb::loadURL(mManager.errorURI());
closeFloater();
// Update L$ balance
LLStatusBar::sendMoneyBalanceRequest();

View File

@ -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));

View File

@ -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;

View File

@ -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);
}
}

View File

@ -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()
{

View File

@ -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();

View File

@ -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);
}

View File

@ -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"/>

View File

@ -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"/>

View File

@ -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">

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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>

View File

@ -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>

View File

@ -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">

View File

@ -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">

View File

@ -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:

View File

@ -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">