diff --git a/indra/llvfs/lldir.cpp b/indra/llvfs/lldir.cpp index 3c9fd130a..d495176de 100644 --- a/indra/llvfs/lldir.cpp +++ b/indra/llvfs/lldir.cpp @@ -563,8 +563,8 @@ void LLDir::setLindenUserDir(const std::string &grid, const std::string &first, { std::string gridlower(grid); LLStringUtil::toLower(gridlower); - mPerAccountChatLogsDir += "@"; - mPerAccountChatLogsDir += gridlower; + mLindenUserDir += "@"; + mLindenUserDir += gridlower; } } else diff --git a/indra/newview/ascentprefssys.cpp b/indra/newview/ascentprefssys.cpp index 337f8656c..5840e9de4 100644 --- a/indra/newview/ascentprefssys.cpp +++ b/indra/newview/ascentprefssys.cpp @@ -394,7 +394,7 @@ void LLPrefsAscentSysImpl::apply() //Missing the echo/log option. gSavedSettings.setBOOL("PlayTypingSound", childGetValue("play_typing_sound_check")); gSavedSettings.setBOOL("AscentHideTypingNotification", childGetValue("hide_typing_check")); - gSavedSettings.setBOOL("AscentInstantMessageAnnounceIncoming", childGetValue("AscentInstantMessageAnnounceIncoming").asBoolean()); + gSavedPerAccountSettings.setBOOL("AscentInstantMessageAnnounceIncoming", childGetValue("AscentInstantMessageAnnounceIncoming").asBoolean()); gSavedSettings.setBOOL("AscentAllowMUpose", childGetValue("allow_mu_pose_check").asBoolean()); gSavedSettings.setBOOL("AscentAutoCloseOOC", childGetValue("close_ooc_check").asBoolean()); //gSavedSettings.setU32("LinksForChattingObjects", childGetValue("objects_link"). ); diff --git a/indra/newview/hippogridmanager.cpp b/indra/newview/hippogridmanager.cpp index 7c5044205..c2a9bb6c0 100644 --- a/indra/newview/hippogridmanager.cpp +++ b/indra/newview/hippogridmanager.cpp @@ -95,6 +95,15 @@ const std::string& HippoGridInfo::getGridName() const return mGridName; } +const std::string& HippoGridInfo::getGridOwner() const { + if(isSecondLife()) { + static const std::string ll = "Linden Lab"; + return ll; + } else { + return this->getGridName(); + } +} + const std::string& HippoGridInfo::getLoginUri() const { return mLoginUri; diff --git a/indra/newview/hippogridmanager.h b/indra/newview/hippogridmanager.h index 0432c59bf..618623b17 100644 --- a/indra/newview/hippogridmanager.h +++ b/indra/newview/hippogridmanager.h @@ -40,6 +40,7 @@ public: bool isSecondLife() const; const std::string& getGridNick() const; const std::string& getGridName() const; + const std::string& getGridOwner() const; const std::string& getLoginUri() const; const std::string& getLoginPage() const; const std::string& getHelperUri() const; diff --git a/indra/newview/llimpanel.cpp b/indra/newview/llimpanel.cpp index 16e85c81b..821b64a3a 100644 --- a/indra/newview/llimpanel.cpp +++ b/indra/newview/llimpanel.cpp @@ -75,6 +75,8 @@ #include "llmutelist.h" #include "llstylemap.h" +#include "boost/algorithm/string.hpp" + // [RLVa:KB] #include "rlvhandler.h" // [/RLVa:KB] @@ -2499,11 +2501,13 @@ void LLFloaterIMPanel::showSessionEventError( const std::string& error_string) { LLSD args; - args["REASON"] = - LLFloaterIM::sErrorStringsMap[error_string]; - args["EVENT"] = - LLFloaterIM::sEventStringsMap[event_string]; - args["RECIPIENT"] = getTitle(); + std::string recipient = getTitle(); + std::string reason = LLFloaterIM::sErrorStringsMap[error_string]; + boost::replace_all(reason, "[RECIPIENT]", recipient); + std::string event = LLFloaterIM::sEventStringsMap[event_string]; + boost::replace_all(event, "[RECIPIENT]", recipient); + args["REASON"] = reason; + args["EVENT"] = event; LLNotifications::instance().add( "ChatterBoxSessionEventError", diff --git a/indra/newview/llnotify.cpp b/indra/newview/llnotify.cpp index fca29c90b..cd63228a3 100644 --- a/indra/newview/llnotify.cpp +++ b/indra/newview/llnotify.cpp @@ -583,6 +583,7 @@ void LLNotifyBox::format(std::string& msg, const LLStringUtil::format_map_t& arg LLStringUtil::format_map_t targs = args; targs["[SECOND_LIFE]"] = gHippoGridManager->getConnectedGrid()->getGridName(); targs["[GRID_NAME]"] = gHippoGridManager->getConnectedGrid()->getGridName(); + targs["[GRID_OWNER]"] = gHippoGridManager->getConnectedGrid()->getGridOwner(); targs["[GRID_SITE]"] = gHippoGridManager->getConnectedGrid()->getWebSite(); targs["[CURRENCY]"] = gHippoGridManager->getConnectedGrid()->getCurrencySymbol(); targs["[VIEWER_NAME]"] = "Singularity Viewer"; diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp index be7dd209c..71dd025e3 100644 --- a/indra/newview/llpanellogin.cpp +++ b/indra/newview/llpanellogin.cpp @@ -1102,8 +1102,12 @@ void LLPanelLogin::onClickConnect(void *) } else { - LLNotifications::instance().add("MustHaveAccountToLogIn", LLSD(), LLSD(), - LLPanelLogin::newAccountAlertCallback); + if (gHippoGridManager->getConnectedGrid()->getRegisterUrl().empty()) { + LLNotifications::instance().add("MustHaveAccountToLogInNoLinks"); + } else { + LLNotifications::instance().add("MustHaveAccountToLogIn", LLSD(), LLSD(), + LLPanelLogin::newAccountAlertCallback); + } } } } @@ -1129,7 +1133,14 @@ bool LLPanelLogin::newAccountAlertCallback(const LLSD& notification, const LLSD& // static void LLPanelLogin::onClickNewAccount(void*) { - LLWeb::loadURLExternal( CREATE_ACCOUNT_URL ); + const std::string &url = gHippoGridManager->getConnectedGrid()->getRegisterUrl(); + if (!url.empty()) { + llinfos << "Going to account creation URL." << llendl; + LLWeb::loadURLExternal(url); + } else { + llinfos << "Account creation URL is empty." << llendl; + sInstance->setFocus(TRUE); + } } // static @@ -1174,7 +1185,12 @@ void LLPanelLogin::onClickForgotPassword(void*) { if (sInstance ) { - LLWeb::loadURLExternal(sInstance->getString( "forgot_password_url" )); + const std::string &url = gHippoGridManager->getConnectedGrid()->getPasswordUrl(); + if (!url.empty()) { + LLWeb::loadURLExternal(url); + } else { + llwarns << "Link for 'forgotton password' not set." << llendl; + } } } diff --git a/indra/newview/llviewerimage.cpp b/indra/newview/llviewerimage.cpp index ca2ffc8eb..705265274 100644 --- a/indra/newview/llviewerimage.cpp +++ b/indra/newview/llviewerimage.cpp @@ -1050,7 +1050,12 @@ bool LLViewerImage::updateFetch() // We've changed the number of components, so we need to move any // objects using this pool to a different pool. mComponents = mRawImage->getComponents(); - gImageList.dirtyImage(this); + + for(U32 i = 0 ; i < mNumFaces ; i++) + { + mFaceList[i]->dirtyTexture() ; + } + //gImageList.dirtyImage(this); } mFullWidth = mRawImage->getWidth() << mRawDiscardLevel; diff --git a/indra/newview/llvoiceclient.cpp b/indra/newview/llvoiceclient.cpp index 8fa0831f8..eca5594a5 100644 --- a/indra/newview/llvoiceclient.cpp +++ b/indra/newview/llvoiceclient.cpp @@ -75,10 +75,6 @@ // for MD5 hash #include "llmd5.h" -// -#include "llworld.h" -// - #define USE_SESSION_GROUPS 0 static bool sConnectingToAgni = false; @@ -1120,7 +1116,6 @@ LLVoiceClient::LLVoiceClient() mCommandCookie = 0; mCurrentParcelLocalID = 0; mLoginRetryCount = 0; - mPosLocked = false; mSpeakerVolume = 0; mMicVolume = 0; @@ -1153,7 +1148,6 @@ LLVoiceClient::LLVoiceClient() mTuningMicVolumeDirty = true; mTuningSpeakerVolume = 0; mTuningSpeakerVolumeDirty = true; - // gMuteListp isn't set up at this point, so we defer this until later. // gMuteListp->addObserver(&mutelist_listener); @@ -2572,7 +2566,7 @@ void LLVoiceClient::sessionCreateSendMessage(sessionState *session, bool startAu if(!session->mHash.empty()) { stream - << "" << LLURI::escape(session->mHash, allowed_chars) << "" + << "" << LLURI::escape(session->mHash, allowed_chars) << "" << "SHA1UserName"; } @@ -3620,7 +3614,7 @@ void LLVoiceClient::sendFriendsListUpdates() << "" << "" << mAccountHandle << "" << "" << buddy->mURI << "" - << "" << buddy->mDisplayName << "" + << "" << buddy->mDisplayName << "" << "" // Without this, SLVoice doesn't seem to parse the command. << "0" << "\n\n\n"; @@ -4846,20 +4840,6 @@ LLVoiceClient::participantState::participantState(const std::string &uri) : { } -// -//static -void LLVoiceClient::sessionState::onAvatarNameLookup(const LLUUID& id, const std::string& first, const std::string& last, BOOL is_group, void* user_data) -{ - LLChat chat; - std::string name(first + " " + last); - chat.mFromName = name; - chat.mURL = llformat("secondlife:///app/agent/%s/about",id.asString().c_str()); - chat.mText = name+" is possibly eavesdropping in voice."; - chat.mSourceType = CHAT_SOURCE_SYSTEM; - LLFloaterChat::addChat(chat); -} -// - LLVoiceClient::participantState *LLVoiceClient::sessionState::addParticipant(const std::string &uri) { participantState *result = NULL; @@ -4904,30 +4884,6 @@ LLVoiceClient::participantState *LLVoiceClient::sessionState::addParticipant(con if(result->updateMuteState()) mVolumeDirty = true; - // - if(nameFromsipURI(uri) != gVoiceClient->mAccountName) - { - bool found = true; - for (LLWorld::region_list_t::const_iterator iter = LLWorld::getInstance()->getRegionList().begin(); - iter != LLWorld::getInstance()->getRegionList().end(); ++iter) - { - LLViewerRegion* regionp = *iter; - // let us check to see if they are actually in the sim - if(regionp) - { - if(regionp->mMapAvatarIDs.find(id) != -1) - { - found = true; - break; - } - } - } - if(!found) - // They are not in my list of people in my sims, they must be a spy. - gCacheName->getName(id, onAvatarNameLookup, NULL); - } - // - } else { @@ -5202,19 +5158,16 @@ void LLVoiceClient::switchChannel( void LLVoiceClient::joinSession(sessionState *session) { - if(!mPosLocked) + mNextAudioSession = session; + + if(getState() <= stateNoChannel) { - mNextAudioSession = session; - - if(getState() <= stateNoChannel) - { - // We're already set up to join a channel, just needed to fill in the session handle - } - else - { - // State machine will come around and rejoin if uri/handle is not empty. - sessionTerminate(); - } + // We're already set up to join a channel, just needed to fill in the session handle + } + else + { + // State machine will come around and rejoin if uri/handle is not empty. + sessionTerminate(); } } @@ -5229,23 +5182,20 @@ void LLVoiceClient::setSpatialChannel( const std::string &uri, const std::string &credentials) { - if(!mPosLocked) - { - mSpatialSessionURI = uri; - mSpatialSessionCredentials = credentials; - mAreaVoiceDisabled = mSpatialSessionURI.empty(); + mSpatialSessionURI = uri; + mSpatialSessionCredentials = credentials; + mAreaVoiceDisabled = mSpatialSessionURI.empty(); - LL_DEBUGS("Voice") << "got spatial channel uri: \"" << uri << "\"" << LL_ENDL; - - if((mAudioSession && !(mAudioSession->mIsSpatial)) || (mNextAudioSession && !(mNextAudioSession->mIsSpatial))) - { - // User is in a non-spatial chat or joining a non-spatial chat. Don't switch channels. - LL_INFOS("Voice") << "in non-spatial chat, not switching channels" << LL_ENDL; - } - else - { - switchChannel(mSpatialSessionURI, true, false, false, mSpatialSessionCredentials); - } + LL_DEBUGS("Voice") << "got spatial channel uri: \"" << uri << "\"" << LL_ENDL; + + if((mAudioSession && !(mAudioSession->mIsSpatial)) || (mNextAudioSession && !(mNextAudioSession->mIsSpatial))) + { + // User is in a non-spatial chat or joining a non-spatial chat. Don't switch channels. + LL_INFOS("Voice") << "in non-spatial chat, not switching channels" << LL_ENDL; + } + else + { + switchChannel(mSpatialSessionURI, true, false, false, mSpatialSessionCredentials); } } @@ -5477,23 +5427,20 @@ void LLVoiceClient::declineInvite(std::string &sessionHandle) void LLVoiceClient::leaveNonSpatialChannel() { - if(!mPosLocked) - { - LL_DEBUGS("Voice") - << "called in state " << state2string(getState()) - << LL_ENDL; - - // Make sure we don't rejoin the current session. - sessionState *oldNextSession = mNextAudioSession; - mNextAudioSession = NULL; - - // Most likely this will still be the current session at this point, but check it anyway. - reapSession(oldNextSession); - - verifySessionState(); - - sessionTerminate(); - } + LL_DEBUGS("Voice") + << "called in state " << state2string(getState()) + << LL_ENDL; + + // Make sure we don't rejoin the current session. + sessionState *oldNextSession = mNextAudioSession; + mNextAudioSession = NULL; + + // Most likely this will still be the current session at this point, but check it anyway. + reapSession(oldNextSession); + + verifySessionState(); + + sessionTerminate(); } std::string LLVoiceClient::getCurrentChannel() @@ -5722,7 +5669,7 @@ void LLVoiceClient::enforceTether(void) void LLVoiceClient::updatePosition(void) { - if(gVoiceClient && !gVoiceClient->getPosLocked()) + if(gVoiceClient) { LLVOAvatar *agent = gAgent.getAvatarObject(); LLViewerRegion *region = gAgent.getRegion(); @@ -5761,45 +5708,39 @@ void LLVoiceClient::updatePosition(void) void LLVoiceClient::setCameraPosition(const LLVector3d &position, const LLVector3 &velocity, const LLMatrix3 &rot) { - if(!mPosLocked) + mCameraRequestedPosition = position; + + if(mCameraVelocity != velocity) { - mCameraRequestedPosition = position; - - if(mCameraVelocity != velocity) - { - mCameraVelocity = velocity; - mSpatialCoordsDirty = true; - } - - if(mCameraRot != rot) - { - mCameraRot = rot; - mSpatialCoordsDirty = true; - } + mCameraVelocity = velocity; + mSpatialCoordsDirty = true; + } + + if(mCameraRot != rot) + { + mCameraRot = rot; + mSpatialCoordsDirty = true; } } void LLVoiceClient::setAvatarPosition(const LLVector3d &position, const LLVector3 &velocity, const LLMatrix3 &rot) { - if(!mPosLocked) + if(dist_vec(mAvatarPosition, position) > 0.1) { - if(dist_vec(mAvatarPosition, position) > 0.1) - { - mAvatarPosition = position; - mSpatialCoordsDirty = true; - } - - if(mAvatarVelocity != velocity) - { - mAvatarVelocity = velocity; - mSpatialCoordsDirty = true; - } - - if(mAvatarRot != rot) - { - mAvatarRot = rot; - mSpatialCoordsDirty = true; - } + mAvatarPosition = position; + mSpatialCoordsDirty = true; + } + + if(mAvatarVelocity != velocity) + { + mAvatarVelocity = velocity; + mSpatialCoordsDirty = true; + } + + if(mAvatarRot != rot) + { + mAvatarRot = rot; + mSpatialCoordsDirty = true; } } @@ -5820,7 +5761,7 @@ bool LLVoiceClient::channelFromRegion(LLViewerRegion *region, std::string &name) void LLVoiceClient::leaveChannel(void) { - if(!mPosLocked && getState() == stateRunning) + if(getState() == stateRunning) { LL_DEBUGS("Voice") << "leaving channel for teleport/logout" << LL_ENDL; mChannelName.clear(); @@ -5859,7 +5800,7 @@ void LLVoiceClient::setVoiceEnabled(bool enabled) } else { - // Turning voice off loses your current channel -- this makes sure the UI isn't out of sync when you re-enable it. + // Turning voice off looses your current channel -- this makes sure the UI isn't out of sync when you re-enable it. LLVoiceChannel::getCurrentVoiceChannel()->deactivate(); } } @@ -5867,9 +5808,7 @@ void LLVoiceClient::setVoiceEnabled(bool enabled) bool LLVoiceClient::voiceEnabled() { - static const LLCachedControl enable_voice_chat("EnableVoiceChat",false); - static const LLCachedControl cmd_line_disable_voice("CmdLineDisableVoice",false); - return enable_voice_chat && !cmd_line_disable_voice; + return gSavedSettings.getBOOL("EnableVoiceChat") && !gSavedSettings.getBOOL("CmdLineDisableVoice"); } void LLVoiceClient::setLipSyncEnabled(BOOL enabled) @@ -5890,16 +5829,6 @@ BOOL LLVoiceClient::lipSyncEnabled() } } -BOOL LLVoiceClient::getPosLocked() -{ - return mPosLocked; -} - -void LLVoiceClient::setPosLocked(bool locked) -{ - mPosLocked = locked; -} - void LLVoiceClient::setUsePTT(bool usePTT) { if(usePTT && !mUsePTT) diff --git a/indra/newview/llvoiceclient.h b/indra/newview/llvoiceclient.h index 4f352c23c..cfc336b27 100644 --- a/indra/newview/llvoiceclient.h +++ b/indra/newview/llvoiceclient.h @@ -175,10 +175,6 @@ static void updatePosition(void); void setAvatarPosition(const LLVector3d &position, const LLVector3 &velocity, const LLMatrix3 &rot); bool channelFromRegion(LLViewerRegion *region, std::string &name); void leaveChannel(void); // call this on logout or teleport begin - - // This should be called when the code detects we have changed parcels. - // It initiates the call to the server that gets the parcel channel. - void parcelChanged(); void setMuteMic(bool muted); // Use this to mute the local mic (for when the client is minimized, etc), ignoring user PTT state. @@ -196,8 +192,6 @@ static void updatePosition(void); void setUserVolume(const LLUUID& id, F32 volume); // set's volume for specified agent, from 0-1 (where .5 is nominal) void setLipSyncEnabled(BOOL enabled); BOOL lipSyncEnabled(); - void setPosLocked(bool locked); - BOOL getPosLocked(); //whether our position is locked to keep us nearby // PTT key triggering void keyDown(KEY key, MASK mask); @@ -299,10 +293,6 @@ static void updatePosition(void); sessionState(); ~sessionState(); - // - static void onAvatarNameLookup(const LLUUID& id, const std::string& first, const std::string& last, BOOL is_group, void* user_data); - // - participantState *addParticipant(const std::string &uri); // Note: after removeParticipant returns, the participant* that was passed to it will have been deleted. // Take care not to use the pointer again after that. @@ -656,6 +646,10 @@ static void updatePosition(void); bool mCaptureDeviceDirty; bool mRenderDeviceDirty; + // This should be called when the code detects we have changed parcels. + // It initiates the call to the server that gets the parcel channel. + void parcelChanged(); + void switchChannel(std::string uri = std::string(), bool spatial = true, bool no_reconnect = false, bool is_p2p = false, std::string hash = ""); void joinSession(sessionState *session); @@ -738,8 +732,6 @@ static std::string nameFromsipURI(const std::string &uri); LLTimer mUpdateTimer; BOOL mLipSyncEnabled; - - bool mPosLocked; typedef std::set observer_set_t; observer_set_t mParticipantObservers; diff --git a/indra/newview/llvoiceremotectrl.cpp b/indra/newview/llvoiceremotectrl.cpp index 0f4b576ad..73d8c1087 100644 --- a/indra/newview/llvoiceremotectrl.cpp +++ b/indra/newview/llvoiceremotectrl.cpp @@ -76,10 +76,6 @@ BOOL LLVoiceRemoteCtrl::postBuild() mTalkLockBtn = getChild("ptt_lock"); mTalkLockBtn->setClickedCallback(onBtnLock); mTalkLockBtn->setCallbackUserData(this); - - mPosLockBtn = getChild("pos_lock_btn"); - mPosLockBtn->setClickedCallback(onClickPosLock); - mPosLockBtn->setCallbackUserData(this); mSpeakersBtn = getChild("speakers_btn"); mSpeakersBtn->setClickedCallback(onClickSpeakers); @@ -88,7 +84,14 @@ BOOL LLVoiceRemoteCtrl::postBuild() childSetAction("show_channel", onClickPopupBtn, this); childSetAction("end_call_btn", onClickEndCall, this); - + LLTextBox* text = getChild("channel_label"); + if (text) + { + text->setUseEllipses(TRUE); + } + + childSetAction("voice_channel_bg", onClickVoiceChannel, this); + return TRUE; } @@ -103,7 +106,6 @@ void LLVoiceRemoteCtrl::draw() } mTalkBtn->setEnabled(voice_active); - mPosLockBtn->setEnabled(voice_active); mTalkLockBtn->setEnabled(voice_active); // propagate ptt state to button display, @@ -113,9 +115,7 @@ void LLVoiceRemoteCtrl::draw() mTalkBtn->setToggleState(!gSavedSettings.getBOOL("PTTCurrentlyEnabled") || gVoiceClient->getUserPTTState()); } mSpeakersBtn->setToggleState(LLFloaterActiveSpeakers::instanceVisible(LLSD())); - mPosLockBtn->setToggleState(gVoiceClient->getPosLocked()); mTalkLockBtn->setToggleState(!gSavedSettings.getBOOL("PTTCurrentlyEnabled")); - std::string talk_blip_image; if (gVoiceClient->getIsSpeaking(gAgent.getID())) @@ -169,7 +169,36 @@ void LLVoiceRemoteCtrl::draw() && current_channel->isActive() && current_channel != LLVoiceChannelProximal::getInstance()); + childSetValue("channel_label", active_channel_name); + childSetToolTip("voice_channel_bg", active_channel_name); + if (current_channel) + { + LLIconCtrl* voice_channel_icon = getChild("voice_channel_icon"); + if (voice_channel_icon && voice_floater) + { + voice_channel_icon->setImage(voice_floater->getString("voice_icon")); + } + + LLButton* voice_channel_bg = getChild("voice_channel_bg"); + if (voice_channel_bg) + { + LLColor4 bg_color; + if (current_channel->isActive()) + { + bg_color = lerp(LLColor4::green, LLColor4::white, 0.7f); + } + else if (current_channel->getState() == LLVoiceChannel::STATE_ERROR) + { + bg_color = lerp(LLColor4::red, LLColor4::white, 0.7f); + } + else // active, but not connected + { + bg_color = lerp(LLColor4::yellow, LLColor4::white, 0.7f); + } + voice_channel_bg->setImageColor(bg_color); + } + } LLButton* expand_button = getChild("show_channel"); if (expand_button) @@ -249,17 +278,6 @@ void LLVoiceRemoteCtrl::onClickEndCall(void* user_data) } } -//static -void LLVoiceRemoteCtrl::onClickPosLock(void* user_data) -{ - gVoiceClient->setPosLocked(!gVoiceClient->getPosLocked()); - llwarns << gVoiceClient->getPosLocked() << llendl; - - if(!gVoiceClient->getPosLocked()) - { - gVoiceClient->parcelChanged(); //force it to get a new SIP url based on our actual location - } -} void LLVoiceRemoteCtrl::onClickSpeakers(void *user_data) { diff --git a/indra/newview/llvoiceremotectrl.h b/indra/newview/llvoiceremotectrl.h index 94c1603b9..1f61459ff 100644 --- a/indra/newview/llvoiceremotectrl.h +++ b/indra/newview/llvoiceremotectrl.h @@ -54,13 +54,11 @@ public: static void onClickPopupBtn(void* user_data); static void onClickVoiceChannel(void* user_data); static void onClickEndCall(void* user_data); - static void onClickPosLock(void* user_data); protected: LLButton* mTalkBtn; LLButton* mTalkLockBtn; LLButton* mSpeakersBtn; - LLButton* mPosLockBtn; }; #endif // LL_LLVOICEREMOTECTRL_H diff --git a/indra/newview/skins/default/xui/en-us/notifications.xml b/indra/newview/skins/default/xui/en-us/notifications.xml index 76a064fa6..2fa25088c 100644 --- a/indra/newview/skins/default/xui/en-us/notifications.xml +++ b/indra/newview/skins/default/xui/en-us/notifications.xml @@ -126,7 +126,7 @@ name="MissingAlert" label="Unknown Alert Message" type="alertmodal"> -Your version of Singularity Viewer does not know how to display the alert message it just received. +Your version of [VIEWER_NAME] does not know how to display the alert message it just received. Error details: The alert called '[_NAME]' was not found in notifications.xml. -An error occurred while updating Singularity Viewer. Please download the latest version from the official download site or use the Linden Lab SecondLife Viewer from secondlife.com. +An error occurred while updating [VIEWER_NAME]. Please download the latest version from the official download site. @@ -465,7 +465,7 @@ Selecting "Show in Search" will show: type="alertmodal"> You can propose to another Resident or dissolve an existing partnership through the [SECOND_LIFE] website. -Go to the Second Life web site for more information on partnering? +Go to the [GRID_NAME] web site for more information on partnering? -ATTENTION: Clicking 'sell to anyone' makes your land available to the entire Second Life community, even those not in this region. +ATTENTION: Clicking 'sell to anyone' makes your land available to the entire [GRID_NAME] community, even those not in this region. The selected [LAND_SIZE] m² land is being set for sale. Your selling price will be [CURRENCY][SALE_PRICE] and will be authorized for sale to [NAME]. @@ -832,15 +832,24 @@ You can not wear that item because it has not yet loaded. Please try again in a name="MustHaveAccountToLogIn" type="alertmodal"> Oops! Something was left blank. -You need to enter both the First and Last name of your avatar. +You need to enter the First and Last name, or Username of your avatar. -You need an account to enter [SECOND_LIFE]. Would you like to create one now? +You need an account to enter [GRID_NAME]. Would you like to create one now? + +You need to enter the First and Last name, or Username of your avatar. + +You need an account to enter [GRID_NAME]. + + -Warning: Your system does not meet Second Life minimum system requirements. If you continue using Singularity Viewer, you may experience poor performance. Linden Lab cannot provide technical support for unsupported system configurations. +Warning: Your system does not meet [VIEWER_NAME] minimum system requirements. If you continue using [VIEWER_NAME], you may experience poor performance. [GRID_OWNER] cannot provide technical support for unsupported system configurations. MINSPECS Do you wish to visit [_URL] for more information? @@ -1173,7 +1182,7 @@ Warning: Your system does not meet Second Life minimum system requirements. If y name="UnknownGPU" type="alertmodal"> Your system contains a graphics card that is unknown to us at this time. -This is often the case with new hardware we haven't had a chance to test. Singularity Viewer will most likely run properly, but you may need to adjust your graphics settings to something more appropriate. +This is often the case with new hardware we haven't had a chance to test. [VIEWER_NAME] will most likely run properly, but you may need to adjust your graphics settings to something more appropriate. (Edit menu > Preferences > Graphics).
-Unknown Linden resource file version in file: [FILE] +Unknown resource file version in file: [FILE] -You cannot close the Buy Land window until Second Life estimates the price of this transaction. +You cannot close the Buy Land window until [GRID_NAME] estimates the price of this transaction. -We're having trouble connecting. There may be a problem with your internet connection or the Second Life servers. +We're having trouble connecting. There may be a problem with your internet connection or the [GRID_NAME] servers. You can either check your internet connection and try again in a few minutes, click Help to connect to our support site, or click Teleport to attempt to teleport home. @@ -2880,7 +2889,7 @@ Visit the [SECOND_LIFE] Wiki for info on how to use the Public Issue Tracker. icon="alertmodal.tga" name="WebLaunchSupportWiki" type="alertmodal"> -Go to the Official Linden Blog, for the latest news and information. +Go to the Official [GRID_OWNER] Blog, for the latest news and information. -Sorry, you cannot mute a Linden. +Sorry, you cannot mute an employee of [GRID_OWNER]. @@ -3197,7 +3206,7 @@ Type a short announcement which will be sent to everyone currently in your estat label="Change Linden Estate" name="ChangeLindenEstate" type="alert"> -You are about to change a Linden owned estate (mainland, teen grid, orientation, etc.). +You are about to change a Governance-owned estate (mainland, teen grid, orientation, etc.). This is EXTREMELY DANGEROUS because it can fundamentally affect the user experience. On the mainland, it will change thousands of regions and make the spaceserver hiccup. @@ -3213,7 +3222,7 @@ Proceed? label="Change Linden Estate Access" name="ChangeLindenAccess" type="alert"> -You are about to change the access list for a Linden owned estate (mainland, teen grid, orientation, etc.). +You are about to change the access list for a Governance-owned estate (mainland, teen grid, orientation, etc.). This is DANGEROUS and should only be done to invoke the hack allowing objects/[CURRENCY] to be transfered in/out of a grid. It will change thousands of regions and make the spaceserver hiccup. @@ -3946,7 +3955,7 @@ Estate managers can only be added or removed by the owner of the estate, not by label="Use Global Time" name="HelpEstateUseGlobalTime" type="alertmodal"> -This checkbox makes the sun in your estate follow the same position as on the Linden-owned 'mainland' estates. +This checkbox makes the sun in your estate follow the same position as on the Governance-owned 'mainland' estates. Default: on @@ -4001,7 +4010,7 @@ Access to this estate will be limited to groups listed here and any Residents ab name="HelpEstateAbuseEmailAddress" type="alertmodal"> Setting this to a valid email address will cause abuse reports on this estate to be sent to that address. -Setting it blank will cause abuse reports to be sent only to Linden Lab. +Setting it blank will cause abuse reports to be sent only to [GRID_NAME]. -This version of Singularity Viewer is not compatible with the Voice Chat feature in this region. Please try the most recent official Linden Lab SecondLife Viewer before reporting to Singularity developers. +This version of [VIEWER_NAME] is not compatible with the Voice Chat feature in this region. Please upgrate to the latest version. -Go to the Second Life web site to see your account history? +Go to the [GRID_NAME] web site to see your account history? -Visit the Second Life Support Web site? +Visit the [GRID_NAME] Support Web site? @@ -4292,7 +4301,7 @@ This grid has no link for support. type="alertmodal"> Are you sure you want to quit? @@ -4316,14 +4325,14 @@ http://secondlife.com/support/incidentreport.php icon="alertmodal.tga" name="HelpReportAbuseEmailEO" type="alertmodal"> -IMPORTANT: This report will go to the owner of the region you are currently in and not to Linden Lab. +IMPORTANT: This report will go to the owner of the region you are currently in and not to [GRID_OWNER]. -As a service to residents and visitors, the owner of the region you are in has elected to receive and resolve all reports originating in this region. Linden Lab will not investigate reports you file from this location. +As a service to residents and visitors, the owner of the region you are in has elected to receive and resolve all reports originating in this region. [GRID_OWNER] will not investigate reports you file from this location. The region owner will resolve reports based on the local rules of this region as outlined in the estate Covenant. (View covenants by going to the World menu and selecting About Land.) -The resolution of this report applies only to this Region; Residents access to other areas of Second Life will not be affected by the outcome of this report. Only Linden Lab can restrict access to the entirety of Second Life. +The resolution of this report applies only to this Region; Residents access to other areas of [GRID_NAME] will not be affected by the outcome of this report. Only [GRID_OWNER] can restrict access to the entirety of [GRID_NAME]. -The Day Cycle Editor gives you control over the sky during Second Life's day/night cycle. This is the cycle that is used by the Basic Environment Editor's Time of Day slider. +The Day Cycle Editor gives you control over the sky during [GRID_NAME]'s day/night cycle. This is the cycle that is used by the Basic Environment Editor's Time of Day slider. The Day Cycle Editor works by setting keyframes. These are nodes (represented by the gray blips on the time graph) that have Sky Presets associated with them. As the Time of Day progresses, the WindLight sky "animates" as it interpolates between these keyframes. @@ -4835,7 +4844,7 @@ Controls the speed of the clouds as they move in the Y direction. icon="alertmodal.tga" name="HelpClassicClouds" type="alertmodal"> -Check this box to enable rendering of Second Life's older classic clouds in addition to WindLight's clouds. +Check this box to enable rendering of older classic clouds in addition to WindLight's clouds. You need to be age-verified in order to access this parcel. -Would you like to visit the Second Life website to verify your age? +Would you like to visit the [GRID_NAME] website to verify your age? [_URL] @@ -5107,7 +5116,7 @@ Would you like to visit the Second Life website to verify your age? name="Cannot enter parcel: no payment info on file" type="alertmodal"> This parcel requires that you have payment information on file before you can access it. -Would you like to visit the Second Life website to set this up? +Would you like to visit the [GRID_NAME] website to set this up? [_URL] @@ -6185,7 +6194,7 @@ Failed to find [TYPE] named [DESC] in database. icon="notify.tga" name="InvalidWearable" type="notify"> - The item you are trying to wear uses a feature that your viewer can't read. Please consider using the latest official SecondLife viewer by Linden Lab. + The item you are trying to wear uses a feature that your viewer can't read. Please consider using the latest [VIEWER_NAME]. You have enabled the Advanced menu. -This menu contains features useful for developers debugging Singularity Viewer. +This menu contains features useful for developers debugging [VIEWER_NAME]. To toggle this menu on Windows press Ctrl-Alt-D. On Mac press Cmd-Opt-Shift-D. @@ -6727,9 +6736,7 @@ The URL you clicked cannot be opened from this web browser. - You do not appear to have the proper hardware requirements for Singularity Viewer. The viewer requires an OpenGL graphics card that has multitexture support. If this is the case, you may want to make sure that you have the latest drivers for your graphics card, and service packs and patches for your operating system. - - If you continue to have problems, please consider using Linden Lab official SecondLife Viewer. + You do not appear to have the proper hardware requirements for [VIEWER_NAME]. The viewer requires an OpenGL graphics card that has multitexture support. If this is the case, you may want to make sure that you have the latest drivers for your graphics card, and service packs and patches for your operating system. diff --git a/indra/newview/skins/default/xui/en-us/panel_preferences_general.xml b/indra/newview/skins/default/xui/en-us/panel_preferences_general.xml index 0f979b94f..68875efc1 100644 --- a/indra/newview/skins/default/xui/en-us/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/en-us/panel_preferences_general.xml @@ -88,7 +88,7 @@ min_val="30" mouse_opaque="true" name="afk_timeout_spinner" width="202" />