summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/llappviewer.cpp62
-rw-r--r--indra/newview/llavatarlist.cpp2
-rw-r--r--indra/newview/llbottomtray.cpp2
-rw-r--r--indra/newview/llchatbar.cpp6
-rw-r--r--indra/newview/llchatitemscontainerctrl.cpp2
-rw-r--r--indra/newview/llchatmsgbox.cpp2
-rw-r--r--indra/newview/lldrawable.cpp7
-rw-r--r--indra/newview/lldrawable.h1
-rw-r--r--indra/newview/lldrawpoolalpha.cpp10
-rw-r--r--indra/newview/lldrawpoolavatar.cpp19
-rw-r--r--indra/newview/lldrawpoolbump.cpp33
-rw-r--r--indra/newview/lldrawpoolsimple.cpp28
-rw-r--r--indra/newview/lldrawpoolterrain.cpp20
-rw-r--r--indra/newview/lldrawpooltree.cpp15
-rw-r--r--indra/newview/lldrawpoolwater.cpp2
-rw-r--r--indra/newview/lldrawpoolwlsky.cpp2
-rw-r--r--indra/newview/llfasttimerview.cpp17
-rw-r--r--indra/newview/llfasttimerview.h2
-rw-r--r--indra/newview/llfavoritesbar.cpp13
-rw-r--r--indra/newview/llflexibleobject.cpp3
-rw-r--r--indra/newview/llfloaterabout.cpp28
-rw-r--r--indra/newview/llfloaterbuyland.cpp39
-rw-r--r--indra/newview/llfloaterbuyland.h1
-rw-r--r--indra/newview/llfloaterchat.cpp3
-rw-r--r--indra/newview/llfloaterchat.h6
-rw-r--r--indra/newview/llfloaterfriends.cpp2
-rw-r--r--indra/newview/llfloaterinventory.cpp6
-rw-r--r--indra/newview/llfloaterland.cpp6
-rw-r--r--indra/newview/llfloaterland.h1
-rw-r--r--indra/newview/llfloaternotificationsconsole.cpp3
-rw-r--r--indra/newview/llfloaterpostcard.cpp12
-rw-r--r--indra/newview/llfloaterpreference.cpp38
-rw-r--r--indra/newview/llfloaterproperties.cpp20
-rw-r--r--indra/newview/llfloaterregioninfo.cpp1
-rw-r--r--indra/newview/llfloaterreporter.cpp2
-rw-r--r--indra/newview/llfloaterscriptdebug.cpp3
-rw-r--r--indra/newview/llfloatersettingsdebug.cpp1
-rw-r--r--indra/newview/llfloatersettingsdebug.h3
-rw-r--r--indra/newview/llfloatersnapshot.cpp1
-rw-r--r--indra/newview/llfloatertos.cpp13
-rw-r--r--indra/newview/llfloateruipreview.cpp6
-rw-r--r--indra/newview/llfolderview.cpp169
-rw-r--r--indra/newview/llfolderview.h6
-rw-r--r--indra/newview/llfolderviewitem.cpp2
-rw-r--r--indra/newview/llhudmanager.cpp3
-rw-r--r--indra/newview/llhudobject.cpp4
-rw-r--r--indra/newview/llhudtext.cpp2
-rw-r--r--indra/newview/llimpanel.cpp95
-rw-r--r--indra/newview/llimview.cpp14
-rw-r--r--indra/newview/llinventorybridge.cpp4
-rw-r--r--indra/newview/lllocationinputctrl.cpp2
-rw-r--r--indra/newview/llnavigationbar.cpp3
-rw-r--r--indra/newview/llnearbychat.cpp4
-rw-r--r--indra/newview/llnearbychatbar.cpp56
-rw-r--r--indra/newview/llnearbychatbar.h3
-rw-r--r--indra/newview/llnearbychathandler.cpp2
-rw-r--r--indra/newview/llpanelclassified.cpp5
-rw-r--r--indra/newview/llpanelgrouplandmoney.cpp1
-rw-r--r--indra/newview/llpanelgrouplandmoney.h4
-rw-r--r--indra/newview/llpanelgroupnotices.cpp2
-rw-r--r--indra/newview/llpanelplace.cpp2
-rw-r--r--indra/newview/llpanelplaces.cpp10
-rw-r--r--indra/newview/llpreviewnotecard.cpp8
-rw-r--r--indra/newview/llpreviewscript.cpp12
-rw-r--r--indra/newview/llsidetray.cpp6
-rw-r--r--indra/newview/llspatialpartition.cpp20
-rw-r--r--indra/newview/llstartup.cpp3
-rw-r--r--indra/newview/llstatusbar.cpp2
-rw-r--r--indra/newview/llstylemap.cpp74
-rw-r--r--indra/newview/llstylemap.h16
-rw-r--r--indra/newview/lltoastgroupnotifypanel.cpp25
-rw-r--r--indra/newview/lltoastnotifypanel.cpp3
-rw-r--r--indra/newview/llviewerdisplay.cpp25
-rw-r--r--indra/newview/llviewermenu.cpp12
-rw-r--r--indra/newview/llviewermessage.cpp3
-rw-r--r--indra/newview/llviewerobject.cpp4
-rw-r--r--indra/newview/llviewerobjectlist.cpp7
-rw-r--r--indra/newview/llviewerpartsim.cpp4
-rw-r--r--indra/newview/llviewerstats.cpp12
-rw-r--r--indra/newview/llviewertexteditor.cpp589
-rw-r--r--indra/newview/llviewertexteditor.h9
-rw-r--r--indra/newview/llviewertexturelist.cpp13
-rw-r--r--indra/newview/llviewerwindow.cpp14
-rw-r--r--indra/newview/llvoavatar.cpp18
-rw-r--r--indra/newview/llvoclouds.cpp4
-rw-r--r--indra/newview/llvograss.cpp4
-rw-r--r--indra/newview/llvopartgroup.cpp10
-rw-r--r--indra/newview/llvosky.cpp7
-rw-r--r--indra/newview/llvosurfacepatch.cpp6
-rw-r--r--indra/newview/llvotree.cpp4
-rw-r--r--indra/newview/llvovolume.cpp31
-rw-r--r--indra/newview/llvowater.cpp4
-rw-r--r--indra/newview/llvowlsky.cpp4
-rw-r--r--indra/newview/llwaterparammanager.cpp4
-rw-r--r--indra/newview/llwlparammanager.cpp5
-rw-r--r--indra/newview/pipeline.cpp92
-rw-r--r--indra/newview/pipeline.h21
-rw-r--r--indra/newview/skins/default/textures/navbar/Favorite_Star_Active.pngbin641 -> 704 bytes
-rw-r--r--indra/newview/skins/default/textures/navbar/Favorite_Star_Off.pngbin573 -> 444 bytes
-rw-r--r--indra/newview/skins/default/textures/navbar/Favorite_Star_Over.pngbin579 -> 445 bytes
-rw-r--r--indra/newview/skins/default/textures/navbar/Favorite_Star_Press.pngbin551 -> 616 bytes
-rw-r--r--indra/newview/skins/default/textures/windows/Icon_Close_Foreground.pngbin226 -> 263 bytes
-rw-r--r--indra/newview/skins/default/textures/windows/Icon_Close_Press.pngbin217 -> 263 bytes
-rw-r--r--indra/newview/skins/default/textures/windows/Icon_Dock_Foreground.pngbin240 -> 263 bytes
-rw-r--r--indra/newview/skins/default/textures/windows/Icon_Dock_Press.pngbin241 -> 263 bytes
-rw-r--r--indra/newview/skins/default/textures/windows/Icon_Undock_Foreground.pngbin238 -> 268 bytes
-rw-r--r--indra/newview/skins/default/textures/windows/Icon_Undock_Press.pngbin260 -> 267 bytes
-rw-r--r--indra/newview/skins/default/xui/da/notifications.xml2533
-rw-r--r--indra/newview/skins/default/xui/de/notifications.xml3
-rw-r--r--indra/newview/skins/default/xui/en/floater_aaa.xml8
-rw-r--r--indra/newview/skins/default/xui/en/floater_about.xml2
-rw-r--r--indra/newview/skins/default/xui/en/floater_about_land.xml3
-rw-r--r--indra/newview/skins/default/xui/en/floater_buy_land.xml1
-rw-r--r--indra/newview/skins/default/xui/en/floater_incoming_call.xml4
-rw-r--r--indra/newview/skins/default/xui/en/floater_land_holdings.xml4
-rw-r--r--indra/newview/skins/default/xui/en/floater_postcard.xml3
-rw-r--r--indra/newview/skins/default/xui/en/floater_preferences.xml1
-rw-r--r--indra/newview/skins/default/xui/en/floater_preview_gesture.xml248
-rw-r--r--indra/newview/skins/default/xui/en/floater_preview_notecard.xml1
-rw-r--r--indra/newview/skins/default/xui/en/floater_tos.xml3
-rw-r--r--indra/newview/skins/default/xui/en/floater_world_map.xml2
-rw-r--r--indra/newview/skins/default/xui/en/menu_login.xml4
-rw-r--r--indra/newview/skins/default/xui/en/menu_picks.xml2
-rw-r--r--indra/newview/skins/default/xui/en/menu_slurl.xml2
-rw-r--r--indra/newview/skins/default/xui/en/menu_viewer.xml6
-rw-r--r--indra/newview/skins/default/xui/en/notifications.xml205
-rw-r--r--indra/newview/skins/default/xui/en/panel_bottomtray.xml3
-rw-r--r--indra/newview/skins/default/xui/en/panel_classified.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_edit_profile.xml4
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_general.xml35
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml41
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_land_money.xml4
-rw-r--r--indra/newview/skins/default/xui/en/panel_pick_info.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_advanced.xml10
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml119
-rw-r--r--indra/newview/skins/default/xui/en/panel_profile.xml67
-rw-r--r--indra/newview/skins/default/xui/en/panel_region_covenant.xml1
-rw-r--r--indra/newview/skins/default/xui/en/panel_region_estate.xml1008
-rw-r--r--indra/newview/skins/default/xui/en/panel_region_texture.xml635
-rw-r--r--indra/newview/skins/default/xui/en/panel_script_ed.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_status_bar.xml4
-rw-r--r--indra/newview/skins/default/xui/en/strings.xml36
-rw-r--r--indra/newview/skins/default/xui/en/teleport_strings.xml33
-rw-r--r--indra/newview/skins/default/xui/en/widgets/gesture_combo_box.xml2
-rw-r--r--indra/newview/skins/default/xui/en/widgets/location_input.xml3
-rw-r--r--indra/newview/skins/default/xui/en/widgets/scroll_bar.xml8
-rw-r--r--indra/newview/skins/default/xui/en/widgets/scroll_container.xml4
-rw-r--r--indra/newview/skins/default/xui/en/widgets/simple_text_editor.xml4
-rw-r--r--indra/newview/skins/default/xui/es/floater_joystick.xml33
-rw-r--r--indra/newview/skins/default/xui/es/menu_inventory.xml4
-rw-r--r--indra/newview/skins/default/xui/es/notifications.xml55
-rw-r--r--indra/newview/skins/default/xui/es/role_actions.xml195
-rw-r--r--indra/newview/skins/default/xui/es/strings.xml3
-rw-r--r--indra/newview/skins/default/xui/fr/notifications.xml5
-rw-r--r--indra/newview/skins/default/xui/it/floater_tools.xml104
-rw-r--r--indra/newview/skins/default/xui/it/notifications.xml5
-rw-r--r--indra/newview/skins/default/xui/ja/notifications.xml5
-rw-r--r--indra/newview/skins/default/xui/nl/menu_inventory.xml4
-rw-r--r--indra/newview/skins/default/xui/nl/notifications.xml5
-rw-r--r--indra/newview/skins/default/xui/nl/strings.xml3
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_god_tools.xml6
-rw-r--r--indra/newview/skins/default/xui/pl/notifications.xml9
-rwxr-xr-xindra/newview/skins/default/xui/pl/strings.xml3
-rw-r--r--indra/newview/skins/default/xui/pt/notifications.xml7
-rw-r--r--indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml4
165 files changed, 3462 insertions, 3961 deletions
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 5045f18784..fe9eae04a1 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -290,9 +290,9 @@ static std::set<std::string> default_trans_args;
void init_default_trans_args()
{
default_trans_args.insert("SECOND_LIFE"); // World
- default_trans_args.insert("SECOND_LIFE_VIEWER");
+ default_trans_args.insert("APP_NAME");
default_trans_args.insert("SECOND_LIFE_GRID");
- default_trans_args.insert("SECOND_LIFE_SUPPORT");
+ default_trans_args.insert("SUPPORT_SITE");
}
//----------------------------------------------------------------------------
@@ -863,6 +863,11 @@ bool LLAppViewer::init()
return true;
}
+static LLFastTimer::DeclareTimer FTM_MESSAGES("System Messages");
+static LLFastTimer::DeclareTimer FTM_SLEEP("Sleep");
+static LLFastTimer::DeclareTimer FTM_IDLE("Idle");
+static LLFastTimer::DeclareTimer FTM_PUMP("Pump");
+
bool LLAppViewer::mainLoop()
{
LLMemType mt1(LLMemType::MTYPE_MAIN);
@@ -905,7 +910,7 @@ bool LLAppViewer::mainLoop()
if (gViewerWindow)
{
- LLFastTimer t2(LLFastTimer::FTM_MESSAGES);
+ LLFastTimer t2(FTM_MESSAGES);
gViewerWindow->mWindow->processMiscNativeEvents();
}
@@ -913,7 +918,7 @@ bool LLAppViewer::mainLoop()
if (gViewerWindow)
{
- LLFastTimer t2(LLFastTimer::FTM_MESSAGES);
+ LLFastTimer t2(FTM_MESSAGES);
if (!restoreErrorTrap())
{
llwarns << " Someone took over my signal/exception handler (post messagehandling)!" << llendl;
@@ -963,14 +968,14 @@ bool LLAppViewer::mainLoop()
{
pauseMainloopTimeout(); // *TODO: Remove. Messages shouldn't be stalling for 20+ seconds!
- LLFastTimer t3(LLFastTimer::FTM_IDLE);
+ LLFastTimer t3(FTM_IDLE);
idle();
if (gAres != NULL && gAres->isInitialized())
{
LLMemType mt_ip(LLMemType::MTYPE_IDLE_PUMP);
pingMainloopTimeout("Main:ServicePump");
- LLFastTimer t4(LLFastTimer::FTM_PUMP);
+ LLFastTimer t4(FTM_PUMP);
gAres->process();
// this pump is necessary to make the login screen show up
gServicePump->pump();
@@ -1007,7 +1012,7 @@ bool LLAppViewer::mainLoop()
// Sleep and run background threads
{
LLMemType mt_sleep(LLMemType::MTYPE_SLEEP);
- LLFastTimer t2(LLFastTimer::FTM_SLEEP);
+ LLFastTimer t2(FTM_SLEEP);
bool run_multiple_threads = gSavedSettings.getBOOL("RunMultipleThreads");
// yield some time to the os based on command line option
@@ -2025,7 +2030,7 @@ bool LLAppViewer::initConfiguration()
#if LL_DARWIN
// Initialize apple menubar and various callbacks
- init_apple_menu(LLTrans::getString("SECOND_LIFE_VIEWER").c_str());
+ init_apple_menu(LLTrans::getString("APP_NAME").c_str());
#if __ppc__
// If the CPU doesn't have Altivec (i.e. it's not at least a G4), don't go any further.
@@ -2064,7 +2069,7 @@ bool LLAppViewer::initConfiguration()
//
// Set the name of the window
//
- gWindowTitle = LLTrans::getString("SECOND_LIFE_VIEWER");
+ gWindowTitle = LLTrans::getString("APP_NAME");
#if LL_DEBUG
gWindowTitle += std::string(" [DEBUG] ") + gArgs;
#else
@@ -2181,7 +2186,7 @@ void LLAppViewer::checkForCrash(void)
{
std::ostringstream msg;
msg << LLTrans::getString("MBFrozenCrashed");
- std::string alert = LLTrans::getString("SECOND_LIFE_VIEWER") + " " + LLTrans::getString("MBAlert");
+ std::string alert = LLTrans::getString("APP_NAME") + " " + LLTrans::getString("MBAlert");
choice = OSMessageBox(msg.str(),
alert,
OSMB_YESNO);
@@ -2391,7 +2396,7 @@ void LLAppViewer::writeSystemInfo()
gDebugInfo["CrashNotHandled"] = (LLSD::Boolean)true;
// Dump some debugging info
- LL_INFOS("SystemInfo") << LLTrans::getString("SECOND_LIFE_VIEWER")
+ LL_INFOS("SystemInfo") << LLTrans::getString("APP_NAME")
<< " version " << LL_VERSION_MAJOR << "." << LL_VERSION_MINOR << "." << LL_VERSION_PATCH
<< LL_ENDL;
@@ -3069,7 +3074,7 @@ void LLAppViewer::purgeCache()
std::string LLAppViewer::getSecondLifeTitle() const
{
- return LLTrans::getString("SECOND_LIFE_VIEWER");
+ return LLTrans::getString("APP_NAME");
}
std::string LLAppViewer::getWindowTitle() const
@@ -3234,6 +3239,15 @@ public:
}
};
+static LLFastTimer::DeclareTimer FTM_AUDIO_UPDATE("Update Audio");
+static LLFastTimer::DeclareTimer FTM_CLEANUP("Cleanup");
+static LLFastTimer::DeclareTimer FTM_IDLE_CB("Idle Callbacks");
+static LLFastTimer::DeclareTimer FTM_LOD_UPDATE("Update LOD");
+static LLFastTimer::DeclareTimer FTM_OBJECTLIST_UPDATE("Update Objectlist");
+static LLFastTimer::DeclareTimer FTM_REGION_UPDATE("Update Region");
+static LLFastTimer::DeclareTimer FTM_WORLD_UPDATE("Update World");
+static LLFastTimer::DeclareTimer FTM_NETWORK("Network");
+
///////////////////////////////////////////////////////
// idle()
//
@@ -3300,7 +3314,7 @@ void LLAppViewer::idle()
if (!gDisconnected)
{
- LLFastTimer t(LLFastTimer::FTM_NETWORK);
+ LLFastTimer t(FTM_NETWORK);
// Update spaceserver timeinfo
LLWorld::getInstance()->setSpaceTimeUSec(LLWorld::getInstance()->getSpaceTimeUSec() + (U32)(dt_raw * SEC_TO_MICROSEC));
@@ -3381,7 +3395,7 @@ void LLAppViewer::idle()
if (!gDisconnected)
{
- LLFastTimer t(LLFastTimer::FTM_NETWORK);
+ LLFastTimer t(FTM_NETWORK);
////////////////////////////////////////////////
//
@@ -3410,7 +3424,7 @@ void LLAppViewer::idle()
//
{
-// LLFastTimer t(LLFastTimer::FTM_IDLE_CB);
+// LLFastTimer t(FTM_IDLE_CB);
// Do event notifications if necessary. Yes, we may want to move this elsewhere.
gEventNotifier.update();
@@ -3445,7 +3459,7 @@ void LLAppViewer::idle()
}
{
- LLFastTimer t(LLFastTimer::FTM_OBJECTLIST_UPDATE); // Actually "object update"
+ LLFastTimer t(FTM_OBJECTLIST_UPDATE); // Actually "object update"
if (!(logoutRequestSent() && hasSavedFinalSnapshot()))
{
@@ -3460,7 +3474,7 @@ void LLAppViewer::idle()
//
{
- LLFastTimer t(LLFastTimer::FTM_CLEANUP);
+ LLFastTimer t(FTM_CLEANUP);
gObjectList.cleanDeadObjects();
LLDrawable::cleanupDeadDrawables();
}
@@ -3492,7 +3506,7 @@ void LLAppViewer::idle()
//
{
- LLFastTimer t(LLFastTimer::FTM_NETWORK);
+ LLFastTimer t(FTM_NETWORK);
gVLManager.unpackData();
}
@@ -3504,7 +3518,7 @@ void LLAppViewer::idle()
LLWorld::getInstance()->updateVisibilities();
{
const F32 max_region_update_time = .001f; // 1ms
- LLFastTimer t(LLFastTimer::FTM_REGION_UPDATE);
+ LLFastTimer t(FTM_REGION_UPDATE);
LLWorld::getInstance()->updateRegions(max_region_update_time);
}
@@ -3551,7 +3565,7 @@ void LLAppViewer::idle()
if (!gNoRender)
{
- LLFastTimer t(LLFastTimer::FTM_WORLD_UPDATE);
+ LLFastTimer t(FTM_WORLD_UPDATE);
gPipeline.updateMove();
LLWorld::getInstance()->updateParticles();
@@ -3574,12 +3588,12 @@ void LLAppViewer::idle()
// objects and camera should be in sync, do LOD calculations now
{
- LLFastTimer t(LLFastTimer::FTM_LOD_UPDATE);
+ LLFastTimer t(FTM_LOD_UPDATE);
gObjectList.updateApparentAngles(gAgent);
}
{
- LLFastTimer t(LLFastTimer::FTM_AUDIO_UPDATE);
+ LLFastTimer t(FTM_AUDIO_UPDATE);
if (gAudiop)
{
@@ -3719,6 +3733,8 @@ void LLAppViewer::sendLogoutRequest()
static F32 CheckMessagesMaxTime = CHECK_MESSAGES_DEFAULT_MAX_TIME;
#endif
+static LLFastTimer::DeclareTimer FTM_IDLE_NETWORK("Network");
+
void LLAppViewer::idleNetwork()
{
LLMemType mt_in(LLMemType::MTYPE_IDLE_NETWORK);
@@ -3731,7 +3747,7 @@ void LLAppViewer::idleNetwork()
if (!gSavedSettings.getBOOL("SpeedTest"))
{
- LLFastTimer t(LLFastTimer::FTM_IDLE_NETWORK); // decode
+ LLFastTimer t(FTM_IDLE_NETWORK); // decode
// deal with any queued name requests and replies.
gCacheName->processPending();
diff --git a/indra/newview/llavatarlist.cpp b/indra/newview/llavatarlist.cpp
index a85f8710c7..f557adf6a6 100644
--- a/indra/newview/llavatarlist.cpp
+++ b/indra/newview/llavatarlist.cpp
@@ -200,7 +200,7 @@ BOOL LLAvatarList::update(const std::vector<LLUUID>& all_buddies, const std::str
// Changed item in place, need to request sort and update columns
// because we might have changed data in a column on which the user
// has already sorted. JC
- sortItems();
+ updateSort();
// re-select items
selectMultiple(selected_ids);
diff --git a/indra/newview/llbottomtray.cpp b/indra/newview/llbottomtray.cpp
index 2687feb68b..2403e891f6 100644
--- a/indra/newview/llbottomtray.cpp
+++ b/indra/newview/llbottomtray.cpp
@@ -164,7 +164,7 @@ void LLBottomTray::setVisible(BOOL visible)
{
LLPanel::setVisible(visible);
- // *NOTE: we must check mToolbarStack against NULL because sewtVisible is called from the
+ // *NOTE: we must check mToolbarStack against NULL because setVisible is called from the
// LLPanel::initFromParams BEFORE postBuild is called and child controls are not exist yet
if (NULL != mToolbarStack)
{
diff --git a/indra/newview/llchatbar.cpp b/indra/newview/llchatbar.cpp
index 7a118deb8a..bea11ecfeb 100644
--- a/indra/newview/llchatbar.cpp
+++ b/indra/newview/llchatbar.cpp
@@ -103,10 +103,6 @@ LLChatBar::LLChatBar()
mObserver(NULL)
{
setIsChrome(TRUE);
-
-#if !LL_RELEASE_FOR_DOWNLOAD
- childDisplayNotFound();
-#endif
}
@@ -125,7 +121,7 @@ BOOL LLChatBar::postBuild()
// * NOTE: mantipov: getChild with default parameters returns dummy widget.
// Seems this class will be completle removed
// attempt to bind to an existing combo box named gesture
- setGestureCombo(getChild<LLComboBox>( "Gesture", TRUE, FALSE));
+ setGestureCombo(findChild<LLComboBox>( "Gesture"));
mInputEditor = getChild<LLLineEditor>("Chat Editor");
mInputEditor->setKeystrokeCallback(&onInputEditorKeystroke, this);
diff --git a/indra/newview/llchatitemscontainerctrl.cpp b/indra/newview/llchatitemscontainerctrl.cpp
index 45b322e106..05c574b154 100644
--- a/indra/newview/llchatitemscontainerctrl.cpp
+++ b/indra/newview/llchatitemscontainerctrl.cpp
@@ -93,13 +93,11 @@ void LLChatItemCtrl::reshape (S32 width, S32 height, BOOL called_from_parent )
caption->reshape( width - 4, caption_rect.getHeight(), 1);
caption->setRect(caption_rect);
-
LLRect msg_text_rect = msg_text->getRect();
msg_text_rect.setLeftTopAndSize( msg_left_offset, height - caption_rect.getHeight() , width - msg_left_offset - msg_right_offset, height - caption_rect.getHeight());
msg_text->reshape( width - msg_left_offset - msg_right_offset, height - caption_rect.getHeight(), 1);
msg_text->setRect(msg_text_rect);
}
-
}
BOOL LLChatItemCtrl::postBuild()
diff --git a/indra/newview/llchatmsgbox.cpp b/indra/newview/llchatmsgbox.cpp
index 933d9b8771..9399e1f68d 100644
--- a/indra/newview/llchatmsgbox.cpp
+++ b/indra/newview/llchatmsgbox.cpp
@@ -371,7 +371,7 @@ void LLChatMsgBox::drawText( S32 x, S32 y, const LLColor4& color )
mHAlign, mVAlign,
mFontStyle,
mShadowType,
- line_length, getRect().getWidth(), NULL, TRUE, mUseEllipses );
+ line_length, getRect().getWidth(), NULL, mUseEllipses );
cur_pos += line_length + 1;
y -= llfloor(mFontGL->getLineHeight()) + mLineSpacing;
diff --git a/indra/newview/lldrawable.cpp b/indra/newview/lldrawable.cpp
index d8bd32382f..7cc78aff92 100644
--- a/indra/newview/lldrawable.cpp
+++ b/indra/newview/lldrawable.cpp
@@ -60,6 +60,9 @@ const F32 MAX_INTERPOLATE_DISTANCE_SQUARED = 10.f * 10.f;
const F32 OBJECT_DAMPING_TIME_CONSTANT = 0.06f;
const F32 MIN_SHADOW_CASTER_RADIUS = 2.0f;
+static LLFastTimer::DeclareTimer FTM_CULL_REBOUND("Cull Rebound");
+
+
////////////////////////
//
// Inline implementations.
@@ -188,7 +191,7 @@ BOOL LLDrawable::isLight() const
void LLDrawable::cleanupReferences()
{
- LLFastTimer t(LLFastTimer::FTM_PIPELINE);
+ LLFastTimer t(FTM_PIPELINE);
std::for_each(mFaces.begin(), mFaces.end(), DeletePointer());
mFaces.clear();
@@ -1033,7 +1036,7 @@ void LLSpatialBridge::updateSpatialExtents()
LLSpatialGroup* root = (LLSpatialGroup*) mOctree->getListener(0);
{
- LLFastTimer ftm(LLFastTimer::FTM_CULL_REBOUND);
+ LLFastTimer ftm(FTM_CULL_REBOUND);
root->rebound();
}
diff --git a/indra/newview/lldrawable.h b/indra/newview/lldrawable.h
index 940e1fc968..c765980c30 100644
--- a/indra/newview/lldrawable.h
+++ b/indra/newview/lldrawable.h
@@ -63,7 +63,6 @@ class LLViewerTexture;
// Can have multiple silhouettes for each object
const U32 SILHOUETTE_HIGHLIGHT = 0;
-
// All data for new renderer goes into this class.
class LLDrawable : public LLRefCount
{
diff --git a/indra/newview/lldrawpoolalpha.cpp b/indra/newview/lldrawpoolalpha.cpp
index 267f83f295..de97e2406d 100644
--- a/indra/newview/lldrawpoolalpha.cpp
+++ b/indra/newview/lldrawpoolalpha.cpp
@@ -90,7 +90,7 @@ void LLDrawPoolAlpha::endDeferredPass(S32 pass)
{
gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.4f);
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_GRASS);
+ LLFastTimer t(FTM_RENDER_GRASS);
gDeferredTreeProgram.bind();
LLGLEnable test(GL_ALPHA_TEST);
//render alpha masked objects
@@ -112,7 +112,7 @@ S32 LLDrawPoolAlpha::getNumPostDeferredPasses()
void LLDrawPoolAlpha::beginPostDeferredPass(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_ALPHA);
+ LLFastTimer t(FTM_RENDER_ALPHA);
simple_shader = &gDeferredAlphaProgram;
fullbright_shader = &gDeferredFullbrightProgram;
@@ -139,7 +139,7 @@ void LLDrawPoolAlpha::renderPostDeferred(S32 pass)
void LLDrawPoolAlpha::beginRenderPass(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_ALPHA);
+ LLFastTimer t(FTM_RENDER_ALPHA);
if (LLPipeline::sUnderWaterRender)
{
@@ -163,7 +163,7 @@ void LLDrawPoolAlpha::beginRenderPass(S32 pass)
void LLDrawPoolAlpha::endRenderPass( S32 pass )
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_ALPHA);
+ LLFastTimer t(FTM_RENDER_ALPHA);
LLRenderPass::endRenderPass(pass);
if(gPipeline.canUseWindLightShaders())
@@ -174,7 +174,7 @@ void LLDrawPoolAlpha::endRenderPass( S32 pass )
void LLDrawPoolAlpha::render(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_ALPHA);
+ LLFastTimer t(FTM_RENDER_ALPHA);
LLGLSPipelineAlpha gls_pipeline_alpha;
diff --git a/indra/newview/lldrawpoolavatar.cpp b/indra/newview/lldrawpoolavatar.cpp
index b15cd0b0dc..a2d8c965ec 100644
--- a/indra/newview/lldrawpoolavatar.cpp
+++ b/indra/newview/lldrawpoolavatar.cpp
@@ -89,12 +89,13 @@ S32 AVATAR_OFFSET_TEX0 = 32;
S32 AVATAR_OFFSET_TEX1 = 40;
S32 AVATAR_VERTEX_BYTES = 48;
-
BOOL gAvatarEmbossBumpMap = FALSE;
static BOOL sRenderingSkinned = FALSE;
S32 normal_channel = -1;
S32 specular_channel = -1;
+static LLFastTimer::DeclareTimer FTM_SHADOW_AVATAR("Avatar Shadow");
+
LLDrawPoolAvatar::LLDrawPoolAvatar() :
LLFacePool(POOL_AVATAR)
{
@@ -154,7 +155,7 @@ S32 LLDrawPoolAvatar::getNumDeferredPasses()
void LLDrawPoolAvatar::beginDeferredPass(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_CHARACTERS);
+ LLFastTimer t(FTM_RENDER_CHARACTERS);
if (LLPipeline::sImpostorRender)
{
@@ -178,7 +179,7 @@ void LLDrawPoolAvatar::beginDeferredPass(S32 pass)
void LLDrawPoolAvatar::endDeferredPass(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_CHARACTERS);
+ LLFastTimer t(FTM_RENDER_CHARACTERS);
if (LLPipeline::sImpostorRender)
{
@@ -248,7 +249,7 @@ S32 LLDrawPoolAvatar::getNumShadowPasses()
void LLDrawPoolAvatar::beginShadowPass(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_SHADOW_AVATAR);
+ LLFastTimer t(FTM_SHADOW_AVATAR);
sVertexProgram = &gDeferredAvatarShadowProgram;
if (sShaderLevel > 0)
@@ -270,7 +271,7 @@ void LLDrawPoolAvatar::beginShadowPass(S32 pass)
void LLDrawPoolAvatar::endShadowPass(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_SHADOW_AVATAR);
+ LLFastTimer t(FTM_SHADOW_AVATAR);
if (sShaderLevel > 0)
{
@@ -284,7 +285,7 @@ void LLDrawPoolAvatar::endShadowPass(S32 pass)
void LLDrawPoolAvatar::renderShadow(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_SHADOW_AVATAR);
+ LLFastTimer t(FTM_SHADOW_AVATAR);
if (mDrawFace.empty())
{
@@ -320,7 +321,7 @@ S32 LLDrawPoolAvatar::getNumPasses()
void LLDrawPoolAvatar::render(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_CHARACTERS);
+ LLFastTimer t(FTM_RENDER_CHARACTERS);
if (LLPipeline::sImpostorRender)
{
renderAvatars(NULL, 2);
@@ -332,7 +333,7 @@ void LLDrawPoolAvatar::render(S32 pass)
void LLDrawPoolAvatar::beginRenderPass(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_CHARACTERS);
+ LLFastTimer t(FTM_RENDER_CHARACTERS);
//reset vertex buffer mappings
LLVertexBuffer::unbind();
@@ -358,7 +359,7 @@ void LLDrawPoolAvatar::beginRenderPass(S32 pass)
void LLDrawPoolAvatar::endRenderPass(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_CHARACTERS);
+ LLFastTimer t(FTM_RENDER_CHARACTERS);
if (LLPipeline::sImpostorRender)
{
diff --git a/indra/newview/lldrawpoolbump.cpp b/indra/newview/lldrawpoolbump.cpp
index 971949e885..2cb4d5d6d5 100644
--- a/indra/newview/lldrawpoolbump.cpp
+++ b/indra/newview/lldrawpoolbump.cpp
@@ -74,6 +74,7 @@ const U32 VERTEX_MASK_BUMP = LLVertexBuffer::MAP_VERTEX |LLVertexBuffer::MAP_TEX
U32 LLDrawPoolBump::sVertexMask = VERTEX_MASK_SHINY;
+
static LLGLSLShader* shader = NULL;
static S32 cube_channel = -1;
static S32 diffuse_channel = -1;
@@ -220,7 +221,7 @@ S32 LLDrawPoolBump::getNumPasses()
void LLDrawPoolBump::beginRenderPass(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_BUMP);
+ LLFastTimer t(FTM_RENDER_BUMP);
switch( pass )
{
case 0:
@@ -247,7 +248,7 @@ void LLDrawPoolBump::beginRenderPass(S32 pass)
void LLDrawPoolBump::render(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_BUMP);
+ LLFastTimer t(FTM_RENDER_BUMP);
if (!gPipeline.hasRenderType(LLDrawPool::POOL_SIMPLE))
{
@@ -280,7 +281,7 @@ void LLDrawPoolBump::render(S32 pass)
void LLDrawPoolBump::endRenderPass(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_BUMP);
+ LLFastTimer t(FTM_RENDER_BUMP);
switch( pass )
{
case 0:
@@ -308,7 +309,7 @@ void LLDrawPoolBump::endRenderPass(S32 pass)
//static
void LLDrawPoolBump::beginShiny(bool invisible)
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_SHINY);
+ LLFastTimer t(FTM_RENDER_SHINY);
if (!invisible && !gPipeline.hasRenderBatches(LLRenderPass::PASS_SHINY)||
invisible && !gPipeline.hasRenderBatches(LLRenderPass::PASS_INVISI_SHINY))
{
@@ -383,7 +384,7 @@ void LLDrawPoolBump::beginShiny(bool invisible)
void LLDrawPoolBump::renderShiny(bool invisible)
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_SHINY);
+ LLFastTimer t(FTM_RENDER_SHINY);
if (!invisible && !gPipeline.hasRenderBatches(LLRenderPass::PASS_SHINY)||
invisible && !gPipeline.hasRenderBatches(LLRenderPass::PASS_INVISI_SHINY))
{
@@ -410,7 +411,7 @@ void LLDrawPoolBump::renderShiny(bool invisible)
void LLDrawPoolBump::endShiny(bool invisible)
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_SHINY);
+ LLFastTimer t(FTM_RENDER_SHINY);
if (!invisible && !gPipeline.hasRenderBatches(LLRenderPass::PASS_SHINY)||
invisible && !gPipeline.hasRenderBatches(LLRenderPass::PASS_INVISI_SHINY))
{
@@ -450,7 +451,7 @@ void LLDrawPoolBump::endShiny(bool invisible)
void LLDrawPoolBump::beginFullbrightShiny()
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_SHINY);
+ LLFastTimer t(FTM_RENDER_SHINY);
if (!gPipeline.hasRenderBatches(LLRenderPass::PASS_FULLBRIGHT_SHINY))
{
return;
@@ -499,7 +500,7 @@ void LLDrawPoolBump::beginFullbrightShiny()
void LLDrawPoolBump::renderFullbrightShiny()
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_SHINY);
+ LLFastTimer t(FTM_RENDER_SHINY);
if (!gPipeline.hasRenderBatches(LLRenderPass::PASS_FULLBRIGHT_SHINY))
{
return;
@@ -514,7 +515,7 @@ void LLDrawPoolBump::renderFullbrightShiny()
void LLDrawPoolBump::endFullbrightShiny()
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_SHINY);
+ LLFastTimer t(FTM_RENDER_SHINY);
if (!gPipeline.hasRenderBatches(LLRenderPass::PASS_FULLBRIGHT_SHINY))
{
return;
@@ -624,7 +625,7 @@ void LLDrawPoolBump::beginBump()
}
sVertexMask = VERTEX_MASK_BUMP;
- LLFastTimer t(LLFastTimer::FTM_RENDER_BUMP);
+ LLFastTimer t(FTM_RENDER_BUMP);
// Optional second pass: emboss bump map
stop_glerror();
@@ -668,7 +669,7 @@ void LLDrawPoolBump::renderBump()
return;
}
- LLFastTimer ftm(LLFastTimer::FTM_RENDER_BUMP);
+ LLFastTimer ftm(FTM_RENDER_BUMP);
LLGLDisable fog(GL_FOG);
LLGLDepthTest gls_depth(GL_TRUE, GL_FALSE, GL_LEQUAL);
LLGLEnable blend(GL_BLEND);
@@ -705,7 +706,7 @@ void LLDrawPoolBump::beginDeferredPass(S32 pass)
{
return;
}
- LLFastTimer ftm(LLFastTimer::FTM_RENDER_BUMP);
+ LLFastTimer ftm(FTM_RENDER_BUMP);
mShiny = TRUE;
gDeferredBumpProgram.bind();
diffuse_channel = gDeferredBumpProgram.enableTexture(LLViewerShaderMgr::DIFFUSE_MAP);
@@ -720,7 +721,7 @@ void LLDrawPoolBump::endDeferredPass(S32 pass)
{
return;
}
- LLFastTimer ftm(LLFastTimer::FTM_RENDER_BUMP);
+ LLFastTimer ftm(FTM_RENDER_BUMP);
mShiny = FALSE;
gDeferredBumpProgram.disableTexture(LLViewerShaderMgr::DIFFUSE_MAP);
gDeferredBumpProgram.disableTexture(LLViewerShaderMgr::BUMP_MAP);
@@ -734,7 +735,7 @@ void LLDrawPoolBump::renderDeferred(S32 pass)
{
return;
}
- LLFastTimer ftm(LLFastTimer::FTM_RENDER_BUMP);
+ LLFastTimer ftm(FTM_RENDER_BUMP);
U32 type = LLRenderPass::PASS_BUMP;
LLCullResult::drawinfo_list_t::iterator begin = gPipeline.beginRenderMap(type);
@@ -1250,7 +1251,7 @@ void LLDrawPoolBump::pushBatch(LLDrawInfo& params, U32 mask, BOOL texture)
void LLDrawPoolInvisible::render(S32 pass)
{ //render invisiprims
- LLFastTimer t(LLFastTimer::FTM_RENDER_INVISIBLE);
+ LLFastTimer t(FTM_RENDER_INVISIBLE);
U32 invisi_mask = LLVertexBuffer::MAP_VERTEX;
glStencilMask(0);
@@ -1279,7 +1280,7 @@ void LLDrawPoolInvisible::endDeferredPass( S32 pass )
void LLDrawPoolInvisible::renderDeferred( S32 pass )
{ //render invisiprims; this doesn't work becaue it also blocks all the post-deferred stuff
- LLFastTimer t(LLFastTimer::FTM_RENDER_INVISIBLE);
+ LLFastTimer t(FTM_RENDER_INVISIBLE);
U32 invisi_mask = LLVertexBuffer::MAP_VERTEX;
glStencilMask(0);
diff --git a/indra/newview/lldrawpoolsimple.cpp b/indra/newview/lldrawpoolsimple.cpp
index 1fdf87f6d2..d084bda2ea 100644
--- a/indra/newview/lldrawpoolsimple.cpp
+++ b/indra/newview/lldrawpoolsimple.cpp
@@ -50,7 +50,7 @@ static LLGLSLShader* fullbright_shader = NULL;
void LLDrawPoolGlow::render(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_GLOW);
+ LLFastTimer t(FTM_RENDER_GLOW);
LLGLEnable blend(GL_BLEND);
LLGLDisable test(GL_ALPHA_TEST);
gGL.setSceneBlendType(LLRender::BT_ADD);
@@ -98,7 +98,7 @@ void LLDrawPoolSimple::prerender()
void LLDrawPoolSimple::beginRenderPass(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_SIMPLE);
+ LLFastTimer t(FTM_RENDER_SIMPLE);
if (LLPipeline::sUnderWaterRender)
{
@@ -125,7 +125,7 @@ void LLDrawPoolSimple::beginRenderPass(S32 pass)
void LLDrawPoolSimple::endRenderPass(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_SIMPLE);
+ LLFastTimer t(FTM_RENDER_SIMPLE);
LLRenderPass::endRenderPass(pass);
if (mVertexShaderLevel > 0){
@@ -140,7 +140,7 @@ void LLDrawPoolSimple::render(S32 pass)
LLGLDisable alpha_test(GL_ALPHA_TEST);
{ //render simple
- LLFastTimer t(LLFastTimer::FTM_RENDER_SIMPLE);
+ LLFastTimer t(FTM_RENDER_SIMPLE);
gPipeline.enableLightsDynamic();
renderTexture(LLRenderPass::PASS_SIMPLE, getVertexDataMask());
@@ -157,13 +157,13 @@ void LLDrawPoolSimple::render(S32 pass)
void LLDrawPoolSimple::beginDeferredPass(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_SIMPLE);
+ LLFastTimer t(FTM_RENDER_SIMPLE);
gDeferredDiffuseProgram.bind();
}
void LLDrawPoolSimple::endDeferredPass(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_SIMPLE);
+ LLFastTimer t(FTM_RENDER_SIMPLE);
LLRenderPass::endRenderPass(pass);
gDeferredDiffuseProgram.unbind();
@@ -175,7 +175,7 @@ void LLDrawPoolSimple::renderDeferred(S32 pass)
LLGLDisable alpha_test(GL_ALPHA_TEST);
{ //render simple
- LLFastTimer t(LLFastTimer::FTM_RENDER_SIMPLE);
+ LLFastTimer t(FTM_RENDER_SIMPLE);
renderTexture(LLRenderPass::PASS_SIMPLE, getVertexDataMask());
}
}
@@ -195,7 +195,7 @@ void LLDrawPoolGrass::prerender()
void LLDrawPoolGrass::beginRenderPass(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_GRASS);
+ LLFastTimer t(FTM_RENDER_GRASS);
if (LLPipeline::sUnderWaterRender)
{
@@ -222,7 +222,7 @@ void LLDrawPoolGrass::beginRenderPass(S32 pass)
void LLDrawPoolGrass::endRenderPass(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_GRASS);
+ LLFastTimer t(FTM_RENDER_GRASS);
LLRenderPass::endRenderPass(pass);
if (mVertexShaderLevel > 0)
@@ -237,7 +237,7 @@ void LLDrawPoolGrass::render(S32 pass)
gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.5f);
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_GRASS);
+ LLFastTimer t(FTM_RENDER_GRASS);
LLGLEnable test(GL_ALPHA_TEST);
gGL.setSceneBlendType(LLRender::BT_ALPHA);
//render grass
@@ -262,7 +262,7 @@ void LLDrawPoolGrass::renderDeferred(S32 pass)
gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.5f);
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_GRASS);
+ LLFastTimer t(FTM_RENDER_GRASS);
gDeferredTreeProgram.bind();
LLGLEnable test(GL_ALPHA_TEST);
//render grass
@@ -286,7 +286,7 @@ void LLDrawPoolFullbright::prerender()
void LLDrawPoolFullbright::beginRenderPass(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_FULLBRIGHT);
+ LLFastTimer t(FTM_RENDER_FULLBRIGHT);
if (LLPipeline::sUnderWaterRender)
{
@@ -300,7 +300,7 @@ void LLDrawPoolFullbright::beginRenderPass(S32 pass)
void LLDrawPoolFullbright::endRenderPass(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_FULLBRIGHT);
+ LLFastTimer t(FTM_RENDER_FULLBRIGHT);
LLRenderPass::endRenderPass(pass);
if (mVertexShaderLevel > 0)
@@ -311,7 +311,7 @@ void LLDrawPoolFullbright::endRenderPass(S32 pass)
void LLDrawPoolFullbright::render(S32 pass)
{ //render fullbright
- LLFastTimer t(LLFastTimer::FTM_RENDER_FULLBRIGHT);
+ LLFastTimer t(FTM_RENDER_FULLBRIGHT);
if (mVertexShaderLevel > 0)
{
fullbright_shader->bind();
diff --git a/indra/newview/lldrawpoolterrain.cpp b/indra/newview/lldrawpoolterrain.cpp
index a01c9026c8..345dd6bb84 100644
--- a/indra/newview/lldrawpoolterrain.cpp
+++ b/indra/newview/lldrawpoolterrain.cpp
@@ -61,6 +61,8 @@ int DebugDetailMap = 0;
S32 LLDrawPoolTerrain::sDetailMode = 1;
F32 LLDrawPoolTerrain::sDetailScale = DETAIL_SCALE;
static LLGLSLShader* sShader = NULL;
+static LLFastTimer::DeclareTimer FTM_SHADOW_TERRAIN("Terrain Shadow");
+
LLDrawPoolTerrain::LLDrawPoolTerrain(LLViewerTexture *texturep) :
LLFacePool(POOL_TERRAIN),
@@ -131,7 +133,7 @@ void LLDrawPoolTerrain::prerender()
void LLDrawPoolTerrain::beginRenderPass( S32 pass )
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_TERRAIN);
+ LLFastTimer t(FTM_RENDER_TERRAIN);
LLFacePool::beginRenderPass(pass);
sShader = LLPipeline::sUnderWaterRender ?
@@ -146,7 +148,7 @@ void LLDrawPoolTerrain::beginRenderPass( S32 pass )
void LLDrawPoolTerrain::endRenderPass( S32 pass )
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_TERRAIN);
+ LLFastTimer t(FTM_RENDER_TERRAIN);
LLFacePool::endRenderPass(pass);
if (mVertexShaderLevel > 1 && sShader->mShaderLevel > 0) {
@@ -162,7 +164,7 @@ S32 LLDrawPoolTerrain::getDetailMode()
void LLDrawPoolTerrain::render(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_TERRAIN);
+ LLFastTimer t(FTM_RENDER_TERRAIN);
if (mDrawFace.empty())
{
@@ -235,7 +237,7 @@ void LLDrawPoolTerrain::render(S32 pass)
void LLDrawPoolTerrain::beginDeferredPass(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_TERRAIN);
+ LLFastTimer t(FTM_RENDER_TERRAIN);
LLFacePool::beginRenderPass(pass);
sShader = &gDeferredTerrainProgram;
@@ -245,14 +247,14 @@ void LLDrawPoolTerrain::beginDeferredPass(S32 pass)
void LLDrawPoolTerrain::endDeferredPass(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_TERRAIN);
+ LLFastTimer t(FTM_RENDER_TERRAIN);
LLFacePool::endRenderPass(pass);
sShader->unbind();
}
void LLDrawPoolTerrain::renderDeferred(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_TERRAIN);
+ LLFastTimer t(FTM_RENDER_TERRAIN);
if (mDrawFace.empty())
{
return;
@@ -262,7 +264,7 @@ void LLDrawPoolTerrain::renderDeferred(S32 pass)
void LLDrawPoolTerrain::beginShadowPass(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_SHADOW_TERRAIN);
+ LLFastTimer t(FTM_SHADOW_TERRAIN);
LLFacePool::beginRenderPass(pass);
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
gDeferredShadowProgram.bind();
@@ -270,14 +272,14 @@ void LLDrawPoolTerrain::beginShadowPass(S32 pass)
void LLDrawPoolTerrain::endShadowPass(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_SHADOW_TERRAIN);
+ LLFastTimer t(FTM_SHADOW_TERRAIN);
LLFacePool::endRenderPass(pass);
gDeferredShadowProgram.unbind();
}
void LLDrawPoolTerrain::renderShadow(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_SHADOW_TERRAIN);
+ LLFastTimer t(FTM_SHADOW_TERRAIN);
if (mDrawFace.empty())
{
return;
diff --git a/indra/newview/lldrawpooltree.cpp b/indra/newview/lldrawpooltree.cpp
index f572e2cb44..5cb1fcb635 100644
--- a/indra/newview/lldrawpooltree.cpp
+++ b/indra/newview/lldrawpooltree.cpp
@@ -46,6 +46,7 @@
S32 LLDrawPoolTree::sDiffTex = 0;
static LLGLSLShader* shader = NULL;
+static LLFastTimer::DeclareTimer FTM_SHADOW_TREE("Tree Shadow");
LLDrawPoolTree::LLDrawPoolTree(LLViewerTexture *texturep) :
LLFacePool(POOL_TREE),
@@ -67,7 +68,7 @@ void LLDrawPoolTree::prerender()
void LLDrawPoolTree::beginRenderPass(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_TREES);
+ LLFastTimer t(FTM_RENDER_TREES);
gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.5f);
if (LLPipeline::sUnderWaterRender)
@@ -91,7 +92,7 @@ void LLDrawPoolTree::beginRenderPass(S32 pass)
void LLDrawPoolTree::render(S32 pass)
{
- LLFastTimer t(LLPipeline::sShadowRender ? LLFastTimer::FTM_SHADOW_TREE : LLFastTimer::FTM_RENDER_TREES);
+ LLFastTimer t(LLPipeline::sShadowRender ? FTM_SHADOW_TREE : FTM_RENDER_TREES);
if (mDrawFace.empty())
{
@@ -122,7 +123,7 @@ void LLDrawPoolTree::render(S32 pass)
void LLDrawPoolTree::endRenderPass(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_TREES);
+ LLFastTimer t(FTM_RENDER_TREES);
gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT);
if (gPipeline.canUseWindLightShadersOnObjects())
@@ -136,7 +137,7 @@ void LLDrawPoolTree::endRenderPass(S32 pass)
//============================================
void LLDrawPoolTree::beginDeferredPass(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_TREES);
+ LLFastTimer t(FTM_RENDER_TREES);
gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.5f);
shader = &gDeferredTreeProgram;
@@ -150,7 +151,7 @@ void LLDrawPoolTree::renderDeferred(S32 pass)
void LLDrawPoolTree::endDeferredPass(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_TREES);
+ LLFastTimer t(FTM_RENDER_TREES);
gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT);
shader->unbind();
@@ -161,7 +162,7 @@ void LLDrawPoolTree::endDeferredPass(S32 pass)
//============================================
void LLDrawPoolTree::beginShadowPass(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_SHADOW_TREE);
+ LLFastTimer t(FTM_SHADOW_TREE);
gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.5f);
gDeferredShadowProgram.bind();
}
@@ -173,7 +174,7 @@ void LLDrawPoolTree::renderShadow(S32 pass)
void LLDrawPoolTree::endShadowPass(S32 pass)
{
- LLFastTimer t(LLFastTimer::FTM_SHADOW_TREE);
+ LLFastTimer t(FTM_SHADOW_TREE);
gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT);
gDeferredShadowProgram.unbind();
}
diff --git a/indra/newview/lldrawpoolwater.cpp b/indra/newview/lldrawpoolwater.cpp
index 16623ca2b6..fd4dc123d5 100644
--- a/indra/newview/lldrawpoolwater.cpp
+++ b/indra/newview/lldrawpoolwater.cpp
@@ -138,7 +138,7 @@ void LLDrawPoolWater::endPostDeferredPass(S32 pass)
void LLDrawPoolWater::render(S32 pass)
{
- LLFastTimer ftm(LLFastTimer::FTM_RENDER_WATER);
+ LLFastTimer ftm(FTM_RENDER_WATER);
if (mDrawFace.empty() || LLDrawable::getCurrentFrame() <= 1)
{
return;
diff --git a/indra/newview/lldrawpoolwlsky.cpp b/indra/newview/lldrawpoolwlsky.cpp
index 917b6fafbc..9b52ddb73c 100644
--- a/indra/newview/lldrawpoolwlsky.cpp
+++ b/indra/newview/lldrawpoolwlsky.cpp
@@ -260,7 +260,7 @@ void LLDrawPoolWLSky::render(S32 pass)
{
return;
}
- LLFastTimer ftm(LLFastTimer::FTM_RENDER_WL_SKY);
+ LLFastTimer ftm(FTM_RENDER_WL_SKY);
const F32 camHeightLocal = LLWLParamManager::instance()->getDomeOffset() * LLWLParamManager::instance()->getDomeRadius();
diff --git a/indra/newview/llfasttimerview.cpp b/indra/newview/llfasttimerview.cpp
index 0aef3123d6..8ceb41c27a 100644
--- a/indra/newview/llfasttimerview.cpp
+++ b/indra/newview/llfasttimerview.cpp
@@ -195,7 +195,8 @@ BOOL LLFastTimerView::handleHover(S32 x, S32 y, MASK mask)
if(LLFastTimer::sPauseHistory && mBarRect.pointInRect(x, y))
{
- mHoverBarIndex = llmin(LLFastTimer::getCurFrameIndex() - 1, MAX_VISIBLE_HISTORY - ((y - mBarRect.mBottom) * (MAX_VISIBLE_HISTORY + 2) / mBarRect.getHeight()));
+ mHoverBarIndex = llmin(LLFastTimer::getCurFrameIndex() - 1,
+ MAX_VISIBLE_HISTORY - ((y - mBarRect.mBottom) * (MAX_VISIBLE_HISTORY + 2) / mBarRect.getHeight()));
if (mHoverBarIndex == 0)
{
return TRUE;
@@ -217,9 +218,9 @@ BOOL LLFastTimerView::handleHover(S32 x, S32 y, MASK mask)
mHoverID = (*it);
mHoverTimer = (*it);
mToolTipRect.set(mBarStart[mHoverBarIndex][i],
- mBarRect.mBottom + llround(((F32)mHoverBarIndex + 1.f) * ((F32)mBarRect.getHeight() / ((F32)MAX_VISIBLE_HISTORY + 2.f))),
+ mBarRect.mBottom + llround(((F32)(MAX_VISIBLE_HISTORY - mHoverBarIndex + 1)) * ((F32)mBarRect.getHeight() / ((F32)MAX_VISIBLE_HISTORY + 2.f))),
mBarEnd[mHoverBarIndex][i],
- mBarRect.mBottom + llround((F32)mHoverBarIndex * ((F32)mBarRect.getHeight() / ((F32)MAX_VISIBLE_HISTORY + 2.f))));
+ mBarRect.mBottom + llround((F32)(MAX_VISIBLE_HISTORY - mHoverBarIndex) * ((F32)mBarRect.getHeight() / ((F32)MAX_VISIBLE_HISTORY + 2.f))));
}
if ((*it)->getCollapsed())
@@ -248,6 +249,7 @@ BOOL LLFastTimerView::handleToolTip(S32 x, S32 y, std::string& msg, LLRect* stic
// tooltips for timer bars
if (mHoverTimer)
{
+ localRectToScreen(mToolTipRect, sticky_rect_screen);
msg = mHoverTimer->getToolTip(LLFastTimer::NamedTimer::HISTORY_NUM - mScrollIndex - mHoverBarIndex);
return TRUE;
}
@@ -960,9 +962,14 @@ void LLFastTimerView::draw()
LLView::draw();
}
-F64 LLFastTimerView::getTime(LLFastTimer::NamedTimer::FrameState& id)
+F64 LLFastTimerView::getTime(const std::string& name)
{
- return (F64)id.mTimer->getCountAverage() / (F64)LLFastTimer::countsPerSecond();
+ const LLFastTimer::NamedTimer* timerp = LLFastTimer::getTimerByName(name);
+ if (timerp)
+ {
+ return (F64)timerp->getCountAverage() / (F64)LLFastTimer::countsPerSecond();
+ }
+ return 0.0;
}
//static
diff --git a/indra/newview/llfasttimerview.h b/indra/newview/llfasttimerview.h
index 78ca7b50d6..f301888984 100644
--- a/indra/newview/llfasttimerview.h
+++ b/indra/newview/llfasttimerview.h
@@ -62,7 +62,7 @@ public:
virtual void draw();
LLFastTimer::NamedTimer* getLegendID(S32 y);
- F64 getTime(LLFastTimer::NamedTimer::FrameState& id);
+ F64 getTime(const std::string& name);
private:
typedef std::vector<std::vector<S32> > bar_positions_t;
diff --git a/indra/newview/llfavoritesbar.cpp b/indra/newview/llfavoritesbar.cpp
index 7fc127f803..9c1a7ecb04 100644
--- a/indra/newview/llfavoritesbar.cpp
+++ b/indra/newview/llfavoritesbar.cpp
@@ -36,6 +36,7 @@
#include "llbutton.h"
#include "llfloaterreg.h"
+#include "llfocusmgr.h"
#include "llinventory.h"
#include "lluictrlfactory.h"
#include "llmenugl.h"
@@ -292,7 +293,7 @@ void LLFavoritesBarCtrl::updateButtons(U32 bar_width)
if (mFirstDropDownItem != count)
{
// Chevron button should stay right aligned
- LLView *chevron_button = getChildView(std::string(">>"), FALSE, FALSE);
+ LLView *chevron_button = findChildView(std::string(">>"), FALSE);
if (chevron_button)
{
LLRect rect;
@@ -335,7 +336,7 @@ void LLFavoritesBarCtrl::updateButtons(U32 bar_width)
else
{
// Hide chevron button if all items are visible on bar
- LLView *chevron_button = getChildView(std::string(">>"), FALSE, FALSE);
+ LLView *chevron_button = findChildView(std::string(">>"), FALSE);
if (chevron_button)
{
chevron_button->setVisible(FALSE);
@@ -366,7 +367,7 @@ void LLFavoritesBarCtrl::createButtons(const LLInventoryModel::item_array_t &ite
fav_btn->setLabel(item->getName());
fav_btn->setToolTip(item->getName());
fav_btn->setCommitCallback(boost::bind(&LLFavoritesBarCtrl::onButtonClick, this, item->getUUID()));
- fav_btn->setRightClickedCallback(boost::bind(&LLFavoritesBarCtrl::onButtonRightClick, this, item->getUUID(), _1, _2, _3,_4 ));
+ fav_btn->setRightMouseDownCallback(boost::bind(&LLFavoritesBarCtrl::onButtonRightClick, this, item->getUUID(), _1, _2, _3,_4 ));
sendChildToBack(fav_btn);
curr_x += buttonWidth + buttonHGap;
@@ -486,7 +487,7 @@ void LLFavoritesBarCtrl::showDropDownMenu()
item_params.on_click.function(boost::bind(&LLFavoritesBarCtrl::onButtonClick, this, item->getUUID()));
LLMenuItemCallGL *menu_item = LLUICtrlFactory::create<LLMenuItemCallGL>(item_params);
- menu_item->setRightClickedCallback(boost::bind(&LLFavoritesBarCtrl::onButtonRightClick, this,item->getUUID(),_1,_2,_3,_4));
+ menu_item->setRightMouseDownCallback(boost::bind(&LLFavoritesBarCtrl::onButtonRightClick, this,item->getUUID(),_1,_2,_3,_4));
// Check whether item name wider than menu
if ((S32) menu_item->getNominalWidth() > bar_width)
{
@@ -545,6 +546,10 @@ void LLFavoritesBarCtrl::onButtonRightClick( LLUUID item_id,LLView* fav_button,S
return;
}
+ // Release mouse capture so hover events go to the popup menu
+ // because this is happening during a mouse down.
+ gFocusMgr.setMouseCapture(NULL);
+
menu->updateParent(LLMenuGL::sMenuContainer);
LLMenuGL::showPopup(fav_button, menu, x, y);
}
diff --git a/indra/newview/llflexibleobject.cpp b/indra/newview/llflexibleobject.cpp
index bafb69a835..216bca8262 100644
--- a/indra/newview/llflexibleobject.cpp
+++ b/indra/newview/llflexibleobject.cpp
@@ -261,6 +261,7 @@ void LLVolumeImplFlexible::onSetVolume(const LLVolumeParams &volume_params, cons
// updated every time step. In the future, perhaps there could be an
// optimization similar to what Havok does for objects that are stationary.
//---------------------------------------------------------------------------------
+static LLFastTimer::DeclareTimer FTM_FLEXIBLE_UPDATE("Update Flexies");
BOOL LLVolumeImplFlexible::doIdleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
{
if (mVO->mDrawable.isNull())
@@ -279,7 +280,7 @@ BOOL LLVolumeImplFlexible::doIdleUpdate(LLAgent &agent, LLWorld &world, const F6
parent->mDrawable->mQuietCount = 0;
}
- LLFastTimer ftm(LLFastTimer::FTM_FLEXIBLE_UPDATE);
+ LLFastTimer ftm(FTM_FLEXIBLE_UPDATE);
S32 new_res = mAttributes->getSimulateLOD();
diff --git a/indra/newview/llfloaterabout.cpp b/indra/newview/llfloaterabout.cpp
index 7332ca4b5c..3c27d37ee9 100644
--- a/indra/newview/llfloaterabout.cpp
+++ b/indra/newview/llfloaterabout.cpp
@@ -61,6 +61,8 @@
#include "llmediamanager.h"
#include "llwindow.h"
+#include "llbutton.h"
+
#if LL_WINDOWS
#include "lldxhardware.h"
#endif
@@ -102,20 +104,18 @@ BOOL LLFloaterAbout::postBuild()
support_widget->setParseHTML(TRUE);
// Text styles for release notes hyperlinks
- LLStyleSP viewer_link_style(new LLStyle);
- viewer_link_style->setVisible(true);
- viewer_link_style->setFontName(LLStringUtil::null);
- viewer_link_style->setLinkHREF(get_viewer_release_notes_url());
- viewer_link_style->setColor(LLUIColorTable::instance().getColor("HTMLLinkColor"));
+ LLStyle::Params link_style_params;
+ link_style_params.color.control = "HTMLLinkColor";
+ link_style_params.link_href = get_viewer_release_notes_url();
// Version string
- std::string version = LLTrans::getString("SECOND_LIFE_VIEWER")
+ std::string version = LLTrans::getString("APP_NAME")
+ llformat(" %d.%d.%d (%d) %s %s (%s)\n",
LL_VERSION_MAJOR, LL_VERSION_MINOR, LL_VERSION_PATCH, LL_VIEWER_BUILD,
__DATE__, __TIME__,
gSavedSettings.getString("VersionChannelName").c_str());
support_widget->appendColoredText(version, FALSE, FALSE, LLUIColorTable::instance().getColor("TextFgReadOnlyColor"));
- support_widget->appendStyledText(LLTrans::getString("ReleaseNotes"), false, false, viewer_link_style);
+ support_widget->appendStyledText(LLTrans::getString("ReleaseNotes"), false, false, link_style_params);
std::string support;
support.append("\n\n");
@@ -132,11 +132,9 @@ BOOL LLFloaterAbout::postBuild()
LLViewerRegion* region = gAgent.getRegion();
if (region)
{
- LLStyleSP server_link_style(new LLStyle);
- server_link_style->setVisible(true);
- server_link_style->setFontName(LLStringUtil::null);
- server_link_style->setLinkHREF(region->getCapability("ServerReleaseNotes"));
- server_link_style->setColor(LLUIColorTable::instance().getColor("HTMLLinkColor"));
+ LLStyle::Params server_link_style_params;
+ server_link_style_params.color.control = "HTMLLinkColor";
+ server_link_style_params.link_href = region->getCapability("ServerReleaseNotes");
const LLVector3d &pos = gAgent.getPositionGlobal();
LLUIString pos_text = getString("you_are_at");
@@ -159,7 +157,7 @@ BOOL LLFloaterAbout::postBuild()
support.append("\n");
support_widget->appendColoredText(support, FALSE, FALSE, LLUIColorTable::instance().getColor("TextFgReadOnlyColor"));
- support_widget->appendStyledText(LLTrans::getString("ReleaseNotes"), false, false, server_link_style);
+ support_widget->appendStyledText(LLTrans::getString("ReleaseNotes"), false, false, server_link_style_params);
support = "\n\n";
}
@@ -251,13 +249,9 @@ BOOL LLFloaterAbout::postBuild()
// Fix views
support_widget->setCursorPos(0);
support_widget->setEnabled(FALSE);
- support_widget->setTakesFocus(TRUE);
- support_widget->setHandleEditKeysDirectly(TRUE);
credits_widget->setCursorPos(0);
credits_widget->setEnabled(FALSE);
- credits_widget->setTakesFocus(TRUE);
- credits_widget->setHandleEditKeysDirectly(TRUE);
return TRUE;
}
diff --git a/indra/newview/llfloaterbuyland.cpp b/indra/newview/llfloaterbuyland.cpp
index 3d1b7965a1..7075719299 100644
--- a/indra/newview/llfloaterbuyland.cpp
+++ b/indra/newview/llfloaterbuyland.cpp
@@ -566,32 +566,25 @@ void LLFloaterBuyLandUI::onChangeAgreeCovenant(LLUICtrl* ctrl, void* user_data)
void LLFloaterBuyLandUI::updateFloaterCovenantText(const std::string &string, const LLUUID& asset_id)
{
LLViewerTextEditor* editor = getChild<LLViewerTextEditor>("covenant_editor");
- if (editor)
- {
- editor->setHandleEditKeysDirectly(FALSE);
- editor->setText(string);
+ editor->setText(string);
- LLCheckBoxCtrl* check = getChild<LLCheckBoxCtrl>("agree_covenant");
- LLTextBox* box = getChild<LLTextBox>("covenant_text");
- if(check && box)
- {
- if (asset_id.isNull())
- {
- check->set(true);
- check->setEnabled(false);
- refreshUI();
+ LLCheckBoxCtrl* check = getChild<LLCheckBoxCtrl>("agree_covenant");
+ LLTextBox* box = getChild<LLTextBox>("covenant_text");
+ if (asset_id.isNull())
+ {
+ check->set(true);
+ check->setEnabled(false);
+ refreshUI();
- // remove the line stating that you must agree
- box->setVisible(FALSE);
- }
- else
- {
- check->setEnabled(true);
+ // remove the line stating that you must agree
+ box->setVisible(FALSE);
+ }
+ else
+ {
+ check->setEnabled(true);
- // remove the line stating that you must agree
- box->setVisible(TRUE);
- }
- }
+ // remove the line stating that you must agree
+ box->setVisible(TRUE);
}
}
diff --git a/indra/newview/llfloaterbuyland.h b/indra/newview/llfloaterbuyland.h
index 7df07f752d..00d44035ae 100644
--- a/indra/newview/llfloaterbuyland.h
+++ b/indra/newview/llfloaterbuyland.h
@@ -35,7 +35,6 @@
class LLFloater;
class LLViewerRegion;
-class LLViewerTextEditor;
class LLParcelSelection;
class LLFloaterBuyLand
diff --git a/indra/newview/llfloaterchat.cpp b/indra/newview/llfloaterchat.cpp
index 742cc5c5de..8c09ee7d48 100644
--- a/indra/newview/llfloaterchat.cpp
+++ b/indra/newview/llfloaterchat.cpp
@@ -172,8 +172,7 @@ void add_timestamped_line(LLViewerTextEditor* edit, LLChat chat, const LLColor4&
{
std::string start_line = line.substr(0, chat.mFromName.length() + 1);
line = line.substr(chat.mFromName.length() + 1);
- const LLStyleSP &sourceStyle = LLStyleMap::instance().lookup(chat.mFromID,chat.mURL);
- edit->appendStyledText(start_line, false, prepend_newline, sourceStyle);
+ edit->appendStyledText(start_line, false, prepend_newline, LLStyleMap::instance().lookup(chat.mFromID,chat.mURL));
prepend_newline = false;
}
edit->appendColoredText(line, false, prepend_newline, color);
diff --git a/indra/newview/llfloaterchat.h b/indra/newview/llfloaterchat.h
index e8af48d095..6ba3165d6a 100644
--- a/indra/newview/llfloaterchat.h
+++ b/indra/newview/llfloaterchat.h
@@ -42,14 +42,8 @@
#include "lllogchat.h"
class LLChat;
-class LLViewerTextEditor;
-class LLMessageSystem;
-class LLUUID;
-class LLCheckBoxCtrl;
class LLPanelActiveSpeakers;
class LLLogChat;
-class LLVector3d;
-class LLWindow;
enum ELogOptions
{
diff --git a/indra/newview/llfloaterfriends.cpp b/indra/newview/llfloaterfriends.cpp
index 1e8e7bad74..eb73bd6d8f 100644
--- a/indra/newview/llfloaterfriends.cpp
+++ b/indra/newview/llfloaterfriends.cpp
@@ -404,7 +404,7 @@ void LLPanelFriends::refreshNames(U32 changed_mask)
// Changed item in place, need to request sort and update columns
// because we might have changed data in a column on which the user
// has already sorted. JC
- mFriendsList->sortItems();
+ mFriendsList->updateSort();
// re-select items
mFriendsList->selectMultiple(selected_ids);
diff --git a/indra/newview/llfloaterinventory.cpp b/indra/newview/llfloaterinventory.cpp
index 3c66a2add1..45a42f994d 100644
--- a/indra/newview/llfloaterinventory.cpp
+++ b/indra/newview/llfloaterinventory.cpp
@@ -1000,7 +1000,7 @@ BOOL LLFloaterInventory::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
{
// Check to see if we are auto scrolling from the last frame
LLInventoryPanel* panel = (LLInventoryPanel*)this->getActivePanel();
- BOOL needsToScroll = panel->getScrollableContainer()->needsToScroll(x, y, LLScrollContainer::VERTICAL);
+ BOOL needsToScroll = panel->getScrollableContainer()->autoScroll(x, y);
if(mFilterTabs)
{
if(needsToScroll)
@@ -1320,9 +1320,11 @@ LLInventoryFilter::EFolderShow LLInventoryPanel::getShowFolderState()
return mFolders->getFilter()->getShowFolderState();
}
+static LLFastTimer::DeclareTimer FTM_REFRESH("Inventory Refresh");
+
void LLInventoryPanel::modelChanged(U32 mask)
{
- LLFastTimer t2(LLFastTimer::FTM_REFRESH);
+ LLFastTimer t2(FTM_REFRESH);
bool handled = false;
if(mask & LLInventoryObserver::LABEL)
diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp
index c5e07c6596..1746d6d435 100644
--- a/indra/newview/llfloaterland.cpp
+++ b/indra/newview/llfloaterland.cpp
@@ -2847,11 +2847,7 @@ void LLPanelLandCovenant::updateCovenantText(const std::string &string)
if (self)
{
LLViewerTextEditor* editor = self->getChild<LLViewerTextEditor>("covenant_editor");
- if (editor)
- {
- editor->setHandleEditKeysDirectly(TRUE);
- editor->setText(string);
- }
+ editor->setText(string);
}
}
diff --git a/indra/newview/llfloaterland.h b/indra/newview/llfloaterland.h
index 7fc5ed0c9e..29d1c4dd84 100644
--- a/indra/newview/llfloaterland.h
+++ b/indra/newview/llfloaterland.h
@@ -59,7 +59,6 @@ class LLTextBox;
class LLTextEditor;
class LLTextureCtrl;
class LLUIImage;
-class LLViewerTextEditor;
class LLParcelSelection;
class LLPanelLandGeneral;
diff --git a/indra/newview/llfloaternotificationsconsole.cpp b/indra/newview/llfloaternotificationsconsole.cpp
index 0a3d97245b..f2dff55044 100644
--- a/indra/newview/llfloaternotificationsconsole.cpp
+++ b/indra/newview/llfloaternotificationsconsole.cpp
@@ -39,7 +39,6 @@
#include "llscrolllistitem.h"
#include "llpanel.h"
#include "llcombobox.h"
-#include "llviewertexteditor.h"
const S32 NOTIFICATION_PANEL_HEADER_HEIGHT = 20;
const S32 HEADER_PADDING = 38;
@@ -250,7 +249,7 @@ LLFloaterNotification::LLFloaterNotification(LLNotification* note)
BOOL LLFloaterNotification::postBuild()
{
setTitle(mNote->getName());
- getChild<LLViewerTextEditor>("payload")->setText(mNote->getMessage());
+ getChild<LLUICtrl>("payload")->setValue(mNote->getMessage());
LLComboBox* responses_combo = getChild<LLComboBox>("response");
LLCtrlListInterface* response_list = responses_combo->getListInterface();
diff --git a/indra/newview/llfloaterpostcard.cpp b/indra/newview/llfloaterpostcard.cpp
index aa68a1b229..ac687ed3e9 100644
--- a/indra/newview/llfloaterpostcard.cpp
+++ b/indra/newview/llfloaterpostcard.cpp
@@ -43,8 +43,8 @@
#include "llagent.h"
#include "llui.h"
#include "lllineeditor.h"
-#include "llviewertexteditor.h"
#include "llbutton.h"
+#include "lltexteditor.h"
#include "llfloaterreg.h"
#include "llviewercontrol.h"
#include "llviewernetwork.h"
@@ -104,14 +104,8 @@ BOOL LLFloaterPostcard::postBuild()
gAgent.buildFullname(name_string);
childSetValue("name_form", LLSD(name_string));
- LLTextEditor* MsgField = getChild<LLTextEditor>("msg_form");
- if (MsgField)
- {
- MsgField->setWordWrap(TRUE);
-
- // For the first time a user focusess to .the msg box, all text will be selected.
- MsgField->setFocusChangedCallback(onMsgFormFocusRecieved, this);
- }
+ // For the first time a user focusess to .the msg box, all text will be selected.
+ getChild<LLUICtrl>("msg_form")->setFocusChangedCallback(onMsgFormFocusRecieved, this);
childSetFocus("to_form", TRUE);
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index 1a7f72d49c..79f8f412fd 100644
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -62,13 +62,11 @@
#include "llpanellogin.h"
#include "llradiogroup.h"
#include "llsky.h"
-#include "llstylemap.h"
#include "llscrolllistctrl.h"
#include "llscrolllistitem.h"
#include "llsliderctrl.h"
#include "lltabcontainer.h"
#include "lltrans.h"
-#include "lltexteditor.h"
#include "llviewercontrol.h"
#include "llviewercamera.h"
#include "llviewerwindow.h"
@@ -169,7 +167,6 @@ void LLVoiceSetKeyDialog::onCancel(void* user_data)
// a static member and update all our static callbacks
void free_web_media(LLMediaBase *media_source);
-void handleHTMLLinkColorChanged(const LLSD& newvalue);
void handleNameTagOptionChanged(const LLSD& newvalue);
LLMediaBase *get_web_media();
bool callback_clear_browser_cache(const LLSD& notification, const LLSD& response);
@@ -239,12 +236,6 @@ bool callback_clear_browser_cache(const LLSD& notification, const LLSD& response
return false;
}
-void handleHTMLLinkColorChanged(const LLSD& newvalue)
-{
- LLTextEditor::setLinkColor(LLColor4(newvalue));
- LLStyleMap::instance().update();
-
-}
void handleNameTagOptionChanged(const LLSD& newvalue)
{
S32 name_tag_option = S32(newvalue);
@@ -458,14 +449,12 @@ void LLFloaterPreference::apply()
}
free_web_media(media_source);
- LLTextEditor* busy = getChild<LLTextEditor>("busy_response");
- LLWString busy_response;
- if (busy) busy_response = busy->getWText();
- LLWStringUtil::replaceTabsWithSpaces(busy_response, 4);
+// LLWString busy_response = utf8str_to_wstring(getChild<LLUICtrl>("busy_response")->getValue().asString());
+// LLWStringUtil::replaceTabsWithSpaces(busy_response, 4);
if(mGotPersonalInfo)
{
- gSavedPerAccountSettings.setString("BusyModeResponse2", std::string(wstring_to_utf8str(busy_response)));
+// gSavedSettings.setString("BusyModeResponse2", std::string(wstring_to_utf8str(busy_response)));
bool new_im_via_email = childGetValue("send_im_to_email").asBoolean();
bool new_hide_online = childGetValue("online_visibility").asBoolean();
@@ -1172,13 +1161,13 @@ void LLFloaterPreference::setPersonalInfo(const std::string& visibility, bool im
childSetValue("send_im_to_email", im_via_email);
childEnable("log_instant_messages");
// childEnable("log_chat");
- childEnable("busy_response");
+// childEnable("busy_response");
// childEnable("log_instant_messages_timestamp");
// childEnable("log_chat_timestamp");
childEnable("log_chat_IM");
childEnable("log_date_timestamp");
- childSetText("busy_response", gSavedPerAccountSettings.getString("BusyModeResponse2"));
+// childSetText("busy_response", gSavedSettings.getString("BusyModeResponse2"));
enableHistory();
std::string display_email(email);
@@ -1349,8 +1338,7 @@ static LLRegisterPanelClassWrapper<LLPanelPreference> t_places("panel_preference
LLPanelPreference::LLPanelPreference()
: LLPanel()
{
- //
- mCommitCallbackRegistrar.add("setControlFalse", boost::bind(&LLPanelPreference::setControlFalse,this, _2));
+ mCommitCallbackRegistrar.add("Pref.setControlFalse", boost::bind(&LLPanelPreference::setControlFalse,this, _2));
}
static void applyUIColor(const std::string& color_name, LLUICtrl* ctrl, const LLSD& param)
@@ -1422,23 +1410,17 @@ BOOL LLPanelPreference::postBuild()
//////
if(hasChild("online_visibility") && hasChild("send_im_to_email"))
{
- requires("online_visibility");
- requires("send_im_to_email");
- if (!checkRequirements())
- {
- return FALSE;
- }
childSetText("email_address",getString("log_in_to_change") );
- childSetText("busy_response", getString("log_in_to_change"));
+// childSetText("busy_response", getString("log_in_to_change"));
}
- if(hasChild("fullscreen combo"))
+ if(hasChild("aspect_ratio"))
{
//============================================================================
// Resolution
-
+/*
S32 num_resolutions = 0;
LLWindow::LLWindowResolution* supported_resolutions = gViewerWindow->getWindow()->getSupportedResolutions(num_resolutions);
@@ -1481,7 +1463,7 @@ BOOL LLPanelPreference::postBuild()
ctrl_full_screen->setCurrentByIndex(0);
}
}
-
+ */
LLFloaterPreference::initWindowSizeControls(this);
if (gSavedSettings.getBOOL("FullScreenAutoDetectAspectRatio"))
diff --git a/indra/newview/llfloaterproperties.cpp b/indra/newview/llfloaterproperties.cpp
index 8ac00832c9..ab281e9f9f 100644
--- a/indra/newview/llfloaterproperties.cpp
+++ b/indra/newview/llfloaterproperties.cpp
@@ -46,6 +46,7 @@
#include "llavataractions.h"
#include "llinventorymodel.h"
#include "lllineeditor.h"
+#include "llspinctrl.h"
#include "llradiogroup.h"
#include "llresmgr.h"
#include "roles_constants.h"
@@ -151,7 +152,7 @@ BOOL LLFloaterProperties::postBuild()
getChild<LLUICtrl>("CheckPurchase")->setCommitCallback(boost::bind(&LLFloaterProperties::onCommitSaleInfo, this));
getChild<LLUICtrl>("RadioSaleType")->setCommitCallback(boost::bind(&LLFloaterProperties::onCommitSaleType, this));
// "Price" label for edit
- getChild<LLUICtrl>("EditPrice")->setCommitCallback(boost::bind(&LLFloaterProperties::onCommitSaleInfo, this));
+ getChild<LLUICtrl>("Edit Cost")->setCommitCallback(boost::bind(&LLFloaterProperties::onCommitSaleInfo, this));
// The UI has been built, now fill in all the values
refresh();
@@ -195,7 +196,7 @@ void LLFloaterProperties::refresh()
"CheckNextOwnerTransfer",
"CheckPurchase",
"RadioSaleType",
- "EditPrice"
+ "Edit Cost"
};
for(size_t t=0; t<LL_ARRAY_SIZE(enableNames); ++t)
{
@@ -499,7 +500,7 @@ void LLFloaterProperties::refreshFromItem(LLInventoryItem* item)
childSetEnabled("RadioSaleType",is_complete && is_for_sale);
childSetEnabled("TextPrice",is_complete && is_for_sale);
- childSetEnabled("EditPrice",is_complete && is_for_sale);
+ childSetEnabled("Edit Cost",is_complete && is_for_sale);
}
else
{
@@ -513,11 +514,13 @@ void LLFloaterProperties::refreshFromItem(LLInventoryItem* item)
childSetEnabled("RadioSaleType",FALSE);
childSetEnabled("TextPrice",FALSE);
- childSetEnabled("EditPrice",FALSE);
+ childSetEnabled("Edit Cost",FALSE);
}
// Set values.
childSetValue("CheckPurchase", is_for_sale);
+ childSetEnabled("combobox sale copy", is_for_sale);
+ childSetEnabled("Edit Cost", is_for_sale);
childSetValue("CheckNextOwnerModify",LLSD(BOOL(next_owner_mask & PERM_MODIFY)));
childSetValue("CheckNextOwnerCopy",LLSD(BOOL(next_owner_mask & PERM_COPY)));
childSetValue("CheckNextOwnerTransfer",LLSD(BOOL(next_owner_mask & PERM_TRANSFER)));
@@ -528,12 +531,12 @@ void LLFloaterProperties::refreshFromItem(LLInventoryItem* item)
radioSaleType->setSelectedIndex((S32)sale_info.getSaleType() - 1);
S32 numerical_price;
numerical_price = sale_info.getSalePrice();
- childSetText("EditPrice",llformat("%d",numerical_price));
+ childSetText("Edit Cost",llformat("%d",numerical_price));
}
else
{
radioSaleType->setSelectedIndex(-1);
- childSetText("EditPrice",llformat("%d",0));
+ childSetText("Edit Cost",llformat("%d",0));
}
}
@@ -790,12 +793,13 @@ void LLFloaterProperties::updateSaleInfo()
sale_type = LLSaleInfo::FS_ORIGINAL;
}
- LLLineEditor* EditPrice = getChild<LLLineEditor>("EditPrice");
+ // LLLineEditor* EditPrice = getChild<LLLineEditor>("EditPrice");
+ LLSpinCtrl *EditPrice = getChild<LLSpinCtrl>("Edit Cost");
S32 price = -1;
if(EditPrice)
{
- price = atoi(EditPrice->getText().c_str());
+ price = EditPrice->getValue().asInteger();;
}
// Invalid data - turn off the sale
if (price < 0)
diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp
index 94d25aa0c8..a50bcaa098 100644
--- a/indra/newview/llfloaterregioninfo.cpp
+++ b/indra/newview/llfloaterregioninfo.cpp
@@ -2746,7 +2746,6 @@ BOOL LLPanelEstateCovenant::postBuild()
mEstateOwnerText = getChild<LLTextBox>("estate_owner_text");
mLastModifiedText = getChild<LLTextBox>("covenant_timestamp_text");
mEditor = getChild<LLViewerTextEditor>("covenant_editor");
- if (mEditor) mEditor->setHandleEditKeysDirectly(TRUE);
LLButton* reset_button = getChild<LLButton>("reset_covenant");
reset_button->setEnabled(gAgent.canManageEstate());
reset_button->setClickedCallback(LLPanelEstateCovenant::resetCovenantID, NULL);
diff --git a/indra/newview/llfloaterreporter.cpp b/indra/newview/llfloaterreporter.cpp
index 00cbc2f0c8..e2176350c9 100644
--- a/indra/newview/llfloaterreporter.cpp
+++ b/indra/newview/llfloaterreporter.cpp
@@ -48,6 +48,7 @@
#include "llversionviewer.h"
#include "message.h"
#include "v3math.h"
+#include "lltexteditor.h"
// viewer project includes
#include "llagent.h"
@@ -61,7 +62,6 @@
#include "llimview.h"
#include "lltextbox.h"
#include "lldispatcher.h"
-#include "llviewertexteditor.h"
#include "llviewerobject.h"
#include "llviewerregion.h"
#include "llcombobox.h"
diff --git a/indra/newview/llfloaterscriptdebug.cpp b/indra/newview/llfloaterscriptdebug.cpp
index c8690de68c..328fb6450e 100644
--- a/indra/newview/llfloaterscriptdebug.cpp
+++ b/indra/newview/llfloaterscriptdebug.cpp
@@ -80,9 +80,6 @@ BOOL LLFloaterScriptDebug::postBuild()
if (mTabContainer)
{
- // *FIX: apparantly fails for tab containers?
-// mTabContainer->requires<LLFloater>("all_scripts");
-// mTabContainer->checkRequirements();
return TRUE;
}
diff --git a/indra/newview/llfloatersettingsdebug.cpp b/indra/newview/llfloatersettingsdebug.cpp
index 53b40f8b7a..616e9bac35 100644
--- a/indra/newview/llfloatersettingsdebug.cpp
+++ b/indra/newview/llfloatersettingsdebug.cpp
@@ -39,6 +39,7 @@
#include "llspinctrl.h"
#include "llcolorswatch.h"
#include "llviewercontrol.h"
+#include "lltexteditor.h"
LLFloaterSettingsDebug::LLFloaterSettingsDebug(const LLSD& key)
diff --git a/indra/newview/llfloatersettingsdebug.h b/indra/newview/llfloatersettingsdebug.h
index e7dda3a5f4..65803fbf70 100644
--- a/indra/newview/llfloatersettingsdebug.h
+++ b/indra/newview/llfloatersettingsdebug.h
@@ -35,7 +35,6 @@
#include "llcontrol.h"
#include "llfloater.h"
-#include "lltexteditor.h"
class LLFloaterSettingsDebug
: public LLFloater
@@ -60,7 +59,7 @@ private:
virtual ~LLFloaterSettingsDebug();
protected:
- LLTextEditor* mComment;
+ class LLTextEditor* mComment;
};
#endif //LLFLOATERDEBUGSETTINGS_H
diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp
index 371dfa50cd..814395395c 100644
--- a/indra/newview/llfloatersnapshot.cpp
+++ b/indra/newview/llfloatersnapshot.cpp
@@ -41,7 +41,6 @@
#include "llcallbacklist.h"
#include "llcriticaldamp.h"
#include "llui.h"
-#include "llviewertexteditor.h"
#include "llfocusmgr.h"
#include "llbutton.h"
#include "llcombobox.h"
diff --git a/indra/newview/llfloatertos.cpp b/indra/newview/llfloatertos.cpp
index 1e84902594..f61d5cb077 100644
--- a/indra/newview/llfloatertos.cpp
+++ b/indra/newview/llfloatertos.cpp
@@ -39,7 +39,6 @@
#include "llappviewer.h"
#include "llstartup.h"
#include "llviewerstats.h"
-#include "llviewertexteditor.h"
#include "llviewerwindow.h"
// linden library includes
@@ -118,12 +117,10 @@ BOOL LLFloaterTOS::postBuild()
if (hasChild("tos_text"))
{
// this displays the critical message
- LLTextEditor *editor = getChild<LLTextEditor>("tos_text");
- editor->setHandleEditKeysDirectly( TRUE );
- editor->setEnabled( FALSE );
- editor->setWordWrap(TRUE);
- editor->setFocus(TRUE);
- editor->setValue(LLSD(mMessage));
+ LLUICtrl *tos_text = getChild<LLUICtrl>("tos_text");
+ tos_text->setEnabled( FALSE );
+ tos_text->setFocus(TRUE);
+ tos_text->setValue(LLSD(mMessage));
return TRUE;
}
@@ -133,7 +130,7 @@ BOOL LLFloaterTOS::postBuild()
tos_agreement->setEnabled( false );
// hide the SL text widget if we're displaying TOS with using a browser widget.
- LLTextEditor *editor = getChild<LLTextEditor>("tos_text");
+ LLUICtrl *editor = getChild<LLUICtrl>("tos_text");
editor->setVisible( FALSE );
LLWebBrowserCtrl* web_browser = getChild<LLWebBrowserCtrl>("tos_html");
diff --git a/indra/newview/llfloateruipreview.cpp b/indra/newview/llfloateruipreview.cpp
index e5b4657742..2eb4e7580e 100644
--- a/indra/newview/llfloateruipreview.cpp
+++ b/indra/newview/llfloateruipreview.cpp
@@ -747,8 +747,8 @@ void LLFloaterUIPreview::displayFloater(BOOL click, S32 ID, bool save)
panel->setUseBoundingRect(TRUE); // enable the use of its outer bounding rect (normally disabled because it's O(n) on the number of sub-elements)
panel->updateBoundingRect(); // update bounding rect
LLRect bounding_rect = panel->getBoundingRect(); // get the bounding rect
- LLRect panel_rect = panel->getRect(); // get the panel's rect
- LLRect new_rect = panel_rect.unionWith(bounding_rect); // union them to make sure we get the biggest one possible
+ LLRect new_rect = panel->getRect(); // get the panel's rect
+ new_rect.unionWith(bounding_rect); // union them to make sure we get the biggest one possible
(*floaterp)->reshape(new_rect.getWidth(), new_rect.getHeight() + floater_header_size); // reshape floater to match the union rect's dimensions
panel->reshape(new_rect.getWidth(), new_rect.getHeight()); // reshape panel to match the union rect's dimensions as well (both are needed)
(*floaterp)->addChild(panel); // add panel as child
@@ -1274,7 +1274,7 @@ void LLFloaterUIPreview::highlightChangedElements()
BOOL failed = FALSE;
for(token_iter = tokens.begin(); token_iter != tokens.end(); ++token_iter)
{
- element = element->getChild<LLView>(*token_iter,FALSE,FALSE); // try to find element: don't recur, and don't create if missing
+ element = element->findChild<LLView>(*token_iter,FALSE); // try to find element: don't recur, and don't create if missing
// if we still didn't find it...
if(NULL == element)
diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp
index 4a5a775a05..d1f0f94fa0 100644
--- a/indra/newview/llfolderview.cpp
+++ b/indra/newview/llfolderview.cpp
@@ -176,7 +176,7 @@ LLFolderView::LLFolderView(const Params& p)
mSourceID(p.task_id),
mRenameItem( NULL ),
mNeedsScroll( FALSE ),
- mLastScrollItem( NULL ),
+ mPinningSelectedItem(FALSE),
mNeedsAutoSelect( FALSE ),
mAutoSelectOverride(FALSE),
mNeedsAutoRename(FALSE),
@@ -191,7 +191,6 @@ LLFolderView::LLFolderView(const Params& p)
mDragAndDropThisFrame(FALSE),
mCallbackRegistrar(NULL),
mParentPanel(p.parent_panel)
-
{
LLRect rect = p.rect;
LLRect new_rect(rect.mLeft, rect.mBottom + getRect().getHeight(), rect.mLeft + getRect().getWidth(), rect.mBottom);
@@ -290,11 +289,13 @@ void LLFolderView::checkTreeResortForModelChanged()
}
}
+static LLFastTimer::DeclareTimer FTM_SORT("Sort Inventory");
+
void LLFolderView::setSortOrder(U32 order)
{
if (order != mSortOrder)
{
- LLFastTimer t(LLFastTimer::FTM_SORT);
+ LLFastTimer t(FTM_SORT);
mSortOrder = order;
for (folders_t::iterator iter = mFolders.begin();
@@ -359,10 +360,12 @@ void LLFolderView::setOpenArrangeRecursively(BOOL openitem, ERecurseType recurse
mIsOpen = TRUE;
}
+static LLFastTimer::DeclareTimer FTM_ARRANGE("Arrange");
+
// This view grows and shinks to enclose all of its children items and folders.
S32 LLFolderView::arrange( S32* unused_width, S32* unused_height, S32 filter_generation )
{
- LLFastTimer t2(LLFastTimer::FTM_ARRANGE);
+ LLFastTimer t2(FTM_ARRANGE);
filter_generation = mFilter->getMinRequiredGeneration();
mMinWidth = 0;
@@ -431,17 +434,13 @@ S32 LLFolderView::arrange( S32* unused_width, S32* unused_height, S32 filter_gen
}
}
- S32 dummy_s32;
- BOOL dummy_bool;
- S32 min_width;
- mScrollContainer->calcVisibleSize( &min_width, &dummy_s32, &dummy_bool, &dummy_bool);
- reshape( llmax(min_width, total_width), running_height );
+ LLRect scroll_rect = mScrollContainer->getContentWindowRect();
+ reshape( llmax(scroll_rect.getWidth(), total_width), running_height );
- S32 new_min_width;
- mScrollContainer->calcVisibleSize( &new_min_width, &dummy_s32, &dummy_bool, &dummy_bool);
- if (new_min_width != min_width)
+ LLRect new_scroll_rect = mScrollContainer->getContentWindowRect();
+ if (new_scroll_rect.getWidth() != scroll_rect.getWidth())
{
- reshape( llmax(min_width, total_width), running_height );
+ reshape( llmax(scroll_rect.getWidth(), total_width), running_height );
}
// move item renamer text field to item's new position
@@ -456,9 +455,11 @@ const std::string LLFolderView::getFilterSubString(BOOL trim)
return mFilter->getFilterSubString(trim);
}
+static LLFastTimer::DeclareTimer FTM_FILTER("Filter Inventory");
+
void LLFolderView::filter( LLInventoryFilter& filter )
{
- LLFastTimer t2(LLFastTimer::FTM_FILTER);
+ LLFastTimer t2(FTM_FILTER);
filter.setFilterCount(llclamp(gSavedSettings.getS32("FilterItemsPerFrame"), 1, 5000));
if (getCompletedFilterGeneration() < filter.getCurrentGeneration())
@@ -467,18 +468,20 @@ void LLFolderView::filter( LLInventoryFilter& filter )
mMinWidth = 0;
LLFolderViewFolder::filter(filter);
}
+ else
+ {
+ mFiltered = TRUE;
+ }
}
void LLFolderView::reshape(S32 width, S32 height, BOOL called_from_parent)
{
- S32 min_width = 0;
- S32 dummy_height;
- BOOL dummy_bool;
+ LLRect scroll_rect;
if (mScrollContainer)
{
- mScrollContainer->calcVisibleSize( &min_width, &dummy_height, &dummy_bool, &dummy_bool);
+ scroll_rect = mScrollContainer->getContentWindowRect();
}
- width = llmax(mMinWidth, min_width);
+ width = llmax(mMinWidth, scroll_rect.getWidth());
LLView::reshape(width, height, called_from_parent);
mReshapeSignal(mSelectedItems, FALSE);
@@ -1127,7 +1130,9 @@ void LLFolderView::autoOpenItem( LLFolderViewFolder* item )
mAutoOpenItems.push(item);
item->setOpen(TRUE);
- scrollToShowItem(item);
+ LLRect content_rect = mScrollContainer->getContentWindowRect();
+ LLRect constraint_rect(0,content_rect.getHeight(), content_rect.getWidth(), 0);
+ scrollToShowItem(item, constraint_rect);
}
void LLFolderView::closeAutoOpenedFolders()
@@ -1791,49 +1796,41 @@ void LLFolderView::scrollToShowSelection()
// If the parent is scroll containter, scroll it to make the selection
// is maximally visible.
-void LLFolderView::scrollToShowItem(LLFolderViewItem* item)
+void LLFolderView::scrollToShowItem(LLFolderViewItem* item, const LLRect& constraint_rect)
{
+ if (!mScrollContainer) return;
+
// don't scroll to items when mouse is being used to scroll/drag and drop
if (gFocusMgr.childHasMouseCapture(mScrollContainer))
{
mNeedsScroll = FALSE;
return;
}
- if(item && mScrollContainer)
+
+ // if item exists and is in visible portion of parent folder...
+ if(item)
{
- LLRect local_rect = item->getRect();
+ LLRect local_rect = item->getLocalRect();
LLRect item_scrolled_rect; // item position relative to display area of scroller
+ LLRect visible_doc_rect = mScrollContainer->getVisibleContentRect();
S32 icon_height = mIcon.isNull() ? 0 : mIcon->getHeight();
S32 label_height = llround(sFont->getLineHeight());
// when navigating with keyboard, only move top of folders on screen, otherwise show whole folder
- S32 max_height_to_show = gFocusMgr.childHasKeyboardFocus(this) ? (llmax( icon_height, label_height ) + ICON_PAD) : local_rect.getHeight();
- item->localPointToOtherView(item->getIndentation(), llmax(0, local_rect.getHeight() - max_height_to_show), &item_scrolled_rect.mLeft, &item_scrolled_rect.mBottom, mScrollContainer);
- item->localPointToOtherView(local_rect.getWidth(), local_rect.getHeight(), &item_scrolled_rect.mRight, &item_scrolled_rect.mTop, mScrollContainer);
-
- item_scrolled_rect.mRight = llmin(item_scrolled_rect.mLeft + MIN_ITEM_WIDTH_VISIBLE, item_scrolled_rect.mRight);
- LLCoordGL scroll_offset(-mScrollContainer->getBorderWidth() - item_scrolled_rect.mLeft,
- mScrollContainer->getRect().getHeight() - item_scrolled_rect.mTop - 1);
-
- S32 max_scroll_offset = getVisibleRect().getHeight() - item_scrolled_rect.getHeight();
- if (item != mLastScrollItem || // if we're scrolling to focus on a new item
- // or the item has just appeared on screen and it wasn't onscreen before
- (scroll_offset.mY > 0 && scroll_offset.mY < max_scroll_offset &&
- (mLastScrollOffset.mY < 0 || mLastScrollOffset.mY > max_scroll_offset)))
- {
- // we now have a position on screen that we want to keep stable
- // offset of selection relative to top of visible area
- mLastScrollOffset = scroll_offset;
- mLastScrollItem = item;
- }
+ S32 max_height_to_show = mScrollContainer->hasFocus() ? (llmax( icon_height, label_height ) + ICON_PAD) : local_rect.getHeight();
+
+ // get portion of item that we want to see...
+ LLRect item_local_rect = LLRect(item->getIndentation(),
+ local_rect.getHeight(),
+ llmin(MIN_ITEM_WIDTH_VISIBLE, local_rect.getWidth()),
+ llmax(0, local_rect.getHeight() - max_height_to_show));
+
+ LLRect item_doc_rect;
+
+ item->localRectToOtherView(item_local_rect, &item_doc_rect, this);
- mScrollContainer->scrollToShowRect( item_scrolled_rect, mLastScrollOffset );
+ mScrollContainer->scrollToShowRect( item_doc_rect, constraint_rect );
- // after scrolling, store new offset
- // in case we don't have room to maintain the original position
- LLCoordGL new_item_left_top;
- item->localPointToOtherView(item->getIndentation(), item->getRect().getHeight(), &new_item_left_top.mX, &new_item_left_top.mY, mScrollContainer);
- mLastScrollOffset.set(-mScrollContainer->getBorderWidth() - new_item_left_top.mX, mScrollContainer->getRect().getHeight() - new_item_left_top.mY - 1);
}
}
@@ -1973,10 +1970,13 @@ bool LLFolderView::doToSelected(LLInventoryModel* model, const LLSD& userdata)
return true;
}
+static LLFastTimer::DeclareTimer FTM_AUTO_SELECT("Open and Select");
+static LLFastTimer::DeclareTimer FTM_INVENTORY("Inventory");
+
// Main idle routine
void LLFolderView::doIdle()
{
- LLFastTimer t2(LLFastTimer::FTM_INVENTORY);
+ LLFastTimer t2(FTM_INVENTORY);
BOOL debug_filters = gSavedSettings.getBOOL("DebugInventoryFilters");
if (debug_filters != getDebugFilters())
@@ -1990,7 +1990,7 @@ void LLFolderView::doIdle()
mFilter->isNotDefault();
mNeedsAutoSelect = filter_modified_and_active &&
!(gFocusMgr.childHasKeyboardFocus(this) || gFocusMgr.getMouseCapture());
-
+
// filter to determine visiblity before arranging
filterFromRoot();
@@ -2001,7 +2001,7 @@ void LLFolderView::doIdle()
// potentially changed
if (mNeedsAutoSelect)
{
- LLFastTimer t3(LLFastTimer::FTM_AUTO_SELECT);
+ LLFastTimer t3(FTM_AUTO_SELECT);
// select new item only if a filtered item not currently selected
LLFolderViewItem* selected_itemp = mSelectedItems.empty() ? NULL : mSelectedItems.back();
if ((!selected_itemp || !selected_itemp->getFiltered()) && !mAutoSelectOverride)
@@ -2013,6 +2013,59 @@ void LLFolderView::doIdle()
scrollToShowSelection();
}
+ // during filtering process, try to pin selected item's location on screen
+ // this will happen when searching your inventory and when new items arrive
+ if (filter_modified_and_active)
+ {
+ // calculate rectangle to pin item to at start of animated rearrange
+ if (!mPinningSelectedItem && !mSelectedItems.empty())
+ {
+ // lets pin it!
+ mPinningSelectedItem = TRUE;
+
+ LLRect visible_content_rect = mScrollContainer->getVisibleContentRect();
+ LLFolderViewItem* selected_item = mSelectedItems.back();
+
+ LLRect item_rect;
+ selected_item->localRectToOtherView(selected_item->getLocalRect(), &item_rect, this);
+ // if item is visible in scrolled region
+ if (visible_content_rect.overlaps(item_rect))
+ {
+ // then attempt to keep it in same place on screen
+ mScrollConstraintRect = item_rect;
+ mScrollConstraintRect.translate(-visible_content_rect.mLeft, -visible_content_rect.mBottom);
+ }
+ else
+ {
+ // otherwise we just want it onscreen somewhere
+ LLRect content_rect = mScrollContainer->getContentWindowRect();
+ mScrollConstraintRect.setOriginAndSize(0, 0, content_rect.getWidth(), content_rect.getHeight());
+ }
+ }
+ }
+ else
+ {
+ // stop pinning selected item after folders stop rearranging
+ if (!needsArrange())
+ {
+ mPinningSelectedItem = FALSE;
+ }
+ }
+
+ LLRect constraint_rect;
+ if (mPinningSelectedItem)
+ {
+ // use last known constraint rect for pinned item
+ constraint_rect = mScrollConstraintRect;
+ }
+ else
+ {
+ // during normal use (page up/page down, etc), just try to fit item on screen
+ LLRect content_rect = mScrollContainer->getContentWindowRect();
+ constraint_rect.setOriginAndSize(0, 0, content_rect.getWidth(), content_rect.getHeight());
+ }
+
+
BOOL is_visible = isInVisibleChain();
if ( is_visible )
@@ -2026,10 +2079,10 @@ void LLFolderView::doIdle()
if (mSelectedItems.size() && mNeedsScroll)
{
- scrollToShowItem(mSelectedItems.back());
+ scrollToShowItem(mSelectedItems.back(), constraint_rect);
// continue scrolling until animated layout change is done
- if (getCompletedFilterGeneration() >= mFilter->getMinRequiredGeneration() &&
- (!needsArrange() || !is_visible))
+ if (!filter_modified_and_active
+ && (!needsArrange() || !is_visible))
{
mNeedsScroll = FALSE;
}
@@ -2077,15 +2130,13 @@ void LLFolderView::updateRenamerPosition()
screenPointToLocal( x, y, &x, &y );
mRenamer->setOrigin( x, y );
- S32 scroller_height = 0;
- S32 scroller_width = gViewerWindow->getWindowWidth();
- BOOL dummy_bool;
+ LLRect scroller_rect(0, 0, gViewerWindow->getWindowWidth(), 0);
if (mScrollContainer)
{
- mScrollContainer->calcVisibleSize( &scroller_width, &scroller_height, &dummy_bool, &dummy_bool);
+ scroller_rect = mScrollContainer->getContentWindowRect();
}
- S32 width = llmax(llmin(mRenameItem->getRect().getWidth() - x, scroller_width - x - getRect().mLeft), MINIMUM_RENAMER_WIDTH);
+ S32 width = llmax(llmin(mRenameItem->getRect().getWidth() - x, scroller_rect.getWidth() - x - getRect().mLeft), MINIMUM_RENAMER_WIDTH);
S32 height = llfloor(sFont->getLineHeight() + RENAME_HEIGHT_PAD);
mRenamer->reshape( width, height, TRUE );
}
diff --git a/indra/newview/llfolderview.h b/indra/newview/llfolderview.h
index 8d9d52cd17..a05dec3193 100644
--- a/indra/newview/llfolderview.h
+++ b/indra/newview/llfolderview.h
@@ -240,7 +240,7 @@ public:
virtual void deleteAllChildren();
void scrollToShowSelection();
- void scrollToShowItem(LLFolderViewItem* item);
+ void scrollToShowItem(LLFolderViewItem* item, const LLRect& constraint_rect);
void setScrollContainer( LLScrollContainer* parent ) { mScrollContainer = parent; }
LLRect getVisibleRect();
@@ -299,8 +299,8 @@ protected:
LLLineEditor* mRenamer;
BOOL mNeedsScroll;
- LLFolderViewItem* mLastScrollItem;
- LLCoordGL mLastScrollOffset;
+ BOOL mPinningSelectedItem;
+ LLRect mScrollConstraintRect;
BOOL mNeedsAutoSelect;
BOOL mAutoSelectOverride;
BOOL mNeedsAutoRename;
diff --git a/indra/newview/llfolderviewitem.cpp b/indra/newview/llfolderviewitem.cpp
index de6a1a097d..8961508bcc 100644
--- a/indra/newview/llfolderviewitem.cpp
+++ b/indra/newview/llfolderviewitem.cpp
@@ -233,7 +233,7 @@ void LLFolderViewItem::refreshFromListener()
// temporary attempt to display the inventory folder in the user locale.
if (LLAssetType::lookupIsProtectedCategoryType(preferred_type))
{
- mLabel = LLTrans::getString("InvFolder " + mLabel);
+ LLTrans::findString(mLabel, "InvFolder " + mLabel);
};
setIcon(mListener->getIcon());
diff --git a/indra/newview/llhudmanager.cpp b/indra/newview/llhudmanager.cpp
index 8588de0fa0..bdb8dadfb4 100644
--- a/indra/newview/llhudmanager.cpp
+++ b/indra/newview/llhudmanager.cpp
@@ -62,10 +62,11 @@ LLHUDManager::~LLHUDManager()
{
}
+static LLFastTimer::DeclareTimer FTM_HUD_EFFECTS("Hud Effects");
void LLHUDManager::updateEffects()
{
- LLFastTimer ftm(LLFastTimer::FTM_HUD_EFFECTS);
+ LLFastTimer ftm(FTM_HUD_EFFECTS);
S32 i;
for (i = 0; i < mHUDEffects.count(); i++)
{
diff --git a/indra/newview/llhudobject.cpp b/indra/newview/llhudobject.cpp
index bdff492948..dc55aba0db 100644
--- a/indra/newview/llhudobject.cpp
+++ b/indra/newview/llhudobject.cpp
@@ -254,10 +254,12 @@ LLHUDEffect *LLHUDObject::addHUDEffect(const U8 type)
return hud_objectp;
}
+static LLFastTimer::DeclareTimer FTM_HUD_UPDATE("Update Hud");
+
// static
void LLHUDObject::updateAll()
{
- LLFastTimer ftm(LLFastTimer::FTM_HUD_UPDATE);
+ LLFastTimer ftm(FTM_HUD_UPDATE);
LLHUDText::updateAll();
LLHUDIcon::updateAll();
sortObjects();
diff --git a/indra/newview/llhudtext.cpp b/indra/newview/llhudtext.cpp
index c71262c311..8086400493 100644
--- a/indra/newview/llhudtext.cpp
+++ b/indra/newview/llhudtext.cpp
@@ -957,7 +957,7 @@ void LLHUDText::updateAll()
{
continue;
}
- if (src_textp->mSoftScreenRect.rectInRect(&dst_textp->mSoftScreenRect))
+ if (src_textp->mSoftScreenRect.overlaps(dst_textp->mSoftScreenRect))
{
LLRectf intersect_rect = src_textp->mSoftScreenRect;
intersect_rect.intersectWith(dst_textp->mSoftScreenRect);
diff --git a/indra/newview/llimpanel.cpp b/indra/newview/llimpanel.cpp
index 0b4e0f9317..72e2bb02d5 100644
--- a/indra/newview/llimpanel.cpp
+++ b/indra/newview/llimpanel.cpp
@@ -1097,66 +1097,58 @@ BOOL LLFloaterIMPanel::postBuild()
mVisibleSignal.connect(boost::bind(&LLFloaterIMPanel::onVisibilityChange, this, _2));
- requires<LLLineEditor>("chat_editor");
- requires<LLTextEditor>("im_history");
-
- if (checkRequirements())
- {
- mInputEditor = getChild<LLLineEditor>("chat_editor");
- mInputEditor->setFocusReceivedCallback( onInputEditorFocusReceived, this );
- mInputEditor->setFocusLostCallback( onInputEditorFocusLost, this );
- mInputEditor->setKeystrokeCallback( onInputEditorKeystroke, this );
- mInputEditor->setCommitCallback( onCommitChat, this );
- mInputEditor->setCommitOnFocusLost( FALSE );
- mInputEditor->setRevertOnEsc( FALSE );
- mInputEditor->setReplaceNewlinesWithSpaces( FALSE );
-
- childSetAction("profile_callee_btn", onClickProfile, this);
- childSetAction("group_info_btn", onClickGroupInfo, this);
+ mInputEditor = getChild<LLLineEditor>("chat_editor");
+ mInputEditor->setFocusReceivedCallback( onInputEditorFocusReceived, this );
+ mInputEditor->setFocusLostCallback( onInputEditorFocusLost, this );
+ mInputEditor->setKeystrokeCallback( onInputEditorKeystroke, this );
+ mInputEditor->setCommitCallback( onCommitChat, this );
+ mInputEditor->setCommitOnFocusLost( FALSE );
+ mInputEditor->setRevertOnEsc( FALSE );
+ mInputEditor->setReplaceNewlinesWithSpaces( FALSE );
- childSetAction("start_call_btn", onClickStartCall, this);
- childSetAction("end_call_btn", onClickEndCall, this);
- childSetAction("send_btn", onClickSend, this);
- childSetAction("toggle_active_speakers_btn", onClickToggleActiveSpeakers, this);
+ childSetAction("profile_callee_btn", onClickProfile, this);
+ childSetAction("group_info_btn", onClickGroupInfo, this);
- childSetAction("moderator_kick_speaker", onKickSpeaker, this);
- //LLButton* close_btn = getChild<LLButton>("close_btn");
- //close_btn->setClickedCallback(&LLFloaterIMPanel::onClickClose, this);
+ childSetAction("start_call_btn", onClickStartCall, this);
+ childSetAction("end_call_btn", onClickEndCall, this);
+ childSetAction("send_btn", onClickSend, this);
+ childSetAction("toggle_active_speakers_btn", onClickToggleActiveSpeakers, this);
- mHistoryEditor = getChild<LLViewerTextEditor>("im_history");
- mHistoryEditor->setParseHTML(TRUE);
- mHistoryEditor->setParseHighlights(TRUE);
+ childSetAction("moderator_kick_speaker", onKickSpeaker, this);
+ //LLButton* close_btn = getChild<LLButton>("close_btn");
+ //close_btn->setClickedCallback(&LLFloaterIMPanel::onClickClose, this);
- if ( IM_SESSION_GROUP_START == mDialog )
- {
- childSetEnabled("profile_btn", FALSE);
- }
-
- if(!mProfileButtonEnabled)
- {
- childSetEnabled("profile_callee_btn", FALSE);
- }
+ mHistoryEditor = getChild<LLViewerTextEditor>("im_history");
+ mHistoryEditor->setParseHTML(TRUE);
+ mHistoryEditor->setParseHighlights(TRUE);
- sTitleString = getString("title_string");
- sTypingStartString = getString("typing_start_string");
- sSessionStartString = getString("session_start_string");
+ if ( IM_SESSION_GROUP_START == mDialog )
+ {
+ childSetEnabled("profile_btn", FALSE);
+ }
+
+ if(!mProfileButtonEnabled)
+ {
+ childSetEnabled("profile_callee_btn", FALSE);
+ }
- if (mSpeakerPanel)
- {
- mSpeakerPanel->refreshSpeakers();
- }
+ sTitleString = getString("title_string");
+ sTypingStartString = getString("typing_start_string");
+ sSessionStartString = getString("session_start_string");
- if (mDialog == IM_NOTHING_SPECIAL)
- {
- childSetAction("mute_btn", onClickMuteVoice, this);
- childSetCommitCallback("speaker_volume", onVolumeChange, this);
- }
+ if (mSpeakerPanel)
+ {
+ mSpeakerPanel->refreshSpeakers();
+ }
- setDefaultBtn("send_btn");
- return TRUE;
+ if (mDialog == IM_NOTHING_SPECIAL)
+ {
+ childSetAction("mute_btn", onClickMuteVoice, this);
+ childSetCommitCallback("speaker_volume", onVolumeChange, this);
}
- return FALSE;
+ setDefaultBtn("send_btn");
+ return TRUE;
}
void* LLFloaterIMPanel::createSpeakersPanel(void* data)
@@ -1385,8 +1377,7 @@ void LLFloaterIMPanel::addHistoryLine(const std::string &utf8msg, const LLColor4
else
{
// Convert the name to a hotlink and add to message.
- const LLStyleSP &source_style = LLStyleMap::instance().lookupAgent(source);
- mHistoryEditor->appendStyledText(name + separator_string, false, prepend_newline, source_style);
+ mHistoryEditor->appendStyledText(name + separator_string, false, prepend_newline, LLStyleMap::instance().lookupAgent(source));
}
prepend_newline = false;
}
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index 6ad483a2f1..e3902bffa0 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -69,7 +69,6 @@
#include "llviewerwindow.h"
#include "llnotify.h"
#include "llviewerregion.h"
-#include "llviewertexteditor.h"
#include "lltrans.h"
#include "llfirstuse.h"
@@ -847,8 +846,13 @@ BOOL LLIncomingCallDialog::postBuild()
EInstantMessage type = (EInstantMessage)mPayload["type"].asInteger();
std::string call_type = getString("VoiceInviteP2P");
- std::string caller_name = mPayload["caller_name"].asString() + " ";
- setTitle(caller_name + call_type);
+ std::string caller_name = mPayload["caller_name"].asString();
+ if (caller_name == "anonymous")
+ {
+ caller_name = getString("anonymous");
+ }
+
+ setTitle(caller_name + " " + call_type);
// If it is not a P2P invite, then it's an AdHoc invite
if ( type != IM_SESSION_P2P_INVITE )
@@ -856,8 +860,8 @@ BOOL LLIncomingCallDialog::postBuild()
call_type = getString("VoiceInviteAdHoc");
}
- LLViewerTextEditor* text = getChild<LLViewerTextEditor>("caller name");
- text->setEmbeddedText(caller_name + call_type);
+ LLUICtrl* caller_name_widget = getChild<LLUICtrl>("caller name");
+ caller_name_widget->setValue(caller_name + " " + call_type);
LLAvatarIconCtrl* icon = getChild<LLAvatarIconCtrl>("avatar_icon");
icon->setValue(caller_id);
diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp
index 54802ee762..efa97de692 100644
--- a/indra/newview/llinventorybridge.cpp
+++ b/indra/newview/llinventorybridge.cpp
@@ -3684,8 +3684,8 @@ void LLObjectBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
// commented out for DEV-32347
//items.push_back(std::string("Restore to Last Position"));
- LLMenuGL* attach_menu = menu.getChildMenuByName("Attach To", TRUE);
- LLMenuGL* attach_hud_menu = menu.getChildMenuByName("Attach To HUD", TRUE);
+ LLMenuGL* attach_menu = menu.findChildMenuByName("Attach To", TRUE);
+ LLMenuGL* attach_hud_menu = menu.findChildMenuByName("Attach To HUD", TRUE);
LLVOAvatar *avatarp = gAgent.getAvatarObject();
if (attach_menu
&& (attach_menu->getChildCount() == 0)
diff --git a/indra/newview/lllocationinputctrl.cpp b/indra/newview/lllocationinputctrl.cpp
index cdfb15fd71..63a40e40a0 100644
--- a/indra/newview/lllocationinputctrl.cpp
+++ b/indra/newview/lllocationinputctrl.cpp
@@ -227,7 +227,7 @@ LLLocationInputCtrl::LLLocationInputCtrl(const LLLocationInputCtrl::Params& p)
llwarns << "Error loading navigation bar context menu" << llendl;
}
- getTextEntry()->setRightClickedCallback(boost::bind(&LLLocationInputCtrl::onTextEditorRightClicked,this,_2,_3,_4));
+ getTextEntry()->setRightMouseUpCallback(boost::bind(&LLLocationInputCtrl::onTextEditorRightClicked,this,_2,_3,_4));
updateWidgetlayout();
// - Make the "Add landmark" button updated when either current parcel gets changed
diff --git a/indra/newview/llnavigationbar.cpp b/indra/newview/llnavigationbar.cpp
index 9a66507eae..713c44d366 100644
--- a/indra/newview/llnavigationbar.cpp
+++ b/indra/newview/llnavigationbar.cpp
@@ -103,7 +103,7 @@ const std::string LLTeleportHistoryMenuItem::ICON_IMG_FORWARD("teleport_history_
LLTeleportHistoryMenuItem::Params::Params(EType type, std::string title)
{
item_type(type);
- font.name("SansSerif");
+ font.name("SANSSERIF");
if (type == TYPE_CURRENT)
font.style("BOLD");
@@ -123,7 +123,6 @@ LLTeleportHistoryMenuItem::LLTeleportHistoryMenuItem(const Params& p)
icon_params.rect(LLRect(0, ICON_HEIGHT, ICON_WIDTH, 0));
icon_params.mouse_opaque(false);
icon_params.follows.flags(FOLLOWS_LEFT | FOLLOWS_TOP);
- icon_params.tab_stop(false);
icon_params.visible(false);
mArrowIcon = LLUICtrlFactory::create<LLIconCtrl> (icon_params);
diff --git a/indra/newview/llnearbychat.cpp b/indra/newview/llnearbychat.cpp
index 32d7bc94ff..da9f50a2bc 100644
--- a/indra/newview/llnearbychat.cpp
+++ b/indra/newview/llnearbychat.cpp
@@ -208,8 +208,7 @@ void nearbychat_add_timestamped_line(LLViewerTextEditor* edit, LLChat chat, cons
{
std::string start_line = line.substr(0, chat.mFromName.length() + 1);
line = line.substr(chat.mFromName.length() + 1);
- const LLStyleSP &sourceStyle = LLStyleMap::instance().lookup(chat.mFromID,chat.mURL);
- edit->appendStyledText(start_line, false, prepend_newline, sourceStyle);
+ edit->appendStyledText(start_line, false, prepend_newline, LLStyleMap::instance().lookup(chat.mFromID,chat.mURL));
prepend_newline = false;
}
edit->appendColoredText(line, false, prepend_newline, color);
@@ -343,6 +342,7 @@ BOOL LLNearbyChat::handleMouseDown (S32 x, S32 y, MASK mask)
S32 local_y = caption_local_y - nearby_speakers_btn->getRect().mBottom;
if(nearby_speakers_btn->pointInView(local_x, local_y))
{
+
onNearbySpeakers();
bringToFront( x, y );
return true;
diff --git a/indra/newview/llnearbychatbar.cpp b/indra/newview/llnearbychatbar.cpp
index 50e31e85e4..0696d41732 100644
--- a/indra/newview/llnearbychatbar.cpp
+++ b/indra/newview/llnearbychatbar.cpp
@@ -65,7 +65,7 @@ LLGestureComboBox::LLGestureComboBox(const LLGestureComboBox::Params& p)
, mGestureLabelTimer()
, mLabel(p.label)
{
- setCommitCallback(boost::bind(&LLGestureComboBox::onCommitGesture, this, _1));
+ setCommitCallback(boost::bind(&LLGestureComboBox::onCommitGesture, this));
// now register us as observer since we have a place to put the results
LLGestureManager::instance().addObserver(this);
@@ -82,41 +82,33 @@ LLGestureComboBox::~LLGestureComboBox()
void LLGestureComboBox::refreshGestures()
{
//store current selection so we can maintain it
- std::string cur_gesture = getValue().asString();
+ LLSD cur_gesture = getValue();
selectFirstItem();
// clear
clearRows();
+ mGestures.clear();
- // collect list of unique gestures
- std::map <std::string, BOOL> unique;
LLGestureManager::item_map_t::iterator it;
+ LLSD::Integer idx(0);
for (it = LLGestureManager::instance().mActive.begin(); it != LLGestureManager::instance().mActive.end(); ++it)
{
LLMultiGesture* gesture = (*it).second;
if (gesture)
{
- if (!gesture->mTrigger.empty())
- {
- unique[gesture->mTrigger] = TRUE;
- }
+ addSimpleElement(gesture->mName, ADD_BOTTOM, LLSD(idx));
+ mGestures.push_back(gesture);
+ idx++;
}
}
- // add unique gestures
- std::map <std::string, BOOL>::iterator it2;
- for (it2 = unique.begin(); it2 != unique.end(); ++it2)
- {
- addSimpleElement((*it2).first);
- }
-
sortByName();
// Insert label after sorting, at top, with separator below it
addSeparator(ADD_TOP);
addSimpleElement(mLabel, ADD_TOP);
- if (!cur_gesture.empty())
+ if (cur_gesture.isDefined())
{
- selectByValue(LLSD(cur_gesture));
+ selectByValue(cur_gesture);
}
else
{
@@ -124,7 +116,7 @@ void LLGestureComboBox::refreshGestures()
}
}
-void LLGestureComboBox::onCommitGesture(LLUICtrl* ctrl)
+void LLGestureComboBox::onCommitGesture()
{
LLCtrlListInterface* gestures = getListInterface();
if (gestures)
@@ -134,19 +126,16 @@ void LLGestureComboBox::onCommitGesture(LLUICtrl* ctrl)
{
return;
}
- const std::string& trigger = gestures->getSelectedValue().asString();
- // pretend the user chatted the trigger string, to invoke
- // substitution and logging.
- std::string text(trigger);
- std::string revised_text;
- LLGestureManager::instance().triggerAndReviseString(text, &revised_text);
-
- revised_text = utf8str_trim(revised_text);
- if (!revised_text.empty())
+ index = gestures->getSelectedValue().asInteger();
+ LLMultiGesture* gesture = mGestures.at(index);
+ if(gesture)
{
- // Don't play nodding animation
- LLNearbyChatBar::sendChatFromViewer(revised_text, CHAT_TYPE_NORMAL, FALSE);
+ LLGestureManager::instance().playGesture(gesture);
+ if(!gesture->mReplaceText.empty())
+ {
+ LLNearbyChatBar::sendChatFromViewer(gesture->mReplaceText, CHAT_TYPE_NORMAL, FALSE);
+ }
}
}
@@ -267,9 +256,6 @@ void LLNearbyChatBar::onChatBoxKeystroke(LLLineEditor* caller, void* userdata)
LLNearbyChatBar* self = (LLNearbyChatBar *)userdata;
- if (!self->mChatBox)
- return;
-
LLWString raw_text = self->mChatBox->getWText();
// Can't trim the end, because that will cause autocompletion
@@ -429,7 +415,7 @@ void LLNearbyChatBar::sendChat( EChatType type )
void LLNearbyChatBar::onChatBoxCommit()
{
- if (mChatBox && mChatBox->getText().length() > 0)
+ if (mChatBox->getText().length() > 0)
{
sendChat(CHAT_TYPE_NORMAL);
}
@@ -501,7 +487,7 @@ void LLNearbyChatBar::startChat(const char* line)
LLNearbyChatBar* cb = bt->getNearbyChatBar();
- if (!cb || !cb->mChatBox)
+ if (!cb )
return;
bt->setVisible(TRUE);
@@ -527,7 +513,7 @@ void LLNearbyChatBar::stopChat()
LLNearbyChatBar* cb = bt->getNearbyChatBar();
- if (!cb || !cb->mChatBox)
+ if (!cb)
return;
cb->mChatBox->setFocus(FALSE);
diff --git a/indra/newview/llnearbychatbar.h b/indra/newview/llnearbychatbar.h
index 4b0c42c3c0..19177e37b3 100644
--- a/indra/newview/llnearbychatbar.h
+++ b/indra/newview/llnearbychatbar.h
@@ -53,7 +53,7 @@ public:
~LLGestureComboBox();
void refreshGestures();
- void onCommitGesture(LLUICtrl* ctrl);
+ void onCommitGesture();
virtual void draw();
// LLGestureManagerObserver trigger
@@ -61,6 +61,7 @@ public:
protected:
LLFrameTimer mGestureLabelTimer;
+ std::vector<LLMultiGesture*> mGestures;
std::string mLabel;
};
diff --git a/indra/newview/llnearbychathandler.cpp b/indra/newview/llnearbychathandler.cpp
index a56688d862..8124d4b36a 100644
--- a/indra/newview/llnearbychathandler.cpp
+++ b/indra/newview/llnearbychathandler.cpp
@@ -68,6 +68,8 @@ LLNearbyChatHandler::~LLNearbyChatHandler()
}
void LLNearbyChatHandler::processChat(const LLChat& chat_msg)
{
+ if(chat_msg.mMuted == TRUE)
+ return;
if(chat_msg.mSourceType == CHAT_SOURCE_AGENT && chat_msg.mFromID.notNull())
LLRecentPeople::instance().add(chat_msg.mFromID);
diff --git a/indra/newview/llpanelclassified.cpp b/indra/newview/llpanelclassified.cpp
index 42522942f3..f58f993a2e 100644
--- a/indra/newview/llpanelclassified.cpp
+++ b/indra/newview/llpanelclassified.cpp
@@ -57,8 +57,8 @@
#include "lllineeditor.h"
#include "lltextbox.h"
#include "llcombobox.h"
-#include "llviewertexteditor.h"
#include "lltexturectrl.h"
+#include "lltexteditor.h"
#include "lluiconstants.h"
#include "llurldispatcher.h" // for classified HTML detail click teleports
#include "lluictrlfactory.h"
@@ -246,8 +246,7 @@ BOOL LLPanelClassified::postBuild()
mDescEditor->setCommitOnFocusLost(TRUE);
mDescEditor->setFocusReceivedCallback(focusReceived, this);
mDescEditor->setCommitCallback(onCommitAny, this);
- mDescEditor->setTabsToNextField(TRUE);
-
+
mLocationEditor = getChild<LLLineEditor>("location_editor");
mSetBtn = getChild<LLButton>( "set_location_btn");
diff --git a/indra/newview/llpanelgrouplandmoney.cpp b/indra/newview/llpanelgrouplandmoney.cpp
index d95240e30c..8caa7d85eb 100644
--- a/indra/newview/llpanelgrouplandmoney.cpp
+++ b/indra/newview/llpanelgrouplandmoney.cpp
@@ -50,6 +50,7 @@
#include "llscrolllistcell.h"
#include "lltextbox.h"
#include "lltabcontainer.h"
+#include "lltexteditor.h"
#include "lltrans.h"
#include "lltransactiontypes.h"
#include "lltrans.h"
diff --git a/indra/newview/llpanelgrouplandmoney.h b/indra/newview/llpanelgrouplandmoney.h
index 73c52cdf2e..0f275ea9a8 100644
--- a/indra/newview/llpanelgrouplandmoney.h
+++ b/indra/newview/llpanelgrouplandmoney.h
@@ -37,10 +37,6 @@
#include "llmap.h"
#include "lluuid.h"
-#include "llbutton.h"
-#include "lltexteditor.h"
-#include "llpanel.h"
-
class LLPanelGroupLandMoney : public LLPanelGroupTab
{
public:
diff --git a/indra/newview/llpanelgroupnotices.cpp b/indra/newview/llpanelgroupnotices.cpp
index f06342ebfc..56042f6bff 100644
--- a/indra/newview/llpanelgroupnotices.cpp
+++ b/indra/newview/llpanelgroupnotices.cpp
@@ -508,7 +508,7 @@ void LLPanelGroupNotices::processNotices(LLMessageSystem* msg)
mNoticesList->addElement(row, ADD_BOTTOM);
}
- mNoticesList->sortItems();
+ mNoticesList->updateSort();
}
void LLPanelGroupNotices::onSelectNotice(LLUICtrl* ctrl, void* data)
diff --git a/indra/newview/llpanelplace.cpp b/indra/newview/llpanelplace.cpp
index 2cb7fd8c14..c6840721a3 100644
--- a/indra/newview/llpanelplace.cpp
+++ b/indra/newview/llpanelplace.cpp
@@ -48,7 +48,7 @@
#include "lllineeditor.h"
#include "lluiconstants.h"
#include "lltextbox.h"
-#include "llviewertexteditor.h"
+#include "lltexteditor.h"
#include "lltexturectrl.h"
#include "lltrans.h"
#include "llworldmap.h"
diff --git a/indra/newview/llpanelplaces.cpp b/indra/newview/llpanelplaces.cpp
index 39f7d41a8d..cf91972e8b 100644
--- a/indra/newview/llpanelplaces.cpp
+++ b/indra/newview/llpanelplaces.cpp
@@ -149,14 +149,12 @@ BOOL LLPanelPlaces::postBuild()
}
mPlaceInfo = getChild<LLPanelPlaceInfo>("panel_place_info");
- if (!mPlaceInfo)
- return FALSE;
LLButton* back_btn = mPlaceInfo->getChild<LLButton>("back_btn");
- if (back_btn)
- {
- back_btn->setClickedCallback(boost::bind(&LLPanelPlaces::onBackButtonClicked, this));
- }
+ back_btn->setClickedCallback(boost::bind(&LLPanelPlaces::onBackButtonClicked, this));
+
+ // *TODO: Assign the action to an appropriate event.
+ mOverflowBtn->setClickedCallback(boost::bind(&LLPanelPlaces::toggleMediaPanel, this));
return TRUE;
}
diff --git a/indra/newview/llpreviewnotecard.cpp b/indra/newview/llpreviewnotecard.cpp
index ce9fcd9da2..cadab71ba8 100644
--- a/indra/newview/llpreviewnotecard.cpp
+++ b/indra/newview/llpreviewnotecard.cpp
@@ -101,14 +101,6 @@ BOOL LLPreviewNotecard::postBuild()
childSetText("desc", item->getDescription());
childSetPrevalidate("desc", &LLLineEditor::prevalidatePrintableNotPipe);
- LLViewerTextEditor* editor = getChild<LLViewerTextEditor>("Notecard Editor");
-
- if (editor)
- {
- editor->setWordWrap(TRUE);
- editor->setHandleEditKeysDirectly(TRUE);
- }
-
return LLPreview::postBuild();
}
diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index ad978cc5b3..49b9bbadfb 100644
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -340,10 +340,6 @@ BOOL LLScriptEdCore::postBuild()
childSetCommitCallback("Insert...", &LLScriptEdCore::onBtnInsertFunction, this);
mEditor = getChild<LLViewerTextEditor>("Script Editor");
- mEditor->setFollowsAll();
- mEditor->setHandleEditKeysDirectly(TRUE);
- mEditor->setEnabled(TRUE);
- mEditor->setWordWrap(TRUE);
childSetCommitCallback("lsl errors", &LLScriptEdCore::onErrorList, this);
childSetAction("Save_btn", boost::bind(&LLScriptEdCore::doSave,this,FALSE));
@@ -459,12 +455,12 @@ void LLScriptEdCore::updateDynamicHelp(BOOL immediate)
return;
}
- const LLTextSegment* segment = NULL;
- std::vector<const LLTextSegment*> selected_segments;
+ LLTextSegmentPtr segment = NULL;
+ std::vector<LLTextSegmentPtr> selected_segments;
mEditor->getSelectedSegments(selected_segments);
// try segments in selection range first
- std::vector<const LLTextSegment*>::iterator segment_iter;
+ std::vector<LLTextSegmentPtr>::iterator segment_iter;
for (segment_iter = selected_segments.begin(); segment_iter != selected_segments.end(); ++segment_iter)
{
if((*segment_iter)->getToken() && (*segment_iter)->getToken()->getType() == LLKeywordToken::WORD)
@@ -477,7 +473,7 @@ void LLScriptEdCore::updateDynamicHelp(BOOL immediate)
// then try previous segment in case we just typed it
if (!segment)
{
- const LLTextSegment* test_segment = mEditor->getPreviousSegment();
+ const LLTextSegmentPtr test_segment = mEditor->getPreviousSegment();
if(test_segment->getToken() && test_segment->getToken()->getType() == LLKeywordToken::WORD)
{
segment = test_segment;
diff --git a/indra/newview/llsidetray.cpp b/indra/newview/llsidetray.cpp
index 9990c22dac..2e005834b5 100644
--- a/indra/newview/llsidetray.cpp
+++ b/indra/newview/llsidetray.cpp
@@ -158,7 +158,7 @@ void LLSideTrayTab::arrange(S32 width, S32 height )
S32 offset = 0;
- LLView* title_panel = getChildView(TAB_PANEL_CAPTION_NAME, true, false);
+ LLView* title_panel = findChildView(TAB_PANEL_CAPTION_NAME, true);
if(title_panel)
{
@@ -181,7 +181,7 @@ void LLSideTrayTab::reshape (S32 width, S32 height, BOOL called_from_parent )
return;
S32 offset = 0;
- LLView* title_panel = getChildView(TAB_PANEL_CAPTION_NAME, true, false);
+ LLView* title_panel = findChildView(TAB_PANEL_CAPTION_NAME, true);
if(title_panel)
{
@@ -612,7 +612,7 @@ LLPanel* LLSideTray::showPanel (const std::string& panel_name, const LLSD& para
child_vector_const_iter_t child_it;
for ( child_it = mTabs.begin(); child_it != mTabs.end(); ++child_it)
{
- LLView* view = (*child_it)->getChildView(panel_name,true,false);
+ LLView* view = (*child_it)->findChildView(panel_name,true);
if(view)
{
onTabButtonClick((*child_it)->getName());
diff --git a/indra/newview/llspatialpartition.cpp b/indra/newview/llspatialpartition.cpp
index c4364ed6ca..c2fce08ae4 100644
--- a/indra/newview/llspatialpartition.cpp
+++ b/indra/newview/llspatialpartition.cpp
@@ -49,6 +49,9 @@
#include "lloctree.h"
#include "llvoavatar.h"
+static LLFastTimer::DeclareTimer FTM_FRUSTUM_CULL("Frustum Culling");
+static LLFastTimer::DeclareTimer FTM_CULL_REBOUND("Cull Rebound");
+
const F32 SG_OCCLUSION_FUDGE = 0.25f;
#define SG_DISCARD_TOLERANCE 0.01f
@@ -570,6 +573,8 @@ void LLSpatialGroup::rebuildMesh()
}
}
+static LLFastTimer::DeclareTimer FTM_REBUILD_VBO("VBO Rebuilt");
+
void LLSpatialPartition::rebuildGeom(LLSpatialGroup* group)
{
if (!gPipeline.hasRenderType(mDrawableType))
@@ -588,7 +593,7 @@ void LLSpatialPartition::rebuildGeom(LLSpatialGroup* group)
return;
}
- LLFastTimer ftm(LLFastTimer::FTM_REBUILD_VBO);
+ LLFastTimer ftm(FTM_REBUILD_VBO);
group->clearDrawMap();
@@ -1256,6 +1261,7 @@ BOOL LLSpatialGroup::rebound()
return TRUE;
}
+static LLFastTimer::DeclareTimer FTM_OCCLUSION_READBACK("Readback Occlusion");
void LLSpatialGroup::checkOcclusion()
{
if (LLPipeline::sUseOcclusion > 1)
@@ -1267,7 +1273,7 @@ void LLSpatialGroup::checkOcclusion()
}
else if (isState(QUERY_PENDING))
{ //otherwise, if a query is pending, read it back
- LLFastTimer t(LLFastTimer::FTM_OCCLUSION_READBACK);
+ LLFastTimer t(FTM_OCCLUSION_READBACK);
GLuint res = 1;
if (!isState(DISCARD_QUERY) && mOcclusionQuery)
{
@@ -1312,7 +1318,7 @@ void LLSpatialGroup::doOcclusion(LLCamera* camera)
else
{
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_OCCLUSION);
+ LLFastTimer t(FTM_RENDER_OCCLUSION);
if (!mOcclusionQuery)
{
@@ -1873,7 +1879,7 @@ S32 LLSpatialPartition::cull(LLCamera &camera, std::vector<LLDrawable *>* result
{
BOOL temp = sFreezeState;
sFreezeState = FALSE;
- LLFastTimer ftm(LLFastTimer::FTM_CULL_REBOUND);
+ LLFastTimer ftm(FTM_CULL_REBOUND);
LLSpatialGroup* group = (LLSpatialGroup*) mOctree->getListener(0);
group->rebound();
sFreezeState = temp;
@@ -1891,19 +1897,19 @@ S32 LLSpatialPartition::cull(LLCamera &camera, std::vector<LLDrawable *>* result
}
else if (LLPipeline::sShadowRender)
{
- LLFastTimer ftm(LLFastTimer::FTM_FRUSTUM_CULL);
+ LLFastTimer ftm(FTM_FRUSTUM_CULL);
LLOctreeCullShadow culler(&camera);
culler.traverse(mOctree);
}
else if (mInfiniteFarClip || !LLPipeline::sUseFarClip)
{
- LLFastTimer ftm(LLFastTimer::FTM_FRUSTUM_CULL);
+ LLFastTimer ftm(FTM_FRUSTUM_CULL);
LLOctreeCullNoFarClip culler(&camera);
culler.traverse(mOctree);
}
else
{
- LLFastTimer ftm(LLFastTimer::FTM_FRUSTUM_CULL);
+ LLFastTimer ftm(FTM_FRUSTUM_CULL);
LLOctreeCull culler(&camera);
culler.traverse(mOctree);
}
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index 04a3b52e98..222672deff 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -1001,9 +1001,6 @@ bool idle_startup()
}
- //For HTML parsing in text boxes.
- LLTextEditor::setLinkColor( LLUIColorTable::instance().getColor("HTMLLinkColor") );
-
// Load URL History File
LLURLHistory::loadFile("url_history.xml");
diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp
index 569e7b3397..8a5de61280 100644
--- a/indra/newview/llstatusbar.cpp
+++ b/indra/newview/llstatusbar.cpp
@@ -265,7 +265,7 @@ BOOL LLStatusBar::postBuild()
mHideNavbarContextMenu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_hide_navbar.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
gMenuHolder->addChild(mHideNavbarContextMenu);
- gMenuBarView->setRightClickedCallback(boost::bind(&LLStatusBar::onMainMenuRightClicked, this, _1, _2, _3, _4));
+ gMenuBarView->setRightMouseDownCallback(boost::bind(&LLStatusBar::onMainMenuRightClicked, this, _1, _2, _3, _4));
return TRUE;
}
diff --git a/indra/newview/llstylemap.cpp b/indra/newview/llstylemap.cpp
index a422db1cc1..fc125dcf9c 100644
--- a/indra/newview/llstylemap.cpp
+++ b/indra/newview/llstylemap.cpp
@@ -38,83 +38,53 @@
#include "llviewercontrol.h"
#include "llagent.h"
-LLStyleMap::LLStyleMap()
-{
-}
-
-LLStyleMap::~LLStyleMap()
-{
-}
-
-LLStyleMap &LLStyleMap::instance()
-{
- static LLStyleMap style_map;
- return style_map;
-}
-
-// This is similar to the [] accessor except that if the entry doesn't already exist,
-// then this will create the entry.
-const LLStyleSP &LLStyleMap::lookupAgent(const LLUUID &source)
+const LLStyle::Params &LLStyleMap::lookupAgent(const LLUUID &source)
{
// Find this style in the map or add it if not. This map holds links to residents' profiles.
- if (find(source) == end())
+ if (mMap.find(source) == mMap.end())
{
- LLStyleSP style(new LLStyle);
- style->setVisible(true);
- style->setFontName(LLStringUtil::null);
+ LLStyle::Params style_params;
if (source != LLUUID::null && source != gAgent.getID() )
{
- style->setColor(LLUIColorTable::instance().getColor("HTMLLinkColor"));
- std::string link = llformat("secondlife:///app/agent/%s/about",source.asString().c_str());
- style->setLinkHREF(link);
+ style_params.color.control = "HTMLLinkColor";
+ style_params.link_href = llformat("secondlife:///app/agent/%s/about",source.asString().c_str());
}
else
{
// Make the resident's own name white and don't make the name clickable.
- style->setColor(LLColor4::white);
+ style_params.color = LLColor4::white;
}
- (*this)[source] = style;
+
+ mMap[source] = LLStyle::Params();
}
- return (*this)[source];
+ return mMap[source];
}
// This is similar to lookupAgent for any generic URL encoded style.
-const LLStyleSP &LLStyleMap::lookup(const LLUUID& id, const std::string& link)
+const LLStyle::Params &LLStyleMap::lookup(const LLUUID& id, const std::string& link)
{
// Find this style in the map or add it if not.
- iterator iter = find(id);
- if (iter == end())
+ style_map_t::iterator iter = mMap.find(id);
+ if (iter == mMap.end())
{
- LLStyleSP style(new LLStyle);
- style->setVisible(true);
- style->setFontName(LLStringUtil::null);
+ LLStyle::Params style_params;
+
if (id != LLUUID::null && !link.empty())
{
- style->setColor(LLUIColorTable::instance().getColor("HTMLLinkColor"));
- style->setLinkHREF(link);
+ style_params.color.control = "HTMLLinkColor";
+ style_params.link_href = link;
}
else
- style->setColor(LLColor4::white);
- (*this)[id] = style;
+ {
+ style_params.color = LLColor4::white;
+ }
+ mMap[id] = style_params;
}
else
{
- LLStyleSP style = (*iter).second;
- if ( style->getLinkHREF() != link )
- {
- style->setLinkHREF(link);
- }
+ iter->second.link_href = link;
}
- return (*this)[id];
+ return mMap[id];
}
-void LLStyleMap::update()
-{
- for (style_map_t::iterator iter = begin(); iter != end(); ++iter)
- {
- LLStyleSP &style = iter->second;
- // Update the link color in case it has been changed.
- style->setColor(LLUIColorTable::instance().getColor("HTMLLinkColor"));
- }
-}
diff --git a/indra/newview/llstylemap.h b/indra/newview/llstylemap.h
index 254509ea1d..d29ff1ae28 100644
--- a/indra/newview/llstylemap.h
+++ b/indra/newview/llstylemap.h
@@ -36,24 +36,22 @@
#include "llstyle.h"
#include "lluuid.h"
+#include "llsingleton.h"
// Lightweight class for holding and managing mappings between UUIDs and links.
// Used (for example) to create clickable name links off of IM chat.
-typedef std::map<LLUUID, LLStyleSP> style_map_t;
+typedef std::map<LLUUID, LLStyle::Params> style_map_t;
-class LLStyleMap : public style_map_t
+class LLStyleMap : public LLSingleton<LLStyleMap>
{
public:
- LLStyleMap();
- ~LLStyleMap();
// Just like the [] accessor but it will add the entry in if it doesn't exist.
- const LLStyleSP &lookupAgent(const LLUUID &source);
- const LLStyleSP &lookup(const LLUUID &source, const std::string& link);
- static LLStyleMap &instance();
+ const LLStyle::Params &lookupAgent(const LLUUID &source);
+ const LLStyle::Params &lookup(const LLUUID &source, const std::string& link);
- // Forces refresh of the entries, call when something changes (e.g. link color).
- void update();
+private:
+ style_map_t mMap;
};
#endif // LL_LLSTYLE_MAP_H
diff --git a/indra/newview/lltoastgroupnotifypanel.cpp b/indra/newview/lltoastgroupnotifypanel.cpp
index 8a61f6cfda..6f26b4077c 100644
--- a/indra/newview/lltoastgroupnotifypanel.cpp
+++ b/indra/newview/lltoastgroupnotifypanel.cpp
@@ -40,12 +40,12 @@
#include "lliconctrl.h"
#include "llnotify.h"
#include "lltextbox.h"
-#include "llviewertexteditor.h"
+#include "lltexteditor.h"
#include "lluiconstants.h"
#include "llui.h"
#include "llviewercontrol.h"
#include "lltrans.h"
-#include "llinitparam.h"
+#include "llstyle.h"
#include "llglheaders.h"
#include "llagent.h"
@@ -75,23 +75,25 @@ LLToastGroupNotifyPanel::LLToastGroupNotifyPanel(LLNotificationPtr& notification
const std::string& from_name = payload["sender_name"].asString();
std::stringstream from;
from << from_name << "/" << groupData.mName;
- LLTextBox* pTitleText = this->getChild<LLTextBox>("title");
+ LLTextBox* pTitleText = getChild<LLTextBox>("title");
pTitleText->setValue(from.str());
//message body
const std::string& subject = payload["subject"].asString();
const std::string& message = payload["message"].asString();
- LLTextEditor* pMessageText = getChild< LLTextEditor>("message");
+ LLTextEditor* pMessageText = getChild<LLTextEditor>("message");
pMessageText->setValue("");
pMessageText->setEnabled(FALSE);
- pMessageText->setTakesFocus(FALSE);
- static const LLStyleSP headerstyle(new LLStyle(true, textColor,
- "SansSerifBig"));
- static const LLStyleSP datestyle(new LLStyle(true, textColor, "serif"));
+ LLStyle::Params date_style;
+ date_style.color = textColor;
+ date_style.font.name = "SANSSERIF";
- pMessageText->appendStyledText(subject + "\n",false,false,headerstyle);
+ LLStyle::Params header_style_params;
+ header_style_params.color = textColor;
+ header_style_params.font = LLFontGL::getFontSansSerifBig();
+ pMessageText->appendStyledText(subject + "\n",false,false,header_style_params);
std::string timeStr = "["+LLTrans::getString("UTCTimeWeek")+"],["
+LLTrans::getString("UTCTimeDay")+"] ["
@@ -106,7 +108,10 @@ LLToastGroupNotifyPanel::LLToastGroupNotifyPanel(LLNotificationPtr& notification
LLSD substitution;
substitution["datetime"] = (S32) notice_date.secondsSinceEpoch();
LLStringUtil::format(timeStr, substitution);
- pMessageText->appendStyledText(timeStr, false, false, datestyle);
+ LLStyle::Params date_style_params;
+ date_style_params.color = textColor;
+ date_style_params.font = LLFontGL::getFontMonospace();
+ pMessageText->appendStyledText(timeStr, false, false, date_style);
pMessageText->appendColoredText(std::string("\n\n") + message, false,
false, textColor);
diff --git a/indra/newview/lltoastnotifypanel.cpp b/indra/newview/lltoastnotifypanel.cpp
index a7b57802c1..844c54da6a 100644
--- a/indra/newview/lltoastnotifypanel.cpp
+++ b/indra/newview/lltoastnotifypanel.cpp
@@ -107,7 +107,6 @@ LLToastNotifyPanel::LLToastNotifyPanel(LLNotificationPtr& notification) : LLToas
common_params.rect(LLRect(x, y, x+32, TOP-32));
common_params.mouse_opaque(false);
common_params.follows.flags(FOLLOWS_LEFT | FOLLOWS_TOP);
- common_params.tab_stop(false);
if (mIsTip)
{
@@ -180,8 +179,6 @@ LLToastNotifyPanel::LLToastNotifyPanel(LLNotificationPtr& notification) : LLToas
params.mouse_opaque(false);
params.bg_readonly_color(LLColor4::transparent);
params.text_readonly_color(LLUIColorTable::instance().getColor("NotifyTextColor"));
- params.takes_non_scroll_clicks(false);
- params.hide_scrollbar(true);
params.enabled(false);
params.hide_border(true);
text = LLUICtrlFactory::create<LLTextEditor> (params);
diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp
index f08c287529..8e65c7e65e 100644
--- a/indra/newview/llviewerdisplay.cpp
+++ b/indra/newview/llviewerdisplay.cpp
@@ -207,11 +207,17 @@ void display_stats()
}
}
+static LLFastTimer::DeclareTimer FTM_PICK("Picking");
+static LLFastTimer::DeclareTimer FTM_RENDER("Render", true);
+static LLFastTimer::DeclareTimer FTM_UPDATE_SKY("Update Sky");
+static LLFastTimer::DeclareTimer FTM_UPDATE_TEXTURES("Update Textures");
+static LLFastTimer::DeclareTimer FTM_IMAGE_UPDATE("Update Images");
+
// Paint the display!
void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
{
LLMemType mt_render(LLMemType::MTYPE_RENDER);
- LLFastTimer t(LLFastTimer::FTM_RENDER);
+ LLFastTimer t(FTM_RENDER);
if (LLPipeline::sRenderFrameTest)
{
@@ -258,7 +264,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
gViewerWindow->checkSettings();
{
- LLFastTimer ftm(LLFastTimer::FTM_PICK);
+ LLFastTimer ftm(FTM_PICK);
LLAppViewer::instance()->pingMainloopTimeout("Display:Pick");
gViewerWindow->performPick();
}
@@ -504,7 +510,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
if (gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_DYNAMIC_TEXTURES))
{
LLAppViewer::instance()->pingMainloopTimeout("Display:DynamicTextures");
- LLFastTimer t(LLFastTimer::FTM_UPDATE_TEXTURES);
+ LLFastTimer t(FTM_UPDATE_TEXTURES);
if (LLViewerDynamicTexture::updateAllInstances())
{
gGL.setColorMask(true, true);
@@ -616,7 +622,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
{
LLMemType mt_ds(LLMemType::MTYPE_DISPLAY_SWAP);
{
- LLFastTimer ftm(LLFastTimer::FTM_CLIENT_COPY);
+ LLFastTimer ftm(FTM_CLIENT_COPY);
LLVertexBuffer::clientCopy(0.016);
}
@@ -687,7 +693,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
{
LLMemType mt_iu(LLMemType::MTYPE_DISPLAY_IMAGE_UPDATE);
- LLFastTimer t(LLFastTimer::FTM_IMAGE_UPDATE);
+ LLFastTimer t(FTM_IMAGE_UPDATE);
LLViewerTexture::updateClass(LLViewerCamera::getInstance()->getVelocityStat()->getMean(),
LLViewerCamera::getInstance()->getAngularVelocityStat()->getMean());
@@ -730,7 +736,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
{
LLMemType mt_ds(LLMemType::MTYPE_DISPLAY_SKY);
LLAppViewer::instance()->pingMainloopTimeout("Display:Sky");
- LLFastTimer t(LLFastTimer::FTM_UPDATE_SKY);
+ LLFastTimer t(FTM_UPDATE_SKY);
gSky.updateSky();
}
@@ -860,7 +866,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
LLAppViewer::instance()->pingMainloopTimeout("Display:RenderUI");
if (!for_snapshot)
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_UI);
+ LLFastTimer t(FTM_RENDER_UI);
render_ui();
}
@@ -1040,6 +1046,7 @@ BOOL setup_hud_matrices(const LLRect& screen_region)
}
}
+static LLFastTimer::DeclareTimer FTM_SWAP("Swap");
void render_ui(F32 zoom_factor, int subfield)
{
@@ -1075,7 +1082,7 @@ void render_ui(F32 zoom_factor, int subfield)
gGL.color4f(1,1,1,1);
if (gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_UI))
{
- LLFastTimer t(LLFastTimer::FTM_RENDER_UI);
+ LLFastTimer t(FTM_RENDER_UI);
if (!gDisconnected)
{
@@ -1102,7 +1109,7 @@ void render_ui(F32 zoom_factor, int subfield)
if (gDisplaySwapBuffers)
{
- LLFastTimer t(LLFastTimer::FTM_SWAP);
+ LLFastTimer t(FTM_SWAP);
gViewerWindow->mWindow->swapBuffers();
}
gDisplaySwapBuffers = TRUE;
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index 499632def3..207b9592b8 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -458,13 +458,13 @@ void set_underclothes_menu_options()
{
if (gMenuHolder && gAgent.isTeen())
{
- gMenuHolder->getChild<LLView>("Self Underpants", TRUE)->setVisible(FALSE);
- gMenuHolder->getChild<LLView>("Self Undershirt", TRUE)->setVisible(FALSE);
+ gMenuHolder->getChild<LLView>("Self Underpants")->setVisible(FALSE);
+ gMenuHolder->getChild<LLView>("Self Undershirt")->setVisible(FALSE);
}
if (gMenuBarView && gAgent.isTeen())
{
- gMenuBarView->getChild<LLView>("Menu Underpants", TRUE)->setVisible(FALSE);
- gMenuBarView->getChild<LLView>("Menu Undershirt", TRUE)->setVisible(FALSE);
+ gMenuBarView->getChild<LLView>("Menu Underpants")->setVisible(FALSE);
+ gMenuBarView->getChild<LLView>("Menu Undershirt")->setVisible(FALSE);
}
}
@@ -567,8 +567,8 @@ void init_menus()
gAFKMenu = gMenuBarView->getChild<LLMenuItemCallGL>("Set Away", TRUE);
gBusyMenu = gMenuBarView->getChild<LLMenuItemCallGL>("Set Busy", TRUE);
- gAttachSubMenu = gMenuBarView->getChildMenuByName("Attach Object", TRUE);
- gDetachSubMenu = gMenuBarView->getChildMenuByName("Detach Object", TRUE);
+ gAttachSubMenu = gMenuBarView->findChildMenuByName("Attach Object", TRUE);
+ gDetachSubMenu = gMenuBarView->findChildMenuByName("Detach Object", TRUE);
gMenuBarView->createJumpKeys();
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 33568bf3cb..d83f3d9207 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -3302,11 +3302,12 @@ void process_terse_object_update_improved(LLMessageSystem *mesgsys, void **user_
gObjectList.processCompressedObjectUpdate(mesgsys, user_data, OUT_TERSE_IMPROVED);
}
+static LLFastTimer::DeclareTimer FTM_PROCESS_OBJECTS("Process Objects");
void process_kill_object(LLMessageSystem *mesgsys, void **user_data)
{
- LLFastTimer t(LLFastTimer::FTM_PROCESS_OBJECTS);
+ LLFastTimer t(FTM_PROCESS_OBJECTS);
LLUUID id;
U32 local_id;
diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp
index ec11e0aee2..99723f86a7 100644
--- a/indra/newview/llviewerobject.cpp
+++ b/indra/newview/llviewerobject.cpp
@@ -115,11 +115,13 @@ S32 LLViewerObject::sAxisArrowLength(50);
BOOL LLViewerObject::sPulseEnabled(FALSE);
BOOL LLViewerObject::sUseSharedDrawables(FALSE); // TRUE
+static LLFastTimer::DeclareTimer FTM_CREATE_OBJECT("Create Object");
+
// static
LLViewerObject *LLViewerObject::createObject(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp)
{
LLViewerObject *res = NULL;
- LLFastTimer t1(LLFastTimer::FTM_CREATE_OBJECT);
+ LLFastTimer t1(FTM_CREATE_OBJECT);
switch (pcode)
{
diff --git a/indra/newview/llviewerobjectlist.cpp b/indra/newview/llviewerobjectlist.cpp
index 8939faeb91..a8232e9a9d 100644
--- a/indra/newview/llviewerobjectlist.cpp
+++ b/indra/newview/llviewerobjectlist.cpp
@@ -258,13 +258,15 @@ void LLViewerObjectList::processUpdateCore(LLViewerObject* objectp,
}
}
+static LLFastTimer::DeclareTimer FTM_PROCESS_OBJECTS("Process Objects");
+
void LLViewerObjectList::processObjectUpdate(LLMessageSystem *mesgsys,
void **user_data,
const EObjectUpdateType update_type,
bool cached, bool compressed)
{
LLMemType mt(LLMemType::MTYPE_OBJECT_PROCESS_UPDATE);
- LLFastTimer t(LLFastTimer::FTM_PROCESS_OBJECTS);
+ LLFastTimer t(FTM_PROCESS_OBJECTS);
LLVector3d camera_global = gAgent.getCameraPositionGlobal();
LLViewerObject *objectp;
@@ -1304,12 +1306,13 @@ LLViewerObject *LLViewerObjectList::createObjectViewer(const LLPCode pcode, LLVi
}
+static LLFastTimer::DeclareTimer FTM_CREATE_OBJECT("Create Object");
LLViewerObject *LLViewerObjectList::createObject(const LLPCode pcode, LLViewerRegion *regionp,
const LLUUID &uuid, const U32 local_id, const LLHost &sender)
{
LLMemType mt(LLMemType::MTYPE_OBJECT);
- LLFastTimer t(LLFastTimer::FTM_CREATE_OBJECT);
+ LLFastTimer t(FTM_CREATE_OBJECT);
LLUUID fullid;
if (uuid == LLUUID::null)
diff --git a/indra/newview/llviewerpartsim.cpp b/indra/newview/llviewerpartsim.cpp
index ec39819bc8..cfb8340462 100644
--- a/indra/newview/llviewerpartsim.cpp
+++ b/indra/newview/llviewerpartsim.cpp
@@ -631,6 +631,8 @@ void LLViewerPartSim::shift(const LLVector3 &offset)
}
}
+static LLFastTimer::DeclareTimer FTM_SIMULATE_PARTICLES("Simulate Particles");
+
void LLViewerPartSim::updateSimulation()
{
LLMemType mt(LLMemType::MTYPE_PARTICLES);
@@ -644,7 +646,7 @@ void LLViewerPartSim::updateSimulation()
return;
}
- LLFastTimer ftm(LLFastTimer::FTM_SIMULATE_PARTICLES);
+ LLFastTimer ftm(FTM_SIMULATE_PARTICLES);
// Start at a random particle system so the same
// particle system doesn't always get first pick at the
diff --git a/indra/newview/llviewerstats.cpp b/indra/newview/llviewerstats.cpp
index 709fcdcf01..444d8e3164 100644
--- a/indra/newview/llviewerstats.cpp
+++ b/indra/newview/llviewerstats.cpp
@@ -594,14 +594,14 @@ void update_statistics(U32 frame_count)
LLViewerStats::getInstance()->setStat(LLViewerStats::ST_SHADER_AVATAR, (F64)gSavedSettings.getBOOL("VertexShaderLevelAvatar"));
LLViewerStats::getInstance()->setStat(LLViewerStats::ST_SHADER_ENVIRONMENT, (F64)gSavedSettings.getBOOL("VertexShaderLevelEnvironment"));
#endif
- LLViewerStats::getInstance()->setStat(LLViewerStats::ST_FRAME_SECS, gDebugView->mFastTimerView->getTime(LLFastTimer::NamedTimer::getRootNamedTimer().getFrameState()));
- F64 idle_secs = gDebugView->mFastTimerView->getTime(LLFastTimer::FTM_IDLE);
- F64 network_secs = gDebugView->mFastTimerView->getTime(LLFastTimer::FTM_NETWORK);
+ LLViewerStats::getInstance()->setStat(LLViewerStats::ST_FRAME_SECS, gDebugView->mFastTimerView->getTime("Frame"));
+ F64 idle_secs = gDebugView->mFastTimerView->getTime("Idle");
+ F64 network_secs = gDebugView->mFastTimerView->getTime("Network");
LLViewerStats::getInstance()->setStat(LLViewerStats::ST_UPDATE_SECS, idle_secs - network_secs);
LLViewerStats::getInstance()->setStat(LLViewerStats::ST_NETWORK_SECS, network_secs);
- LLViewerStats::getInstance()->setStat(LLViewerStats::ST_IMAGE_SECS, gDebugView->mFastTimerView->getTime(LLFastTimer::FTM_IMAGE_UPDATE));
- LLViewerStats::getInstance()->setStat(LLViewerStats::ST_REBUILD_SECS, gDebugView->mFastTimerView->getTime(LLFastTimer::FTM_STATESORT ));
- LLViewerStats::getInstance()->setStat(LLViewerStats::ST_RENDER_SECS, gDebugView->mFastTimerView->getTime(LLFastTimer::FTM_RENDER_GEOMETRY));
+ LLViewerStats::getInstance()->setStat(LLViewerStats::ST_IMAGE_SECS, gDebugView->mFastTimerView->getTime("Update Images"));
+ LLViewerStats::getInstance()->setStat(LLViewerStats::ST_REBUILD_SECS, gDebugView->mFastTimerView->getTime("Sort Draw State"));
+ LLViewerStats::getInstance()->setStat(LLViewerStats::ST_RENDER_SECS, gDebugView->mFastTimerView->getTime("Geometry"));
LLCircuitData *cdp = gMessageSystem->mCircuitInfo.findCircuit(gAgent.getRegion()->getHost());
if (cdp)
diff --git a/indra/newview/llviewertexteditor.cpp b/indra/newview/llviewertexteditor.cpp
index 9e0713b494..7565c86696 100644
--- a/indra/newview/llviewertexteditor.cpp
+++ b/indra/newview/llviewertexteditor.cpp
@@ -62,6 +62,7 @@
#include "llnotecard.h"
#include "llmemorystream.h"
#include "llmenugl.h"
+#include "llscrollcontainer.h"
#include "llavataractions.h"
#include "llappviewer.h" // for gPacificDaylightTime
@@ -108,6 +109,105 @@ public:
}
};
+//
+// class LLEmbeddedItemSegment
+//
+
+const S32 EMBEDDED_ITEM_LABEL_PADDING = 2;
+
+class LLEmbeddedItemSegment : public LLTextSegment
+{
+public:
+ LLEmbeddedItemSegment(S32 pos, LLUIImagePtr image, LLPointer<LLInventoryItem> inv_item, LLTextEditor& editor)
+ : LLTextSegment(pos, pos + 1),
+ mImage(image),
+ mLabel(utf8str_to_wstring(inv_item->getName())),
+ mItem(inv_item),
+ mEditor(editor),
+ mHasMouseHover(false)
+ {
+
+ mStyle = new LLStyle(LLStyle::Params().font(LLFontGL::getFontSansSerif()));
+ mToolTip = inv_item->getName() + '\n' + inv_item->getDescription();
+ }
+
+ /*virtual*/ S32 getWidth(S32 first_char, S32 num_chars) const
+ {
+ if (num_chars == 0)
+ {
+ return 0;
+ }
+ else
+ {
+ return EMBEDDED_ITEM_LABEL_PADDING + mImage->getWidth() + mStyle->getFont()->getWidth(mLabel.c_str());
+ }
+
+ }
+ //virtual S32 getOffset(S32 segment_local_x_coord, S32 start_offset, S32 num_chars, bool round) const;
+ //virtual void updateLayout(const class LLTextEditor& editor);
+
+ /*virtual*/ S32 getNumChars(S32 num_pixels, S32 segment_offset, S32 line_offset, S32 max_chars) const
+ {
+ return 1;
+ }
+ /*virtual*/ F32 draw(S32 start, S32 end, S32 selection_start, S32 selection_end, const LLRect& draw_rect)
+ {
+ LLRect image_rect = draw_rect;
+ image_rect.mRight = image_rect.mLeft + mImage->getWidth();
+ image_rect.mTop = image_rect.mBottom + mImage->getHeight();
+ mImage->draw(image_rect);
+
+ LLColor4 color;
+ if (mEditor.getReadOnly())
+ {
+ color = LLUIColorTable::instance().getColor("TextEmbeddedItemReadOnlyColor");
+ }
+ else
+ {
+ color = LLUIColorTable::instance().getColor("TextEmbeddedItemColor");
+ }
+
+ F32 right_x;
+ mStyle->getFont()->render(mLabel, 0, image_rect.mRight + EMBEDDED_ITEM_LABEL_PADDING, draw_rect.mBottom, color, LLFontGL::LEFT, LLFontGL::BOTTOM, mHasMouseHover ? LLFontGL::UNDERLINE : 0, LLFontGL::NO_SHADOW, mLabel.length(), S32_MAX, &right_x);
+ return right_x;
+ }
+
+ /*virtual*/ S32 getMaxHeight() const
+ {
+ return llmax(mImage->getHeight(), llceil(mStyle->getFont()->getLineHeight()));
+ }
+ /*virtual*/ bool canEdit() const { return false; }
+ //virtual void unlinkFromDocument(class LLTextEditor* editor);
+ //virtual void linkToDocument(class LLTextEditor* editor);
+
+ virtual void setHasMouseHover(bool hover)
+ {
+ mHasMouseHover = hover;
+ }
+ //virtual const LLColor4& getColor() const;
+ //virtual void setColor(const LLColor4 &color);
+ //virtual void setStyle(const LLStyleSP &style);
+ virtual BOOL getToolTip( std::string& msg ) const
+ {
+ msg = mToolTip;
+ return TRUE;
+ }
+
+ /*virtual*/ const LLStyleSP getStyle() const { return mStyle; }
+
+private:
+ LLUIImagePtr mImage;
+ LLWString mLabel;
+ LLStyleSP mStyle;
+ std::string mToolTip;
+ LLPointer<LLInventoryItem> mItem;
+ LLTextEditor& mEditor;
+ bool mHasMouseHover;
+
+};
+
+
+
////////////////////////////////////////////////////////////
// LLEmbeddedItems
//
@@ -130,13 +230,11 @@ public:
// return true if there are no embedded items.
bool empty();
- void bindEmbeddedChars(const LLFontGL* font) const;
- void unbindEmbeddedChars(const LLFontGL* font) const;
-
BOOL insertEmbeddedItem(LLInventoryItem* item, llwchar* value, bool is_new);
BOOL removeEmbeddedItem( llwchar ext_char );
BOOL hasEmbeddedItem(llwchar ext_char); // returns TRUE if /this/ editor has an entry for this item
+ LLUIImagePtr getItemImage(llwchar ext_char) const;
void getEmbeddedItemList( std::vector<LLPointer<LLInventoryItem> >& items );
void addItems(const std::vector<LLPointer<LLInventoryItem> >& items);
@@ -351,27 +449,13 @@ BOOL LLEmbeddedItems::hasEmbeddedItem(llwchar ext_char)
return FALSE;
}
-void LLEmbeddedItems::bindEmbeddedChars( const LLFontGL* font ) const
-{
- if( sEntries.empty() )
- {
- return;
- }
- for (std::set<llwchar>::const_iterator iter1 = mEmbeddedUsedChars.begin(); iter1 != mEmbeddedUsedChars.end(); ++iter1)
+LLUIImagePtr LLEmbeddedItems::getItemImage(llwchar ext_char) const
+{
+ LLInventoryItem* item = getEmbeddedItem(ext_char);
+ if (item)
{
- llwchar wch = *iter1;
- item_map_t::iterator iter2 = sEntries.find(wch);
- if (iter2 == sEntries.end())
- {
- continue;
- }
- LLInventoryItem* item = iter2->second.mItem;
- if (!item)
- {
- continue;
- }
- const char* img_name;
+ const char* img_name = "";
switch( item->getType() )
{
case LLAssetType::AT_TEXTURE:
@@ -428,27 +512,14 @@ void LLEmbeddedItems::bindEmbeddedChars( const LLFontGL* font ) const
case LLAssetType::AT_GESTURE: img_name = "inv_item_gesture.tga"; break;
//TODO need img_name
case LLAssetType::AT_FAVORITE: img_name = "inv_item_landmark.tga"; break;
- default: llassert(0); continue;
+ default: llassert(0);
}
- LLUIImagePtr image = LLUI::getUIImage(img_name);
-
- font->addEmbeddedChar( wch, image->getImage(), item->getName() );
+ return LLUI::getUIImage(img_name);
}
+ return LLUIImagePtr();
}
-void LLEmbeddedItems::unbindEmbeddedChars( const LLFontGL* font ) const
-{
- if( sEntries.empty() )
- {
- return;
- }
-
- for (std::set<llwchar>::const_iterator iter1 = mEmbeddedUsedChars.begin(); iter1 != mEmbeddedUsedChars.end(); ++iter1)
- {
- font->removeEmbeddedChar(*iter1);
- }
-}
void LLEmbeddedItems::addItems(const std::vector<LLPointer<LLInventoryItem> >& items)
{
@@ -613,30 +684,16 @@ BOOL LLViewerTextEditor::handleToolTip(S32 x, S32 y, std::string& msg, LLRect* s
}
const LLTextSegment* cur_segment = getSegmentAtLocalPos( x, y );
- if( cur_segment )
+ if( cur_segment && cur_segment->getToolTip( msg ) )
{
- BOOL has_tool_tip = FALSE;
- if( cur_segment->getStyle()->getIsEmbeddedItem() )
- {
- LLWString wtip;
- has_tool_tip = getEmbeddedItemToolTipAtPos(cur_segment->getStart(), wtip);
- msg = wstring_to_utf8str(wtip);
- }
- else
- {
- has_tool_tip = cur_segment->getToolTip( msg );
- }
- if( has_tool_tip )
- {
- // Just use a slop area around the cursor
- // Convert rect local to screen coordinates
- S32 SLOP = 8;
- localPointToScreen(
- x - SLOP, y - SLOP,
- &(sticky_rect_screen->mLeft), &(sticky_rect_screen->mBottom) );
- sticky_rect_screen->mRight = sticky_rect_screen->mLeft + 2 * SLOP;
- sticky_rect_screen->mTop = sticky_rect_screen->mBottom + 2 * SLOP;
- }
+ // Just use a slop area around the cursor
+ // Convert rect local to screen coordinates
+ S32 SLOP = 8;
+ localPointToScreen(
+ x - SLOP, y - SLOP,
+ &(sticky_rect_screen->mLeft), &(sticky_rect_screen->mBottom) );
+ sticky_rect_screen->mRight = sticky_rect_screen->mLeft + 2 * SLOP;
+ sticky_rect_screen->mTop = sticky_rect_screen->mBottom + 2 * SLOP;
}
return TRUE;
}
@@ -648,21 +705,8 @@ BOOL LLViewerTextEditor::handleMouseDown(S32 x, S32 y, MASK mask)
// Let scrollbar have first dibs
handled = LLView::childrenHandleMouseDown(x, y, mask) != NULL;
- // enable I Agree checkbox if the user scrolled through entire text
- BOOL was_scrolled_to_bottom = (mScrollbar->getDocPos() == mScrollbar->getDocPosMax());
- if (mOnScrollEndCallback && was_scrolled_to_bottom)
+ if( !handled)
{
- mOnScrollEndCallback(mOnScrollEndData);
- }
-
- if( !handled && mTakesNonScrollClicks)
- {
- if (!(mask & MASK_SHIFT))
- {
- deselect();
- }
-
- BOOL start_select = TRUE;
if( allowsEmbeddedItems() )
{
setCursorAtLocalPos( x, y, FALSE );
@@ -685,192 +729,55 @@ BOOL LLViewerTextEditor::handleMouseDown(S32 x, S32 y, MASK mask)
localPointToScreen(x, y, &screen_x, &screen_y );
LLToolDragAndDrop::getInstance()->setDragStart( screen_x, screen_y );
- start_select = FALSE;
- }
- else
- {
- mDragItem = NULL;
- }
- }
-
- if( start_select )
- {
- // If we're not scrolling (handled by child), then we're selecting
- if (mask & MASK_SHIFT)
- {
- S32 old_cursor_pos = mCursorPos;
- setCursorAtLocalPos( x, y, TRUE );
-
- if (hasSelection())
- {
- /* Mac-like behavior - extend selection towards the cursor
- if (mCursorPos < mSelectionStart
- && mCursorPos < mSelectionEnd)
- {
- // ...left of selection
- mSelectionStart = llmax(mSelectionStart, mSelectionEnd);
- mSelectionEnd = mCursorPos;
- }
- else if (mCursorPos > mSelectionStart
- && mCursorPos > mSelectionEnd)
- {
- // ...right of selection
- mSelectionStart = llmin(mSelectionStart, mSelectionEnd);
- mSelectionEnd = mCursorPos;
- }
- else
- {
- mSelectionEnd = mCursorPos;
- }
- */
- // Windows behavior
- mSelectionEnd = mCursorPos;
- }
- else
+ if (hasTabStop())
{
- mSelectionStart = old_cursor_pos;
- mSelectionEnd = mCursorPos;
+ setFocus( TRUE );
}
- // assume we're starting a drag select
- mIsSelecting = TRUE;
+ handled = TRUE;
}
else
{
- setCursorAtLocalPos( x, y, TRUE );
- startSelection();
+ mDragItem = NULL;
}
- gFocusMgr.setMouseCapture( this );
}
- handled = TRUE;
- }
-
- if (hasTabStop())
- {
- setFocus(TRUE);
- handled = TRUE;
+ if (!handled)
+ {
+ handled = LLTextEditor::handleMouseDown(x, y, mask);
+ }
}
- // Delay cursor flashing
- resetKeystrokeTimer();
-
return handled;
}
BOOL LLViewerTextEditor::handleHover(S32 x, S32 y, MASK mask)
{
- static LLUICachedControl<S32> scrollbar_size ("UIScrollbarSize", 0);
- BOOL handled = FALSE;
+ BOOL handled = LLTextEditor::handleHover(x, y, mask);
- if (!mDragItem)
+ if(hasMouseCapture() && mDragItem)
{
- // leave hover segment active during drag and drop
- mHoverSegment = NULL;
- }
- if(hasMouseCapture() )
- {
- if( mIsSelecting )
- {
- if (x != mLastSelectionX || y != mLastSelectionY)
- {
- mLastSelectionX = x;
- mLastSelectionY = y;
- }
+ S32 screen_x;
+ S32 screen_y;
+ localPointToScreen(x, y, &screen_x, &screen_y );
- if( y > getTextRect().mTop )
- {
- mScrollbar->setDocPos( mScrollbar->getDocPos() - 1 );
- }
- else
- if( y < getTextRect().mBottom )
- {
- mScrollbar->setDocPos( mScrollbar->getDocPos() + 1 );
- }
+ mScroller->autoScroll(x, y);
- setCursorAtLocalPos( x, y, TRUE );
- mSelectionEnd = mCursorPos;
-
- updateScrollFromCursor();
- getWindow()->setCursor(UI_CURSOR_IBEAM);
- }
- else if( mDragItem )
+ if( LLToolDragAndDrop::getInstance()->isOverThreshold( screen_x, screen_y ) )
{
- S32 screen_x;
- S32 screen_y;
- localPointToScreen(x, y, &screen_x, &screen_y );
- if( LLToolDragAndDrop::getInstance()->isOverThreshold( screen_x, screen_y ) )
- {
- LLToolDragAndDrop::getInstance()->beginDrag(
- LLAssetType::lookupDragAndDropType( mDragItem->getType() ),
- mDragItem->getUUID(),
- LLToolDragAndDrop::SOURCE_NOTECARD,
- mPreviewID, mObjectID);
+ LLToolDragAndDrop::getInstance()->beginDrag(
+ LLAssetType::lookupDragAndDropType( mDragItem->getType() ),
+ mDragItem->getUUID(),
+ LLToolDragAndDrop::SOURCE_NOTECARD,
+ mPreviewID, mObjectID);
- return LLToolDragAndDrop::getInstance()->handleHover( x, y, mask );
- }
- getWindow()->setCursor(UI_CURSOR_HAND);
+ return LLToolDragAndDrop::getInstance()->handleHover( x, y, mask );
}
-
- lldebugst(LLERR_USER_INPUT) << "hover handled by " << getName() << " (active)" << llendl;
+ getWindow()->setCursor(UI_CURSOR_HAND);
handled = TRUE;
}
- if( !handled )
- {
- // Pass to children
- handled = LLView::childrenHandleHover(x, y, mask) != NULL;
- }
-
- if( handled )
- {
- // Delay cursor flashing
- resetKeystrokeTimer();
- }
-
- // Opaque
- if( !handled && mTakesNonScrollClicks)
- {
- // Check to see if we're over an HTML-style link
- if( !mSegments.empty() )
- {
- const LLTextSegment* cur_segment = getSegmentAtLocalPos( x, y );
- if( cur_segment )
- {
- if(cur_segment->getStyle()->isLink())
- {
- lldebugst(LLERR_USER_INPUT) << "hover handled by " << getName() << " (over link, inactive)" << llendl;
- getWindow()->setCursor(UI_CURSOR_HAND);
- handled = TRUE;
- }
- else
- if(cur_segment->getStyle()->getIsEmbeddedItem())
- {
- lldebugst(LLERR_USER_INPUT) << "hover handled by " << getName() << " (over embedded item, inactive)" << llendl;
- getWindow()->setCursor(UI_CURSOR_HAND);
- //getWindow()->setCursor(UI_CURSOR_ARROW);
- handled = TRUE;
- }
- mHoverSegment = cur_segment;
- }
- }
-
- if( !handled )
- {
- lldebugst(LLERR_USER_INPUT) << "hover handled by " << getName() << " (inactive)" << llendl;
- if (!mScrollbar->getVisible() || x < getRect().getWidth() - scrollbar_size)
- {
- getWindow()->setCursor(UI_CURSOR_IBEAM);
- }
- else
- {
- getWindow()->setCursor(UI_CURSOR_ARROW);
- }
- handled = TRUE;
- }
- }
-
return handled;
}
@@ -903,13 +810,6 @@ BOOL LLViewerTextEditor::handleMouseUp(S32 x, S32 y, MASK mask)
handled = LLTextEditor::handleMouseUp(x,y,mask);
- // Used to enable I Agree checkbox if the user scrolled through entire text
- BOOL was_scrolled_to_bottom = (mScrollbar->getDocPos() == mScrollbar->getDocPosMax());
- if (mOnScrollEndCallback && was_scrolled_to_bottom)
- {
- mOnScrollEndCallback(mOnScrollEndData);
- }
-
return handled;
}
@@ -949,24 +849,6 @@ BOOL LLViewerTextEditor::handleRightMouseDown(S32 x, S32 y, MASK mask)
return handled;
}
-BOOL LLViewerTextEditor::handleMiddleMouseDown(S32 x, S32 y, MASK mask)
-{
- BOOL handled = FALSE;
- handled = childrenHandleMiddleMouseDown(x, y, mask) != NULL;
- if (!handled)
- {
- handled = LLTextEditor::handleMiddleMouseDown(x, y, mask);
- }
- return handled;
-}
-
-BOOL LLViewerTextEditor::handleMiddleMouseUp(S32 x, S32 y, MASK mask)
-{
- BOOL handled = childrenHandleMiddleMouseUp(x, y, mask) != NULL;
-
- return handled;
-}
-
BOOL LLViewerTextEditor::handleDoubleClick(S32 x, S32 y, MASK mask)
{
BOOL handled = FALSE;
@@ -974,14 +856,15 @@ BOOL LLViewerTextEditor::handleDoubleClick(S32 x, S32 y, MASK mask)
// let scrollbar have first dibs
handled = LLView::childrenHandleDoubleClick(x, y, mask) != NULL;
- if( !handled && mTakesNonScrollClicks)
+ if( !handled)
{
if( allowsEmbeddedItems() )
{
- const LLTextSegment* cur_segment = getSegmentAtLocalPos( x, y );
- if( cur_segment && cur_segment->getStyle()->getIsEmbeddedItem() )
+ S32 doc_index = getDocIndexFromLocalCoord(x, y, FALSE);
+ llwchar doc_char = getWText()[doc_index];
+ if (mEmbeddedItemList->hasEmbeddedItem(doc_char))
{
- if( openEmbeddedItemAtPos( cur_segment->getStart() ) )
+ if( openEmbeddedItemAtPos( doc_index ))
{
deselect();
setFocus( FALSE );
@@ -989,47 +872,7 @@ BOOL LLViewerTextEditor::handleDoubleClick(S32 x, S32 y, MASK mask)
}
}
}
-
- setCursorAtLocalPos( x, y, FALSE );
- deselect();
-
- const LLWString &text = getWText();
-
- if( isPartOfWord( text[mCursorPos] ) )
- {
- // Select word the cursor is over
- while ((mCursorPos > 0) && isPartOfWord(text[mCursorPos-1]))
- {
- mCursorPos--;
- }
- startSelection();
-
- while ((mCursorPos < (S32)text.length()) && isPartOfWord( text[mCursorPos] ) )
- {
- mCursorPos++;
- }
-
- mSelectionEnd = mCursorPos;
- }
- else if ((mCursorPos < (S32)text.length()) && !iswspace( text[mCursorPos]) )
- {
- // Select the character the cursor is over
- startSelection();
- mCursorPos++;
- mSelectionEnd = mCursorPos;
- }
-
- // We don't want handleMouseUp() to "finish" the selection (and thereby
- // set mSelectionEnd to where the mouse is), so we finish the selection here.
- mIsSelecting = FALSE;
-
- // delay cursor flashing
- resetKeystrokeTimer();
-
- // take selection to 'primary' clipboard
- updatePrimary();
-
- handled = TRUE;
+ handled = LLTextEditor::handleDoubleClick(x, y, mask);
}
return handled;
}
@@ -1051,80 +894,78 @@ BOOL LLViewerTextEditor::handleDragAndDrop(S32 x, S32 y, MASK mask,
return FALSE;
}
- if (mTakesNonScrollClicks)
+ if (getEnabled() && acceptsTextInput())
{
- if (getEnabled() && acceptsTextInput())
+ switch( cargo_type )
{
- switch( cargo_type )
+ case DAD_CALLINGCARD:
+ case DAD_TEXTURE:
+ case DAD_SOUND:
+ case DAD_LANDMARK:
+ case DAD_SCRIPT:
+ case DAD_CLOTHING:
+ case DAD_OBJECT:
+ case DAD_NOTECARD:
+ case DAD_BODYPART:
+ case DAD_ANIMATION:
+ case DAD_GESTURE:
{
- case DAD_CALLINGCARD:
- case DAD_TEXTURE:
- case DAD_SOUND:
- case DAD_LANDMARK:
- case DAD_SCRIPT:
- case DAD_CLOTHING:
- case DAD_OBJECT:
- case DAD_NOTECARD:
- case DAD_BODYPART:
- case DAD_ANIMATION:
- case DAD_GESTURE:
+ LLInventoryItem *item = (LLInventoryItem *)cargo_data;
+ if( item && allowsEmbeddedItems() )
{
- LLInventoryItem *item = (LLInventoryItem *)cargo_data;
- if( item && allowsEmbeddedItems() )
+ U32 mask_next = item->getPermissions().getMaskNextOwner();
+ if((mask_next & PERM_ITEM_UNRESTRICTED) == PERM_ITEM_UNRESTRICTED)
{
- U32 mask_next = item->getPermissions().getMaskNextOwner();
- if((mask_next & PERM_ITEM_UNRESTRICTED) == PERM_ITEM_UNRESTRICTED)
- {
- if( drop )
- {
- deselect();
- S32 old_cursor = mCursorPos;
- setCursorAtLocalPos( x, y, TRUE );
- S32 insert_pos = mCursorPos;
- setCursorPos(old_cursor);
- BOOL inserted = insertEmbeddedItem( insert_pos, item );
- if( inserted && (old_cursor > mCursorPos) )
- {
- setCursorPos(mCursorPos + 1);
- }
-
- updateLineStartList();
- }
- *accept = ACCEPT_YES_COPY_MULTI;
- }
- else
+ if( drop )
{
- *accept = ACCEPT_NO;
- if (tooltip_msg.empty())
+ deselect();
+ S32 old_cursor = mCursorPos;
+ setCursorAtLocalPos( x, y, TRUE );
+ S32 insert_pos = mCursorPos;
+ setCursorPos(old_cursor);
+ BOOL inserted = insertEmbeddedItem( insert_pos, item );
+ if( inserted && (old_cursor > mCursorPos) )
{
- // *TODO: Translate
- tooltip_msg.assign("Only items with unrestricted\n"
- "'next owner' permissions \n"
- "can be attached to notecards.");
+ setCursorPos(mCursorPos + 1);
}
+
+ needsReflow();
+
}
+ *accept = ACCEPT_YES_COPY_MULTI;
}
else
{
*accept = ACCEPT_NO;
+ if (tooltip_msg.empty())
+ {
+ // *TODO: Translate
+ tooltip_msg.assign("Only items with unrestricted\n"
+ "'next owner' permissions \n"
+ "can be attached to notecards.");
+ }
}
- break;
}
-
- default:
+ else
+ {
*accept = ACCEPT_NO;
- break;
+ }
+ break;
}
- }
- else
- {
- // Not enabled
+
+ default:
*accept = ACCEPT_NO;
+ break;
}
-
- handled = TRUE;
- lldebugst(LLERR_USER_INPUT) << "dragAndDrop handled by LLViewerTextEditor " << getName() << llendl;
}
+ else
+ {
+ // Not enabled
+ *accept = ACCEPT_NO;
+ }
+
+ handled = TRUE;
+ lldebugst(LLERR_USER_INPUT) << "dragAndDrop handled by LLViewerTextEditor " << getName() << llendl;
return handled;
}
@@ -1244,33 +1085,33 @@ llwchar LLViewerTextEditor::pasteEmbeddedItem(llwchar ext_char)
return LL_UNKNOWN_CHAR; // item not found or list full
}
-void LLViewerTextEditor::bindEmbeddedChars(const LLFontGL* font) const
+void LLViewerTextEditor::onValueChange(S32 start, S32 end)
{
- mEmbeddedItemList->bindEmbeddedChars( font );
+ updateSegments();
+ findEmbeddedItemSegments(start, end);
}
-void LLViewerTextEditor::unbindEmbeddedChars(const LLFontGL* font) const
+void LLViewerTextEditor::findEmbeddedItemSegments(S32 start, S32 end)
{
- mEmbeddedItemList->unbindEmbeddedChars( font );
-}
+ LLWString text = getWText();
-BOOL LLViewerTextEditor::getEmbeddedItemToolTipAtPos(S32 pos, LLWString &msg) const
-{
- if (pos < getLength())
+ LLColor4 text_color = ( mReadOnly ? mReadOnlyFgColor.get() : mFgColor.get() );
+
+ // Start with i just after the first embedded item
+ for(S32 idx = start; idx < end; idx++ )
{
- LLInventoryItem* item = LLEmbeddedItems::getEmbeddedItem(getWChar(pos));
- if( item )
+ llwchar embedded_char = text[idx];
+ if( embedded_char >= FIRST_EMBEDDED_CHAR
+ && embedded_char <= LAST_EMBEDDED_CHAR
+ && mEmbeddedItemList->hasEmbeddedItem(embedded_char) )
{
- msg = utf8str_to_wstring(item->getName());
- msg += '\n';
- msg += utf8str_to_wstring(item->getDescription());
- return TRUE;
+ LLInventoryItem* itemp = mEmbeddedItemList->getEmbeddedItem(embedded_char);
+ LLUIImagePtr image = mEmbeddedItemList->getItemImage(embedded_char);
+ insertSegment(new LLEmbeddedItemSegment(idx, image, itemp, *this));
}
}
- return FALSE;
}
-
BOOL LLViewerTextEditor::openEmbeddedItemAtPos(S32 pos)
{
if( pos < getLength())
diff --git a/indra/newview/llviewertexteditor.h b/indra/newview/llviewertexteditor.h
index 1a69c6869d..9567bfbc48 100644
--- a/indra/newview/llviewertexteditor.h
+++ b/indra/newview/llviewertexteditor.h
@@ -65,8 +65,6 @@ public:
// mousehandler overrides
virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask);
virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask);
- virtual BOOL handleMiddleMouseDown(S32 x, S32 y, MASK mask);
- virtual BOOL handleMiddleMouseUp(S32 x, S32 y, MASK mask);
virtual BOOL handleRightMouseDown(S32 x, S32 y, MASK mask);
virtual BOOL handleHover(S32 x, S32 y, MASK mask);
virtual BOOL handleDoubleClick(S32 x, S32 y, MASK mask );
@@ -80,6 +78,8 @@ public:
virtual BOOL importBuffer(const char* buffer, S32 length);
virtual bool importStream(std::istream& str);
virtual BOOL exportBuffer(std::string& buffer);
+ virtual void onValueChange(S32 start, S32 end);
+
void setNotecardInfo(const LLUUID& notecard_item_id, const LLUUID& object_id, const LLUUID& preview_id)
{
mNotecardInventoryID = notecard_item_id;
@@ -106,11 +106,9 @@ public:
private:
// Embedded object operations
+ void findEmbeddedItemSegments(S32 start, S32 end);
virtual llwchar pasteEmbeddedItem(llwchar ext_char);
- virtual void bindEmbeddedChars(const LLFontGL* font) const;
- virtual void unbindEmbeddedChars(const LLFontGL* font) const;
- BOOL getEmbeddedItemToolTipAtPos(S32 pos, LLWString &wmsg) const;
BOOL openEmbeddedItemAtPos( S32 pos );
BOOL openEmbeddedItem(LLInventoryItem* item, llwchar wc);
@@ -128,6 +126,7 @@ private:
static bool onNotecardDialog(const LLSD& notification, const LLSD& response );
LLPointer<LLInventoryItem> mDragItem;
+ LLTextSegment* mDragSegment;
llwchar mDragItemChar;
BOOL mDragItemSaved;
class LLEmbeddedItems* mEmbeddedItemList;
diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp
index 7b01fe4280..83442dc2bb 100644
--- a/indra/newview/llviewertexturelist.cpp
+++ b/indra/newview/llviewertexturelist.cpp
@@ -75,6 +75,7 @@ const S32 IMAGES_MAX_PACKET_UPDATES = 1; // Only send N packets of IMAGES_PER_RE
const F32 RESEND_IMAGE_REQUEST_TIME = 15.f; // seconds
LLViewerTextureList gTextureList;
+static LLFastTimer::DeclareTimer FTM_PROCESS_IMAGES("Process Images");
///////////////////////////////////////////////////////////////////////////////
@@ -542,6 +543,7 @@ void LLViewerTextureList::dirtyImage(LLViewerFetchedTexture *image)
}
////////////////////////////////////////////////////////////////////////////
+static LLFastTimer::DeclareTimer FTM_IMAGE_MARK_DIRTY("Dirty Images");
void LLViewerTextureList::updateImages(F32 max_time)
{
@@ -559,7 +561,7 @@ void LLViewerTextureList::updateImages(F32 max_time)
max_time = llmin(llmax(max_time, 0.001f*10.f*gFrameIntervalSeconds), 0.001f);
if (!mDirtyTextureList.empty())
{
- LLFastTimer t(LLFastTimer::FTM_IMAGE_MARK_DIRTY);
+ LLFastTimer t(FTM_IMAGE_MARK_DIRTY);
gPipeline.dirtyPoolObjectTextures(mDirtyTextureList);
mDirtyTextureList.clear();
}
@@ -697,6 +699,7 @@ void LLViewerTextureList::updateImagesDecodePriorities()
return type_from_host;
}
*/
+static LLFastTimer::DeclareTimer FTM_IMAGE_CREATE("Create Images");
F32 LLViewerTextureList::updateImagesCreateTextures(F32 max_time)
{
@@ -706,7 +709,7 @@ F32 LLViewerTextureList::updateImagesCreateTextures(F32 max_time)
// Create GL textures for all textures that need them (images which have been
// decoded, but haven't been pushed into GL).
//
- LLFastTimer t(LLFastTimer::FTM_IMAGE_CREATE);
+ LLFastTimer t(FTM_IMAGE_CREATE);
LLTimer create_timer;
image_list_t::iterator enditer = mCreateTextureList.begin();
@@ -1115,7 +1118,7 @@ void LLViewerTextureList::updateMaxResidentTexMem(S32 mem)
// static
void LLViewerTextureList::receiveImageHeader(LLMessageSystem *msg, void **user_data)
{
- LLFastTimer t(LLFastTimer::FTM_PROCESS_IMAGES);
+ LLFastTimer t(FTM_PROCESS_IMAGES);
// Receive image header, copy into image object and decompresses
// if this is a one-packet image.
@@ -1179,7 +1182,7 @@ void LLViewerTextureList::receiveImageHeader(LLMessageSystem *msg, void **user_d
void LLViewerTextureList::receiveImagePacket(LLMessageSystem *msg, void **user_data)
{
LLMemType mt1(LLMemType::MTYPE_APPFMTIMAGE);
- LLFastTimer t(LLFastTimer::FTM_PROCESS_IMAGES);
+ LLFastTimer t(FTM_PROCESS_IMAGES);
// Receives image packet, copy into image object,
// checks if all packets received, decompresses if so.
@@ -1244,7 +1247,7 @@ void LLViewerTextureList::receiveImagePacket(LLMessageSystem *msg, void **user_d
// static
void LLViewerTextureList::processImageNotInDatabase(LLMessageSystem *msg,void **user_data)
{
- LLFastTimer t(LLFastTimer::FTM_PROCESS_IMAGES);
+ LLFastTimer t(FTM_PROCESS_IMAGES);
LLUUID image_id;
msg->getUUIDFast(_PREHASH_ImageID, _PREHASH_ID, image_id);
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index 2b1dbf8e84..74ed5b12fe 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -935,8 +935,6 @@ void LLViewerWindow::handleFocus(LLWindow *window)
gAgent.onAppFocusGained();
LLToolMgr::getInstance()->onAppFocusGained();
- gShowTextEditCursor = TRUE;
-
// See if we're coming in with modifier keys held down
if (gKeyboard)
{
@@ -966,11 +964,6 @@ void LLViewerWindow::handleFocusLost(LLWindow *window)
showCursor();
getWindow()->setMouseClipping(FALSE);
- // JC - Leave keyboard focus, so if you're popping in and out editing
- // a script, you don't have to click in the editor again and again.
- // gFocusMgr.setKeyboardFocus( NULL );
- gShowTextEditCursor = FALSE;
-
// If losing focus while keys are down, reset them.
if (gKeyboard)
{
@@ -2020,6 +2013,11 @@ void LLViewerWindow::draw()
// No translation needed, this view is glued to 0,0
mRootView->draw();
+ if (mToolTip->getVisible() && LLView::sDebugRects)
+ {
+ gl_rect_2d(mToolTipStickyRect, LLColor4::white, false);
+ }
+
// Draw optional on-top-of-everyone view
LLUICtrl* top_ctrl = gFocusMgr.getTopCtrl();
if (top_ctrl && top_ctrl->getVisible())
@@ -3320,7 +3318,7 @@ void LLViewerWindow::schedulePick(LLPickInfo& pick_info)
return;
}
- llassert_always(pick_info.mScreenRegion.notNull());
+ llassert_always(pick_info.mScreenRegion.notEmpty());
mPicks.push_back(pick_info);
// delay further event processing until we receive results of pick
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index 2b5c3361c4..e98e4f2e6a 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -2085,13 +2085,16 @@ S32 LLVOAvatar::setTETexture(const U8 te, const LLUUID& uuid)
}
}
+static LLFastTimer::DeclareTimer FTM_AVATAR_UPDATE("Update Avatar");
+static LLFastTimer::DeclareTimer FTM_JOINT_UPDATE("Update Joints");
+
//------------------------------------------------------------------------
// idleUpdate()
//------------------------------------------------------------------------
BOOL LLVOAvatar::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
{
LLMemType mt(LLMemType::MTYPE_AVATAR);
- LLFastTimer t(LLFastTimer::FTM_AVATAR_UPDATE);
+ LLFastTimer t(FTM_AVATAR_UPDATE);
if (isDead())
{
@@ -2110,7 +2113,7 @@ BOOL LLVOAvatar::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
// force asynchronous drawable update
if(mDrawable.notNull() && !gNoRender)
{
- LLFastTimer t(LLFastTimer::FTM_JOINT_UPDATE);
+ LLFastTimer t(FTM_JOINT_UPDATE);
if (mIsSitting && getParent())
{
@@ -2272,6 +2275,8 @@ void LLVOAvatar::idleUpdateVoiceVisualizer(bool voice_enabled)
}//if ( voiceEnabled )
}
+static LLFastTimer::DeclareTimer FTM_ATTACHMENT_UPDATE("Update Attachments");
+
void LLVOAvatar::idleUpdateMisc(bool detailed_update)
{
if (LLVOAvatar::sJointDebug)
@@ -2293,7 +2298,7 @@ void LLVOAvatar::idleUpdateMisc(bool detailed_update)
// update attachments positions
if (detailed_update || !sUseImpostors)
{
- LLFastTimer t(LLFastTimer::FTM_ATTACHMENT_UPDATE);
+ LLFastTimer t(FTM_ATTACHMENT_UPDATE);
for (attachment_map_t::iterator iter = mAttachmentPoints.begin();
iter != mAttachmentPoints.end(); )
{
@@ -4613,9 +4618,11 @@ void LLVOAvatar::requestStopMotion( LLMotion* motion )
//-----------------------------------------------------------------------------
// loadAvatar()
//-----------------------------------------------------------------------------
+static LLFastTimer::DeclareTimer FTM_LOAD_AVATAR("Load Avatar");
+
BOOL LLVOAvatar::loadAvatar()
{
-// LLFastTimer t(LLFastTimer::FTM_LOAD_AVATAR);
+// LLFastTimer t(FTM_LOAD_AVATAR);
// avatar_skeleton.xml
if( !buildSkeleton(sAvatarSkeletonInfo) )
@@ -5168,9 +5175,10 @@ LLDrawable *LLVOAvatar::createDrawable(LLPipeline *pipeline)
//-----------------------------------------------------------------------------
// updateGeometry()
//-----------------------------------------------------------------------------
+static LLFastTimer::DeclareTimer FTM_UPDATE_AVATAR("Update Avatar");
BOOL LLVOAvatar::updateGeometry(LLDrawable *drawable)
{
- LLFastTimer ftm(LLFastTimer::FTM_UPDATE_AVATAR);
+ LLFastTimer ftm(FTM_UPDATE_AVATAR);
if (!(gPipeline.hasRenderType(LLPipeline::RENDER_TYPE_AVATAR)))
{
return TRUE;
diff --git a/indra/newview/llvoclouds.cpp b/indra/newview/llvoclouds.cpp
index fbc4e2e609..130e1fd749 100644
--- a/indra/newview/llvoclouds.cpp
+++ b/indra/newview/llvoclouds.cpp
@@ -115,9 +115,11 @@ LLDrawable* LLVOClouds::createDrawable(LLPipeline *pipeline)
return mDrawable;
}
+static LLFastTimer::DeclareTimer FTM_UPDATE_CLOUDS("Update Clouds");
+
BOOL LLVOClouds::updateGeometry(LLDrawable *drawable)
{
- LLFastTimer ftm(LLFastTimer::FTM_UPDATE_CLOUDS);
+ LLFastTimer ftm(FTM_UPDATE_CLOUDS);
if (!(gPipeline.hasRenderType(LLPipeline::RENDER_TYPE_CLOUDS)))
{
return TRUE;
diff --git a/indra/newview/llvograss.cpp b/indra/newview/llvograss.cpp
index cf6eb8e9fd..a2793accea 100644
--- a/indra/newview/llvograss.cpp
+++ b/indra/newview/llvograss.cpp
@@ -382,9 +382,11 @@ LLDrawable* LLVOGrass::createDrawable(LLPipeline *pipeline)
return mDrawable;
}
+static LLFastTimer::DeclareTimer FTM_UPDATE_GRASS("Update Grass");
+
BOOL LLVOGrass::updateGeometry(LLDrawable *drawable)
{
- LLFastTimer ftm(LLFastTimer::FTM_UPDATE_GRASS);
+ LLFastTimer ftm(FTM_UPDATE_GRASS);
dirtySpatialGroup();
plantBlades();
return TRUE;
diff --git a/indra/newview/llvopartgroup.cpp b/indra/newview/llvopartgroup.cpp
index 29036f4947..38c9ce28c4 100644
--- a/indra/newview/llvopartgroup.cpp
+++ b/indra/newview/llvopartgroup.cpp
@@ -139,9 +139,10 @@ LLVector3 LLVOPartGroup::getCameraPosition() const
return gAgent.getCameraPositionAgent();
}
+static LLFastTimer::DeclareTimer FTM_UPDATE_PARTICLES("Update Particles");
BOOL LLVOPartGroup::updateGeometry(LLDrawable *drawable)
{
- LLFastTimer ftm(LLFastTimer::FTM_UPDATE_PARTICLES);
+ LLFastTimer ftm(FTM_UPDATE_PARTICLES);
dirtySpatialGroup();
@@ -416,12 +417,15 @@ void LLParticlePartition::addGeometryCount(LLSpatialGroup* group, U32& vertex_co
}
}
+static LLFastTimer::DeclareTimer FTM_REBUILD_GRASS_VB("Grass VB");
+static LLFastTimer::DeclareTimer FTM_REBUILD_PARTICLE_VB("Particle VB");
+
void LLParticlePartition::getGeometry(LLSpatialGroup* group)
{
LLMemType mt(LLMemType::MTYPE_SPACE_PARTITION);
LLFastTimer ftm(mDrawableType == LLPipeline::RENDER_TYPE_GRASS ?
- LLFastTimer::FTM_REBUILD_GRASS_VB :
- LLFastTimer::FTM_REBUILD_PARTICLE_VB);
+ FTM_REBUILD_GRASS_VB :
+ FTM_REBUILD_PARTICLE_VB);
std::sort(mFaceList.begin(), mFaceList.end(), LLFace::CompareDistanceGreater());
diff --git a/indra/newview/llvosky.cpp b/indra/newview/llvosky.cpp
index 993cf522e9..ae5992099d 100644
--- a/indra/newview/llvosky.cpp
+++ b/indra/newview/llvosky.cpp
@@ -1231,6 +1231,8 @@ void LLVOSky::createDummyVertexBuffer()
}
}
+static LLFastTimer::DeclareTimer FTM_RENDER_FAKE_VBO_UPDATE("Fake VBO Update");
+
void LLVOSky::updateDummyVertexBuffer()
{
if(!LLVertexBuffer::sEnableVBOs)
@@ -1242,7 +1244,7 @@ void LLVOSky::updateDummyVertexBuffer()
return ;
}
- LLFastTimer t(LLFastTimer::FTM_RENDER_FAKE_VBO_UPDATE) ;
+ LLFastTimer t(FTM_RENDER_FAKE_VBO_UPDATE) ;
if(!mFace[FACE_DUMMY] || mFace[FACE_DUMMY]->mVertexBuffer.isNull())
createDummyVertexBuffer() ;
@@ -1255,10 +1257,11 @@ void LLVOSky::updateDummyVertexBuffer()
//----------------------------------
//end of fake vertex buffer updating
//----------------------------------
+static LLFastTimer::DeclareTimer FTM_GEO_SKY("Sky Geometry");
BOOL LLVOSky::updateGeometry(LLDrawable *drawable)
{
- LLFastTimer ftm(LLFastTimer::FTM_GEO_SKY);
+ LLFastTimer ftm(FTM_GEO_SKY);
if (mFace[FACE_REFLECTION] == NULL)
{
LLDrawPoolWater *poolp = (LLDrawPoolWater*) gPipeline.getPool(LLDrawPool::POOL_WATER);
diff --git a/indra/newview/llvosurfacepatch.cpp b/indra/newview/llvosurfacepatch.cpp
index 4980b50de4..157d719fcc 100644
--- a/indra/newview/llvosurfacepatch.cpp
+++ b/indra/newview/llvosurfacepatch.cpp
@@ -176,10 +176,11 @@ LLDrawable *LLVOSurfacePatch::createDrawable(LLPipeline *pipeline)
return mDrawable;
}
+static LLFastTimer::DeclareTimer FTM_UPDATE_TERRAIN("Update Terrain");
BOOL LLVOSurfacePatch::updateGeometry(LLDrawable *drawable)
{
- LLFastTimer ftm(LLFastTimer::FTM_UPDATE_TERRAIN);
+ LLFastTimer ftm(FTM_UPDATE_TERRAIN);
dirtySpatialGroup();
@@ -1028,9 +1029,10 @@ LLVertexBuffer* LLTerrainPartition::createVertexBuffer(U32 type_mask, U32 usage)
return new LLVertexBufferTerrain();
}
+static LLFastTimer::DeclareTimer FTM_REBUILD_TERRAIN_VB("Terrain VB");
void LLTerrainPartition::getGeometry(LLSpatialGroup* group)
{
- LLFastTimer ftm(LLFastTimer::FTM_REBUILD_TERRAIN_VB);
+ LLFastTimer ftm(FTM_REBUILD_TERRAIN_VB);
LLVertexBuffer* buffer = group->mVertexBuffer;
diff --git a/indra/newview/llvotree.cpp b/indra/newview/llvotree.cpp
index d1cac4c77e..86d9f31d07 100644
--- a/indra/newview/llvotree.cpp
+++ b/indra/newview/llvotree.cpp
@@ -504,9 +504,11 @@ LLDrawable* LLVOTree::createDrawable(LLPipeline *pipeline)
const S32 LEAF_INDICES = 24;
const S32 LEAF_VERTICES = 16;
+static LLFastTimer::DeclareTimer FTM_UPDATE_TREE("Update Tree");
+
BOOL LLVOTree::updateGeometry(LLDrawable *drawable)
{
- LLFastTimer ftm(LLFastTimer::FTM_UPDATE_TREE);
+ LLFastTimer ftm(FTM_UPDATE_TREE);
if (mReferenceBuffer.isNull() || mDrawable->getFace(0)->mVertexBuffer.isNull())
{
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index bef38bb669..f7a16571d1 100644
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -79,6 +79,9 @@ F32 LLVOVolume::sLODSlopDistanceFactor = 0.5f; //Changing this to zero, effectiv
F32 LLVOVolume::sDistanceFactor = 1.0f;
S32 LLVOVolume::sNumLODChanges = 0;
+static LLFastTimer::DeclareTimer FTM_GEN_TRIANGLES("Generate Triangles");
+static LLFastTimer::DeclareTimer FTM_GEN_VOLUME("Generate Volumes");
+
LLVOVolume::LLVOVolume(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp)
: LLViewerObject(id, pcode, regionp),
mVolumeImpl(NULL)
@@ -1130,15 +1133,18 @@ void LLVOVolume::updateRelativeXform()
}
}
+static LLFastTimer::DeclareTimer FTM_GEN_FLEX("Generate Flexies");
+static LLFastTimer::DeclareTimer FTM_UPDATE_PRIMITIVES("Update Primitives");
+
BOOL LLVOVolume::updateGeometry(LLDrawable *drawable)
{
- LLFastTimer t(LLFastTimer::FTM_UPDATE_PRIMITIVES);
+ LLFastTimer t(FTM_UPDATE_PRIMITIVES);
if (mVolumeImpl != NULL)
{
BOOL res;
{
- LLFastTimer t(LLFastTimer::FTM_GEN_FLEX);
+ LLFastTimer t(FTM_GEN_FLEX);
res = mVolumeImpl->doUpdateGeometry(drawable);
}
updateFaceFlags();
@@ -1162,14 +1168,14 @@ BOOL LLVOVolume::updateGeometry(LLDrawable *drawable)
if (mVolumeChanged)
{
- LLFastTimer ftm(LLFastTimer::FTM_GEN_VOLUME);
+ LLFastTimer ftm(FTM_GEN_VOLUME);
LLVolumeParams volume_params = getVolume()->getParams();
setVolume(volume_params, 0);
drawable->setState(LLDrawable::REBUILD_VOLUME);
}
{
- LLFastTimer t(LLFastTimer::FTM_GEN_TRIANGLES);
+ LLFastTimer t(FTM_GEN_TRIANGLES);
regenFaces();
genBBoxes(FALSE);
}
@@ -1186,7 +1192,7 @@ BOOL LLVOVolume::updateGeometry(LLDrawable *drawable)
old_volumep = NULL ;
{
- LLFastTimer ftm(LLFastTimer::FTM_GEN_VOLUME);
+ LLFastTimer ftm(FTM_GEN_VOLUME);
LLVolumeParams volume_params = getVolume()->getParams();
setVolume(volume_params, 0);
}
@@ -1204,7 +1210,7 @@ BOOL LLVOVolume::updateGeometry(LLDrawable *drawable)
drawable->setState(LLDrawable::REBUILD_VOLUME); // for face->genVolumeTriangles()
{
- LLFastTimer t(LLFastTimer::FTM_GEN_TRIANGLES);
+ LLFastTimer t(FTM_GEN_TRIANGLES);
if (new_num_faces != old_num_faces)
{
regenFaces();
@@ -1218,7 +1224,7 @@ BOOL LLVOVolume::updateGeometry(LLDrawable *drawable)
{
compiled = TRUE;
// All it did was move or we changed the texture coordinate offset
- LLFastTimer t(LLFastTimer::FTM_GEN_TRIANGLES);
+ LLFastTimer t(FTM_GEN_TRIANGLES);
genBBoxes(FALSE);
}
@@ -2235,6 +2241,9 @@ void LLVolumeGeometryManager::getGeometry(LLSpatialGroup* group)
}
+static LLFastTimer::DeclareTimer FTM_REBUILD_VOLUME_VB("Volume");
+static LLFastTimer::DeclareTimer FTM_REBUILD_VBO("VBO Rebuilt");
+
void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
{
if (LLPipeline::sSkipUpdate)
@@ -2253,8 +2262,8 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
{
if (group->isState(LLSpatialGroup::MESH_DIRTY) && !LLPipeline::sDelayVBUpdate)
{
- LLFastTimer ftm(LLFastTimer::FTM_REBUILD_VBO);
- LLFastTimer ftm2(LLFastTimer::FTM_REBUILD_VOLUME_VB);
+ LLFastTimer ftm(FTM_REBUILD_VBO);
+ LLFastTimer ftm2(FTM_REBUILD_VOLUME_VB);
rebuildMesh(group);
}
@@ -2262,9 +2271,9 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
}
group->mBuilt = 1.f;
- LLFastTimer ftm(LLFastTimer::FTM_REBUILD_VBO);
+ LLFastTimer ftm(FTM_REBUILD_VBO);
- LLFastTimer ftm2(LLFastTimer::FTM_REBUILD_VOLUME_VB);
+ LLFastTimer ftm2(FTM_REBUILD_VOLUME_VB);
group->clearDrawMap();
diff --git a/indra/newview/llvowater.cpp b/indra/newview/llvowater.cpp
index 427119285b..332c9dd952 100644
--- a/indra/newview/llvowater.cpp
+++ b/indra/newview/llvowater.cpp
@@ -139,9 +139,11 @@ LLDrawable *LLVOWater::createDrawable(LLPipeline *pipeline)
return mDrawable;
}
+static LLFastTimer::DeclareTimer FTM_UPDATE_WATER("Update Water");
+
BOOL LLVOWater::updateGeometry(LLDrawable *drawable)
{
- LLFastTimer ftm(LLFastTimer::FTM_UPDATE_WATER);
+ LLFastTimer ftm(FTM_UPDATE_WATER);
LLFace *face;
if (drawable->getNumFaces() < 1)
diff --git a/indra/newview/llvowlsky.cpp b/indra/newview/llvowlsky.cpp
index abd25e6598..8621e5e1d9 100644
--- a/indra/newview/llvowlsky.cpp
+++ b/indra/newview/llvowlsky.cpp
@@ -307,9 +307,11 @@ void LLVOWLSky::restoreGL()
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_ALL, TRUE);
}
+static LLFastTimer::DeclareTimer FTM_GEO_SKY("Sky Geometry");
+
BOOL LLVOWLSky::updateGeometry(LLDrawable * drawable)
{
- LLFastTimer ftm(LLFastTimer::FTM_GEO_SKY);
+ LLFastTimer ftm(FTM_GEO_SKY);
LLStrider<LLVector3> vertices;
LLStrider<LLVector2> texCoords;
LLStrider<U16> indices;
diff --git a/indra/newview/llwaterparammanager.cpp b/indra/newview/llwaterparammanager.cpp
index 92c223e43d..3661be500b 100644
--- a/indra/newview/llwaterparammanager.cpp
+++ b/indra/newview/llwaterparammanager.cpp
@@ -263,9 +263,11 @@ void LLWaterParamManager::updateShaderUniforms(LLGLSLShader * shader)
}
}
+static LLFastTimer::DeclareTimer FTM_UPDATE_WLPARAM("Update Windlight Params");
+
void LLWaterParamManager::update(LLViewerCamera * cam)
{
- LLFastTimer ftm(LLFastTimer::FTM_UPDATE_WLPARAM);
+ LLFastTimer ftm(FTM_UPDATE_WLPARAM);
// update the shaders and the menu
propagateParameters();
diff --git a/indra/newview/llwlparammanager.cpp b/indra/newview/llwlparammanager.cpp
index c237c0bded..ae476c88c9 100644
--- a/indra/newview/llwlparammanager.cpp
+++ b/indra/newview/llwlparammanager.cpp
@@ -64,6 +64,7 @@
#include "curl/curl.h"
LLWLParamManager * LLWLParamManager::sInstance = NULL;
+static LLFastTimer::DeclareTimer FTM_UPDATE_WLPARAM("Update Windlight Params");
LLWLParamManager::LLWLParamManager() :
@@ -292,7 +293,7 @@ void LLWLParamManager::updateShaderUniforms(LLGLSLShader * shader)
void LLWLParamManager::propagateParameters(void)
{
- LLFastTimer ftm(LLFastTimer::FTM_UPDATE_WLPARAM);
+ LLFastTimer ftm(FTM_UPDATE_WLPARAM);
LLVector4 sunDir;
LLVector4 moonDir;
@@ -363,7 +364,7 @@ void LLWLParamManager::propagateParameters(void)
void LLWLParamManager::update(LLViewerCamera * cam)
{
- LLFastTimer ftm(LLFastTimer::FTM_UPDATE_WLPARAM);
+ LLFastTimer ftm(FTM_UPDATE_WLPARAM);
// update clouds, sun, and general
mCurParams.updateCloudScrolling();
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index f422791868..bf00957212 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -138,6 +138,33 @@ BOOL gDebugPipeline = FALSE;
LLPipeline gPipeline;
const LLMatrix4* gGLLastMatrix = NULL;
+LLFastTimer::DeclareTimer FTM_RENDER_GEOMETRY("Geometry");
+LLFastTimer::DeclareTimer FTM_RENDER_GRASS("Grass");
+LLFastTimer::DeclareTimer FTM_RENDER_INVISIBLE("Invisible");
+LLFastTimer::DeclareTimer FTM_RENDER_OCCLUSION("Occlusion");
+LLFastTimer::DeclareTimer FTM_RENDER_SHINY("Shiny");
+LLFastTimer::DeclareTimer FTM_RENDER_SIMPLE("Simple");
+LLFastTimer::DeclareTimer FTM_RENDER_TERRAIN("Terrain");
+LLFastTimer::DeclareTimer FTM_RENDER_TREES("Trees");
+LLFastTimer::DeclareTimer FTM_RENDER_UI("UI");
+LLFastTimer::DeclareTimer FTM_RENDER_WATER("Water");
+LLFastTimer::DeclareTimer FTM_RENDER_WL_SKY("Windlight Sky");
+LLFastTimer::DeclareTimer FTM_RENDER_ALPHA("Alpha Objects");
+LLFastTimer::DeclareTimer FTM_RENDER_CHARACTERS("Avatars");
+LLFastTimer::DeclareTimer FTM_RENDER_BUMP("Bump");
+LLFastTimer::DeclareTimer FTM_RENDER_FULLBRIGHT("Fullbright");
+LLFastTimer::DeclareTimer FTM_RENDER_GLOW("Glow");
+LLFastTimer::DeclareTimer FTM_GEO_UPDATE("Geo Update");
+LLFastTimer::DeclareTimer FTM_POOLRENDER("RenderPool");
+LLFastTimer::DeclareTimer FTM_POOLS("Pools");
+LLFastTimer::DeclareTimer FTM_RENDER_BLOOM_FBO("First FBO");
+LLFastTimer::DeclareTimer FTM_STATESORT("Sort Draw State");
+LLFastTimer::DeclareTimer FTM_PIPELINE("Pipeline");
+LLFastTimer::DeclareTimer FTM_CLIENT_COPY("Client Copy");
+
+static LLFastTimer::DeclareTimer FTM_STATESORT_DRAWABLE("Sort Drawables");
+static LLFastTimer::DeclareTimer FTM_STATESORT_POSTSORT("Post Sort");
+
//----------------------------------------
std::string gPoolNames[] =
{
@@ -973,7 +1000,7 @@ void LLPipeline::allocDrawable(LLViewerObject *vobj)
void LLPipeline::unlinkDrawable(LLDrawable *drawable)
{
- LLFastTimer t(LLFastTimer::FTM_PIPELINE);
+ LLFastTimer t(FTM_PIPELINE);
assertInitialized();
@@ -1035,7 +1062,7 @@ U32 LLPipeline::addObject(LLViewerObject *vobj)
void LLPipeline::createObjects(F32 max_dtime)
{
- LLFastTimer ftm(LLFastTimer::FTM_GEO_UPDATE);
+ LLFastTimer ftm(FTM_GEO_UPDATE);
LLMemType mt(LLMemType::MTYPE_PIPELINE_CREATE_OBJECTS);
LLTimer update_timer;
@@ -1201,9 +1228,12 @@ void LLPipeline::updateMovedList(LLDrawable::drawable_vector_t& moved_list)
}
}
+static LLFastTimer::DeclareTimer FTM_OCTREE_BALANCE("Balance Octree");
+static LLFastTimer::DeclareTimer FTM_UPDATE_MOVE("Update Move");
+
void LLPipeline::updateMove()
{
- LLFastTimer t(LLFastTimer::FTM_UPDATE_MOVE);
+ LLFastTimer t(FTM_UPDATE_MOVE);
LLMemType mt_um(LLMemType::MTYPE_PIPELINE_UPDATE_MOVE);
if (gSavedSettings.getBOOL("FreezeTime"))
@@ -1249,7 +1279,7 @@ void LLPipeline::updateMove()
//balance octrees
{
- LLFastTimer ot(LLFastTimer::FTM_OCTREE_BALANCE);
+ LLFastTimer ot(FTM_OCTREE_BALANCE);
for (LLWorld::region_list_t::const_iterator iter = LLWorld::getInstance()->getRegionList().begin();
iter != LLWorld::getInstance()->getRegionList().end(); ++iter)
@@ -1354,10 +1384,11 @@ BOOL LLPipeline::getVisibleExtents(LLCamera& camera, LLVector3& min, LLVector3&
return res;
}
+static LLFastTimer::DeclareTimer FTM_CULL("Object Culling");
void LLPipeline::updateCull(LLCamera& camera, LLCullResult& result, S32 water_clip)
{
- LLFastTimer t(LLFastTimer::FTM_CULL);
+ LLFastTimer t(FTM_CULL);
LLMemType mt_uc(LLMemType::MTYPE_PIPELINE_UPDATE_CULL);
grabReferences(result);
@@ -1572,7 +1603,7 @@ void LLPipeline::updateGeom(F32 max_dtime)
LLMemType mt(LLMemType::MTYPE_PIPELINE_UPDATE_GEOM);
LLPointer<LLDrawable> drawablep;
- LLFastTimer t(LLFastTimer::FTM_GEO_UPDATE);
+ LLFastTimer t(FTM_GEO_UPDATE);
assertInitialized();
@@ -1840,6 +1871,8 @@ void LLPipeline::markRebuild(LLDrawable *drawablep, LLDrawable::EDrawableFlags f
}
}
+static LLFastTimer::DeclareTimer FTM_RESET_DRAWORDER("Reset Draw Order");
+
void LLPipeline::stateSort(LLCamera& camera, LLCullResult &result)
{
const U32 face_mask = (1 << LLPipeline::RENDER_TYPE_AVATAR) |
@@ -1852,11 +1885,11 @@ void LLPipeline::stateSort(LLCamera& camera, LLCullResult &result)
if (mRenderTypeMask & face_mask)
{
//clear faces from face pools
- LLFastTimer t(LLFastTimer::FTM_RESET_DRAWORDER);
+ LLFastTimer t(FTM_RESET_DRAWORDER);
gPipeline.resetDrawOrders();
}
- LLFastTimer ftm(LLFastTimer::FTM_STATESORT);
+ LLFastTimer ftm(FTM_STATESORT);
LLMemType mt(LLMemType::MTYPE_PIPELINE_STATE_SORT);
//LLVertexBuffer::unbind();
@@ -1912,7 +1945,7 @@ void LLPipeline::stateSort(LLCamera& camera, LLCullResult &result)
}
{
- LLFastTimer ftm(LLFastTimer::FTM_STATESORT_DRAWABLE);
+ LLFastTimer ftm(FTM_STATESORT_DRAWABLE);
for (LLCullResult::drawable_list_t::iterator iter = sCull->beginVisibleList();
iter != sCull->endVisibleList(); ++iter)
{
@@ -1925,7 +1958,7 @@ void LLPipeline::stateSort(LLCamera& camera, LLCullResult &result)
}
{
- LLFastTimer ftm(LLFastTimer::FTM_CLIENT_COPY);
+ LLFastTimer ftm(FTM_CLIENT_COPY);
LLVertexBuffer::clientCopy();
}
@@ -2188,7 +2221,7 @@ void renderSoundHighlights(LLDrawable* drawablep)
void LLPipeline::postSort(LLCamera& camera)
{
LLMemType mt(LLMemType::MTYPE_PIPELINE_POST_SORT);
- LLFastTimer ftm(LLFastTimer::FTM_STATESORT_POSTSORT);
+ LLFastTimer ftm(FTM_STATESORT_POSTSORT);
assertInitialized();
@@ -2382,7 +2415,7 @@ void LLPipeline::postSort(LLCamera& camera)
void render_hud_elements()
{
LLMemType mt_rhe(LLMemType::MTYPE_PIPELINE_RENDER_HUD_ELS);
- LLFastTimer t(LLFastTimer::FTM_RENDER_UI);
+ LLFastTimer t(FTM_RENDER_UI);
gPipeline.disableLights();
LLGLDisable fog(GL_FOG);
@@ -2495,7 +2528,7 @@ void LLPipeline::renderHighlights()
void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate)
{
LLMemType mt(LLMemType::MTYPE_PIPELINE_RENDER_GEOM);
- LLFastTimer t(LLFastTimer::FTM_RENDER_GEOMETRY);
+ LLFastTimer t(FTM_RENDER_GEOMETRY);
assertInitialized();
@@ -2594,7 +2627,7 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate)
}
else
{
- LLFastTimer t(LLFastTimer::FTM_POOLS);
+ LLFastTimer t(FTM_POOLS);
// HACK: don't calculate local lights if we're rendering the HUD!
// Removing this check will cause bad flickering when there are
@@ -2626,7 +2659,7 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate)
pool_set_t::iterator iter2 = iter1;
if (hasRenderType(poolp->getType()) && poolp->getNumPasses() > 0)
{
- LLFastTimer t(LLFastTimer::FTM_POOLRENDER);
+ LLFastTimer t(FTM_POOLRENDER);
gGLLastMatrix = NULL;
glLoadMatrixd(gGLModelView);
@@ -2760,9 +2793,9 @@ void LLPipeline::renderGeomDeferred(LLCamera& camera)
LLAppViewer::instance()->pingMainloopTimeout("Pipeline:RenderGeomDeferred");
LLMemType mt_rgd(LLMemType::MTYPE_PIPELINE_RENDER_GEOM_DEFFERRED);
- LLFastTimer t(LLFastTimer::FTM_RENDER_GEOMETRY);
+ LLFastTimer t(FTM_RENDER_GEOMETRY);
- LLFastTimer t2(LLFastTimer::FTM_POOLS);
+ LLFastTimer t2(FTM_POOLS);
LLGLEnable cull(GL_CULL_FACE);
@@ -2804,7 +2837,7 @@ void LLPipeline::renderGeomDeferred(LLCamera& camera)
pool_set_t::iterator iter2 = iter1;
if (hasRenderType(poolp->getType()) && poolp->getNumDeferredPasses() > 0)
{
- LLFastTimer t(LLFastTimer::FTM_POOLRENDER);
+ LLFastTimer t(FTM_POOLRENDER);
gGLLastMatrix = NULL;
glLoadMatrixd(gGLModelView);
@@ -2862,7 +2895,7 @@ void LLPipeline::renderGeomDeferred(LLCamera& camera)
void LLPipeline::renderGeomPostDeferred(LLCamera& camera)
{
LLMemType mt_rgpd(LLMemType::MTYPE_PIPELINE_RENDER_GEOM_POST_DEF);
- LLFastTimer t(LLFastTimer::FTM_POOLS);
+ LLFastTimer t(FTM_POOLS);
U32 cur_type = 0;
LLGLEnable cull(GL_CULL_FACE);
@@ -2895,7 +2928,7 @@ void LLPipeline::renderGeomPostDeferred(LLCamera& camera)
pool_set_t::iterator iter2 = iter1;
if (hasRenderType(poolp->getType()) && poolp->getNumPostDeferredPasses() > 0)
{
- LLFastTimer t(LLFastTimer::FTM_POOLRENDER);
+ LLFastTimer t(FTM_POOLRENDER);
gGLLastMatrix = NULL;
glLoadMatrixd(gGLModelView);
@@ -4979,6 +5012,7 @@ void LLPipeline::bindScreenToTexture()
}
+static LLFastTimer::DeclareTimer FTM_RENDER_BLOOM("Bloom");
void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield)
{
LLMemType mt_ru(LLMemType::MTYPE_PIPELINE_RENDER_BLOOM);
@@ -5012,7 +5046,7 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield)
gGL.setColorMask(true, true);
- LLFastTimer ftm(LLFastTimer::FTM_RENDER_BLOOM);
+ LLFastTimer ftm(FTM_RENDER_BLOOM);
gGL.color4f(1,1,1,1);
LLGLDepthTest depth(GL_FALSE);
LLGLDisable blend(GL_BLEND);
@@ -5087,7 +5121,7 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield)
{
{
- LLFastTimer ftm(LLFastTimer::FTM_RENDER_BLOOM_FBO);
+ LLFastTimer ftm(FTM_RENDER_BLOOM_FBO);
mGlow[2].bindTarget();
mGlow[2].clear();
}
@@ -5159,7 +5193,7 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield)
{
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
{
- LLFastTimer ftm(LLFastTimer::FTM_RENDER_BLOOM_FBO);
+ LLFastTimer ftm(FTM_RENDER_BLOOM_FBO);
mGlow[i%2].bindTarget();
mGlow[i%2].clear();
}
@@ -5201,7 +5235,7 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield)
if (LLRenderTarget::sUseFBO)
{
- LLFastTimer ftm(LLFastTimer::FTM_RENDER_BLOOM_FBO);
+ LLFastTimer ftm(FTM_RENDER_BLOOM_FBO);
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
}
@@ -6095,6 +6129,10 @@ glh::matrix4f scale_translate_to_fit(const LLVector3 min, const LLVector3 max)
return ret;
}
+static LLFastTimer::DeclareTimer FTM_SHADOW_RENDER("Render Shadows");
+static LLFastTimer::DeclareTimer FTM_SHADOW_ALPHA("Alpha Shadow");
+static LLFastTimer::DeclareTimer FTM_SHADOW_SIMPLE("Simple Shadow");
+
void LLPipeline::generateSunShadow(LLCamera& camera)
{
@@ -6343,7 +6381,7 @@ void LLPipeline::generateSunShadow(LLCamera& camera)
mShadowCamera[j+4] = shadow_cam;
}
- LLFastTimer t(LLFastTimer::FTM_SHADOW_RENDER);
+ LLFastTimer t(FTM_SHADOW_RENDER);
stop_glerror();
@@ -6381,7 +6419,7 @@ void LLPipeline::generateSunShadow(LLCamera& camera)
gDeferredShadowProgram.bind();
{
- LLFastTimer ftm(LLFastTimer::FTM_SHADOW_SIMPLE);
+ LLFastTimer ftm(FTM_SHADOW_SIMPLE);
LLGLDisable test(GL_ALPHA_TEST);
gGL.getTexUnit(0)->disable();
for (U32 i = 0; i < sizeof(types)/sizeof(U32); ++i)
@@ -6392,7 +6430,7 @@ void LLPipeline::generateSunShadow(LLCamera& camera)
}
{
- LLFastTimer ftm(LLFastTimer::FTM_SHADOW_ALPHA);
+ LLFastTimer ftm(FTM_SHADOW_ALPHA);
LLGLEnable test(GL_ALPHA_TEST);
gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.6f);
renderObjects(LLRenderPass::PASS_ALPHA_SHADOW, LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_TEXCOORD0 | LLVertexBuffer::MAP_COLOR, TRUE);
diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h
index fc02e7dd88..8f6867aa01 100644
--- a/indra/newview/pipeline.h
+++ b/indra/newview/pipeline.h
@@ -78,6 +78,27 @@ glh::matrix4f gl_ortho(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top,
glh::matrix4f gl_perspective(GLfloat fovy, GLfloat aspect, GLfloat zNear, GLfloat zFar);
glh::matrix4f gl_lookat(LLVector3 eye, LLVector3 center, LLVector3 up);
+extern LLFastTimer::DeclareTimer FTM_RENDER_GEOMETRY;
+extern LLFastTimer::DeclareTimer FTM_RENDER_GRASS;
+extern LLFastTimer::DeclareTimer FTM_RENDER_INVISIBLE;
+extern LLFastTimer::DeclareTimer FTM_RENDER_OCCLUSION;
+extern LLFastTimer::DeclareTimer FTM_RENDER_SHINY;
+extern LLFastTimer::DeclareTimer FTM_RENDER_SIMPLE;
+extern LLFastTimer::DeclareTimer FTM_RENDER_TERRAIN;
+extern LLFastTimer::DeclareTimer FTM_RENDER_TREES;
+extern LLFastTimer::DeclareTimer FTM_RENDER_UI;
+extern LLFastTimer::DeclareTimer FTM_RENDER_WATER;
+extern LLFastTimer::DeclareTimer FTM_RENDER_WL_SKY;
+extern LLFastTimer::DeclareTimer FTM_RENDER_ALPHA;
+extern LLFastTimer::DeclareTimer FTM_RENDER_CHARACTERS;
+extern LLFastTimer::DeclareTimer FTM_RENDER_BUMP;
+extern LLFastTimer::DeclareTimer FTM_RENDER_FULLBRIGHT;
+extern LLFastTimer::DeclareTimer FTM_RENDER_GLOW;
+extern LLFastTimer::DeclareTimer FTM_STATESORT;
+extern LLFastTimer::DeclareTimer FTM_PIPELINE;
+extern LLFastTimer::DeclareTimer FTM_CLIENT_COPY;
+
+
class LLPipeline
{
public:
diff --git a/indra/newview/skins/default/textures/navbar/Favorite_Star_Active.png b/indra/newview/skins/default/textures/navbar/Favorite_Star_Active.png
index a4060e5e37..e27dbe2cad 100644
--- a/indra/newview/skins/default/textures/navbar/Favorite_Star_Active.png
+++ b/indra/newview/skins/default/textures/navbar/Favorite_Star_Active.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/navbar/Favorite_Star_Off.png b/indra/newview/skins/default/textures/navbar/Favorite_Star_Off.png
index 9c2815ebba..82d044d817 100644
--- a/indra/newview/skins/default/textures/navbar/Favorite_Star_Off.png
+++ b/indra/newview/skins/default/textures/navbar/Favorite_Star_Off.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/navbar/Favorite_Star_Over.png b/indra/newview/skins/default/textures/navbar/Favorite_Star_Over.png
index 377b707529..7909d54f2b 100644
--- a/indra/newview/skins/default/textures/navbar/Favorite_Star_Over.png
+++ b/indra/newview/skins/default/textures/navbar/Favorite_Star_Over.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/navbar/Favorite_Star_Press.png b/indra/newview/skins/default/textures/navbar/Favorite_Star_Press.png
index a69a729bd4..6670667022 100644
--- a/indra/newview/skins/default/textures/navbar/Favorite_Star_Press.png
+++ b/indra/newview/skins/default/textures/navbar/Favorite_Star_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Icon_Close_Foreground.png b/indra/newview/skins/default/textures/windows/Icon_Close_Foreground.png
index fb59f2e61e..5dd0852a72 100644
--- a/indra/newview/skins/default/textures/windows/Icon_Close_Foreground.png
+++ b/indra/newview/skins/default/textures/windows/Icon_Close_Foreground.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Icon_Close_Press.png b/indra/newview/skins/default/textures/windows/Icon_Close_Press.png
index 7177c803b0..ea547fca6f 100644
--- a/indra/newview/skins/default/textures/windows/Icon_Close_Press.png
+++ b/indra/newview/skins/default/textures/windows/Icon_Close_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Icon_Dock_Foreground.png b/indra/newview/skins/default/textures/windows/Icon_Dock_Foreground.png
index cadd6bc8ce..4207ba68e5 100644
--- a/indra/newview/skins/default/textures/windows/Icon_Dock_Foreground.png
+++ b/indra/newview/skins/default/textures/windows/Icon_Dock_Foreground.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Icon_Dock_Press.png b/indra/newview/skins/default/textures/windows/Icon_Dock_Press.png
index 08f8cfc3d4..2d09475783 100644
--- a/indra/newview/skins/default/textures/windows/Icon_Dock_Press.png
+++ b/indra/newview/skins/default/textures/windows/Icon_Dock_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Icon_Undock_Foreground.png b/indra/newview/skins/default/textures/windows/Icon_Undock_Foreground.png
index d790cf57ef..9a71d16a3f 100644
--- a/indra/newview/skins/default/textures/windows/Icon_Undock_Foreground.png
+++ b/indra/newview/skins/default/textures/windows/Icon_Undock_Foreground.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Icon_Undock_Press.png b/indra/newview/skins/default/textures/windows/Icon_Undock_Press.png
index fdae4b75f6..3ab8c3666a 100644
--- a/indra/newview/skins/default/textures/windows/Icon_Undock_Press.png
+++ b/indra/newview/skins/default/textures/windows/Icon_Undock_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/xui/da/notifications.xml b/indra/newview/skins/default/xui/da/notifications.xml
index eedc588449..633fff079b 100644
--- a/indra/newview/skins/default/xui/da/notifications.xml
+++ b/indra/newview/skins/default/xui/da/notifications.xml
@@ -1,15 +1,14 @@
-<?xml version="1.0" ?><notifications>
-
- <global name="skipnexttime">
-
+<?xml version="1.0" encoding="utf-8"?>
+<notifications>
+ <global name="skipnexttime">
Vis ikke dette igen
- </global>
-
- <global name="alwayschoose">
-
+ </global>
+ <global name="alwayschoose">
Vælg altid dette
- </global>
-
+ </global>
+ <global name="implicitclosebutton">
+ Luk
+ </global>
<template name="okbutton">
<form>
<button
@@ -74,421 +73,438 @@
text="$canceltext"/>
</form>
</template>
+ <notification functor="GenericAcknowledge" label="Ukendt advarsels-besked" name="MissingAlert">
+ Din version af Second Life kan ikke vise den advarselsbesked den modtog.
- <notification
- functor="GenericAcknowledge"
-
- name="MissingAlert"
- >
-&apos;[_NAME]&apos; mangler fra notifications.xml.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="FloaterNotFound"
- >
-Floater error: Kunne ikke finde følgende kontrol:
+Fejl detaljer: Advarslen &apos;[_NAME]&apos; blev ikke fundet i notifications.xml.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="FloaterNotFound">
+ Floater error: Kunne ikke finde følgende kontrol:
[CONTROLS]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="TutorialNotFound">
+ Der er i øjeblikket ingen tilgængelig guide.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="GenericAlert">
+ [MESSAGE]
+ </notification>
+ <notification name="GenericAlertYesCancel">
+ [MESSAGE]
+ <usetemplate name="okcancelbuttons" notext="Annullér" yestext="Ja"/>
+ </notification>
+ <notification name="BadInstallation">
+ Der opstod en fejl ved opdatering af Second Life. Hent venligst den nyeste version fra secondlife.com.
<usetemplate
name="okbutton"
yestext="OK"/>
- </notification>
-
- <notification
-
- name="TutorialNotFound"
- >
-Der er i øjeblikket ingen tilgængelig guide.
- <usetemplate
+ </notification>
+ <notification name="LoginFailedNoNetwork">
+ Netværksfejl: Kunne ikke oprette forbindelse.
+&apos;[DIAGNOSTIC]&apos;
+Check venligst din netværksforbindelse.
+ <usetemplate
name="okbutton"
yestext="OK"/>
- </notification>
-
- <notification
-
- name="GenericAlert"
- >
-[MESSAGE]
- </notification>
-
- <notification
-
- name="GenericAlertYesCancel"
- >
-[MESSAGE]
- <usetemplate
- name="okcancelbuttons"
- notext="Annullér"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="WearableSave"
- >
-Gem ændringer til nuværende tøj/krops del?
- <usetemplate
- canceltext="Annullér"
- name="yesnocancelbuttons"
- notext="Gem ikke"
- yestext="Gem"/>
- </notification>
-
- <notification
-
- name="CompileQueueSaveText"
- >
-Der var problemer med upload af teksten til et script af følgende årsager: [REASON]. Prøv igen senere.
- </notification>
-
- <notification
-
- name="CompileQueueSaveBytecode"
- >
-Der var problemer med at uploade den kompileret script af følgende årsager: [REASON]. Prøv igen senere.
- </notification>
-
- <notification
-
- name="WriteAnimationFail"
- >
-Der var et problem med skrivning af animations data. Prøv igen senere.
- </notification>
-
- <notification
-
- name="UploadAuctionSnapshotFail"
- >
-Der var problemer med at uploade billedet til auktionen af følgende årsager: [REASON]
- </notification>
-
- <notification
-
- name="UnableToViewContentsMoreThanOne"
- >
-Ude af stand til at se indholdet af mere end ét element ad gangen.
+ </notification>
+ <notification name="MessageTemplateNotFound">
+ Besked template [PATH] kunne ikke findes.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="WearableSave">
+ Gem ændringer til nuværende tøj/krops del?
+ <usetemplate canceltext="Annullér" name="yesnocancelbuttons" notext="Gem ikke" yestext="Gem"/>
+ </notification>
+ <notification name="CompileQueueSaveText">
+ Der var problemer med upload af teksten til et script af følgende årsager: [REASON]. Prøv igen senere.
+ </notification>
+ <notification name="CompileQueueSaveBytecode">
+ Der var problemer med at uploade den kompileret script af følgende årsager: [REASON]. Prøv igen senere.
+ </notification>
+ <notification name="WriteAnimationFail">
+ Der var et problem med skrivning af animations data. Prøv igen senere.
+ </notification>
+ <notification name="UploadAuctionSnapshotFail">
+ Der var problemer med at uploade billedet til auktionen af følgende årsager: [REASON]
+ </notification>
+ <notification name="UnableToViewContentsMoreThanOne">
+ Ude af stand til at se indholdet af mere end ét element ad gangen.
Vælg kun en genstand, og prøv igen.
- </notification>
-
- <notification
-
- name="SaveClothingBodyChanges"
- >
-Gem alle ændringer til tøj/krops dele?
- <usetemplate
- canceltext="Annullér"
- name="yesnocancelbuttons"
- notext="Gem Ikke"
- yestext="Gem Alt"/>
- </notification>
-
- <notification
-
- name="GrantModifyRights"
- >
-At give redigerings rettigheder til en anden beboer, giver dem mulighed for at ændre, slette eller tage alle genstande, du måtte have i verden. Vær meget forsigtig når uddeler denne tilladelse.
+ </notification>
+ <notification name="SaveClothingBodyChanges">
+ Gem alle ændringer til tøj/krops dele?
+ <usetemplate canceltext="Annullér" name="yesnocancelbuttons" notext="Gem Ikke" yestext="Gem Alt"/>
+ </notification>
+ <notification name="GrantModifyRights">
+ At give redigerings rettigheder til en anden beboer, giver dem mulighed for at ændre, slette eller tage alle genstande, du måtte have i verden. Vær meget forsigtig når uddeler denne tilladelse.
Ønsker du at ændre rettigheder for [FIRST_NAME] [LAST_NAME]?
- <usetemplate
- name="okcancelbuttons"
- notext="Nej"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="GrantModifyRightsMultiple"
- >
-At give redigerings rettigheder til en anden beboer, giver dem mulighed for at ændre, slette eller tage alle genstande, du måtte have i verden. Vær meget forsigtig når uddeler denne tilladelse.
+ <usetemplate name="okcancelbuttons" notext="Nej" yestext="Ja"/>
+ </notification>
+ <notification name="GrantModifyRightsMultiple">
+ At give redigerings rettigheder til en anden beboer, giver dem mulighed for at ændre, slette eller tage alle genstande, du måtte have i verden. Vær meget forsigtig når uddeler denne tilladelse.
Ønsker du at ændre rettigheder for de valgte beboere?
- <usetemplate
- name="okcancelbuttons"
- notext="Nej"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="RevokeModifyRights"
- >
-Vil du tilbagekalde rettighederne for [FIRST_NAME] [LAST_NAME]?
- <usetemplate
- name="okcancelbuttons"
- notext="Nej"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="RevokeModifyRightsMultiple"
- >
-Vil du tilbagekalde rettighederne for de valgte beboere?
- <usetemplate
- name="okcancelbuttons"
- notext="Nej"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="UnableToCreateGroup"
- >
-Kunne ikke oprette gruppe.
+ <usetemplate name="okcancelbuttons" notext="Nej" yestext="Ja"/>
+ </notification>
+ <notification name="RevokeModifyRights">
+ Vil du tilbagekalde rettighederne for [FIRST_NAME] [LAST_NAME]?
+ <usetemplate name="okcancelbuttons" notext="Nej" yestext="Ja"/>
+ </notification>
+ <notification name="RevokeModifyRightsMultiple">
+ Vil du tilbagekalde rettighederne for de valgte beboere?
+ <usetemplate name="okcancelbuttons" notext="Nej" yestext="Ja"/>
+ </notification>
+ <notification name="UnableToCreateGroup">
+ Kunne ikke oprette gruppe.
[MESSAGE]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="PanelGroupApply"
- >
-[NEEDS_APPLY_MESSAGE]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="PanelGroupApply">
+ [NEEDS_APPLY_MESSAGE]
[WANT_APPLY_MESSAGE]
- <usetemplate
- canceltext="Annullér"
- name="yesnocancelbuttons"
- notext="Ignorer Ændringer"
- yestext="Godkend Ændringer"/>
- </notification>
-
- <notification
-
- name="MustSpecifyGroupNoticeSubject"
- >
-Du skal angive et emne for at sende en gruppe besked.
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="AddGroupOwnerWarning"
- >
-Du er ved at tilføje medlemmer til rollen som [ROLE_NAME].
+ <usetemplate canceltext="Annullér" name="yesnocancelbuttons" notext="Ignorer Ændringer" yestext="Godkend Ændringer"/>
+ </notification>
+ <notification name="MustSpecifyGroupNoticeSubject">
+ Du skal angive et emne for at sende en gruppe besked.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="AddGroupOwnerWarning">
+ Du er ved at tilføje medlemmer til rollen som [ROLE_NAME].
Medlemmer ikke kan fjernes fra denne rolle.
Medlemmerne skal fratræde sin rolle selv.
Er du sikker på du vil fortsætte?
- <usetemplate
- ignoretext="Når du tilføjer medlemmer til ejer rollen"
- name="okcancelignore"
- notext="Nej"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="AssignDangerousActionWarning"
- >
-Du er ved at tilføje muligheden for &apos;[ACTION_NAME]&apos; til
+ <usetemplate ignoretext="Når du tilføjer medlemmer til ejer rollen" name="okcancelignore" notext="Nej" yestext="Ja"/>
+ </notification>
+ <notification name="AssignDangerousActionWarning">
+ Du er ved at tilføje muligheden for &apos;[ACTION_NAME]&apos; til
rollen &apos;[ROLE_NAME]&apos;.
*ADVARSEL*
Ethvert medlem i en rolle med denne evne kan tildele sig selv -- og et andet medlem - roller med flere beføjelser, end de har i øjeblikket, potentielt kan de ophøje sig selv til nær-Ejer magt. Være sikker på, at du ved, hvad du laver, før tildeling af denne evne.
Add this Ability to &apos;[ROLE_NAME]&apos;?
+ <usetemplate name="okcancelbuttons" notext="Nej" yestext="Ja"/>
+ </notification>
+ <notification name="ClickSoundHelpLand">
+ Media og musik kan kun ses og høres indenfor parcellen. Lyd og stemme valg muligheder kan begrænses til parcellen eller de kan høres af beboere udenfor parcellen, afhængigt af deres indholdsrating. Gå til &apos;Knowledge Base&apos; for at lære hvordan disse valg opsættes.
+ <url name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=5046
+ </url>
<usetemplate
name="okcancelbuttons"
- notext="Nej"
- yestext="Ja"/>
- </notification>
-
- <notification
-
- name="ClickPublishHelpAvatar"
- >
-Hvis du vælger &quot;Vis i Søgning&quot; Vises:
+ yestext="Gå til &apos;Knowledge Base&apos;"
+ notext="Luk" />
+ </notification>
+ <notification name="ClickSearchHelpAll">
+ Søgeresultater er organiseret baseret på den fane du står på, din indholdsrating, den valgte kategori og andre faktorer. for yderligere detaljer se i &apos;Knowledge Base&apos;.
+ <url name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=4722
+ </url>
+ <usetemplate
+ name="okcancelbuttons"
+ yestext="Gå til &apos;Knowledge Base&apos;"
+ notext="Luk" />
+ </notification>
+ <notification name="ClickPublishHelpAvatar">
+ Hvis du vælger &quot;Vis i Søgning&quot; Vises:
- Din profil i søgeresultater
- Et link til din profile i de offentlige gruppe sider
- </notification>
-
- <notification
-
- name="ClickWebProfileHelpAvatar"
- >
-Hvis en beboer har en hjemmeside adresse kan du:
+ </notification>
+ <notification name="ClickUploadHelpPermissions">
+ Dinne standard rettigheder virker muligvis ikke i ældre regioner.
+ </notification>
+ <notification name="ClickWebProfileHelpAvatar">
+ Hvis en beboer har en hjemmeside adresse kan du:
* Klikke &apos;Load&apos; for at side deres side her.
* Klikke Load &gt; &apos;I ekstern browser&apos; for at se siden i din standard browser.
* Klikke Load &gt; &apos;Hjemme URL&apos; for at returnere til denne beboers side hvis du har navigeret væk.
Når du ser din egen profil, kan du skrive hvilken som helst adresse og klikke ok for at få den vist i din egen profil.
Andre beboere kan besøge den adresse du har sat, når de besøger din profil.
- </notification>
-
- <notification
-
- name="JoinGroupCannotAfford"
- >
-Tilmelding til denne gruppe koster L$[COST].
+ </notification>
+ <notification name="JoinGroupCannotAfford">
+ Tilmelding til denne gruppe koster L$[COST].
Du har ikke nok L$ til denne tilmelding.
- </notification>
-
- <notification
-
- name="PromptMissingSubjMsg"
- >
-E-mail dette billede med standard emne eller besked?
- <usetemplate
- name="okcancelbuttons"
- notext="Annullér"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ErrorUploadingPostcard"
- >
-Der var et problem med at sende billedet på grund af følgende: [REASON]
- </notification>
-
- <notification
-
- name="MustHaveAccountToLogIn"
- >
-Ups! Noget var tomt.
+ </notification>
+ <notification name="PromptMissingSubjMsg">
+ E-mail dette billede med standard emne eller besked?
+ <usetemplate name="okcancelbuttons" notext="Annullér" yestext="OK"/>
+ </notification>
+ <notification name="ErrorUploadingPostcard">
+ Der var et problem med at sende billedet på grund af følgende: [REASON]
+ </notification>
+ <notification name="MustHaveAccountToLogIn">
+ Ups! Noget var tomt.
Du skal skrive både fornavn og efternavn på din figur.
Du har brug for en konto for at logge ind i [SECOND_LIFE]. Vil du oprette en nu?
- <usetemplate
- name="okcancelbuttons"
- notext="Prøv igen"
- yestext="Lav ny konto"/>
- </notification>
-
- <notification
-
- name="ResetShowNextTimeDialogs"
- >
-Vil du gerne genaktivere alle disse popups, som du tidligere har bedt om ikke at få vist?
- <usetemplate
- name="okcancelbuttons"
- notext="Annullér"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="SkipShowNextTimeDialogs"
- >
-Vil du deaktivere alle popups som kan undværes?
- <usetemplate
- name="okcancelbuttons"
- notext="Annullér"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="ChangeSkin"
- >
-Det nye udseende vil vises efter du har genstartet [SECOND_LIFE].
- </notification>
-
- <notification
-
- name="UnsupportedHardware"
- >
- <form name="form">
- <ignore name="ignore"
- text="Ved opdagelse af ikke supporteret hardware"/>
- </form>
- </notification>
-
- <notification
-
- name="UnknownGPU"
- >
- <form name="form">
- <ignore name="ignore"
- text="Ved opdagelse af et ukendt grafikkort"/>
- </form>
- </notification>
-
- <notification
-
- name="CannotGiveCategory"
- >
-Du har ikke tilladelse til at videreføre den valgte mappe.
- </notification>
-
- <notification
-
- name="CannotBuyLandNoRegion"
- >
-Ikke i stand til at købe land:
+ <usetemplate name="okcancelbuttons" notext="Prøv igen" yestext="Lav ny konto"/>
+ </notification>
+ <notification name="ResetShowNextTimeDialogs">
+ Vil du gerne genaktivere alle disse popups, som du tidligere har bedt om ikke at få vist?
+ <usetemplate name="okcancelbuttons" notext="Annullér" yestext="OK"/>
+ </notification>
+ <notification name="SkipShowNextTimeDialogs">
+ Vil du deaktivere alle popups som kan undværes?
+ <usetemplate name="okcancelbuttons" notext="Annullér" yestext="OK"/>
+ </notification>
+ <notification name="ChangeSkin">
+ Det nye udseende vil vises efter du har genstartet [SECOND_LIFE].
+ </notification>
+ <notification name="UnsupportedHardware"/>
+ <notification name="UnknownGPU">
+ <form name="form">
+ <ignore name="ignore" text="Ved opdagelse af et ukendt grafikkort"/>
+ </form>
+ </notification>
+
+ <notification name="invalid_tport">
+Der er problemer med at håndtere din teleport. Det kan være nødvendigt at logge ud og ind for at kunne skifte teleportere.
+Hvis du bliver ved med at have problemet kan du checke teknisk support på:
+www.secondlife.com/support
+ </notification>
+ <notification name="invalid_region_handoff">
+Problem registreret i forbindelse med skift til ny region. Det kan være nødvendigt at logge ud og ind for at kunne skifte regioner.
+Hvis du bliver ved med at have problemet kan du checke teknisk support på:
+www.secondlife.com/support
+ </notification>
+ <notification name="blocked_tport">
+Beklager, teleport er blokeret lige nu. Prøv igen senere.
+Hvis du stadig ikke kan teleporte, prøv venligst at logge ud og ligge ind for at løse dette problem.
+ </notification>
+ <notification name="nolandmark_tport">
+Beklager, systemet kunne ikke finde landmærke destinationen.
+ </notification>
+ <notification name="timeout_tport">
+Beklager, systemet kunne ikke fuldføre teleport forbindelse.
+Prøv igen om lidt.
+ </notification>
+ <notification name="noaccess_tport">
+Beklager, du har ikke adgang til denne teleport destination.
+ </notification>
+ <notification name="missing_attach_tport">
+Dine vedhæng er ikke ankommet endnu. Prøv at vente lidt endnu eller log ud og ind igen før du prøver at teleporte igen.
+ </notification>
+ <notification name="too_many_uploads_tport">
+Tekniske problemer hindrer at din teleport kan gennemføres.
+Prøv venligst igen om lidt eller vælg et mindre travlt område.
+ </notification>
+ <notification name="expired_tport">
+Beklager, men systemet kunne ikke fuldføre din teleport i rimelig tid. Prøv venligst igen om lidt.
+ </notification>
+ <notification name="expired_region_handoff">
+Beklager, men systemet kunne ikke fuldføre skift til anden region i rimelig tid. Prøv venligst igen om lidt.
+ </notification>
+ <notification name="no_host">
+Ikke muligt at fine teleport destination. Destinationen kan være midlertidig utilgængelig eller findes ikke mere.
+Prøv evt. igen om lidt.
+ </notification>
+ <notification name="no_inventory_host">
+Beholdningssystemet er ikke tilgængelig lige nu.
+ </notification>
+
+ <notification name="CannotGiveCategory">
+ Du har ikke tilladelse til at videreføre den valgte mappe.
+ </notification>
+ <notification name="CannotEncodeFile">
+ Kunne ikke &apos;forstå&apos; filen: [FILE]
+ </notification>
+ <notification name="CannotBuyLandNoRegion">
+ Ikke i stand til at købe land:
Kan ikke finde region som dette land er i.
- </notification>
-
- <notification
-
- name="YouHaveBeenLoggedOut"
- >
-Du er blevet logget ud af [SECOND_LIFE]:
+ </notification>
+ <notification name="ShowOwnersHelp">
+ Vis ejere:
+Farver på parceller viser ejer-type.
+
+Grøn = Dit land
+Turkis = Din gruppes land
+Rød = Ejet af andre
+Gul = Til salg
+Lilla = På auktion
+Grå = Offentligt ejet
+ </notification>
+ <notification name="YouHaveBeenLoggedOut">
+ Du er blevet logget ud af [SECOND_LIFE]:
[MESSAGE]
Du kan stadig se eksiterende PB&apos;er og chat ved at klikke&apos;Se PB &amp; Chat&apos;. Ellers, klik &apos;Afslut&apos; for at afslutte [SECOND_LIFE] nu.
- <usetemplate
- name="okcancelbuttons"
- notext="Quit"
- yestext="Se IM &amp; Chat"/>
- </notification>
-
- <notification
-
- label="Add Friend"
- name="AddFriend"
- >
-Venner kan give tilladelse til at følge hinanden
+ <usetemplate name="okcancelbuttons" notext="Afslut" yestext="Se PB &amp; Chat"/>
+ </notification>
+ <notification label="Tilføj ven" name="AddFriend">
+ Venner kan give tilladelse til at følge hinanden
på Verdenskortet eller modtage status opdateringer.
Tilbyd venskab til [NAME]?
- <usetemplate
- name="okcancelbuttons"
- notext="Annullér"
- yestext="OK"/>
- </notification>
-
- <notification
-
- label="Add Friend"
- name="AddFriendWithMessage"
- >
-Venner kan give tilladelse til at følge hinanden
+ <usetemplate name="okcancelbuttons" notext="Annullér" yestext="OK"/>
+ </notification>
+ <notification label="Tilføj ven" name="AddFriendWithMessage">
+ Venner kan give tilladelse til at følge hinanden
på Verdenskortet eller modtage status opdateringer.
Tilbyd venskab til [NAME]?
- <form name="form">
- <input name="message" type="text">
-Vil du være min ven?
- </input>
+ <form name="form">
+ <input name="message" type="text">
+ Vil du være min ven?
+ </input>
+ <button name="Offer" text="OK"/>
+ <button name="Cancel" text="Annullér"/>
+ </form>
+ </notification>
+ <notification name="NotEnoughCurrency">
+ [NAME] L$ [PRICE] Du har ikke nok L$ til dette.
+ </notification>
+ <notification name="BuyOneObjectOnly">
+ Ikke muligt at købe mere end et objekt ad gangen. Vælg kun ét objekt og prøv igen.
+ </notification>
+ <notification name="CannotStartAuctionAlreadyForSale">
+ Du kan ikke starte en auktion på en parcel som allerede er sat til salg. Fjern &apos;til salg&apos; muligheden hvis du ønsker at starte en auktion.
+ </notification>
+ <notification name="OfferTeleport">
+ <form name="form">
+ <input name="message" type="text">
+ Mød mig i [REGION]
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Annullér"/>
+ </form>
+ </notification>
+ <notification name="RegionEntryAccessBlocked">
+ Du har ikke adgang til denne region på grund af din valgte indholdsrating. Dette kan skyldes manglende validering af din alder.
+
+Undersøg venligst om du har installeret den nyeste Second Life klient, og gå til &apos;Knowledge Base&apos; for yderligere detaljer om adgang til områder med denne indholdsrating.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="RegionEntryAccessBlocked_KB">
+ Du har ikke adgang til denne region på grund af din valgte indholdsrating.
+
+Gå til &apos;Knowledge Base&apos; for mere information om indholdsratings.
+ <url name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=6010
+ </url>
+ <usetemplate
+ name="okcancelignore"
+ yestext="Gå til &apos;Knowledge Base&apos;"
+ notext="Luk"
+ ignoretext="Når regionen er blokeret på grund af indholdsrating"/>
+ </notification>
+ <notification name="RegionEntryAccessBlocked_Notify">
+ Du har ikke adgang til denne region på grund af din valgte indholdsrating.
+ </notification>
+ <notification name="RegionEntryAccessBlocked_Change">
+ Du har ikke adgang til denne region på grund af din nuværende indholdsrating opsætning.
+
+Du kan vælge &apos;Indstillinger&apos; for at hæve din indholdsrating nu og dermed få adgang. Du vil så få mulighed for at søge og få adgang til områder med indhold af typen [REGIONMATURITY]. Hvis du senere ønsker at skifte tilbage, kan du skifte tilbage i &apos;Indstillinger&apos;.
+ <form name="form">
<button
-
-
- name="Offer"
- text="OK"/>
+ name="OK"
+ text="Ændre præferencer"/>
<button
-
name="Cancel"
- text="Annullér"/>
+ text="Luk"/>
+ <ignore name="ignore" text="Når regionen er blokeret på grund af indholdsrating"/>
</form>
- </notification>
+ </notification>
+ <notification name="LandClaimAccessBlocked">
+ Du kan ikke kræve dette land på grund af din nuværende indholdsrating indstillinge . Dette kan skyldes manglende validering af din alder.
- <notification
-
- name="NotEnoughCurrency"
- >
-[NAME] L$ [PRICE] Du har ikke nok L$ til dette.
- </notification>
+Undersøg om du har den nyeste Second Life klient og gå venligst til &apos;Knowledge Base&apos; for yderligere detaljer om adgang til områder med denne indholdsrating.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="LandClaimAccessBlocked_KB">
+ Du kan ikke kræve dette land på grund af din nuværende indholdsrating indstilling..
+
+Gå venligst til &apos;Knowledge Base&apos; for yderligere information om indholdsrating.
+ <url name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=6010
+ </url>
+ <usetemplate
+ name="okcancelignore"
+ yestext="Gå til &apos;Knowledge Base&apos;"
+ notext="Luk"
+ ignoretext="Når land ikke kan kræves på grund af indholdsrating"/>
+ </notification>
+ <notification name="LandClaimAccessBlocked_Notify">
+ Du kan ikke kræve dette land på grund af din indholdsrating.
+ </notification>
+ <notification name="LandClaimAccessBlocked_Change">
+ Du kan ikke kræve dette land på grund af din nuværende indholdsrating indstilling..
+
+Du kan vælge &apos;Indstillinger&apos; for at hæve din indholdsrating nu og dermed få adgang. Du vil så få mulighed for at søge og få adgang til områder med indhold af typen [REGIONMATURITY]. Hvis du senere ønsker at skifte tilbage, kan du skifte tilbage i &apos;Indstillinger&apos;.
+ <usetemplate
+ name="okcancelignore"
+ yestext="Ændre præferencer"
+ notext="Luk"
+ ignoretext="Når land ikke kan kræves på grund af indholdsrating"/>
+ </notification>
+ <notification name="LandBuyAccessBlocked">
+ Du kan ikke købe dette land på grund af din nuværende indholdsrating indstillinge . Dette kan skyldes manglende validering af din alder.
+
+Undersøg om du har den nyeste Second Life klient og gå venligst til &apos;Knowledge Base&apos; for yderligere detaljer om adgang til områder med denne indholdsrating.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+ <notification name="LandBuyAccessBlocked_KB">
+ Du kan ikke købe dette land på grund af din nuværende indholdsrating.
+
+Gå til &apos;Knowledge Base&apos; for yderligere detaljer om indholdsrating.
+ <url name="url">
+ https://support.secondlife.com/ics/support/default.asp?deptID=4417&amp;task=knowledge&amp;questionID=6010
+ </url>
+ <usetemplate
+ name="okcancelignore"
+ yestext="Gå til &apos;Knowledge Base&apos;"
+ notext="Luk"
+ ignoretext="Når land ikke kan købes på grund af indholdsrating"/>
+ </notification>
+ <notification name="LandBuyAccessBlocked_Notify">
+ Du kan ikke købe dette land på grund af din nuværende indholdsrating indstilling.
+ </notification>
+ <notification name="LandBuyAccessBlocked_Change">
+ Du kan ikke købe dette land på grund af din valgte inholdsrating.
+
+Du kan vælge &apos;Indstillinger&apos; for at hæve din indholdsrating nu og dermed få adgang. Du vil så få mulighed for at søge og få adgang til områder med indhold af typen [REGIONMATURITY]. Hvis du senere ønsker at skifte tilbage, kan du skifte tilbage i &apos;Indstillinger&apos;.
+ <usetemplate
+ name="okcancelignore"
+ yestext="Ændre præferencer"
+ notext="Luk"
+ ignoretext="Når land ikke kan købes på grund af indholdsrating"/>
+ </notification>
+ <notification name="UnableToLoadNotecardAsset">
+ Kunne ikke hente notecard indhold.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="SetClassifiedMature">
+ Indeholder denne annonce &apos;Mature&apos; indhold?
+ <usetemplate
+ canceltext="Annullér"
+ name="yesnocancelbuttons"
+ notext="Nej"
+ yestext="Ja"/>
+ </notification>
+ <notification name="SetGroupMature">
+ Indeholder denne gruppe &apos;Mature&apos; indhold?
+ <usetemplate
+ canceltext="Annullér"
+ name="yesnocancelbuttons"
+ notext="Nej"
+ yestext="Ja"/>
+ </notification>
+ <notification label="Indholdsrating" name="HelpRegionMaturity">
+ Sætter indholdsrating for regionen, som den vises øverst på menu-bjælken i beboernes klient, og i tooltips på verdenskortet når cursoren placeres over denne region. Denne indstilling har også betydning for adgangen til regionen og for søgeresultater. Andre beboere må kun få adgang til regionen eller se regionen i søgeresultater hvis de har valgt samme eller højere indholdsrating i deres opsætning.
- <notification
-
- name="HelpReportAbuseEmailLL"
- >
-Brug dette værktøj for at rapportere brud på de almindelige bestemmelser og fællesskabs Standarder. Se:
+Det kan tage noget tid inden en ændring af indholdsrating er synligt på kortet.
+ </notification>
+ <notification name="HelpReportAbuseEmailLL">
+ Brug dette værktøj for at rapportere brud på de almindelige bestemmelser og fællesskabs Standarder. Se:
http://secondlife.com/corporate/tos.php
http://secondlife.com/corporate/cs.php
@@ -496,13 +512,9 @@ http://secondlife.com/corporate/cs.php
Alle rapporterede brud på almindelige bestemmelser og fællesskabs Standarder bliver undersøgt og løst. Du kan følge løsningen på din anmeldselse på:
http://secondlife.com/support/incidentreport.php
- </notification>
-
- <notification
-
- name="HelpReportAbuseContainsCopyright"
- >
-Dear Resident,
+ </notification>
+ <notification name="HelpReportAbuseContainsCopyright">
+ Dear Resident,
Du ser ud til at være ved at rapportere noget vedr. krænkelse af intellektuelle ejendomsrettigheder. Sørg for, at du rapporterer dette korrekt:
@@ -515,1268 +527,659 @@ Hvis du stadig ønsker at fortsætte med misbrugs processen, luk da venligst det
Mange tak,
Linden Lab
- </notification>
-
- <notification
-
- name="ConfirmClearCookies"
- >
-Er du sikker på du vil slette alle cookies?
- </notification>
-
- <notification
-
- name="ChatterBoxSessionStartError"
- >
-Ikke i stand til at start chat med [RECIPIENT].
+ </notification>
+ <notification name="ConfirmClearCookies">
+ Er du sikker på du vil slette alle cookies?
+ </notification>
+ <notification name="NewSkyPreset">
+ <form name="form">
+ <input name="message" type="text">
+ Ny forudindstilling
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Annullér"/>
+ </form>
+ </notification>
+ <notification name="NewWaterPreset">
+ <form name="form">
+ <input name="message" type="text">
+ Ny forudindstilling
+ </input>
+ <button name="OK" text="OK"/>
+ <button name="Cancel" text="Annullér"/>
+ </form>
+ </notification>
+ <notification name="ChatterBoxSessionStartError">
+ Ikke i stand til at start chat med [RECIPIENT].
[REASON]
- <usetemplate
- name="okbutton"
- yestext="OK"/>
- </notification>
-
- <notification
-
- name="Cannot_Purchase_an_Attachment"
- >
-Ting kan ikke købes imens de er en del af tilbehør.
- </notification>
-
- <notification
-
- name="NewWaterPreset"
- >
- <form name="form">
- <input name="message" type="text">
-Ny forudindstilling
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annullér"/>
- </form>
- </notification>
-
- <notification
-
- name="NewSkyPreset"
- >
- <form name="form">
- <input name="message" type="text">
-Ny forudindstilling
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annullér"/>
- </form>
- </notification>
-
- <notification
-
- name="OfferTeleport"
- >
- <form name="form">
- <input name="message" type="text">
-Mød mig i [REGION]
- </input>
- <button
-
-
- name="OK"
- text="OK"/>
- <button
-
- name="Cancel"
- text="Annullér"/>
- </form>
- </notification>
-
- <notification
-
- name="SystemMessageTip"
- >
-[MESSAGE]
- </notification>
-
- <notification
-
- name="Cancelled"
- >
-Annulléret
- </notification>
-
- <notification
-
- name="CancelledSit"
- >
-Annulléret sid
- </notification>
-
- <notification
-
- name="CancelledAttach"
- >
-Annulléreret vedhæft
- </notification>
-
- <notification
-
- name="ReplacedMissingWearable"
- >
-Erstattet manglende tøj/kropsdele med standard.
- </notification>
-
- <notification
-
- name="FriendOnline"
- >
-[FIRST] [LAST] er Online
- </notification>
-
- <notification
-
- name="FriendOffline"
- >
-[FIRST] [LAST] er Offline
- </notification>
-
- <notification
-
- name="AddSelfFriend"
- >
-Du kan ikke tilføje dig selv som ven.
- </notification>
-
- <notification
-
- name="UploadingAuctionSnapshot"
- >
-Uploader billeder fra verdenen og www...
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="Cannot_Purchase_an_Attachment">
+ Ting kan ikke købes imens de er en del af tilbehør.
+ </notification>
+ <notification name="SystemMessageTip">
+ [MESSAGE]
+ </notification>
+ <notification name="Cancelled">
+ Annulléret
+ </notification>
+ <notification name="CancelledSit">
+ Annulléret sid
+ </notification>
+ <notification name="CancelledAttach">
+ Annulléreret vedhæft
+ </notification>
+ <notification name="ReplacedMissingWearable">
+ Erstattet manglende tøj/kropsdele med standard.
+ </notification>
+ <notification name="FriendOnline">
+ [FIRST] [LAST] er Online
+ </notification>
+ <notification name="FriendOffline">
+ [FIRST] [LAST] er Offline
+ </notification>
+ <notification name="AddSelfFriend">
+ Du kan ikke tilføje dig selv som ven.
+ </notification>
+ <notification name="UploadingAuctionSnapshot">
+ Uploader billeder fra verdenen og www...
(Tager omkring 5 minutter.)
- </notification>
-
- <notification
-
- name="UploadPayment"
- >
-Du betalte L$[AMOUNT] for at uploade.
- </notification>
-
- <notification
-
- name="UploadWebSnapshotDone"
- >
-Billeder fra www er uploadet.
- </notification>
-
- <notification
-
- name="UploadSnapshotDone"
- >
-Billeder fra verdenen er uploadet
- </notification>
-
- <notification
-
- name="TerrainDownloaded"
- >
-Terrain.raw downloadet
- </notification>
-
- <notification
-
- name="GestureMissing"
- >
-Gestus [NAME] mangler i databasen.
- </notification>
-
- <notification
-
- name="UnableToLoadGesture"
- >
-Ikke muligt at indlæse gestus [NAME].
+ </notification>
+ <notification name="UploadPayment">
+ Du betalte L$[AMOUNT] for at uploade.
+ </notification>
+ <notification name="UploadWebSnapshotDone">
+ Billeder fra www er uploadet.
+ </notification>
+ <notification name="UploadSnapshotDone">
+ Billeder fra verdenen er uploadet
+ </notification>
+ <notification name="TerrainDownloaded">
+ Terrain.raw downloadet
+ </notification>
+ <notification name="GestureMissing">
+ Gestus [NAME] mangler i databasen.
+ </notification>
+ <notification name="UnableToLoadGesture">
+ Ikke muligt at indlæse gestus [NAME].
Prøv venligst igen.
- </notification>
-
- <notification
-
- name="LandmarkMissing"
- >
-Landmærke mangler i databasen.
- </notification>
-
- <notification
-
- name="UnableToLoadLandmark"
- >
-Ikke muligt at indlæse landmærke. Prøv venligst igen.
- </notification>
-
- <notification
-
- name="CapsKeyOn"
- >
-Du har slået store bogstaver til.
+ </notification>
+ <notification name="LandmarkMissing">
+ Landmærke mangler i databasen.
+ </notification>
+ <notification name="UnableToLoadLandmark">
+ Ikke muligt at indlæse landmærke. Prøv venligst igen.
+ </notification>
+ <notification name="CapsKeyOn">
+ Du har slået store bogstaver til.
Da det vil have betydning når du indtaster kodeordet, vil du højest sandsynlig slå dem fra.
- </notification>
-
- <notification
-
- name="NotecardMissing"
- >
-Note mangler i databasen.
- </notification>
-
- <notification
-
- name="NotecardNoPermissions"
- >
-Utilstrækkelige tilladelser til at se note.
- </notification>
-
- <notification
-
- name="RezItemNoPermissions"
- >
-Utilstrækkelige tilladelser til at danne genstanden.
- </notification>
-
- <notification
-
- name="UnableToLoadNotecard"
- >
-Ikke muligt at indlæse note.
+ </notification>
+ <notification name="NotecardMissing">
+ Note mangler i databasen.
+ </notification>
+ <notification name="NotecardNoPermissions">
+ Utilstrækkelige tilladelser til at se note.
+ </notification>
+ <notification name="RezItemNoPermissions">
+ Utilstrækkelige tilladelser til at danne genstanden.
+ </notification>
+ <notification name="UnableToLoadNotecard">
+ Ikke muligt at indlæse note.
Prøv venligst igen.
- </notification>
-
- <notification
-
- name="ScriptMissing"
- >
-Script mangler i databasen.
- </notification>
-
- <notification
-
- name="ScriptNoPermissions"
- >
-Utilstrækkelige tilladelser til at se script.
- </notification>
-
- <notification
-
- name="UnableToLoadScript"
- >
-Ikke muligt at indlæse script. Prøv venligst igen.
- </notification>
-
- <notification
-
- name="IncompleteInventory"
- >
-Det komplette indhold, du tilbyder, er ikke endnu tilgængelig lokalt. Prøv venligst at tilbyde tingene igen om lidt.
- </notification>
-
- <notification
-
- name="CannotModifyProtectedCategories"
- >
-Du kan ikke ændre beskyttede kategorier.
- </notification>
-
- <notification
-
- name="CannotRemoveProtectedCategories"
- >
-Du kan ikke fjerne beskyttede kategorier.
- </notification>
-
- <notification
-
- name="OfferedCard"
- >
-Du har tilbudt et visitkort til [FIRST] [LAST]
- </notification>
-
- <notification
-
- name="OfferedFriendship"
- >
-Du har tilbudt venskab til [FIRST] [LAST]
- </notification>
-
- <notification
-
- name="UnableToBuyWhileDownloading"
- >
-Ikke muligt at købe, imens genstandens data hentes.
+ </notification>
+ <notification name="ScriptMissing">
+ Script mangler i databasen.
+ </notification>
+ <notification name="ScriptNoPermissions">
+ Utilstrækkelige tilladelser til at se script.
+ </notification>
+ <notification name="UnableToLoadScript">
+ Ikke muligt at indlæse script. Prøv venligst igen.
+ </notification>
+ <notification name="IncompleteInventory">
+ Det komplette indhold, du tilbyder, er ikke endnu tilgængelig lokalt. Prøv venligst at tilbyde tingene igen om lidt.
+ </notification>
+ <notification name="CannotModifyProtectedCategories">
+ Du kan ikke ændre beskyttede kategorier.
+ </notification>
+ <notification name="CannotRemoveProtectedCategories">
+ Du kan ikke fjerne beskyttede kategorier.
+ </notification>
+ <notification name="OfferedCard">
+ Du har tilbudt et visitkort til [FIRST] [LAST]
+ </notification>
+ <notification name="UnableToBuyWhileDownloading">
+ Ikke muligt at købe, imens genstandens data hentes.
Prøv venligst igen.
- </notification>
-
- <notification
-
- name="UnableToLinkWhileDownloading"
- >
-Ikke muligt at lænke imens genstandens data hentes.
+ </notification>
+ <notification name="UnableToLinkWhileDownloading">
+ Ikke muligt at lænke imens genstandens data hentes.
Prøv venligst igen.
- </notification>
-
- <notification
-
- name="CannotBuyObjectsFromDifferentOwners"
- >
-Kan ikke købe genstande fra forskellige ejere på samme tid.
+ </notification>
+ <notification name="CannotBuyObjectsFromDifferentOwners">
+ Kan ikke købe genstande fra forskellige ejere på samme tid.
Prøv venligst at vælge en enkelt genstand.
- </notification>
-
- <notification
-
- name="ObjectNotForSale"
- >
-Genstanden ser ikke ud til at være til salg.
- </notification>
-
- <notification
-
- name="EnteringGodMode"
- >
-Starter gud-tilstand, niveau [LEVEL]
- </notification>
-
- <notification
-
- name="LeavingGodMode"
- >
-Stopper gud-tilstand, niveau [LEVEL]
- </notification>
-
- <notification
-
- name="CopyFailed"
- >
-Kopiering lykkedes ikke fordi du ikke har nok tilladelser til at kopiere
- </notification>
-
- <notification
-
- name="InventoryAccepted"
- >
-[NAME] accepterede det du tilbød fra din beholdning.
- </notification>
-
- <notification
-
- name="InventoryDeclined"
- >
-[NAME] afviste det du tilbød fra din beholdning.
- </notification>
-
- <notification
-
- name="ObjectMessage"
- >
-[NAME]: [MESSAGE]
- </notification>
-
- <notification
-
- name="CallingCardAccepted"
- >
-Dit visitkort blev accepteret.
- </notification>
-
- <notification
-
- name="CallingCardDeclined"
- >
-Dit visitkort blev afvist.
- </notification>
-
- <notification
-
- name="TeleportToLandmark"
- >
-Nu hvor du er nået frem til hovedlandet, kan du teleportere til steder som &apos;[NAME]&apos; ved at klikke på Beholdning-knappen i nederste højre side af skærmen hvorefter du vælger Landmærke-mappen.
+ </notification>
+ <notification name="ObjectNotForSale">
+ Genstanden ser ikke ud til at være til salg.
+ </notification>
+ <notification name="EnteringGodMode">
+ Starter gud-tilstand, niveau [LEVEL]
+ </notification>
+ <notification name="LeavingGodMode">
+ Stopper gud-tilstand, niveau [LEVEL]
+ </notification>
+ <notification name="CopyFailed">
+ Kopiering lykkedes ikke fordi du ikke har nok tilladelser til at kopiere
+ </notification>
+ <notification name="InventoryAccepted">
+ [NAME] accepterede det du tilbød fra din beholdning.
+ </notification>
+ <notification name="InventoryDeclined">
+ [NAME] afviste det du tilbød fra din beholdning.
+ </notification>
+ <notification name="ObjectMessage">
+ [NAME]: [MESSAGE]
+ </notification>
+ <notification name="CallingCardAccepted">
+ Dit visitkort blev accepteret.
+ </notification>
+ <notification name="CallingCardDeclined">
+ Dit visitkort blev afvist.
+ </notification>
+ <notification name="TeleportToLandmark">
+ Nu hvor du er nået frem til hovedlandet, kan du teleportere til steder som &apos;[NAME]&apos; ved at klikke på Beholdning-knappen i nederste højre side af skærmen hvorefter du vælger Landmærke-mappen.
Dobbeltklik på landmærket og klik på Teleportér, for at rejse derhen.
- </notification>
-
- <notification
-
- name="TeleportToPerson"
- >
-Nu hvor du har nået frem til hovedlandet, kan du kontakte indbyggere som &apos;[NAME]&apos; ved at klikke på Beholdning-knappen i nederste højre side af skærmen, hvorefter du vælger Visitkort-mappen.
+ </notification>
+ <notification name="TeleportToPerson">
+ Nu hvor du har nået frem til hovedlandet, kan du kontakte indbyggere som &apos;[NAME]&apos; ved at klikke på Beholdning-knappen i nederste højre side af skærmen, hvorefter du vælger Visitkort-mappen.
Dobbeltklik på kortet, klik på IM og skriv beskeden.
- </notification>
-
- <notification
-
- name="CantSelectLandFromMultipleRegions"
- >
-Kan ikke vælge land på tværs af grænser.
+ </notification>
+ <notification name="CantSelectLandFromMultipleRegions">
+ Kan ikke vælge land på tværs af grænser.
Prøv at vælge mindre stykker land.
- </notification>
-
- <notification
-
- name="GroupVote"
- >
-[NAME] har forslået at stemme for:
+ </notification>
+ <notification name="SearchWordBanned">
+ Visse ord er fjernet fra din søge-sætning på grund af at disse strider mod de generelle &apos;Community Standards&apos;.
+ </notification>
+ <notification name="NoContentToSearch">
+ Vælg venligst mindst en indholdstype for at søge (PG, Mature, or Adult).
+ </notification>
+ <notification name="GroupVote">
+ [NAME] har forslået at stemme for:
[MESSAGE]
- <form name="form">
- <button
-
- name="VoteNow"
- text="Stem nu"/>
- <button
-
- name="Later"
- text="Senere"/>
- </form>
- </notification>
-
- <notification
-
- name="SystemMessage"
- >
-[MESSAGE]
- </notification>
-
- <notification
-
- name="EventNotification"
- >
-Besked om begivenhed:
+ <form name="form">
+ <button name="VoteNow" text="Stem nu"/>
+ <button name="Later" text="Senere"/>
+ </form>
+ </notification>
+ <notification name="SystemMessage">
+ [MESSAGE]
+ </notification>
+ <notification name="EventNotification">
+ Besked om begivenhed:
[NAME]
[DATE]
- <form name="form">
- <button
-
- name="Teleport"
- text="Teleportér"/>
- <button
-
- name="Description"
- text="Beskrivelse"/>
- <button
-
- name="Cancel"
- text="Annullér"/>
- </form>
- </notification>
-
- <notification
-
- name="TransferObjectsHighlighted"
- >
-Alle genstande på denne grund, som vil blive overført til køberen af denne grund, er nu oplyst.
+ <form name="form">
+ <button name="Teleport" text="Teleportér"/>
+ <button name="Description" text="Beskrivelse"/>
+ <button name="Cancel" text="Annullér"/>
+ </form>
+ </notification>
+ <notification name="TransferObjectsHighlighted">
+ Alle genstande på denne grund, som vil blive overført til køberen af denne grund, er nu oplyst.
* Træer og græs, der vil blive overført, er ikke fremhævet.
- <form name="form">
- <button
-
- name="Done"
- text="Færdig"/>
- </form>
- </notification>
-
- <notification
-
- name="DeactivatedGesturesTrigger"
- >
-Deaktiverede bevægelser med samme udløser: [NAMES]
- </notification>
-
- <notification
-
- name="NoQuickTime"
- >
-Apple&apos;s QuickTime ser ikke ud til at være installeret på computeren.
+ <form name="form">
+ <button name="Done" text="Færdig"/>
+ </form>
+ </notification>
+ <notification name="DeactivatedGesturesTrigger">
+ Deaktiverede bevægelser med samme udløser: [NAMES]
+ </notification>
+ <notification name="NoQuickTime">
+ Apple&apos;s QuickTime ser ikke ud til at være installeret på computeren.
Hvis du vil se live transmitteret medie på grunde, der understøtter det, skal du gå ind på QuickTime-siden (http://www.apple.dk/quicktime) og installere QuickTime afspilleren.
- </notification>
-
- <notification
-
- name="OwnedObjectsReturned"
- >
-De genstande du ejer på det valgte stykke land er blevet returneret til din beholdning.
- </notification>
-
- <notification
-
- name="OtherObjectsReturned"
- >
-Genstandene på det valgte stykke land der er ejet af [FIRST] [LAST] er blevet returneret til hans eller hendes beholdning.
- </notification>
-
- <notification
-
- name="OtherObjectsReturned2"
- >
-Genstandene på det valgte stykke land der er ejet af beboeren &apos;[NAME]&apos; er blevet returneret til deres ejere.
- </notification>
-
- <notification
-
- name="GroupObjectsReturned"
- >
-Genstandene på det valgte stykke land, delt med gruppen [GROUPNAME], er blevet returneret til deres ejeres beholdninger.
+ </notification>
+ <notification name="OwnedObjectsReturned">
+ De genstande du ejer på det valgte stykke land er blevet returneret til din beholdning.
+ </notification>
+ <notification name="OtherObjectsReturned">
+ Genstandene på det valgte stykke land der er ejet af [FIRST] [LAST] er blevet returneret til hans eller hendes beholdning.
+ </notification>
+ <notification name="OtherObjectsReturned2">
+ Genstandene på det valgte stykke land der er ejet af beboeren &apos;[NAME]&apos; er blevet returneret til deres ejere.
+ </notification>
+ <notification name="GroupObjectsReturned">
+ Genstandene på det valgte stykke land, delt med gruppen [GROUPNAME], er blevet returneret til deres ejeres beholdninger.
Genstande, som er dedikerede og som kan overføres, er blevet returneret til deres forrige ejere.
Genstande, der ikke kan overføres og som er dedikeret til gruppen, er blevet slettet.
- </notification>
-
- <notification
-
- name="UnOwnedObjectsReturned"
- >
-Genstandene på det valgte stykke land, der IKKE er ejet af dig, er blevet returneret til deres ejere.
- </notification>
-
- <notification
-
- name="NotSafe"
- >
-Dette land har sat skade til (&apos;ikke sikker&apos;).
+ </notification>
+ <notification name="UnOwnedObjectsReturned">
+ Genstandene på det valgte stykke land, der IKKE er ejet af dig, er blevet returneret til deres ejere.
+ </notification>
+ <notification name="NotSafe">
+ Dette land har sat skade til (&apos;ikke sikker&apos;).
Du kan komme til skade her. Hvis du dør, vil du blive teleporteret til din hjem-lokalitet.
- </notification>
-
- <notification
-
- name="NoFly"
- >
-Dette land har slået flyvning fra (&apos;ingen flyvning&apos;).
+ </notification>
+ <notification name="NoFly">
+ Dette land har slået flyvning fra (&apos;ingen flyvning&apos;).
Du kan ikke flyve her.
- </notification>
-
- <notification
-
- name="PushRestricted"
- >
-Dette land giver ikke mulighed for at &apos;skubbe&apos; andre, med mindre du ejer landet.
- </notification>
-
- <notification
-
- name="NoVoice"
- >
-Dette land har ikke mulighed for at bruge stemme.
- </notification>
-
- <notification
-
- name="NoBuild"
- >
-Dette land giver ikke mulighed for at bygge (&apos;byggeri forbudt&apos;).
+ </notification>
+ <notification name="PushRestricted">
+ Dette land giver ikke mulighed for at &apos;skubbe&apos; andre, med mindre du ejer landet.
+ </notification>
+ <notification name="NoVoice">
+ Dette land har ikke mulighed for at bruge stemme.
+ </notification>
+ <notification name="NoBuild">
+ Dette land giver ikke mulighed for at bygge (&apos;byggeri forbudt&apos;).
Du kan ikke skabe genstande her.
- </notification>
-
- <notification
-
- name="ScriptsStopped"
- >
-En administrator har midlertidig stoppet scripts i denne region.
- </notification>
-
- <notification
-
- name="ScriptsNotRunning"
- >
-Denne region kører ikke nogen scripts.
- </notification>
-
- <notification
-
- name="NoOutsideScripts"
- >
-Dette land har eksterne scripts slået fra
+ </notification>
+ <notification name="ScriptsStopped">
+ En administrator har midlertidig stoppet scripts i denne region.
+ </notification>
+ <notification name="ScriptsNotRunning">
+ Denne region kører ikke nogen scripts.
+ </notification>
+ <notification name="NoOutsideScripts">
+ Dette land har eksterne scripts slået fra
(&apos;ingen eksterne scripts&apos;).
Ingen scripts vil køre på nær dem, som tilhører ejeren af landet.
- </notification>
-
- <notification
-
- name="ClaimPublicLand"
- >
-Du kan kun gøre krav på offentlig land i den region, du befinder dig i.
- </notification>
-
- <notification
-
- name="ObjectGiveItem"
- >
-En genstand med navnet [OBJECTFROMNAME], ejet af [FIRST] [LAST], har givet dig en/et [OBJECTTYPE] med navnet [OBJECTNAME].
- <form name="form">
- <button
-
- name="Keep"
- text="Behold"/>
- <button
-
- name="Discard"
- text="Smid væk"/>
- <button
-
- name="Mute"
- text="Blokér"/>
- </form>
- </notification>
-
- <notification
-
- name="ObjectGiveItemUnknownUser"
- >
-En genstand med navnet [OBJECTFROMNAME], ejet af (en ukendt bruger), har givet dig en/et [OBJECTTYPE] med navnet [OBJECTNAME].
- <form name="form">
- <button
-
- name="Keep"
- text="Behold"/>
- <button
-
- name="Discard"
- text="Smid væk"/>
- <button
-
- name="Mute"
- text="Blokér"/>
- </form>
- </notification>
-
- <notification
-
- name="UserGiveItem"
- >
-[NAME] har givet dig en/et [OBJECTTYPE] med navnet &apos;[OBJECTNAME]&apos;.
- <form name="form">
- <button
-
- name="Keep"
- text="Behold"/>
- <button
-
- name="Discard"
- text="Smid væk"/>
- <button
-
- name="Mute"
- text="Blokér"/>
- </form>
- </notification>
-
- <notification
-
- name="GodMessage"
- >
-[NAME]
+ </notification>
+ <notification name="ClaimPublicLand">
+ Du kan kun gøre krav på offentlig land i den region, du befinder dig i.
+ </notification>
+ <notification name="RegionTPAccessBlocked">
+ Du har ikke adgang til denne region på grund af din valgte indholdsrating. Dette kan skyldes manglende validering af din alder eller at du ikke benytter den nyeste Second Life klient.
+
+Gå venligst til &apos;Knowledge Base&apos; for yderligere detaljer om adgang til områder med denne indholdsrating.
+ </notification>
+ <notification name="URBannedFromRegion">
+ Du er blokeret i denne region.
+ </notification>
+ <notification name="NoTeenGridAccess">
+ Du kan ikke tilslutte dig denne &apos;Teen&apos; region.
+ </notification>
+ <notification name="NoHelpIslandTP">
+ Du kan ikke teleportere tilbage til Help Island.
+Gå til &apos;Help Island Puclic&apos; for at prøve tutorial igen.
+ </notification>
+ <notification name="ImproperPaymentStatus">
+ Du har ikke de rette betalingsoplysninger til at komme ind i denne region.
+ </notification>
+ <notification name="MustGetAgeRegion">
+ Du skal være aldersgodkendt for at komme ind i denne region.
+ </notification>
+ <notification name="MustGetAgeParcel">
+ Du skal være aldersgodkendt for at komme ind på denne parcel.
+ </notification>
+ <notification name="NoDestRegion">
+ Destinations region ikke fundet.
+ </notification>
+ <notification name="NotAllowedInDest">
+ Du har ikke adgang til denne destination.
+ </notification>
+ <notification name="RegionParcelBan">
+ Kan ikke skifte til ny region via en blokeret parcel. Prøv en anden vej ind.
+ </notification>
+ <notification name="TelehubRedirect">
+ Du er blevet omdirigeret til en telehub.
+ </notification>
+ <notification name="CouldntTPCloser">
+ Kunne ikke teleportere nærmere til destination.
+ </notification>
+ <notification name="TPCancelled">
+ Teleport afbrudt.
+ </notification>
+ <notification name="FullRegionTryAgain">
+ Den region du prøver at komme ind i er fuld for øjeblikket.
+Prøv igen om lidt.
+ </notification>
+ <notification name="GeneralFailure">
+ Generel fejl.
+ </notification>
+ <notification name="RoutedWrongRegion">
+ Du blev sendt til en forkert region. Prøv igen.
+ </notification>
+ <notification name="NoValidAgentID">
+ Ikke en gyldig agent ID.
+ </notification>
+ <notification name="NoValidSession">
+ Ikke noget gyldig sessions-ID
+ </notification>
+ <notification name="NoValidCircuit">
+ Ingen gyldig kode for kredsløb.
+ </notification>
+ <notification name="NoValidTimestamp">
+ Ikke et gyldigt klokkeslæt.
+ </notification>
+ <notification name="NoPendingConnection">
+ Kunne ikke skabe fast forbindelse.
+ </notification>
+ <notification name="InternalUsherError">
+ Der opstod en intern fejl ved teleportering til din teleport destination.. Der kan være generelle problemer med Second Life lige nu.
+ </notification>
+ <notification name="NoGoodTPDestination">
+ Kunne ikke finde et egnet teleport sted i denne region.
+ </notification>
+ <notification name="InternalErrorRegionResolver">
+ Der opstod en intern fejl ved beregning af globale koordinater for din teleport forespørgsel. Der kan være generelle problemer med Second Life lige nu.
+ </notification>
+ <notification name="NoValidLanding">
+ Kunne ikke finde et gyldigt landingspunkt.
+ </notification>
+ <notification name="NoValidParcel">
+ No valid parcel could be found.
+ </notification>
+ <notification name="ObjectGiveItem">
+ En genstand med navnet [OBJECTFROMNAME], ejet af [FIRST] [LAST], har givet dig en/et [OBJECTTYPE] med navnet [OBJECTNAME].
+ <form name="form">
+ <button name="Keep" text="Behold"/>
+ <button name="Discard" text="Smid væk"/>
+ <button name="Mute" text="Blokér"/>
+ </form>
+ </notification>
+ <notification name="ObjectGiveItemUnknownUser">
+ En genstand med navnet [OBJECTFROMNAME], ejet af (en ukendt bruger), har givet dig en/et [OBJECTTYPE] med navnet [OBJECTNAME].
+ <form name="form">
+ <button name="Keep" text="Behold"/>
+ <button name="Discard" text="Smid væk"/>
+ <button name="Mute" text="Blokér"/>
+ </form>
+ </notification>
+ <notification name="UserGiveItem">
+ [NAME] har givet dig en/et [OBJECTTYPE] med navnet &apos;[OBJECTNAME]&apos;.
+ <form name="form">
+ <button name="Keep" text="Behold"/>
+ <button name="Discard" text="Smid væk"/>
+ <button name="Mute" text="Blokér"/>
+ </form>
+ </notification>
+ <notification name="GodMessage">
+ [NAME]
[MESSAGE]
- </notification>
+ </notification>
+ <notification name="JoinGroup">
+ [MESSAGE]
+ <form name="form">
+ <button name="Join" text="Indmeld"/>
+ <button name="Decline" text="Afvis"/>
+ <button name="Info" text="Information"/>
+ </form>
+ </notification>
+ <notification name="TeleportOffered">
+ [NAME] har tilbudt at teleportere dig til hans eller hendes lokalitet:
- <notification
-
- name="JoinGroup"
- >
-[MESSAGE]
- <form name="form">
- <button
-
- name="Join"
- text="Indmeld"/>
- <button
-
- name="Decline"
- text="Afvis"/>
- <button
-
- name="Info"
- text="Information"/>
- </form>
- </notification>
-
- <notification
-
- name="TeleportOffered"
- >
-[NAME] har tilbudt at teleportere dig til hans eller hendes lokalitet:
-
-[MESSAGE]
- <form name="form">
- <button
-
- name="Teleport"
- text="Teleportér"/>
- <button
-
- name="Cancel"
- text="Annullér"/>
- </form>
- </notification>
-
- <notification
-
- name="GotoURL"
- >
[MESSAGE]
+ <form name="form">
+ <button name="Teleport" text="Teleportér"/>
+ <button name="Cancel" text="Annullér"/>
+ </form>
+ </notification>
+ <notification name="GotoURL">
+ [MESSAGE]
[URL]
- <form name="form">
- <button
-
- name="Later"
- text="Senere"/>
- <button
-
- name="GoNow..."
- text="Gå nu..."/>
- </form>
- </notification>
-
- <notification
-
- name="OfferFriendship"
- >
-[NAME] tilbyder venskab.
+ <form name="form">
+ <button name="Later" text="Senere"/>
+ <button name="GoNow..." text="Gå nu..."/>
+ </form>
+ </notification>
+ <notification name="OfferFriendship">
+ [NAME] tilbyder venskab.
Som standard vil du kunne se andres onlinestatus.
- <form name="form">
- <button
-
- name="Accept"
- text="Acceptér"/>
- <button
-
- name="Decline"
- text="Afvis"/>
- </form>
- </notification>
-
- <notification
-
- name="FriendshipAccepted"
- >
-[NAME] accepterede dit tilbud om venskab.
- </notification>
-
- <notification
-
- name="FriendshipDeclined"
- >
-[NAME] afviste dit tilbud om venskab.
- </notification>
-
- <notification
-
- name="OfferCallingCard"
- >
-[FIRST] [LAST] tilbyder vedkommendes visitkort.
+ <form name="form">
+ <button name="Accept" text="Acceptér"/>
+ <button name="Decline" text="Afvis"/>
+ </form>
+ </notification>
+ <notification name="FriendshipAccepted">
+ [NAME] accepterede dit tilbud om venskab.
+ </notification>
+ <notification name="FriendshipDeclined">
+ [NAME] afviste dit tilbud om venskab.
+ </notification>
+ <notification name="OfferCallingCard">
+ [FIRST] [LAST] tilbyder vedkommendes visitkort.
Dette vil tilføje et bogmærke i din beholdning, så du hurtigt kan sende en personlig besked (IM) til denne beboer.
- <form name="form">
- <button
-
- name="Accept"
- text="Acceptér"/>
- <button
-
- name="Decline"
- text="Afvis"/>
- </form>
- </notification>
-
- <notification
-
- name="RegionRestartMinutes"
-
-
- >
-Regionen genstarter om [MINUTES] minutter.
+ <form name="form">
+ <button name="Accept" text="Acceptér"/>
+ <button name="Decline" text="Afvis"/>
+ </form>
+ </notification>
+ <notification name="RegionRestartMinutes">
+ Regionen genstarter om [MINUTES] minutter.
Hvis du bliver i denne region, vil du blive logget af.
- </notification>
-
- <notification
-
- name="RegionRestartSeconds"
-
-
- >
-Regionen genstarter om [SECONDS] sekunder.
+ </notification>
+ <notification name="RegionRestartSeconds">
+ Regionen genstarter om [SECONDS] sekunder.
Hvis du bliver i denne region, vil du blive logget af.
- </notification>
-
- <notification
-
- name="LoadWebPage"
- >
-Indlæs internetside [URL]?
+ </notification>
+ <notification name="LoadWebPage">
+ Indlæs internetside [URL]?
[MESSAGE]
Fra genstand: [OBJECTNAME], ejer: [NAME]?
- <form name="form">
- <button
-
- name="Gotopage"
- text="Gå til side"/>
- <button
-
- name="Cancel"
- text="Afbryd"/>
- </form>
- </notification>
-
- <notification
-
- name="FailedToFindWearableUnnamed"
- >
-Det lykkedes ikke at finde [TYPE] i databasen.
- </notification>
-
- <notification
-
- name="FailedToFindWearable"
- >
-Det lykkedes ikke at finde [TYPE] med navnet [DESC] i databasen.
- </notification>
-
- <notification
-
- name="ScriptQuestion"
- >
-&apos;[OBJECTNAME]&apos;, en genstand, ejet af &apos;[NAME]&apos;, vil gerne:
+ <form name="form">
+ <button name="Gotopage" text="Gå til side"/>
+ <button name="Cancel" text="Afbryd"/>
+ </form>
+ </notification>
+ <notification name="FailedToFindWearableUnnamed">
+ Det lykkedes ikke at finde [TYPE] i databasen.
+ </notification>
+ <notification name="FailedToFindWearable">
+ Det lykkedes ikke at finde [TYPE] med navnet [DESC] i databasen.
+ </notification>
+ <notification name="InvalidWearable">
+ Den genstand du prøver at tage på benytter funktioner som din klient ikke kan forstå. Opdatér din version af Second Life for at tage genstanden på.
+ </notification>
+ <notification name="ScriptQuestion">
+ &apos;[OBJECTNAME]&apos;, en genstand, ejet af &apos;[NAME]&apos;, vil gerne:
[QUESTIONS]
Er det iorden?
- <form name="form">
- <button
-
- name="Yes"
- text="Ja"/>
- <button
-
- name="No"
- text="Nej"/>
- <button
-
- name="Mute"
- text="Blokér"/>
- </form>
- </notification>
-
- <notification
-
- name="ScriptQuestionCaution"
- >
-&apos;[OBJECTNAME]&apos;, en genstand, ejet af &apos;[NAME]&apos;, vil gerne:
+ <form name="form">
+ <button name="Yes" text="Ja"/>
+ <button name="No" text="Nej"/>
+ <button name="Mute" text="Blokér"/>
+ </form>
+ </notification>
+ <notification name="ScriptQuestionCaution">
+ &apos;[OBJECTNAME]&apos;, en genstand, ejet af &apos;[NAME]&apos;, vil gerne:
[QUESTIONS]
Hvis du ikke har tillid til denne genstand og dens skaber, bør du afvise denne forespørgsel. For yderligere information klik på Detaljer-knappen.
Imødekom denne forespørgsel?
- <form name="form">
- <button
-
- name="Grant"
- text="Imødekom"/>
- <button
-
- name="Deny"
- text="Afvis"/>
- <button
-
- name="Details"
- text="Detaljer..."/>
- </form>
- </notification>
-
- <notification
-
- name="ScriptDialog"
- >
-[FIRST] [LAST]&apos;s &apos;[TITLE]&apos;
+ <form name="form">
+ <button name="Grant" text="Imødekom"/>
+ <button name="Deny" text="Afvis"/>
+ <button name="Details" text="Detaljer..."/>
+ </form>
+ </notification>
+ <notification name="ScriptDialog">
+ [FIRST] [LAST]&apos;s &apos;[TITLE]&apos;
[MESSAGE]
- <form name="form">
- <button
-
- name="Ignore"
- text="Ignorér"/>
- </form>
- </notification>
-
- <notification
-
- name="ScriptDialogGroup"
- >
-[GROUPNAME]&apos;s &apos;[TITLE]&apos;
+ <form name="form">
+ <button name="Ignore" text="Ignorér"/>
+ </form>
+ </notification>
+ <notification name="ScriptDialogGroup">
+ [GROUPNAME]&apos;s &apos;[TITLE]&apos;
[MESSAGE]
- <form name="form">
- <button
-
- name="Ignore"
- text="Ignorér"/>
- </form>
- </notification>
-
- <notification
-
- name="FirstBalanceIncrease"
- >
-Du har lige modtaget L$[AMOUNT].
+ <form name="form">
+ <button name="Ignore" text="Ignorér"/>
+ </form>
+ </notification>
+ <notification name="FirstBalanceIncrease">
+ Du har lige modtaget L$[AMOUNT].
Genstande og andre brugere kan give dig L$.
Din saldo er vist i øverste højre hjørne af skærmen.
- </notification>
-
- <notification
-
- name="FirstBalanceDecrease"
- >
-Du har lige modtaget L$[AMOUNT].
+ </notification>
+ <notification name="FirstBalanceDecrease">
+ Du har lige modtaget L$[AMOUNT].
Din saldo er vist i øverste højre hjørne af skærmen.
- </notification>
-
- <notification
-
- name="FirstSit"
- >
-Du sidder.
+ </notification>
+ <notification name="FirstSit">
+ Du sidder.
Brug piletasterne (eller AWSD) for at ændre hvilken vej du ser.
Klik på &apos;Stå op&apos;-knappen for at rejse dig op.
- </notification>
-
- <notification
-
- name="FirstMap"
- >
-Klik og træk for at flytte kortvisningen.
+ </notification>
+ <notification name="FirstMap">
+ Klik og træk for at flytte kortvisningen.
Dobbelt-klik for at teleportere.
Brug kontrollerne til højre for at finde ting og se forskellige baggrunde.
- </notification>
-
- <notification
-
- name="FirstBuild"
- >
-Du kan bygge nye genstande i nogle områder af [SECOND_LIFE].
+ </notification>
+ <notification name="FirstBuild">
+ Du kan bygge nye genstande i nogle områder af [SECOND_LIFE].
Brug værktøjet øverst til venstre for at bygge, og prøv at holde Ctrl eller Alt nede for hurtigt at skifte imellem værktøjerne.
Tryk Esc for at stoppe med at bygge.
- </notification>
-
- <notification
-
- name="FirstLeftClickNoHit"
- >
-Venstre-klik interagerer med specielle genstande.
+ </notification>
+ <notification name="FirstLeftClickNoHit">
+ Venstre-klik interagerer med specielle genstande.
Hvis musemarkøren ændrer sig til en hånd, kan du interagere med genstanden.
Højre-klik viser altid en menu med ting du kan gøre.
- </notification>
-
- <notification
-
- name="FirstTeleport"
- >
-Du har lige teleporteret.
+ </notification>
+ <notification name="FirstTeleport">
+ Du har lige teleporteret.
Du er ved info-standen nærmest ved din destination.
Din destination er markeret med en stor rød lyskegle.
- </notification>
-
- <notification
-
- name="FirstOverrideKeys"
- >
-Dine bevælgelsestaster bliver nu håndteret af et objekt.
+ </notification>
+ <notification name="FirstOverrideKeys">
+ Dine bevælgelsestaster bliver nu håndteret af et objekt.
Brug piletasterne eller AWSD for at se, hvad de gør.
Nogle genstande (som skydevåben) kræver at du går ind i musevisning for at bruge dem.
Tryk på &apos;M&apos; for at gåre det.
- </notification>
-
- <notification
-
- name="FirstAppearance"
- >
-Du tilretter dit udseende.
+ </notification>
+ <notification name="FirstAppearance">
+ Du tilretter dit udseende.
For at rotere og zoome brug piletasterne.
Når du er færdig, tryk på &apos;Gem alt&apos; for at gemme dit udseende og lukke.
Du kan rette dit udseende så tit du vil.
- </notification>
-
- <notification
-
- name="FirstInventory"
- >
-Dette er din beholdning, der indeholder objekter, noter, tøj og andre ting du ejer.
+ </notification>
+ <notification name="FirstInventory">
+ Dette er din beholdning, der indeholder objekter, noter, tøj og andre ting du ejer.
* For at bære et objekt eller en mappe med tøj, træk den over på dig selv.
* For at få et objekt frem i verdenen, træk den ud på jorden.
* For at læse en note, dobbeltklik på den.
- </notification>
-
- <notification
-
- name="FirstSandbox"
- >
-Dette er sandkasseområdet.
+ </notification>
+ <notification name="FirstSandbox">
+ Dette er sandkasseområdet.
Genstande, der er skabt her, vil blive slettet efter du har forladt området. Sandkasser renses jævnligt. Se venligst informationen øverst på skærmen, lige ved siden af områdenavnet.
Sandkasseområder er ikke almindelige. De er mærket med skilte.
- </notification>
-
- <notification
-
- name="FirstFlexible"
- >
-Denne genstand er fleksibel.
+ </notification>
+ <notification name="FirstFlexible">
+ Denne genstand er fleksibel.
Fleksible genstande er ikke fysiske og man kan gå igennem dem, indtil fleksibel-punktet ikke er afkrydset.
- </notification>
-
- <notification
-
- name="FirstDebugMenus"
- >
-Du har sat avanceret menu til.
+ </notification>
+ <notification name="FirstDebugMenus">
+ Du har sat avanceret menu til.
Denne menu indeholder funktioner brugbare for udviklere, der udbedrer fejl i Second Life.
-For at vise denne menu, skal man i Windows trykke Ctrl-Alt-D. På Mac tryk Cmd-Opt-Shift-D.
- </notification>
-
- <notification
-
- name="FirstSculptedPrim"
- >
-Du retter en sculpted prim.
+For at vise denne menu, skal man i Windows trykke Ctrl-Alt-D. På Mac tryk &#8984;-Opt-Shift-D.
+ </notification>
+ <notification name="FirstSculptedPrim">
+ Du retter en sculpted prim.
Sculpted prims kræver et specielt tekstur for at specificere deres form.
Du kan finde eksempler på sculptede teksturer i din beholdning.
- </notification>
-
- <notification
-
- name="FirstMedia"
- >
-Du er begyndt at afspille medie. Medie kan sættes til automatisk af blive afspillet under Indstillinger, Lyd / Video. Vær opmærksom på, at der kan være en sikkerhedsrisiko for medie-steder, du ikke stoler på.
- </notification>
-
- <notification
-
- name="MaxListSelectMessage"
- >
-Du må kun vælge op til [MAX_SELECT] genstande på denne liste.
- </notification>
-
- <notification
-
- name="VoiceInviteP2P"
- >
-[NAME] inviterer dig til en stemme-chat.
+ </notification>
+ <notification name="FirstMedia">
+ Du er begyndt at afspille medie. Medie kan sættes til automatisk af blive afspillet under Indstillinger, Lyd / Video. Vær opmærksom på, at der kan være en sikkerhedsrisiko for medie-steder, du ikke stoler på.
+ </notification>
+ <notification name="MaxListSelectMessage">
+ Du må kun vælge op til [MAX_SELECT] genstande på denne liste.
+ </notification>
+ <notification name="VoiceInviteP2P">
+ [NAME] inviterer dig til en stemme-chat.
Klik for at acceptere at koble dig på samtalen eller Afvis for at afvise invitationen. Klik på Slå fra for at blokere denne opkalder.
- <form name="form">
- <button
-
- name="Accept"
- text="Acceptér"/>
- <button
-
- name="Decline"
- text="Afvis"/>
- <button
-
- name="Mute"
- text="Blokér"/>
- </form>
- </notification>
-
- <notification
-
- name="AutoUnmuteByIM"
- >
-[FIRST] [LAST] har fået en personlig besked (IM) og er automatisk ikke blokeret mere.
- </notification>
-
- <notification
-
- name="AutoUnmuteByMoney"
- >
-[FIRST] [LAST] har fået penge og er automatisk ikke blokeret mere.
- </notification>
-
- <notification
-
- name="AutoUnmuteByInventory"
- >
-[FIRST] [LAST] har fået tilbudt genstande og er automatisk ikke blokeret mere.
- </notification>
-
- <notification
-
- name="VoiceInviteGroup"
- >
-[NAME] har tilsluttet sig stemme-chat med gruppen [GROUP].
+ <form name="form">
+ <button name="Accept" text="Acceptér"/>
+ <button name="Decline" text="Afvis"/>
+ <button name="Mute" text="Blokér"/>
+ </form>
+ </notification>
+ <notification name="AutoUnmuteByIM">
+ [FIRST] [LAST] har fået en personlig besked (IM) og er automatisk ikke blokeret mere.
+ </notification>
+ <notification name="AutoUnmuteByMoney">
+ [FIRST] [LAST] har fået penge og er automatisk ikke blokeret mere.
+ </notification>
+ <notification name="AutoUnmuteByInventory">
+ [FIRST] [LAST] har fået tilbudt genstande og er automatisk ikke blokeret mere.
+ </notification>
+ <notification name="VoiceInviteGroup">
+ [NAME] har tilsluttet sig stemme-chat med gruppen [GROUP].
Klik Acceptér for at slutte dig til samtalen eller Afvis for at afvise invitationen. Klik Slå fra for at blokere denne opkalder.
- <form name="form">
- <button
-
- name="Accept"
- text="Acceptér"/>
- <button
-
- name="Decline"
- text="Afvis"/>
- <button
-
- name="Mute"
- text="Blokér"/>
- </form>
- </notification>
-
- <notification
-
- name="VoiceInviteAdHoc"
- >
-[NAME] har tilsluttet sig stemme-chat med en konference-chat.
+ <form name="form">
+ <button name="Accept" text="Acceptér"/>
+ <button name="Decline" text="Afvis"/>
+ <button name="Mute" text="Blokér"/>
+ </form>
+ </notification>
+ <notification name="VoiceInviteAdHoc">
+ [NAME] har tilsluttet sig stemme-chat med en konference-chat.
Klik Acceptér for at slutte dig til samtalen eller Afvis for at afvise invitationen. Klik Slå fra for at blokere denne opkalder.
- <form name="form">
- <button
-
- name="Accept"
- text="Acceptér"/>
- <button
-
- name="Decline"
- text="Afvis"/>
- <button
-
- name="Mute"
- text="Blokér"/>
- </form>
- </notification>
-
- <notification
-
- name="InviteAdHoc"
- >
-[NAME] inviterer dig til en konference-chat.
+ <form name="form">
+ <button name="Accept" text="Acceptér"/>
+ <button name="Decline" text="Afvis"/>
+ <button name="Mute" text="Blokér"/>
+ </form>
+ </notification>
+ <notification name="InviteAdHoc">
+ [NAME] inviterer dig til en konference-chat.
Klik Acceptér for at slutte dig til samtalen eller Afvis for at afvise invitationen. Klik Slå fra for at blokere denne opkalder.
- <form name="form">
- <button
-
- name="Accept"
- text="Acceptér"/>
- <button
-
- name="Decline"
- text="Afvis"/>
- <button
-
- name="Mute"
- text="Blokeret"/>
- </form>
- </notification>
-
- <notification
-
- name="VoiceChannelFull"
- >
-Den stemme-chat, du prøver at tilslutte dig, [VOICE_CHANNEL_NAME], har nået maksiumum kapacitet. Prøv venligst igen senere.
- </notification>
-
- <notification
-
- name="ProximalVoiceChannelFull"
- >
-Vi beklager. Dette område har nået sin maksimale kapacitet for stemme-chat. Prøv venligst at benytte stemme i et andet område.
- </notification>
-
- <notification
-
- name="VoiceChannelDisconnected"
- >
-Du er blevet koblet af [VOICE_CHANNEL_NAME]. Du vil nu blive koblet op på en lokal stemme-chat.
- </notification>
-
- <notification
-
- name="VoiceChannelDisconnectedP2P"
- >
-[VOICE_CHANNEL_NAME] har afsluttet opkaldet. Du vil nu blive koblet op på en lokal stemme-chat.
- </notification>
-
- <notification
-
- name="P2PCallDeclined"
- >
-[VOICE_CHANNEL_NAME] har afvist dit opkald. Du vil nu blive koblet op på en lokal stemme-chat.
- </notification>
-
- <notification
-
- name="P2PCallNoAnswer"
- >
-[VOICE_CHANNEL_NAME] har ikke mulighed for at besvare dit opkald. Du vil nu blive koblet op på en lokal chat.
- </notification>
-
- <notification
-
- name="VoiceChannelJoinFailed"
- >
-Det lykkedes ikke at koble op til [VOICE_CHANNEL_NAME]. Prøv venligst igen senere.
- </notification>
-
- <notification
-
- name="VoiceLoginRetry"
- >
-Vi laver en stemmekanal til dig. Det kan tage op til et minut.
- </notification>
-
- <notification
-
- name="Cannot enter parcel: not a group member"
- >
-Du kan ikke komme ind på området. Du er ikke medlem af den nødvendige gruppe.
- </notification>
-
- <notification
-
- name="Cannot enter parcel: banned"
- >
-Du kan ikke komme ind på området. Du er blevet udelukket.
- </notification>
-
- <notification
-
- name="Cannot enter parcel: not on access list"
- >
-Du kan ikke komme ind på området. Du er ikke på adgangslisten.
- </notification>
-
- <notification
-
- name="VoiceNotAllowed"
- >
-Du har ikke tilladelse til at tilslutte dig stemme-chat på [VOICE_CHANNEL_NAME].
- </notification>
-
- <notification
-
- name="VoiceCallGenericError"
- >
-En fejl er opstået under forsøget på at koble sig på stemme chatten [VOICE_CHANNEL_NAME]. Pråv venligst senere.
- </notification>
-
- <notification
-
- name="ServerVersionChanged"
- >
-Det område, du er kommet ind på, kører en anden simulatorversion. Klik på denne besked for detaljer.
- </notification>
-
- <notification
-
- name="UnableToOpenCommandURL"
- >
-Www-adressen, du har klikket på, kan ikke åbnes fra denne internetbrowser.
- </notification>
+ <form name="form">
+ <button name="Accept" text="Acceptér"/>
+ <button name="Decline" text="Afvis"/>
+ <button name="Mute" text="Blokeret"/>
+ </form>
+ </notification>
+ <notification name="VoiceChannelFull">
+ Den stemme-chat, du prøver at tilslutte dig, [VOICE_CHANNEL_NAME], har nået maksiumum kapacitet. Prøv venligst igen senere.
+ </notification>
+ <notification name="ProximalVoiceChannelFull">
+ Vi beklager. Dette område har nået sin maksimale kapacitet for stemme-chat. Prøv venligst at benytte stemme i et andet område.
+ </notification>
+ <notification name="VoiceChannelDisconnected">
+ Du er blevet koblet af [VOICE_CHANNEL_NAME]. Du vil nu blive koblet op på en lokal stemme-chat.
+ </notification>
+ <notification name="VoiceChannelDisconnectedP2P">
+ [VOICE_CHANNEL_NAME] har afsluttet opkaldet. Du vil nu blive koblet op på en lokal stemme-chat.
+ </notification>
+ <notification name="P2PCallDeclined">
+ [VOICE_CHANNEL_NAME] har afvist dit opkald. Du vil nu blive koblet op på en lokal stemme-chat.
+ </notification>
+ <notification name="P2PCallNoAnswer">
+ [VOICE_CHANNEL_NAME] har ikke mulighed for at besvare dit opkald. Du vil nu blive koblet op på en lokal chat.
+ </notification>
+ <notification name="VoiceChannelJoinFailed">
+ Det lykkedes ikke at koble op til [VOICE_CHANNEL_NAME]. Prøv venligst igen senere.
+ </notification>
+ <notification name="VoiceLoginRetry">
+ Vi laver en stemmekanal til dig. Det kan tage op til et minut.
+ </notification>
+ <notification name="Cannot enter parcel: not a group member">
+ Du kan ikke komme ind på området. Du er ikke medlem af den nødvendige gruppe.
+ </notification>
+ <notification name="Cannot enter parcel: banned">
+ Du kan ikke komme ind på området. Du er blevet udelukket.
+ </notification>
+ <notification name="Cannot enter parcel: not on access list">
+ Du kan ikke komme ind på området. Du er ikke på adgangslisten.
+ </notification>
+ <notification name="VoiceNotAllowed">
+ Du har ikke tilladelse til at tilslutte dig stemme-chat på [VOICE_CHANNEL_NAME].
+ </notification>
+ <notification name="VoiceCallGenericError">
+ En fejl er opstået under forsøget på at koble sig på stemme chatten [VOICE_CHANNEL_NAME]. Pråv venligst senere.
+ </notification>
+ <notification name="ServerVersionChanged">
+ Det område, du er kommet ind på, kører en anden simulatorversion. Klik på denne besked for detaljer.
+ </notification>
+ <notification name="UnableToOpenCommandURL">
+ Www-adressen, du har klikket på, kan ikke åbnes fra denne internetbrowser.
+ </notification>
</notifications>
-
diff --git a/indra/newview/skins/default/xui/de/notifications.xml b/indra/newview/skins/default/xui/de/notifications.xml
index 6c103f7e37..06a432bd3b 100644
--- a/indra/newview/skins/default/xui/de/notifications.xml
+++ b/indra/newview/skins/default/xui/de/notifications.xml
@@ -6,6 +6,9 @@
<global name="alwayschoose">
Diese Option immer auswählen
</global>
+ <global name="implicitclosebutton">
+ Schließen
+ </global>
<template name="okbutton">
<form>
<button
diff --git a/indra/newview/skins/default/xui/en/floater_aaa.xml b/indra/newview/skins/default/xui/en/floater_aaa.xml
index d2a0193763..bf8988ca45 100644
--- a/indra/newview/skins/default/xui/en/floater_aaa.xml
+++ b/indra/newview/skins/default/xui/en/floater_aaa.xml
@@ -4,7 +4,8 @@
layout="topleft"
name="floater_aaa"
save_rect="true"
- title="About [SECOND_LIFE_VIEWER]"
+ can_resize="true"
+ title="About [APP_NAME]"
width="470">
<text_editor
follows="left|top|right|bottom"
@@ -16,9 +17,6 @@
top="25"
width="458"
word_wrap="true">
- This is line 1a
-
-
- This is line 4
+This is line 4
</text_editor>
</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_about.xml b/indra/newview/skins/default/xui/en/floater_about.xml
index ece0cf737f..6eb55fa57f 100644
--- a/indra/newview/skins/default/xui/en/floater_about.xml
+++ b/indra/newview/skins/default/xui/en/floater_about.xml
@@ -4,7 +4,7 @@
layout="topleft"
name="floater_about"
save_rect="true"
- title="About [SECOND_LIFE_VIEWER]"
+ title="About [APP_NAME]"
width="470">
<floater.string
name="you_are_at">
diff --git a/indra/newview/skins/default/xui/en/floater_about_land.xml b/indra/newview/skins/default/xui/en/floater_about_land.xml
index cb3388ccbc..9165e8db98 100644
--- a/indra/newview/skins/default/xui/en/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/en/floater_about_land.xml
@@ -627,6 +627,7 @@ Go to World menu &gt; About Land or select another parcel to show its details.
length="1"
enabled="false"
follows="left|top|right|bottom"
+ handle_edit_keys_directly="true"
height="115"
layout="topleft"
left_delta="0"
@@ -1993,7 +1994,7 @@ Options:
layout="topleft"
left_delta="0"
name="limit_age_verified"
- tool_tip="Ban residents who have not verified their age. See support.secondlife.com for more information."
+ tool_tip="Ban residents who have not verified their age. See the [SUPPORT_SITE] for more information."
top_pad="4"
width="278" />
<check_box
diff --git a/indra/newview/skins/default/xui/en/floater_buy_land.xml b/indra/newview/skins/default/xui/en/floater_buy_land.xml
index 777236504d..5e0e423128 100644
--- a/indra/newview/skins/default/xui/en/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/en/floater_buy_land.xml
@@ -341,6 +341,7 @@ supports [AMOUNT2] objects
length="1"
enabled="false"
follows="top|right"
+ handle_edit_keys_directly="false"
height="237"
layout="topleft"
left="444"
diff --git a/indra/newview/skins/default/xui/en/floater_incoming_call.xml b/indra/newview/skins/default/xui/en/floater_incoming_call.xml
index 5c4649276a..2e7f5e6c42 100644
--- a/indra/newview/skins/default/xui/en/floater_incoming_call.xml
+++ b/indra/newview/skins/default/xui/en/floater_incoming_call.xml
@@ -8,6 +8,10 @@
name="incoming call"
title="Unknown Person is calling"
width="240">
+ <floater.string
+ name="anonymous">
+ anonymous
+ </floater.string>
<floater.string
name="VoiceInviteP2P">
is calling.
diff --git a/indra/newview/skins/default/xui/en/floater_land_holdings.xml b/indra/newview/skins/default/xui/en/floater_land_holdings.xml
index 0a97a96ee3..60677ca0df 100644
--- a/indra/newview/skins/default/xui/en/floater_land_holdings.xml
+++ b/indra/newview/skins/default/xui/en/floater_land_holdings.xml
@@ -52,8 +52,8 @@
<button
height="20"
font="SansSerifSmall"
- label="Show on Map"
- label_selected="Show on Map"
+ label="Map"
+ label_selected="Map"
layout="topleft"
left_pad="4"
name="Show on Map"
diff --git a/indra/newview/skins/default/xui/en/floater_postcard.xml b/indra/newview/skins/default/xui/en/floater_postcard.xml
index 91c2a41891..8657663057 100644
--- a/indra/newview/skins/default/xui/en/floater_postcard.xml
+++ b/indra/newview/skins/default/xui/en/floater_postcard.xml
@@ -12,7 +12,7 @@
width="450">
<floater.string
name="default_subject">
- Postcard from Second Life.
+ Postcard from [SECOND_LIFE].
</floater.string>
<floater.string
name="default_message">
@@ -121,6 +121,7 @@
left_delta="0"
max_length="700"
name="msg_form"
+ word_wrap="true"
top_pad="10"
width="420">
Type your message here.
diff --git a/indra/newview/skins/default/xui/en/floater_preferences.xml b/indra/newview/skins/default/xui/en/floater_preferences.xml
index 2906b73af8..bacec627e1 100644
--- a/indra/newview/skins/default/xui/en/floater_preferences.xml
+++ b/indra/newview/skins/default/xui/en/floater_preferences.xml
@@ -53,6 +53,7 @@
layout="topleft"
name="general" />
<panel
+ class="panel_preference"
filename="panel_preferences_graphics1.xml"
label="Graphics"
layout="topleft"
diff --git a/indra/newview/skins/default/xui/en/floater_preview_gesture.xml b/indra/newview/skins/default/xui/en/floater_preview_gesture.xml
index a463b2274d..2fd561f991 100644
--- a/indra/newview/skins/default/xui/en/floater_preview_gesture.xml
+++ b/indra/newview/skins/default/xui/en/floater_preview_gesture.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater
auto_tile="true"
- height="400"
+ height="600"
layout="topleft"
name="gesture_preview"
width="280">
@@ -48,7 +48,7 @@
name="desc_label"
top="25"
width="100">
- Description:
+ Name (not working yet):
</text>
<line_editor
follows="left|top"
@@ -66,21 +66,21 @@
height="10"
layout="topleft"
left="10"
- name="trigger_label"
- top="54"
+ name="desc_label"
+ top_pad="10"
width="100">
- Trigger:
+ Description:
</text>
<line_editor
follows="left|top"
- height="20"
+ height="40"
layout="topleft"
left_delta="84"
- max_length="31"
- name="trigger_editor"
+ name="desc"
top_delta="-4"
- width="100" />
- <text
+ width="180" />
+ <!--ACCORDION GOES HERE -->
+ <text
type="string"
length="1"
follows="top|left"
@@ -88,22 +88,20 @@
height="10"
layout="topleft"
left="10"
- name="replace_text"
- tool_tip="Replace the trigger word(s) with these words. For example, trigger &apos;hello&apos; replace with &apos;howdy&apos; will turn the chat &apos;I wanted to say hello&apos; into &apos;I wanted to say howdy&apos; as well as playing the gesture!"
- top="79"
- width="200">
- Replace with:
+ name="trigger_label"
+ top_pad="10"
+ width="100">
+ Chat:
</text>
<line_editor
follows="left|top"
height="20"
layout="topleft"
- left_delta="84"
+ left_pad="5"
max_length="31"
- name="replace_editor"
- tool_tip="Replace the trigger word(s) with these words. For example, trigger &apos;hello&apos; replace with &apos;howdy&apos; will turn the chat &apos;I wanted to say hello&apos; into &apos;I wanted to say howdy&apos; as well as playing the gesture"
+ name="trigger_editor"
top_delta="-4"
- width="130" />
+ width="135" />
<text
type="string"
length="1"
@@ -113,15 +111,15 @@
layout="topleft"
left="10"
name="key_label"
- top="104"
+ top_pad="10"
width="100">
- Shortcut Key:
+ Keyboard:
</text>
<combo_box
height="20"
label="None"
layout="topleft"
- left_delta="84"
+ left_pad="5"
name="modifier_combo"
top_delta="-4"
width="50" />
@@ -129,7 +127,7 @@
height="20"
label="None"
layout="topleft"
- left_pad="10"
+ left_pad="5"
name="key_combo"
top_delta="0"
width="45" />
@@ -141,32 +139,52 @@
height="10"
layout="topleft"
left="10"
- name="library_label"
- top="135"
+ name="replace_text"
+ tool_tip="Replace the trigger word(s) with these words. For example, trigger &apos;hello&apos; replace with &apos;howdy&apos; will turn the chat &apos;I wanted to say hello&apos; into &apos;I wanted to say howdy&apos; as well as playing the gesture!"
+ top_pad="10"
width="100">
- Library:
+ Replace:
</text>
- <text
- type="string"
- length="1"
+ <line_editor
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_pad="5"
+ max_length="31"
+ name="replace_editor"
+ tool_tip="Replace the trigger word(s) with these words. For example, trigger &apos;hello&apos; replace with &apos;howdy&apos; will turn the chat &apos;I wanted to say hello&apos; into &apos;I wanted to say howdy&apos; as well as playing the gesture"
+ top_delta="-4"
+ width="135" />
+
+ <!--ACCORDION GOES HERE -->
+ <scroll_list
+ follows="top|left"
+ height="110"
+ layout="topleft"
+ left="10"
+ name="step_list"
+ top_pad="10"
+ width="260" />
+ <button
follows="top|left"
+ height="20"
font="SansSerifSmall"
- height="10"
+ label="Add"
layout="topleft"
- left_pad="75"
- name="steps_label"
- top_delta="0"
- width="100">
- Steps:
- </text>
+ left_pad="-100"
+ name="add_btn"
+ top_pad="5"
+ width="100" />
+
+
<scroll_list
follows="top|left"
height="110"
layout="topleft"
left="10"
name="library_list"
- top="150"
- width="80">
+ top_pad="10"
+ width="260">
<scroll_list.rows
value="Animation" />
<scroll_list.rows
@@ -176,54 +194,39 @@
<scroll_list.rows
value="Wait" />
</scroll_list>
+
+
+
<button
follows="top|left"
height="20"
- font="SansSerifSmall"
- label="Add &gt;&gt;"
- layout="topleft"
- left_pad="14"
- name="add_btn"
- top_delta="0"
- width="70" />
- <button
- follows="top|left"
- height="20"
- font="SansSerifSmall"
- label="Up"
+ label="Preview"
layout="topleft"
- left_delta="0"
- name="up_btn"
- top_pad="10"
- width="70" />
+ left="20"
+ name="preview_btn"
+ top_pad="50"
+ width="80" />
<button
follows="top|left"
height="20"
- font="SansSerifSmall"
- label="Down"
+ label="Save"
layout="topleft"
- left_delta="0"
- name="down_btn"
- top_pad="10"
- width="70" />
+ left_pad="5"
+ name="save_btn"
+ top_delta="0"
+ width="80" />
<button
follows="top|left"
height="20"
- font="SansSerifSmall"
- label="Remove"
- layout="topleft"
- left_delta="0"
- name="delete_btn"
- top_pad="10"
- width="70" />
- <scroll_list
- follows="top|left"
- height="110"
+ label="Cancel (not working)"
layout="topleft"
- left="185"
- name="step_list"
- top="150"
- width="85" />
+ left_pad="5"
+ name="save_btn"
+ top_delta="0"
+ width="80" />
+
+
+
<text
type="string"
length="1"
@@ -233,7 +236,7 @@
layout="topleft"
left="10"
name="help_label"
- top="270"
+ top_pad="10"
width="200">
All steps happen simultaneously,
unless you add wait steps.
@@ -244,7 +247,7 @@ unless you add wait steps.
layout="topleft"
left="10"
name="options_text"
- top="300"
+ top_pad="10"
width="205" />
<combo_box
follows="top|left"
@@ -252,7 +255,7 @@ unless you add wait steps.
layout="topleft"
left_delta="10"
name="animation_list"
- top="320"
+ top_pad="10"
width="100" />
<combo_box
follows="top|left"
@@ -278,7 +281,7 @@ unless you add wait steps.
layout="topleft"
left_pad="8"
name="animation_trigger_type"
- top_delta="0"
+ top="445"
width="80">
<radio_item
height="16"
@@ -304,7 +307,7 @@ unless you add wait steps.
layout="topleft"
left="16"
name="wait_anim_check"
- top="315"
+ top="430"
width="100" />
<check_box
follows="top|left"
@@ -324,6 +327,73 @@ unless you add wait steps.
name="wait_time_editor"
top_delta="0"
width="50" />
+
+
+
+ <!--accordion
+ layout="topleft"
+ left="2"
+ width="280"
+ top_pad="10"
+ height="600"
+ follows="all"
+ name="preview_gesture_shortcuts">
+ <accordion_tab
+ min_height="515"
+ title="Shortcuts"
+ name="preview_gesture_shortcuts">
+ <panel
+ class="preview_gesture_shortcuts"
+ filename="floater_preview_gesture_shortcuts"
+ name="preview_gesture_shortcuts" />
+ </accordion_tab>
+ <accordion_tab
+ min_height="380"
+ title="Group Roles"
+ name="group_roles_tab"
+ can_resize="false">
+ <panel
+ class="panel_group_roles"
+ filename="panel_group_roles.xml"
+ name="group_roles_tab_panel"/>
+ </accordion_tab>
+ <accordion_tab
+ min_height="530"
+ title="Group Notices"
+ name="group_notices_tab"
+ can_resize="false">
+ <panel
+ class="panel_group_notices"
+ filename="panel_group_notices.xml"
+ name="group_notices_tab_panel"/>
+ </accordion_tab>
+ <accordion_tab
+ min_height="270"
+ title="Group Land Money"
+ name="group_land_tab"
+ can_resize="false">
+ <panel
+ class="panel_group_land_money"
+ filename="panel_group_land_money.xml"
+ name="group_land_tab_panel"/>
+ </accordion_tab>
+ </accordion-->
+
+
+
+ <!--text
+ type="string"
+ length="1"
+ follows="top|left"
+ font="SansSerifSmall"
+ height="10"
+ layout="topleft"
+ left="10"
+ name="library_label"
+ top_pad="10"
+ width="100">
+ Library:
+ </text>
<check_box
follows="top|left"
height="20"
@@ -333,23 +403,5 @@ unless you add wait steps.
name="active_check"
tool_tip="Active gestures can be triggered by chatting their trigger phrases or pressing their hot keys. Gestures usually become inactive when there is a key binding conflict."
top="365"
- width="100" />
- <button
- follows="top|left"
- height="20"
- label="Preview"
- layout="topleft"
- left_delta="75"
- name="preview_btn"
- top_delta="2"
- width="80" />
- <button
- follows="top|left"
- height="20"
- label="Save"
- layout="topleft"
- left_pad="10"
- name="save_btn"
- top_delta="0"
- width="80" />
+ width="100" /-->
</floater> \ No newline at end of file
diff --git a/indra/newview/skins/default/xui/en/floater_preview_notecard.xml b/indra/newview/skins/default/xui/en/floater_preview_notecard.xml
index f8f1abd179..4595c9eeda 100644
--- a/indra/newview/skins/default/xui/en/floater_preview_notecard.xml
+++ b/indra/newview/skins/default/xui/en/floater_preview_notecard.xml
@@ -74,6 +74,7 @@
left="4"
max_length="65536"
name="Notecard Editor"
+ handle_edit_keys_directly="true"
tab_group="1"
top="46"
width="392"
diff --git a/indra/newview/skins/default/xui/en/floater_tos.xml b/indra/newview/skins/default/xui/en/floater_tos.xml
index 6585667c8b..54facbb659 100644
--- a/indra/newview/skins/default/xui/en/floater_tos.xml
+++ b/indra/newview/skins/default/xui/en/floater_tos.xml
@@ -49,7 +49,7 @@
name="tos_heading"
top_delta="-399"
width="552">
- Please read the following Terms of Service carefully. To continue logging in to Second Life,
+ Please read the following Terms of Service carefully. To continue logging in to [SECOND_LIFE],
you must accept the agreement.
</text>
<text_editor
@@ -64,6 +64,7 @@ you must accept the agreement.
name="tos_text"
top_pad="43"
width="568"
+ handle_edit_keys_directly="true"
word_wrap="true">
TOS_TEXT
</text_editor>
diff --git a/indra/newview/skins/default/xui/en/floater_world_map.xml b/indra/newview/skins/default/xui/en/floater_world_map.xml
index 6a022e8966..e46588dd71 100644
--- a/indra/newview/skins/default/xui/en/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/en/floater_world_map.xml
@@ -359,8 +359,6 @@
label="Landmarks"
name="item1"
value="None" />
- <combo_box.commit_callback
- function="WMap.Landmark" />
</combo_box>
<icon
color="0.5 0 0 1"
diff --git a/indra/newview/skins/default/xui/en/menu_login.xml b/indra/newview/skins/default/xui/en/menu_login.xml
index 4e3c0d0c40..642087baff 100644
--- a/indra/newview/skins/default/xui/en/menu_login.xml
+++ b/indra/newview/skins/default/xui/en/menu_login.xml
@@ -43,7 +43,7 @@
layout="topleft"
name="Help">
<menu_item_call
- label="Second Life Help"
+ label="[SECOND_LIFE] Help"
layout="topleft"
name="Second Life Help"
shortcut="F1">
@@ -52,7 +52,7 @@
parameter="help f1" />
</menu_item_call>
<menu_item_call
- label="About Second Life"
+ label="About [APP_NAME]"
layout="topleft"
name="About Second Life">
<menu_item_call.on_click
diff --git a/indra/newview/skins/default/xui/en/menu_picks.xml b/indra/newview/skins/default/xui/en/menu_picks.xml
index 146d7d06fe..7e07a97016 100644
--- a/indra/newview/skins/default/xui/en/menu_picks.xml
+++ b/indra/newview/skins/default/xui/en/menu_picks.xml
@@ -25,7 +25,7 @@
function="Pick.Teleport" />
</menu_item_call>
<menu_item_call
- label="Show on Map"
+ label="Map"
layout="topleft"
name="pick_map">
<menu_item_call.on_click
diff --git a/indra/newview/skins/default/xui/en/menu_slurl.xml b/indra/newview/skins/default/xui/en/menu_slurl.xml
index d5d9d3c43d..ee37d49946 100644
--- a/indra/newview/skins/default/xui/en/menu_slurl.xml
+++ b/indra/newview/skins/default/xui/en/menu_slurl.xml
@@ -27,7 +27,7 @@
parameter="about" />
</menu_item_call>
<menu_item_call
- label="Show on Map"
+ label="Map"
layout="topleft"
name="show_on_map">
<menu_item_call.on_click
diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml
index 3d2558ce5a..5e894e1773 100644
--- a/indra/newview/skins/default/xui/en/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/en/menu_viewer.xml
@@ -138,7 +138,7 @@
<menu_item_separator
layout="topleft" />
<menu_item_call
- label="Quit Second Life"
+ label="Quit [APP_NAME]"
layout="topleft"
name="Quit"
shortcut="control|Q">
@@ -449,7 +449,7 @@
name="Help"
tear_off="true">
<menu_item_call
- label="Second Life Help"
+ label="[SECOND_LIFE] Help"
layout="topleft"
name="Second Life Help"
shortcut="F1">
@@ -496,7 +496,7 @@
<menu_item_separator
layout="topleft" />
<menu_item_call
- label="About Second Life"
+ label="About [APP_NAME]"
layout="topleft"
name="About Second Life">
<menu_item_call.on_click
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index 3083a7f689..8b0741524d 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -102,7 +102,7 @@
name="MissingAlert"
label="Unknown Alert Message"
type="alertmodal">
-Your version of Second Life does not know how to display the alert it just received. Please verify that you have the latest Viewer installed.
+Your version of [APP_NAME] does not know how to display the alert it just received. Please verify that you have the latest Viewer installed.
Error details: The alert called &apos;[_NAME]&apos; was not found in notifications.xml.
<usetemplate
@@ -154,7 +154,7 @@ No tutorial is currently available.
icon="alertmodal.tga"
name="BadInstallation"
type="alertmodal">
- An error occurred while updating Second Life. Please download the latest version of the Viewer. http://get.secondlife.com
+ An error occurred while updating [APP_NAME]. Please download the latest version of the Viewer. http://get.secondlife.com
<usetemplate
name="okbutton"
yestext="Ok"/>
@@ -164,7 +164,7 @@ No tutorial is currently available.
icon="alertmodal.tga"
name="LoginFailedNoNetwork"
type="alertmodal">
-Could not connect to the Second Life Grid.
+Could not connect to the [SECOND_LIFE_GRID].
&apos;[DIAGNOSTIC]&apos;
Make sure your Internet connection is working properly.
<usetemplate
@@ -331,7 +331,7 @@ Members cannot be removed from that role.
The members must resign from the role themselves.
Are you sure you want to continue?
<usetemplate
- ignoretext="When adding group members to the owner role"
+ ignoretext="Confirm before I add a new group Owner"
name="okcancelignore"
notext="No"
yestext="Yes"/>
@@ -429,7 +429,7 @@ Selecting &quot;Show in Search&quot; 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 [SECOND_LIFE] web site for more information on partnering?
<usetemplate
name="okcancelbuttons"
notext="Cancel"
@@ -519,7 +519,7 @@ Your selling price will be L$[SALE_PRICE] and will be authorized for sale to [NA
icon="alertmodal.tga"
name="ConfirmLandSaleToAnyoneChange"
type="alertmodal">
-ATTENTION: Clicking &apos;sell to anyone&apos; makes your land available to the entire Second Life community, even those not in this region.
+ATTENTION: Clicking &apos;sell to anyone&apos; makes your land available to the entire [SECOND_LIFE] community, even those not in this region.
The selected [LAND_SIZE] m² land is being set for sale.
Your selling price will be L$[SALE_PRICE] and will be authorized for sale to [NAME].
@@ -765,7 +765,7 @@ Fill out your ad, then click &apos;Publish...&apos; to add it to the directory.
You&apos;ll be asked for a price to pay when clicking Publish.
Paying more makes your ad appear higher in the list, and also appear higher when people search for keywords.
<usetemplate
- ignoretext="When adding a new Classified"
+ ignoretext="How to create a new Classified ad"
name="okcancelignore"
notext="Cancel"
yestext="OK"/>
@@ -861,14 +861,14 @@ Would you like to disable all popups which can be skipped?
icon="alertmodal.tga"
name="CacheWillClear"
type="alertmodal">
-Cache will be cleared after you restart [SECOND_LIFE].
+Cache will be cleared after you restart [APP_NAME].
</notification>
<notification
icon="alertmodal.tga"
name="CacheWillBeMoved"
type="alertmodal">
-Cache will be moved after you restart [SECOND_LIFE].
+Cache will be moved after you restart [APP_NAME].
Note: This will clear the cache.
</notification>
@@ -876,14 +876,14 @@ Note: This will clear the cache.
icon="alertmodal.tga"
name="ChangeConnectionPort"
type="alertmodal">
-Port settings take effect after you restart [SECOND_LIFE].
+Port settings take effect after you restart [APP_NAME].
</notification>
<notification
icon="alertmodal.tga"
name="ChangeSkin"
type="alertmodal">
-The new skin will appear after you restart [SECOND_LIFE].
+The new skin will appear after you restart [APP_NAME].
</notification>
<notification
@@ -1020,7 +1020,7 @@ Unable to write file [[FILE]]
icon="alertmodal.tga"
name="UnsupportedHardware"
type="alertmodal">
-Warning: Your system does not meet Second Life&apos;s minimum system requirements. If you continue using Second Life, you may experience poor performance. Unfortunately, we cannot provide technical support for unsupported system configurations.
+Warning: Your system does not meet [APP_NAME]&apos;s minimum system requirements. If you continue using [APP_NAME], you may experience poor performance. Unfortunately, the [SUPPORT_SITE] cannot provide technical support for unsupported system configurations.
MINSPECS
Do you wish to visit [_URL] for more information?
@@ -1029,7 +1029,7 @@ Do you wish to visit [_URL] for more information?
http://www.secondlife.com/corporate/sysreqs.php
</url>
<usetemplate
- ignoretext="When detecting unsupported hardware"
+ ignoretext="My computer hardware is not supported"
name="okcancelignore"
notext="No"
yestext="Yes"/>
@@ -1039,12 +1039,12 @@ Do you wish to visit [_URL] for more information?
icon="alertmodal.tga"
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&apos;t had a chance to test. Second Life will most likely run properly, but you may need to adjust your graphics settings to something more appropriate.
+Your system contains a graphics card that is unknown to [APP_NAME] at this time.
+This is often the case with new hardware that hasn&apos;t been tested yet with [APP_NAME]. [APP_NAME] will most likely run properly, but you may need to adjust your graphics settings to something more appropriate.
(Edit menu &gt; Preferences &gt; Graphics).
<form name="form">
<ignore name="ignore"
- text="When detecting an unknown graphics card"/>
+ text="My graphics card could not be identified"/>
</form>
</notification>
@@ -1052,9 +1052,8 @@ This is often the case with new hardware we haven&apos;t had a chance to test.
icon="alertmodal.tga"
name="DisplaySettingsNoShaders"
type="alertmodal">
-[SECOND_LIFE] crashed while initializing graphics drivers.
-Graphics Quality will be set to low to avoid some common driver errors.
-This will disable some graphics features.
+[APP_NAME] crashed while initializing graphics drivers.
+Graphics Quality will be set to Low to avoid some common driver errors. This will disable some graphics features.
We recommend updating your graphics card drivers.
Graphics Quality can be raised in Preferences &gt; Graphics.
</notification>
@@ -1388,7 +1387,7 @@ Unable to create output file: [FILE]
icon="alertmodal.tga"
name="DoNotSupportBulkAnimationUpload"
type="alertmodal">
-We do not currently support bulk upload of animation files.
+[APP_NAME] does not currently support bulk upload of animation files.
</notification>
<notification
@@ -1507,15 +1506,15 @@ Could not teleport.
icon="alertmodal.tga"
name="invalid_tport"
type="alertmodal">
-Problem encountered processing your teleport request. You may need to log back in before you can teleport. If you continue to get this message, please check the Tech Support FAQ at:
-www.secondlife.com/support
+Problem encountered processing your teleport request. You may need to log back in before you can teleport.
+If you continue to get this message, please check the [SUPPORT_SITE].
</notification>
<notification
icon="alertmodal.tga"
name="invalid_region_handoff"
type="alertmodal">
-Problem encountered processing your region crossing. You may need to log back in before you can cross regions. If you continue to get this message, please check the Tech Support FAQ at:
-www.secondlife.com/support
+Problem encountered processing your region crossing. You may need to log back in before you can cross regions.
+If you continue to get this message, please check the [SUPPORT_SITE].
</notification>
<notification
icon="alertmodal.tga"
@@ -1656,7 +1655,7 @@ Cannot find the region this land is in.
icon="alertmodal.tga"
name="CannotCloseFloaterBuyLand"
type="alertmodal">
-You cannot close the Buy Land window until Second Life estimates the price of this transaction.
+You cannot close the Buy Land window until [APP_NAME] estimates the price of this transaction.
</notification>
<notification
@@ -1974,7 +1973,7 @@ and provide details about your network setup.
type="alertmodal">
You have been logged out of [SECOND_LIFE]:
[MESSAGE]
-You can still look at existing IM and chat by clicking &apos;View IM &amp; Chat&apos;. Otherwise, click &apos;Quit&apos; to exit [SECOND_LIFE] immediately.
+You can still look at existing IM and chat by clicking &apos;View IM &amp; Chat&apos;. Otherwise, click &apos;Quit&apos; to exit [APP_NAME] immediately.
<usetemplate
name="okcancelbuttons"
notext="Quit"
@@ -2332,10 +2331,10 @@ You may want to set a new home location.
name="ClothingLoading"
type="alertmodal">
Your clothing is still downloading.
-You can use [SECOND_LIFE] normally and other users will see you correctly.
+You can use [SECOND_LIFE] normally and other people will see you correctly.
<form name="form">
<ignore name="ignore"
- text="When clothing is taking a long time to download"/>
+ text="Clothing is taking a long time to download"/>
</form>
</notification>
@@ -2344,7 +2343,7 @@ You can use [SECOND_LIFE] normally and other users will see you correctly.
name="FirstRun"
type="alertmodal">
-[SECOND_LIFE] installation is complete.
+[APP_NAME] installation is complete.
If this is your first time using [SECOND_LIFE], you will need to create an account before you can log in.
Return to www.secondlife.com to create a new account?
@@ -2358,9 +2357,9 @@ Return to www.secondlife.com to create a new account?
icon="alertmodal.tga"
name="LoginPacketNeverReceived"
type="alertmodal">
-We&apos;re having trouble connecting. There may be a problem with your internet connection or the Second Life servers.
+We&apos;re having trouble connecting. There may be a problem with your Internet connection or the [SECOND_LIFE_GRID].
-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.
+You can either check your Internet connection and try again in a few minutes, click Help to view the [SUPPORT_SITE], or click Teleport to attempt to teleport home.
<url option="1" name="url">
http://secondlife.com/support/
@@ -2591,9 +2590,9 @@ Finished download of raw terrain file to:
icon="alertmodal.tga"
name="DownloadWindowsMandatory"
type="alertmodal">
-A new version of [SECOND_LIFE] is available.
+A new version of [APP_NAME] is available.
[MESSAGE]
-You must download this update to use [SECOND_LIFE].
+You must download this update to use [APP_NAME].
<usetemplate
name="okcancelbuttons"
notext="Quit"
@@ -2604,7 +2603,7 @@ You must download this update to use [SECOND_LIFE].
icon="alertmodal.tga"
name="DownloadWindows"
type="alertmodal">
-An updated version of [SECOND_LIFE] is available.
+An updated version of [APP_NAME] is available.
[MESSAGE]
This update is not required, but we suggest you install it to improve performance and stability.
<usetemplate
@@ -2617,7 +2616,7 @@ This update is not required, but we suggest you install it to improve performanc
icon="alertmodal.tga"
name="DownloadWindowsReleaseForDownload"
type="alertmodal">
-An updated version of [SECOND_LIFE] is available.
+An updated version of [APP_NAME] is available.
[MESSAGE]
This update is not required, but we suggest you install it to improve performance and stability.
<usetemplate
@@ -2669,9 +2668,9 @@ This update is not required, but we suggest you install it to improve performanc
icon="alertmodal.tga"
name="DownloadMacMandatory"
type="alertmodal">
-A new version of [SECOND_LIFE] is available.
+A new version of [APP_NAME] is available.
[MESSAGE]
-You must download this update to use [SECOND_LIFE].
+You must download this update to use [APP_NAME].
Download to your Applications folder?
<usetemplate
@@ -2684,7 +2683,7 @@ Download to your Applications folder?
icon="alertmodal.tga"
name="DownloadMac"
type="alertmodal">
-An updated version of [SECOND_LIFE] is available.
+An updated version of [APP_NAME] is available.
[MESSAGE]
This update is not required, but we suggest you install it to improve performance and stability.
@@ -2699,7 +2698,7 @@ Download to your Applications folder?
icon="alertmodal.tga"
name="DownloadMacReleaseForDownload"
type="alertmodal">
-An updated version of [SECOND_LIFE] is available.
+An updated version of [APP_NAME] is available.
[MESSAGE]
This update is not required, but we suggest you install it to improve performance and stability.
@@ -2717,7 +2716,7 @@ Download to your Applications folder?
Deeding this object will cause the group to:
* Receive L$ paid into the object
<usetemplate
- ignoretext="When deeding objects to groups"
+ ignoretext="Confirm before I deed an object to a group"
name="okcancelignore"
notext="Cancel"
yestext="Deed"/>
@@ -2727,9 +2726,9 @@ Deeding this object will cause the group to:
icon="alertmodal.tga"
name="WebLaunchExternalTarget"
type="alertmodal">
-Open your system Web browser to view this content?
+Do you want to open your Web browser to view this content?
<usetemplate
- ignoretext="When opening your system browser to view a Web page"
+ ignoretext="Launch my browser to view a web page"
name="okcancelignore"
notext="Cancel"
yestext="OK"/>
@@ -2739,9 +2738,9 @@ Open your system Web browser to view this content?
icon="alertmodal.tga"
name="WebLaunchJoinNow"
type="alertmodal">
-Go to www.secondlife.com to manage your account?
+Go to secondlife.com to manage your account?
<usetemplate
- ignoretext="When launching web browser to manage your account"
+ ignoretext="Launch my browser to manage my account"
name="okcancelignore"
notext="Cancel"
yestext="OK"/>
@@ -2753,7 +2752,7 @@ Go to www.secondlife.com to manage your account?
type="alertmodal">
Visit the [SECOND_LIFE] Wiki and learn how to report bugs correctly.
<usetemplate
- ignoretext="When launching web browser to view the Bug Reporting 101 Wiki"
+ ignoretext="Launch my browser to learn how to report a Bug"
name="okcancelignore"
notext="Cancel"
yestext="OK"/>
@@ -2765,7 +2764,7 @@ Visit the [SECOND_LIFE] Wiki and learn how to report bugs correctly.
type="alertmodal">
Visit the [SECOND_LIFE] Wiki for details of how to report a security issue.
<usetemplate
- ignoretext="When launching web browser to view Security Issues Wiki"
+ ignoretext="Launch my browser to learn how to report a Security Issue"
name="okcancelignore"
notext="Cancel"
yestext="OK"/>
@@ -2777,7 +2776,7 @@ Visit the [SECOND_LIFE] Wiki for details of how to report a security issue.
type="alertmodal">
Visit the [SECOND_LIFE] QA Wiki.
<usetemplate
- ignoretext="When launching web browser to view the QA Wiki"
+ ignoretext="Launch my browser to view the QA Wiki"
name="okcancelignore"
notext="Cancel"
yestext="OK"/>
@@ -2789,7 +2788,7 @@ Visit the [SECOND_LIFE] QA Wiki.
type="alertmodal">
Visit the [SECOND_LIFE] Public Issue Tracker, where you can report bugs and other issues.
<usetemplate
- ignoretext="When launching web browser to view the Public Issue Tracker"
+ ignoretext="Launch my browser to use the Public Issue Tracker"
name="okcancelignore"
notext="Cancel"
yestext="Go to page"/>
@@ -2801,7 +2800,7 @@ Visit the [SECOND_LIFE] Public Issue Tracker, where you can report bugs and othe
type="alertmodal">
Visit the [SECOND_LIFE] Wiki for info on how to use the Public Issue Tracker.
<usetemplate
- ignoretext="When launching web browser to view Public Issue Tracker Wiki"
+ ignoretext="Launch my browser to view instructions for the Public Issue Tracker"
name="okcancelignore"
notext="Cancel"
yestext="Go to page"/>
@@ -2813,7 +2812,7 @@ Visit the [SECOND_LIFE] Wiki for info on how to use the Public Issue Tracker.
type="alertmodal">
Go to the Official Linden Blog, for the latest news and information.
<usetemplate
- ignoretext="When launching web browser to view the blog"
+ ignoretext="Launch my browser to view the blog"
name="okcancelignore"
notext="Cancel"
yestext="OK"/>
@@ -2823,9 +2822,9 @@ Go to the Official Linden Blog, for the latest news and information.
icon="alertmodal.tga"
name="WebLaunchLSLGuide"
type="alertmodal">
-Go to the Scripting Guide for scripting help?
+Do you want to open the Scripting Guide for help with scripting?
<usetemplate
- ignoretext="When launching web browser to view the Scripting Guide"
+ ignoretext="Launch my browser to view the Scripting Guide"
name="okcancelignore"
notext="Cancel"
yestext="OK"/>
@@ -2835,9 +2834,9 @@ Go to the Scripting Guide for scripting help?
icon="alertmodal.tga"
name="WebLaunchLSLWiki"
type="alertmodal">
-Go to the LSL Portal for scripting help?
+Do you want to visit the LSL Portal for help with scripting?
<usetemplate
- ignoretext="When launching web browser to view the LSL Portal"
+ ignoretext="Launch my browser to view the LSL Portal"
name="okcancelignore"
notext="Cancel"
yestext="Go to page"/>
@@ -2851,7 +2850,7 @@ Are you sure you want to return the selected objects to their owners? Transferab
*WARNING* No-transfer deeded objects will be deleted!
<usetemplate
- ignoretext="When returning objects to their owners"
+ ignoretext="Confirm before I return objects to their owners"
name="okcancelignore"
notext="Cancel"
yestext="OK"/>
@@ -2943,10 +2942,10 @@ Cannot offer friendship at this time. Please try again in a moment.
icon="alert.tga"
name="BusyModeSet"
type="alert">
-Busy mode set.
+Busy mode is set.
Chat and instant messages will be hidden. Instant messages will get your Busy mode response. All teleportation offers will be declined. All inventory offers will go to your Trash.
<usetemplate
- ignoretext="When setting busy mode"
+ ignoretext="I change my status to Busy mode"
name="okignore"
yestext="OK"/>
</notification>
@@ -3096,7 +3095,7 @@ Join me in [REGION]
type="alertmodal">
Are you sure you want to teleport?
<usetemplate
- ignoretext="When teleporting from a landmark in inventory"
+ ignoretext="Confirm that I want to teleport to a landmark"
name="okcancelignore"
notext="Cancel"
yestext="Teleport"/>
@@ -3108,7 +3107,7 @@ Are you sure you want to teleport?
type="alertmodal">
Teleport to [PICK]?
<usetemplate
- ignoretext="When teleporting from double-clicking a pick"
+ ignoretext="Confirm that I want to teleport to a location in Picks"
name="okcancelignore"
notext="Cancel"
yestext="Teleport"/>
@@ -3318,7 +3317,7 @@ Go to the Knowledge Base for more information about maturity Ratings?
name="okcancelignore"
yestext="Go to Knowledge Base"
notext="Close"
- ignoretext="When Region entry is blocked due to maturity Rating"/>
+ ignoretext="I can&apos;t enter this Region, due to restrictions of the maturity Rating"/>
</notification>
<notification
@@ -3345,7 +3344,7 @@ You can click &apos;Change Preference&apos; to raise your maturity Rating prefer
index="1"
name="Cancel"
text="Close"/>
- <ignore name="ignore" text="When Region entry is blocked due to maturity Rating preference"/>
+ <ignore name="ignore" text="My chosen Rating preference prevents me from entering a Region"/>
</form>
</notification>
@@ -3375,7 +3374,7 @@ Go to the Knowledge Base for more information about maturity Ratings?
name="okcancelignore"
yestext="Go to Knowledge Base"
notext="Close"
- ignoretext="When claiming land is blocked due to maturity Rating"/>
+ ignoretext="I can&apos;t claim this Land, due to restrictions of the maturity Rating"/>
</notification>
<notification
@@ -3396,7 +3395,7 @@ You can click &apos;Change Preference&apos; to raise your maturity Rating prefer
name="okcancelignore"
yestext="Change Preference"
notext="Close"
- ignoretext="When claiming land is blocked due to maturity Rating preference"/>
+ ignoretext="My chosen Rating preference prevents me from claiming Land"/>
</notification>
<notification
@@ -3425,7 +3424,7 @@ Go to the Knowledge Base for more information about maturity Ratings?
name="okcancelignore"
yestext="Go to Knowledge Base"
notext="Close"
- ignoretext="When a Land purchase is blocked due to maturity Rating"/>
+ ignoretext="I can&apos;t buy this Land, due to restrictions of the maturity Rating"/>
</notification>
<notification
@@ -3446,7 +3445,7 @@ You can click &apos;Change Preference&apos; to raise your maturity Rating prefer
name="okcancelignore"
yestext="Change Preference"
notext="Close"
- ignoretext="When a Land purchase is blocked due to maturity Rating preference"/>
+ ignoretext="My chosen Rating preference prevents me from buying Land"/>
</notification>
<notification
@@ -3969,7 +3968,7 @@ Default: off
label="Voice Version Mismatch"
name="VoiceVersionMismatch"
type="alertmodal">
-This version of Second Life is not compatible with the Voice Chat feature in this region. In order for Voice Chat to function correctly you will need to update Second Life.
+This version of [APP_NAME] is not compatible with the Voice Chat feature in this region. In order for Voice Chat to function correctly you will need to update [APP_NAME].
</notification>
<notification
@@ -4158,7 +4157,7 @@ These items will be moved to your inventory, not copied.
Move the inventory item(s)?
<usetemplate
- ignoretext="When moving no-copy inventory from objects"
+ ignoretext="Warn me before I move &apos;no-copy&apos; items from an object"
name="okcancelignore"
notext="Cancel"
yestext="OK"/>
@@ -4173,7 +4172,7 @@ Because this object is scripted, moving these items to your inventory may cause
Move the inventory item(s)?
<usetemplate
- ignoretext="When moving no-copy inventory from scripted objects"
+ ignoretext="Warn me before I move &apos;no-copy&apos; items which might break a scripted object"
name="okcancelignore"
notext="Cancel"
yestext="OK"/>
@@ -4183,10 +4182,10 @@ Move the inventory item(s)?
icon="alert.tga"
name="ClickActionNotPayable"
type="alert">
-Warning: The Pay Object click action has been set, but it will only work if a script is added with a money() event.
+Warning: The &apos;Pay object&apos; click action has been set, but it will only work if a script is added with a money() event.
<form name="form">
<ignore name="ignore"
- text="When Setting &apos;Pay&apos; on objects without money() events"/>
+ text="I set the action &apos;Pay object&apos; when building an object without a money() script"/>
</form>
</notification>
@@ -4201,9 +4200,9 @@ There are no items in this object that you are allowed to copy.
icon="alertmodal.tga"
name="WebLaunchAccountHistory"
type="alertmodal">
-Go to the Second Life web site to see your account history?
+Go to secondlife.com to see your account history?
<usetemplate
- ignoretext="When loading account history web page"
+ ignoretext="Launch my browser to see my account history"
name="okcancelignore"
notext="Cancel"
yestext="Go to page"/>
@@ -4213,9 +4212,9 @@ Go to the Second Life web site to see your account history?
icon="alertmodal.tga"
name="ClickOpenF1Help"
type="alertmodal">
-View Second Life help?
+Do you want to visit [SECOND_LIFE] help?
<usetemplate
- ignoretext="When visiting the Second Life Support Website."
+ ignoretext="Launch my browser to view Help/Support"
name="okcancelignore"
notext="Cancel"
yestext="Go"/>
@@ -4227,7 +4226,7 @@ View Second Life help?
type="alertmodal">
Are you sure you want to quit?
<usetemplate
- ignoretext="When Quitting Second Life."
+ ignoretext="Confirm before I quit"
name="okcancelignore"
notext="Don&apos;t Quit"
yestext="Quit"/>
@@ -4259,7 +4258,7 @@ As a service to residents and visitors, the owner of the region you are in has e
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&apos; 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].
</notification>
<notification
@@ -4352,9 +4351,9 @@ Dear Resident,
You appear to be reporting intellectual property infringement. Please make sure you are reporting it correctly:
-(1) The Abuse Process. You may submit an abuse report if you believe a Resident is exploiting the Second Life permissions system, for example, by using CopyBot or similar copying tools, to infringe intellectual property rights. The Abuse Team investigates and issues appropriate disciplinary action for behavior that violates the Second Life Community Standards or Terms of Service. However, the Abuse Team does not handle and will not respond to requests to remove content from the Second Life world.
+(1) The Abuse Process. You may submit an abuse report if you believe a Resident is exploiting the [SECOND_LIFE] permissions system, for example, by using CopyBot or similar copying tools, to infringe intellectual property rights. The Abuse Team investigates and issues appropriate disciplinary action for behavior that violates the [SECOND_LIFE] Community Standards or Terms of Service. However, the Abuse Team does not handle and will not respond to requests to remove content from the [SECOND_LIFE] world.
-(2) The DMCA or Content Removal Process. To request removal of content from Second Life, you MUST submit a valid notification of infringement as provided in our DMCA Policy at http://secondlife.com/corporate/dmca.php.
+(2) The DMCA or Content Removal Process. To request removal of content from [SECOND_LIFE], you MUST submit a valid notification of infringement as provided in our DMCA Policy at http://secondlife.com/corporate/dmca.php.
If you still wish to continue with the abuse process, please close this window and finish submitting your report. You may need to select the specific category &apos;CopyBot or Permissions Exploit&apos;.
@@ -4381,7 +4380,7 @@ Do you want to replace it with the selected object?
<form name="form">
<ignore name="ignore"
save_option="true"
- text="When replacing existing attachments"/>
+ text="Replace an existing attachment with the selected item"/>
<button
default="true"
ignore="Replace Automatically"
@@ -4407,7 +4406,7 @@ Would you like to leave Busy Mode before completing this transaction?
<form name="form">
<ignore name="ignore"
save_option="true"
- text="When paying a person or object in busy mode"/>
+ text="I am about to pay a person or object while I am in Busy mode"/>
<button
default="true"
ignore="Always leave Busy Mode"
@@ -4428,7 +4427,7 @@ Would you like to leave Busy Mode before completing this transaction?
type="alertmodal">
Are you sure you want to permanently delete the contents of your Trash?
<usetemplate
- ignoretext="When emptying your inventory trash folder"
+ ignoretext="Confirm before I empty the inventory Trash folder"
name="okcancelignore"
notext="Cancel"
yestext="OK"/>
@@ -4438,7 +4437,7 @@ Are you sure you want to permanently delete the contents of your Trash?
icon="alertmodal.tga"
name="ConfirmClearBrowserCache"
type="alertmodal">
-Are you sure you want to clear your browser cache?
+Delete your travel, web, and search history?
<usetemplate
name="okcancelbuttons"
notext="Cancel"
@@ -4473,7 +4472,7 @@ Are you sure you want to clear your list of saved URLs?
type="alertmodal">
Are you sure you want to permanently delete the contents of your Lost And Found?
<usetemplate
- ignoretext="When emptying your inventory Lost And Found folder"
+ ignoretext="Confirm before I empty the inventory Lost And Found folder"
name="okcancelignore"
notext="No"
yestext="Yes"/>
@@ -4486,10 +4485,10 @@ Are you sure you want to permanently delete the contents of your Lost And Found?
The following SLurl has been copied to your clipboard:
[SLURL]
-Put it in a web page to give others easy access to this location or try it out yourself by pasting it into the address bar of your web browser.
+Link to this from a web page to give others easy access to this location, or try it out yourself by pasting it into the address bar of any web browser.
<form name="form">
<ignore name="ignore"
- text="When copying a SLurl to your clipboard"/>
+ text="SLurl is copied to my clipboard"/>
</form>
</notification>
@@ -4604,7 +4603,7 @@ Click &quot;Advanced Water&quot; to bring up an editor with more advanced settin
icon="alertmodal.tga"
name="HelpDayCycle"
type="alertmodal">
-The Day Cycle Editor gives you control over the sky during Second Life&apos;s day/night cycle. This is the cycle that is used by the Basic Environment Editor&apos;s Time of Day slider.
+The Day Cycle Editor gives you control over the sky during [SECOND_LIFE]&apos;s day/night cycle. This is the cycle that is used by the Basic Environment Editor&apos;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 &quot;animates&quot; as it interpolates between these keyframes.
@@ -4771,7 +4770,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&apos;s older classic clouds in addition to WindLight&apos;s clouds.
+Check this box to enable rendering of [SECOND_LIFE]&apos;s older classic clouds in addition to WindLight&apos;s clouds.
</notification>
<notification
@@ -4983,9 +4982,9 @@ Granting this request gives a script ongoing permission to take Linden dollars (
icon="alertmodal.tga"
name="AutoWearNewClothing"
type="alertmodal">
-Automatically wear the clothing you create?
+Would you like to automatically wear the clothing you are about to create?
<usetemplate
- ignoretext="Automatically wear new clothing"
+ ignoretext="Wear the clothing I create while editing My Appearance"
name="okcancelignore"
notext="No"
yestext="Yes"/>
@@ -4995,7 +4994,7 @@ Automatically wear the clothing you create?
icon="alertmodal.tga"
name="NotAgeVerified"
type="alertmodal">
-You must be age-verified to visit this area. Visit the Second Life website and verify your age?
+You must be age-verified to visit this area. Do you want to go to the [SECOND_LIFE] website and verify your age?
[_URL]
<url option="0" name="url">
@@ -5003,7 +5002,7 @@ You must be age-verified to visit this area. Visit the Second Life website and
https://secondlife.com/account/verification.php
</url>
<usetemplate
- ignoretext="Warn about lack of age verification"
+ ignoretext="I have not verified my age"
name="okcancelignore"
notext="No"
yestext="Yes"/>
@@ -5013,7 +5012,7 @@ You must be age-verified to visit this area. Visit the Second Life website and
icon="alertmodal.tga"
name="Cannot enter parcel: no payment info on file"
type="alertmodal">
-You must have payment information on file to visit this area. Visit the Second Life website and set this up?
+You must have payment information on file to visit this area. Do you want to go to the [SECOND_LIFE] website and set this up?
[_URL]
<url option="0" name="url">
@@ -5021,7 +5020,7 @@ You must have payment information on file to visit this area. Visit the Second
https://secondlife.com/account/
</url>
<usetemplate
- ignoretext="Warn about lack of payment info"
+ ignoretext="I lack payment information on file"
name="okcancelignore"
notext="No"
yestext="Yes"/>
@@ -5773,7 +5772,7 @@ How odd. The string [STRING_NAME] is missing from strings.xml
icon="notify.tga"
name="ObjectGiveItemUnknownUser"
type="notify">
- An object named [OBJECTFROMNAME] owned by (an unknown user) has given you a [OBJECTTYPE] named [OBJECTNAME].
+ An object named [OBJECTFROMNAME] owned by (an unknown Resident) has given you a [OBJECTTYPE] named [OBJECTNAME].
<form name="form">
<button
index="0"
@@ -6008,7 +6007,7 @@ How odd. The string [STRING_NAME] is missing from strings.xml
icon="notify.tga"
name="InvalidWearable"
type="notify">
- The item you are trying to wear uses a feature that your viewer can&apos;t read. Please upgrade your version of Second Life to wear this item.
+ The item you are trying to wear uses a feature that your Viewer can&apos;t read. Please upgrade your version of [APP_NAME] to wear this item.
</notification>
<notification
@@ -6146,7 +6145,7 @@ How odd. The string [STRING_NAME] is missing from strings.xml
icon="notify.tga"
name="FirstTeleport"
type="notify">
- You can only teleport to certain areas in this region. The arrow points to your specific destination. Click to dismiss it.
+ You can only teleport to certain areas in this region. The arrow points to your specific destination. Click the arrow to dismiss it.
</notification>
<notification
@@ -6185,7 +6184,7 @@ When you are done, press &apos;Save All&apos;.
type="notify">
This is a sandbox area, and is meant to help Residents learn how to build.
- Things you build here will be deleted after you leave, so don&apos;t forget to right-click and choose &apos;take&apos; to move your creation to your Inventory.
+ Things you build here will be deleted after you leave, so don&apos;t forget to right-click and choose &apos;Take&apos; to move your creation to your Inventory.
</notification>
<notification
@@ -6214,12 +6213,12 @@ When you are done, press &apos;Save All&apos;.
You are editing a Sculpted prim. Sculpties require a special texture to define their shape.
</notification>
- <notification
+ <!--notification
icon="notify.tga"
name="FirstMedia"
type="notify">
You have begun playing media. Media can set to play automatically in the preferences window under Audio / Video. Note that this can be a security risk for media sites you do not trust.
- </notification>
+ </notification-->
<notification
icon="notifytip.tga"
@@ -6305,7 +6304,7 @@ Click Accept to join the call or Decline to decline the invitation. Click Block
name="VoiceInviteAdHoc"
type="notify">
[NAME] has joined a voice chat call with a conference chat.
-Click Accept to join the call or Decline to decline the invitation. Click Block to block this user.
+Click Accept to join the call or Decline to decline the invitation. Click Block to block this caller.
<unique>
<context key="NAME"/>
</unique>
@@ -6330,7 +6329,7 @@ Click Accept to join the call or Decline to decline the invitation. Click Block
name="InviteAdHoc"
type="notify">
[NAME] is inviting you to a conference chat.
-Click Accept to join the chat or Decline to decline the invitation. Click Block to block this user.
+Click Accept to join the chat or Decline to decline the invitation. Click Block to block this caller.
<unique>
<context key="NAME"/>
</unique>
@@ -6516,9 +6515,9 @@ Click Accept to join the chat or Decline to decline the invitation. Click Block
</global>
<global name="UnsupportedGLRequirements">
-You do not appear to have the proper hardware requirements for Second Life. Second Life 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.
+You do not appear to have the proper hardware requirements for [APP_NAME]. [APP_NAME] 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 visit: http://www.secondlife.com/support
+If you continue to have problems, please visit the [SUPPORT_SITE].
</global>
<global name="UnsupportedCPUAmount">
diff --git a/indra/newview/skins/default/xui/en/panel_bottomtray.xml b/indra/newview/skins/default/xui/en/panel_bottomtray.xml
index 4f241664fb..b6d0678cfb 100644
--- a/indra/newview/skins/default/xui/en/panel_bottomtray.xml
+++ b/indra/newview/skins/default/xui/en/panel_bottomtray.xml
@@ -65,6 +65,7 @@
width="70"
top_delta="-10"
min_width="70"
+ name="movement_panel"
user_resize="false">
<button
follows="right"
@@ -100,6 +101,7 @@
layout="topleft"
min_height="28"
min_width="150"
+ name="cam_panel"
top_delta="-10"
width="150">
<split_button
@@ -113,6 +115,7 @@
image_unselected="camera_presets/camera_presets_arrow.png"
image_disabled_selected="camera_presets/camera_presets_arrow.png"
image_disabled="camera_presets/camera_presets_arrow.png"
+ name="camera_presets"
tool_tip="Camera Presets"
/>
<split_button.item
diff --git a/indra/newview/skins/default/xui/en/panel_classified.xml b/indra/newview/skins/default/xui/en/panel_classified.xml
index 3acd8fae4b..fde795260e 100644
--- a/indra/newview/skins/default/xui/en/panel_classified.xml
+++ b/indra/newview/skins/default/xui/en/panel_classified.xml
@@ -84,7 +84,7 @@
<button
follows="left|top"
height="20"
- label="Show on Map"
+ label="Map"
layout="topleft"
left_pad="5"
name="classified_map_btn"
diff --git a/indra/newview/skins/default/xui/en/panel_edit_profile.xml b/indra/newview/skins/default/xui/en/panel_edit_profile.xml
index b0f8052a9c..b336c86e95 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_profile.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_profile.xml
@@ -73,7 +73,7 @@
text_color="white"
top="0"
width="125">
- Second Life photo:
+ [SECOND_LIFE] photo:
</text>
<texture_picker
allow_no_texture="true"
@@ -149,7 +149,7 @@
text_color="white"
top_pad="10"
width="250">
- Second Life description:
+ [SECOND_LIFE] description:
</text>
<text_editor
type="string"
diff --git a/indra/newview/skins/default/xui/en/panel_group_general.xml b/indra/newview/skins/default/xui/en/panel_group_general.xml
index 9fa2765e97..a38d7eee36 100644
--- a/indra/newview/skins/default/xui/en/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_general.xml
@@ -40,41 +40,6 @@ Hover your mouse over the options for more help.
name="help_button"
top="8"
width="20" /> -->
- <line_editor
- follows="left|top"
- font="SansSerifSmall"
- prevalidate_callback="ascii"
- halign="left"
- height="16"
- label="Type your new group name here"
- layout="topleft"
- left="10"
- max_length="35"
- name="group_name_editor"
- top="10"
- visible="false"
- width="235" />
- <name_box
- follows="left|top"
- height="16"
- initial_value="(retrieving)"
- layout="topleft"
- left="10"
- name="founder_name"
- top="10"
- width="100" />
- <text
- type="string"
- follows="left|top"
- height="16"
- layout="topleft"
- left_pad="10"
- name="prepend_founded_by"
- top_delta="0"
- width="140">
- , Founder
- </text>
-
<text_editor
type="string"
follows="left|top"
diff --git a/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml
index e90a57a375..be68187eaf 100644
--- a/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml
@@ -40,6 +40,37 @@
follows="top|left|right"
mouse_opaque="true"
name="group_name">(Loading...)</text>
+ <texture_picker
+ follows="left|top"
+ height="113"
+ label=""
+ layout="topleft"
+ left_delta="-10"
+ name="insignia"
+ tool_tip="Click to choose a picture"
+ top_pad="5"
+ width="100" />
+ <text
+ type="string"
+ follows="left|top"
+ height="16"
+ length="1"
+ layout="topleft"
+ left_pad="10"
+ name="prepend_founded_by"
+ top_delta="0"
+ width="140">
+ Founded by:
+ </text>
+ <name_box
+ follows="left|top"
+ height="16"
+ initial_value="(retrieving)"
+ layout="topleft"
+ left_delta="0"
+ name="founder_name"
+ top_pad="10"
+ width="140" />
<button
top="632"
height="20"
@@ -69,20 +100,20 @@
left="5"
visible="false"
width="65" />
- <accordion layout="topleft" left="2" width="296" top="28" height="600" follows="all" name="group_accordion">
+ <accordion layout="topleft" left="2" width="296" top="135" height="600" follows="all" name="panel_me_profile">
<accordion_tab min_height="515" title="Group General" name="group_general_tab">
<panel class="panel_group_general" filename="panel_group_general.xml" name="group_general_tab_panel"/>
</accordion_tab>
- <accordion_tab min_height="380" title="Group Roles" name="group_roles_tab" can_resize="false">
+ <accordion_tab min_height="380" title="Group Roles" name="group_roles_tab" expanded="False" can_resize="false">
<panel class="panel_group_roles" filename="panel_group_roles.xml" name="group_roles_tab_panel"/>
</accordion_tab>
- <accordion_tab min_height="530" title="Group Notices" name="group_notices_tab" can_resize="false">
+ <accordion_tab min_height="530" title="Group Notices" name="group_notices_tab" expanded="False" can_resize="false">
<panel class="panel_group_notices" filename="panel_group_notices.xml" name="group_notices_tab_panel"/>
</accordion_tab>
- <accordion_tab min_height="270" title="Group Land Money" name="group_land_tab" can_resize="false">
+ <accordion_tab min_height="270" title="Group Land Money" name="group_land_tab" expanded="False" can_resize="false">
<panel class="panel_group_land_money" filename="panel_group_land_money.xml" name="group_land_tab_panel"/>
</accordion_tab>
</accordion>
-</panel>
+</panel> \ No newline at end of file
diff --git a/indra/newview/skins/default/xui/en/panel_group_land_money.xml b/indra/newview/skins/default/xui/en/panel_group_land_money.xml
index d24d11039a..4d373fbf3a 100644
--- a/indra/newview/skins/default/xui/en/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_land_money.xml
@@ -87,8 +87,8 @@
<button
follows="top"
height="20"
- label="Show on Map"
- label_selected="Show on Map"
+ label="Map"
+ label_selected="Map"
layout="topleft"
left="150"
name="map_button"
diff --git a/indra/newview/skins/default/xui/en/panel_pick_info.xml b/indra/newview/skins/default/xui/en/panel_pick_info.xml
index 33592d289f..b4d2bbb194 100644
--- a/indra/newview/skins/default/xui/en/panel_pick_info.xml
+++ b/indra/newview/skins/default/xui/en/panel_pick_info.xml
@@ -143,7 +143,7 @@
follows="bottom|left"
font="SansSerifSmallBold"
height="25"
- label="Show on Map"
+ label="Map"
layout="topleft"
left_pad="2"
name="show_on_map_btn"
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
index 0e87c621b9..060d84b2e4 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
@@ -10,8 +10,14 @@
name="advanced"
top="1"
width="517">
-
-
+ <panel.string
+ name="resolution_format">
+ [RES_X] x [RES_Y]
+ </panel.string>
+ <panel.string
+ name="aspect_ratio_text">
+ [NUM]:[DEN]
+ </panel.string>
<check_box
control_name="UseChatBubbles"
height="16"
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
index 0c01aec95d..ecfb0048a3 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
@@ -9,14 +9,6 @@
name="Display panel"
top="1"
width="517">
- <panel.string
- name="resolution_format">
- [RES_X] x [RES_Y]
- </panel.string>
- <panel.string
- name="aspect_ratio_text">
- [NUM]:[DEN]
- </panel.string>
<text
type="string"
length="1"
@@ -39,63 +31,63 @@
top_pad="4"
width="175">
</check_box>
- <combo_box
+ <combo_box
visiblity_control="WindowFullScreen"
- allow_text_entry="false"
- enabled="true"
- layout="topleft"
- height="18"
- left_delta="220"
- max_chars="20"
- mouse_opaque="true"
- name="windowsize combo"
- top_delta="-1"
- width="150">
- <combo_box.item
- type="string"
- length="1"
- enabled="true"
- name="640x480"
- value="640 x 480">
- 640x480
- </combo_box.item>
- <combo_box.item
- type="string"
- length="1"
- enabled="true"
- name="800x600"
- value="800 x 600">
- 800x600
- </combo_box.item>
- <combo_box.item
- type="string"
- length="1"
- enabled="true"
- name="720x480"
- value="720 x 480">
- 720x480 (NTSC)
- </combo_box.item>
- <combo_box.item
- type="string"
- length="1"
- enabled="true"
- name="768x576"
- value="768 x 576">
- 768x576 (PAL)
- </combo_box.item>
- <combo_box.item
- type="string"
- length="1"
- enabled="true"
- name="1024x768"
- value="1024 x 768">
- 1024x768
- </combo_box.item>
- <combo_box.commit_callback
- function="setControlFalse"
- parameter="FullScreenAutoDetectAspectRatio" />
+ allow_text_entry="false"
+ enabled="true"
+ layout="topleft"
+ height="18"
+ left_delta="220"
+ max_chars="20"
+ mouse_opaque="true"
+ name="windowsize combo"
+ top_delta="-1"
+ width="150">
+ <combo_box.item
+ type="string"
+ length="1"
+ enabled="true"
+ name="640x480"
+ value="640 x 480">
+ 640x480
+ </combo_box.item>
+ <combo_box.item
+ type="string"
+ length="1"
+ enabled="true"
+ name="800x600"
+ value="800 x 600">
+ 800x600
+ </combo_box.item>
+ <combo_box.item
+ type="string"
+ length="1"
+ enabled="true"
+ name="720x480"
+ value="720 x 480">
+ 720x480 (NTSC)
+ </combo_box.item>
+ <combo_box.item
+ type="string"
+ length="1"
+ enabled="true"
+ name="768x576"
+ value="768 x 576">
+ 768x576 (PAL)
+ </combo_box.item>
+ <combo_box.item
+ type="string"
+ length="1"
+ enabled="true"
+ name="1024x768"
+ value="1024 x 768">
+ 1024x768
+ </combo_box.item>
+ <combo_box.commit_callback
+ function="Pref.setControlFalse"
+ parameter="FullScreenAutoDetectAspectRatio" />
</combo_box>
- <text
+ <text
type="string"
length="1"
follows="left|top"
@@ -134,7 +126,6 @@
name="ui_scale_slider"
top_delta="0"
width="58" />
-
<text
type="string"
length="1"
diff --git a/indra/newview/skins/default/xui/en/panel_profile.xml b/indra/newview/skins/default/xui/en/panel_profile.xml
index 65db3cc7a1..5d0af26af5 100644
--- a/indra/newview/skins/default/xui/en/panel_profile.xml
+++ b/indra/newview/skins/default/xui/en/panel_profile.xml
@@ -64,7 +64,6 @@
reserve_scroll_corner="true"
opaque="true"
width="255">
-
<panel
name="scroll_content_panel"
follows="left|top|right"
@@ -73,7 +72,7 @@
left="0"
width="240"
height="520">
-
+
<panel
follows="left|top"
height="125"
@@ -102,7 +101,7 @@
name="title_sl_descr_text"
text_color="white"
top_delta="0"
- value="Second Life:"
+ value="[SECOND_LIFE]:"
width="140" />
<text
follows="left|top|right"
@@ -208,6 +207,60 @@
value="Resident. No payment info on file."
width="160"
word_wrap="true" />
+ <spinner
+ control_name="AFKTimeout"
+ decimal_digits="0"
+ follows="left|top"
+ height="16"
+ increment="1"
+ initial_value="300"
+ label="Away Timeout:"
+ label_width="141"
+ layout="topleft"
+ left="10"
+ max_val="600"
+ min_val="30"
+ name="afk_timeout_spinner"
+ top_pad="10"
+ width="202" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="220"
+ name="seconds_textbox"
+ top_delta="0"
+ width="128">
+ seconds
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="12"
+ mouse_opaque="false"
+ name="text_box3"
+ top_pad="10"
+ width="128">
+ Busy Mode Response:
+ </text>
+ <text_editor
+ control_name="BusyModeResponse2"
+ commit_on_focus_lost = "true"
+ follows="left|top"
+ height="70"
+ layout="topleft"
+ left_pad="8"
+ name="busy_response"
+ top_delta="0"
+ width="330"
+ word_wrap="true">
+ log_in_to_change
+ </text_editor>
<text
follows="left|top"
font="SansSerifBold"
@@ -260,7 +313,7 @@
left="10"
name="online_me_status_text"
text_color="white"
- top_pad="20"
+ top_pad="20"
width="100">
Status:
</text>
@@ -308,10 +361,10 @@
word_wrap="true">
Lorem ipsum dolor sit amet, consectetur adlkjpiscing elit moose moose. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet. adipiscing elit. Aenean rigviverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet sorbet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum.
</text>
-
-
+
+
</panel>
-
+
</scroll_container>
<panel
follows="bottom|left"
diff --git a/indra/newview/skins/default/xui/en/panel_region_covenant.xml b/indra/newview/skins/default/xui/en/panel_region_covenant.xml
index 8265ab3227..8445b933bf 100644
--- a/indra/newview/skins/default/xui/en/panel_region_covenant.xml
+++ b/indra/newview/skins/default/xui/en/panel_region_covenant.xml
@@ -140,6 +140,7 @@
max_length="65535"
name="covenant_editor"
top_delta="30"
+ handle_edit_keys_directly="true"
width="193"
word_wrap="true">
There is no Covenant provided for this Estate.
diff --git a/indra/newview/skins/default/xui/en/panel_region_estate.xml b/indra/newview/skins/default/xui/en/panel_region_estate.xml
index 1dafd50cdb..ee52184119 100644
--- a/indra/newview/skins/default/xui/en/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/en/panel_region_estate.xml
@@ -2,517 +2,529 @@
<panel
border="true"
follows="top|left"
- height="950"
+ height="512"
+ name="EstateWrapper"
label="Estate"
layout="topleft"
- left="0"
- name="Estate"
- top="320"
width="280">
- <panel.string
- name="email_unsupported">
- Feature unsupported
- </panel.string>
- <text
- type="string"
- length="1"
- follows="left|top"
- height="32"
+ <scroll_container
+ follows="top|left|right|bottom"
+ height="508"
+ layout="topleft"
+ width="280">
+ <panel
+ follows="top|left"
+ height="950"
+ label="Estate"
layout="topleft"
- left="10"
- name="estate_help_text"
- top="14"
- width="300">
+ name="Estate"
+ width="258">
+ <panel.string
+ name="email_unsupported">
+ Feature unsupported
+ </panel.string>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="32"
+ layout="topleft"
+ left="10"
+ name="estate_help_text"
+ top="14"
+ width="300">
Changes to settings on this tab will affect all
-regions in the estate.
- </text>
- <text
- type="string"
- length="1"
- follows="left|top"
- font="SansSerif"
- height="20"
- layout="topleft"
- left_delta="0"
- name="estate_text"
- top_pad="2"
- width="80">
+ regions in the estate.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="estate_text"
+ top_pad="2"
+ width="80">
Estate:
- </text>
- <text
- type="string"
- length="1"
- follows="left|top"
- font="SansSerif"
- height="20"
- layout="topleft"
- left_delta="0"
- name="estate_name"
- top_delta="16"
- width="150">
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="estate_name"
+ top_delta="16"
+ width="150">
(unknown)
- </text>
- <text
- type="string"
- length="1"
- follows="left|top"
- font="SansSerif"
- height="20"
- layout="topleft"
- left_delta="0"
- name="owner_text"
- top_pad="2"
- width="80">
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="owner_text"
+ top_pad="2"
+ width="80">
Owner:
- </text>
- <text
- type="string"
- length="1"
- follows="left|top"
- font="SansSerif"
- height="20"
- layout="topleft"
- left_delta="0"
- name="estate_owner"
- top_delta="16"
- width="150">
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="estate_owner"
+ top_delta="16"
+ width="150">
(unknown)
- </text>
- <view_border
- bevel_style="in"
- follows="top|left"
- height="290"
- layout="topleft"
- left_delta="-4"
- top_pad="5"
- width="250" />
- <check_box
- height="20"
- label="Use Global Time"
- layout="topleft"
- left="12"
- name="use_global_time_check"
- top="132"
- width="200" />
- <button
- follows="left|top"
- font="SansSerifSmall"
- height="18"
- label="?"
- layout="topleft"
- left_pad="20"
- name="use_global_time_help"
- top_delta="2"
- width="18" />
- <check_box
- height="20"
- label="Fixed Sun"
- layout="topleft"
- left="12"
- name="fixed_sun_check"
- top="152"
- width="100" />
- <button
- follows="left|top"
- font="SansSerifSmall"
- height="18"
- label="?"
- layout="topleft"
- left_pad="120"
- name="fixed_sun_help"
- top_delta="2"
- width="18" />
- <icon
- height="20"
- image_name="icon_day_cycle.tga"
- layout="topleft"
- left="47"
- name="daycycle"
- top="177"
- width="165" />
- <slider
- follows="left|top"
- height="20"
- increment="0.001"
- label="Phase"
- layout="topleft"
- left="12"
- max_val="30"
- min_val="6"
- name="sun_hour_slider"
- show_text="false"
- top="202"
- width="200" />
- <check_box
- height="20"
- label="Allow Public Access"
- layout="topleft"
- left_delta="0"
- name="externally_visible_check"
- top_pad="6"
- width="200" />
- <button
- follows="left|top"
- font="SansSerifSmall"
- height="18"
- label="?"
- layout="topleft"
- left_pad="20"
- name="externally_visible_help"
- top_delta="2"
- width="18" />
- <text
- type="string"
- length="1"
- follows="top|left"
- height="16"
- layout="topleft"
- left="32"
- name="Only Allow"
- top="250"
- width="278">
+ </text>
+ <view_border
+ bevel_style="in"
+ follows="top|left"
+ height="290"
+ layout="topleft"
+ left_delta="-4"
+ top_pad="5"
+ width="250" />
+ <check_box
+ height="20"
+ label="Use Global Time"
+ layout="topleft"
+ left="12"
+ name="use_global_time_check"
+ top="132"
+ width="200" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="20"
+ name="use_global_time_help"
+ top_delta="2"
+ width="18" />
+ <check_box
+ height="20"
+ label="Fixed Sun"
+ layout="topleft"
+ left="12"
+ name="fixed_sun_check"
+ top="152"
+ width="100" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="120"
+ name="fixed_sun_help"
+ top_delta="2"
+ width="18" />
+ <icon
+ height="20"
+ image_name="icon_day_cycle.tga"
+ layout="topleft"
+ left="47"
+ name="daycycle"
+ top="177"
+ width="165" />
+ <slider
+ follows="left|top"
+ height="20"
+ increment="0.001"
+ label="Phase"
+ layout="topleft"
+ left="12"
+ max_val="30"
+ min_val="6"
+ name="sun_hour_slider"
+ show_text="false"
+ top="202"
+ width="200" />
+ <check_box
+ height="20"
+ label="Allow Public Access"
+ layout="topleft"
+ left_delta="0"
+ name="externally_visible_check"
+ top_pad="6"
+ width="200" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="20"
+ name="externally_visible_help"
+ top_delta="2"
+ width="18" />
+ <text
+ type="string"
+ length="1"
+ follows="top|left"
+ height="16"
+ layout="topleft"
+ left="32"
+ name="Only Allow"
+ top="250"
+ width="278">
Restrict Access To:
- </text>
- <check_box
- follows="top|left"
- height="16"
- label="Residents with payment info on file"
- layout="topleft"
- left_delta="0"
- name="limit_payment"
- tool_tip="Ban unidentified residents."
- top_pad="2"
- width="278" />
- <check_box
- follows="top|left"
- height="16"
- label="Age-verified adults"
- layout="topleft"
- left_delta="0"
- name="limit_age_verified"
- tool_tip="Ban residents who have not verified their age. See support.secondlife.com for more information."
- top_pad="2"
- width="278" />
- <check_box
- height="20"
- label="Allow Voice Chat"
- layout="topleft"
- left="12"
- name="voice_chat_check"
- top="304"
- width="200" />
- <button
- follows="left|top"
- font="SansSerifSmall"
- height="18"
- label="?"
- layout="topleft"
- left_pad="20"
- name="voice_chat_help"
- top_delta="2"
- width="18" />
- <check_box
- height="20"
- label="Allow Direct Teleport"
- layout="topleft"
- left="12"
- name="allow_direct_teleport"
- top_pad="4"
- width="80" />
- <button
- follows="left|top"
- font="SansSerifSmall"
- height="18"
- label="?"
- layout="topleft"
- left_pad="140"
- name="allow_direct_teleport_help"
- top_delta="2"
- width="18" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="20"
- layout="topleft"
- left="10"
- name="abuse_email_text"
- top_pad="5"
- width="180">
+ </text>
+ <check_box
+ follows="top|left"
+ height="16"
+ label="Residents with payment info on file"
+ layout="topleft"
+ left_delta="0"
+ name="limit_payment"
+ tool_tip="Ban unidentified residents."
+ top_pad="2"
+ width="278" />
+ <check_box
+ follows="top|left"
+ height="16"
+ label="Age-verified adults"
+ layout="topleft"
+ left_delta="0"
+ name="limit_age_verified"
+ tool_tip="Ban residents who have not verified their age. See the [SUPPORT_SITE] for more information."
+ top_pad="2"
+ width="278" />
+ <check_box
+ height="20"
+ label="Allow Voice Chat"
+ layout="topleft"
+ left="12"
+ name="voice_chat_check"
+ top="304"
+ width="200" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="20"
+ name="voice_chat_help"
+ top_delta="2"
+ width="18" />
+ <check_box
+ height="20"
+ label="Allow Direct Teleport"
+ layout="topleft"
+ left="12"
+ name="allow_direct_teleport"
+ top_pad="4"
+ width="80" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="140"
+ name="allow_direct_teleport_help"
+ top_delta="2"
+ width="18" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="abuse_email_text"
+ top_pad="5"
+ width="180">
Abuse email address:
- </text>
- <line_editor
- follows="top|left"
- height="19"
- layout="topleft"
- left="15"
- name="abuse_email_address"
- top_pad="5"
- width="205" />
- <button
- follows="left|top"
- font="SansSerifSmall"
- height="18"
- label="?"
- layout="topleft"
- left_pad="12"
- name="abuse_email_address_help"
- top_dekta="0"
- width="18" />
- <button
- enabled="false"
- follows="left|top"
- height="20"
- label="Apply"
- layout="topleft"
- name="apply_btn"
- right="250"
- top_pad="4"
- width="90" />
- <button
- follows="left|top"
- height="20"
- label="Send Message To Estate..."
- layout="topleft"
- left="8"
- name="message_estate_btn"
- top_pad="5"
- width="250" />
- <button
- follows="left|top"
- height="20"
- label="Kick User from Estate..."
- layout="topleft"
- left="8"
- name="kick_user_from_estate_btn"
- top_pad="5"
- width="250" />
- <text
- type="string"
- length="1"
- top="490"
- follows="left|top"
- height="20"
- layout="topleft"
- name="estate_manager_label"
- left="8"
- width="200">
+ </text>
+ <line_editor
+ follows="top|left"
+ height="19"
+ layout="topleft"
+ left="15"
+ name="abuse_email_address"
+ top_pad="5"
+ width="205" />
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_pad="12"
+ name="abuse_email_address_help"
+ top_delta="0"
+ width="18" />
+ <button
+ enabled="false"
+ follows="left|top"
+ height="20"
+ label="Apply"
+ layout="topleft"
+ name="apply_btn"
+ right="250"
+ top_pad="4"
+ width="90" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Send Message To Estate..."
+ layout="topleft"
+ left="8"
+ name="message_estate_btn"
+ top_pad="5"
+ width="250" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Kick User from Estate..."
+ layout="topleft"
+ left="8"
+ name="kick_user_from_estate_btn"
+ top_pad="5"
+ width="250" />
+ <text
+ type="string"
+ length="1"
+ top="490"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ name="estate_manager_label"
+ left="8"
+ width="200">
Estate Managers:
- </text>
- <button
- follows="left|top"
- font="SansSerifSmall"
- height="18"
- label="?"
- layout="topleft"
- left_delta="232"
- name="estate_manager_help"
- top_delta="-1"
- width="18" />
- <view_border
- bevel_style="none"
- follows="top|left"
- height="60"
- layout="topleft"
- left="8"
- top_pad="5"
- width="250" />
- <name_list
- follows="left|top"
- height="60"
- layout="topleft"
- left_delta="0"
- multi_select="true"
- name="estate_manager_name_list"
- top_delta="0"
- width="250" />
- <button
- follows="left|top"
- height="20"
- label="Add..."
- layout="topleft"
- left="8"
- name="add_estate_manager_btn"
- top_pad="5"
- width="90" />
- <button
- follows="left|top"
- height="20"
- label="Remove..."
- layout="topleft"
- name="remove_estate_manager_btn"
- left_pad="70"
- top_delta="0"
- width="90" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="20"
- layout="topleft"
- left="8"
- name="allow_resident_label"
- top_pad="5"
- width="200">
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="232"
+ name="estate_manager_help"
+ top_delta="-1"
+ width="18" />
+ <view_border
+ bevel_style="none"
+ follows="top|left"
+ height="60"
+ layout="topleft"
+ left="8"
+ top_pad="5"
+ width="250" />
+ <name_list
+ follows="left|top"
+ height="60"
+ layout="topleft"
+ left_delta="0"
+ multi_select="true"
+ name="estate_manager_name_list"
+ top_delta="0"
+ width="250" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Add..."
+ layout="topleft"
+ left="8"
+ name="add_estate_manager_btn"
+ top_pad="5"
+ width="90" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Remove..."
+ layout="topleft"
+ name="remove_estate_manager_btn"
+ left_pad="70"
+ top_delta="0"
+ width="90" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="8"
+ name="allow_resident_label"
+ top_pad="5"
+ width="200">
Allowed Residents:
- </text>
- <button
- follows="left|top"
- font="SansSerifSmall"
- height="18"
- label="?"
- layout="topleft"
- left_delta="232"
- name="allow_resident_help"
- top_delta="-1"
- width="18" />
- <view_border
- bevel_style="none"
- follows="top|left"
- height="60"
- layout="topleft"
- left="8"
- top_pad="5"
- width="250" />
- <name_list
- follows="left|top"
- height="60"
- layout="topleft"
- left_delta="0"
- multi_select="true"
- name="allowed_avatar_name_list"
- top_delta="0"
- width="250" />
- <button
- follows="left|top"
- height="20"
- label="Add..."
- layout="topleft"
- left="8"
- name="add_allowed_avatar_btn"
- top_pad="5"
- width="90" />
- <button
- follows="left|top"
- height="20"
- label="Remove..."
- layout="topleft"
- name="remove_allowed_avatar_btn"
- left_pad="70"
- top_delta="0"
- width="90" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="20"
- layout="topleft"
- left="8"
- name="allow_group_label"
- top_pad="5"
- width="200">
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="232"
+ name="allow_resident_help"
+ top_delta="-1"
+ width="18" />
+ <view_border
+ bevel_style="none"
+ follows="top|left"
+ height="60"
+ layout="topleft"
+ left="8"
+ top_pad="5"
+ width="250" />
+ <name_list
+ follows="left|top"
+ height="60"
+ layout="topleft"
+ left_delta="0"
+ multi_select="true"
+ name="allowed_avatar_name_list"
+ top_delta="0"
+ width="250" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Add..."
+ layout="topleft"
+ left="8"
+ name="add_allowed_avatar_btn"
+ top_pad="5"
+ width="90" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Remove..."
+ layout="topleft"
+ name="remove_allowed_avatar_btn"
+ left_pad="70"
+ top_delta="0"
+ width="90" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="8"
+ name="allow_group_label"
+ top_pad="5"
+ width="200">
Allowed Groups:
- </text>
- <button
- follows="left|top"
- font="SansSerifSmall"
- height="18"
- label="?"
- layout="topleft"
- left_delta="232"
- name="allow_group_help"
- top_delta="-1"
- width="18" />
- <view_border
- bevel_style="none"
- follows="top|left"
- height="60"
- layout="topleft"
- left="8"
- top_pad="5"
- width="250" />
- <name_list
- follows="left|top"
- height="60"
- layout="topleft"
- left_delta="0"
- multi_select="true"
- name="allowed_group_name_list"
- top_delta="0"
- width="250" />
- <button
- follows="left|top"
- height="20"
- label="Add..."
- layout="topleft"
- left="8"
- name="add_allowed_group_btn"
- top_pad="5"
- width="90" />
- <button
- follows="left|top"
- height="20"
- label="Remove..."
- layout="topleft"
- name="remove_allowed_group_btn"
- left_pad="70"
- top_delta="0"
- width="90" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="20"
- layout="topleft"
- left="8"
- name="ban_resident_label"
- top_pad="5"
- width="200">
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="232"
+ name="allow_group_help"
+ top_delta="-1"
+ width="18" />
+ <view_border
+ bevel_style="none"
+ follows="top|left"
+ height="60"
+ layout="topleft"
+ left="8"
+ top_pad="5"
+ width="250" />
+ <name_list
+ follows="left|top"
+ height="60"
+ layout="topleft"
+ left_delta="0"
+ multi_select="true"
+ name="allowed_group_name_list"
+ top_delta="0"
+ width="250" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Add..."
+ layout="topleft"
+ left="8"
+ name="add_allowed_group_btn"
+ top_pad="5"
+ width="90" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Remove..."
+ layout="topleft"
+ name="remove_allowed_group_btn"
+ left_pad="70"
+ top_delta="0"
+ width="90" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="8"
+ name="ban_resident_label"
+ top_pad="5"
+ width="200">
Banned Residents:
- </text>
- <button
- follows="left|top"
- font="SansSerifSmall"
- height="18"
- label="?"
- layout="topleft"
- left_delta="232"
- name="ban_resident_help"
- top_delta="-1"
- width="18" />
- <view_border
- bevel_style="none"
- follows="top|left"
- height="60"
- layout="topleft"
- left="8"
- top_pad="5"
- width="250" />
- <name_list
- follows="left|top"
- height="60"
- layout="topleft"
- left_delta="0"
- multi_select="true"
- name="banned_avatar_name_list"
- top_delta="0"
- width="250" />
- <button
- follows="left|top"
- height="20"
- label="Add..."
- layout="topleft"
- left="8"
- name="add_banned_avatar_btn"
- top_pad="5"
- width="90" />
- <button
- follows="left|top"
- height="20"
- label="Remove..."
- layout="topleft"
- name="remove_banned_avatar_btn"
- left_pad="70"
- top_delta="0"
- width="90" />
+ </text>
+ <button
+ follows="left|top"
+ font="SansSerifSmall"
+ height="18"
+ label="?"
+ layout="topleft"
+ left_delta="232"
+ name="ban_resident_help"
+ top_delta="-1"
+ width="18" />
+ <view_border
+ bevel_style="none"
+ follows="top|left"
+ height="60"
+ layout="topleft"
+ left="8"
+ top_pad="5"
+ width="250" />
+ <name_list
+ follows="left|top"
+ height="60"
+ layout="topleft"
+ left_delta="0"
+ multi_select="true"
+ name="banned_avatar_name_list"
+ top_delta="0"
+ width="250" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Add..."
+ layout="topleft"
+ left="8"
+ name="add_banned_avatar_btn"
+ top_pad="5"
+ width="90" />
+ <button
+ follows="left|top"
+ height="20"
+ label="Remove..."
+ layout="topleft"
+ name="remove_banned_avatar_btn"
+ left_pad="70"
+ top_delta="0"
+ width="90" />
+ </panel>
+ </scroll_container>
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_region_texture.xml b/indra/newview/skins/default/xui/en/panel_region_texture.xml
index bf63bb0cb6..8e8fc9ef7f 100644
--- a/indra/newview/skins/default/xui/en/panel_region_texture.xml
+++ b/indra/newview/skins/default/xui/en/panel_region_texture.xml
@@ -2,333 +2,344 @@
<panel
border="true"
follows="top|left"
- height="575"
+ height="512"
label="Ground Textures"
layout="topleft"
- left="0"
- name="Textures"
- top="320"
width="280">
- <text
- type="string"
- length="1"
- follows="left|top"
- font="SansSerif"
- height="20"
+ <scroll_container
+ follows="top|left|right|bottom"
+ height="508"
+ layout="topleft"
+ width="280">
+ <panel
+ follows="top|left"
+ height="575"
+ label="Ground Textures"
layout="topleft"
- left="10"
- name="region_text_lbl"
- top="10"
- width="100">
+ name="Textures"
+ width="258">
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="region_text_lbl"
+ top="10"
+ width="100">
Region:
- </text>
- <text
- type="string"
- length="1"
- follows="left|top"
- font="SansSerif"
- height="20"
- layout="topleft"
- left_delta="50"
- name="region_text"
- top_delta="0"
- width="200">
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ font="SansSerif"
+ height="20"
+ layout="topleft"
+ left_delta="50"
+ name="region_text"
+ top_delta="0"
+ width="200">
unknown
- </text>
- <text
- type="string"
- length="1"
- follows="left|top"
- height="20"
- layout="topleft"
- left="10"
- name="detail_texture_text"
- top="36"
- width="300">
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="detail_texture_text"
+ top="36"
+ width="300">
Terrain Textures
-(requires 512x512, 24 bit .tga files)
- </text>
- <texture_picker
- follows="left|top"
- height="100"
- layout="topleft"
- left_delta="0"
- name="texture_detail_0"
- top_delta="30"
- width="100" />
- <texture_picker
- follows="left|top"
- height="100"
- layout="topleft"
- left_pad="10"
- name="texture_detail_1"
- top_delta="0"
- width="100" />
- <texture_picker
- follows="left|top"
- height="100"
- layout="topleft"
- left="10"
- name="texture_detail_2"
- top_delta="105"
- width="100" />
- <texture_picker
- follows="left|top"
- height="100"
- layout="topleft"
- left_pad="10"
- name="texture_detail_3"
- top_delta="0"
- width="100" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="20"
- layout="topleft"
- left="10"
- name="height_text_lbl"
- top="157"
- width="65">
+ (requires 512x512, 24 bit .tga files)
+ </text>
+ <texture_picker
+ follows="left|top"
+ height="100"
+ layout="topleft"
+ left_delta="0"
+ name="texture_detail_0"
+ top_delta="30"
+ width="100" />
+ <texture_picker
+ follows="left|top"
+ height="100"
+ layout="topleft"
+ left_pad="10"
+ name="texture_detail_1"
+ top_delta="0"
+ width="100" />
+ <texture_picker
+ follows="left|top"
+ height="100"
+ layout="topleft"
+ left="10"
+ name="texture_detail_2"
+ top_delta="105"
+ width="100" />
+ <texture_picker
+ follows="left|top"
+ height="100"
+ layout="topleft"
+ left_pad="10"
+ name="texture_detail_3"
+ top_delta="0"
+ width="100" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="height_text_lbl"
+ top="157"
+ width="65">
1 (Low)
- </text>
- <text
- type="string"
- length="1"
- follows="left|top"
- height="20"
- layout="topleft"
- left_pad="45"
- name="height_text_lbl2"
- top_delta="0"
- width="100">
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_pad="45"
+ name="height_text_lbl2"
+ top_delta="0"
+ width="100">
2
- </text>
- <text
- type="string"
- length="1"
- follows="left|top"
- height="20"
- layout="topleft"
- left="10"
- name="height_text_lbl3"
- top_delta="105"
- width="100">
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="height_text_lbl3"
+ top_delta="105"
+ width="100">
3
- </text>
- <text
- type="string"
- length="1"
- follows="left|top"
- height="20"
- layout="topleft"
- left_pad="10"
- name="height_text_lbl4"
- top_delta="0"
- width="100">
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_pad="10"
+ name="height_text_lbl4"
+ top_delta="0"
+ width="100">
4 (High)
- </text>
- <text
- type="string"
- length="1"
- follows="left|top"
- height="20"
- layout="topleft"
- left="10"
- name="height_text_lbl5"
- top_delta="25"
- width="300">
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="height_text_lbl5"
+ top_delta="25"
+ width="300">
Texture Elevation Ranges
- </text>
- <text
- type="string"
- length="1"
- follows="left|top"
- height="20"
- layout="topleft"
- left="51"
- name="height_text_lbl6"
- top_delta="20"
- width="100">
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="51"
+ name="height_text_lbl6"
+ top_delta="20"
+ width="100">
Southwest
- </text>
- <text
- type="string"
- length="1"
- follows="left|top"
- height="20"
- layout="topleft"
- left_pad="10"
- name="height_text_lbl7"
- top_delta="0"
- width="100">
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_pad="10"
+ name="height_text_lbl7"
+ top_delta="0"
+ width="100">
Northwest
- </text>
- <spinner
- follows="left|top"
- height="20"
- increment="0.5"
- label="Low"
- label_width="37"
- layout="topleft"
- left="10"
- max_val="500"
- min_val="-500"
- name="height_start_spin_0"
- top_delta="20"
- width="100" />
- <spinner
- follows="left|top"
- height="20"
- increment="0.5"
- label="Low"
- label_width="37"
- layout="topleft"
- left_pad="10"
- max_val="500"
- min_val="-500"
- name="height_start_spin_1"
- top_delta="0"
- width="100" />
- <spinner
- follows="left|top"
- height="20"
- increment="0.5"
- label="High"
- label_width="37"
- layout="topleft"
- left="10"
- max_val="500"
- min_val="-500"
- name="height_range_spin_0"
- top_delta="20"
- width="100" />
- <spinner
- follows="left|top"
- height="20"
- increment="0.5"
- label="High"
- label_width="37"
- layout="topleft"
- left_pad="10"
- max_val="500"
- min_val="-500"
- name="height_range_spin_1"
- top_delta="0"
- width="100" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="20"
- layout="topleft"
- left="51"
- name="height_text_lbl8"
- top_delta="30"
- width="100">
+ </text>
+ <spinner
+ follows="left|top"
+ height="20"
+ increment="0.5"
+ label="Low"
+ label_width="37"
+ layout="topleft"
+ left="10"
+ max_val="500"
+ min_val="-500"
+ name="height_start_spin_0"
+ top_delta="20"
+ width="100" />
+ <spinner
+ follows="left|top"
+ height="20"
+ increment="0.5"
+ label="Low"
+ label_width="37"
+ layout="topleft"
+ left_pad="10"
+ max_val="500"
+ min_val="-500"
+ name="height_start_spin_1"
+ top_delta="0"
+ width="100" />
+ <spinner
+ follows="left|top"
+ height="20"
+ increment="0.5"
+ label="High"
+ label_width="37"
+ layout="topleft"
+ left="10"
+ max_val="500"
+ min_val="-500"
+ name="height_range_spin_0"
+ top_delta="20"
+ width="100" />
+ <spinner
+ follows="left|top"
+ height="20"
+ increment="0.5"
+ label="High"
+ label_width="37"
+ layout="topleft"
+ left_pad="10"
+ max_val="500"
+ min_val="-500"
+ name="height_range_spin_1"
+ top_delta="0"
+ width="100" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="51"
+ name="height_text_lbl8"
+ top_delta="30"
+ width="100">
Southeast
- </text>
- <text
- type="string"
- length="1"
- follows="left|top"
- height="20"
- layout="topleft"
- left_pad="10"
- name="height_text_lbl9"
- top_delta="0"
- width="100">
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_pad="10"
+ name="height_text_lbl9"
+ top_delta="0"
+ width="100">
Northeast
- </text>
- <spinner
- follows="left|top"
- height="20"
- increment="0.5"
- label="Low"
- label_width="37"
- layout="topleft"
- left="10"
- max_val="500"
- min_val="-500"
- name="height_start_spin_2"
- top_delta="20"
- width="100" />
- <spinner
- follows="left|top"
- height="20"
- increment="0.5"
- label="Low"
- label_width="37"
- layout="topleft"
- left_pad="10"
- max_val="500"
- min_val="-500"
- name="height_start_spin_3"
- top_delta="0"
- width="100" />
- <spinner
- follows="left|top"
- height="20"
- increment="0.5"
- label="High"
- label_width="37"
- layout="topleft"
- left="10"
- max_val="500"
- min_val="-500"
- name="height_range_spin_2"
- top_delta="20"
- width="100" />
- <spinner
- follows="left|top"
- height="20"
- increment="0.5"
- label="High"
- label_width="37"
- layout="topleft"
- left_pad="10"
- max_val="500"
- min_val="-500"
- name="height_range_spin_3"
- top_delta="0"
- width="100" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="20"
- layout="topleft"
- left="10"
- name="height_text_lbl10"
- top_delta="30"
- width="270">
+ </text>
+ <spinner
+ follows="left|top"
+ height="20"
+ increment="0.5"
+ label="Low"
+ label_width="37"
+ layout="topleft"
+ left="10"
+ max_val="500"
+ min_val="-500"
+ name="height_start_spin_2"
+ top_delta="20"
+ width="100" />
+ <spinner
+ follows="left|top"
+ height="20"
+ increment="0.5"
+ label="Low"
+ label_width="37"
+ layout="topleft"
+ left_pad="10"
+ max_val="500"
+ min_val="-500"
+ name="height_start_spin_3"
+ top_delta="0"
+ width="100" />
+ <spinner
+ follows="left|top"
+ height="20"
+ increment="0.5"
+ label="High"
+ label_width="37"
+ layout="topleft"
+ left="10"
+ max_val="500"
+ min_val="-500"
+ name="height_range_spin_2"
+ top_delta="20"
+ width="100" />
+ <spinner
+ follows="left|top"
+ height="20"
+ increment="0.5"
+ label="High"
+ label_width="37"
+ layout="topleft"
+ left_pad="10"
+ max_val="500"
+ min_val="-500"
+ name="height_range_spin_3"
+ top_delta="0"
+ width="100" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left="10"
+ name="height_text_lbl10"
+ top_delta="30"
+ width="270">
These values represent the blend range
-for the textures above.
- </text>
- <text
- type="string"
- length="1"
- follows="left|top"
- height="20"
- layout="topleft"
- left_delta="0"
- name="height_text_lbl11"
- top_delta="32"
- width="270">
- Measured in meters, the LOW value
-is the MAXIMUM height of Texture #1,
-and the HIGH value is the MINIMUM
-height of Texture #4.
- </text>
-
- <button
- enabled="false"
- follows="left|bottom"
- height="20"
- label="Apply"
- layout="topleft"
- left="120"
- name="apply_btn"
- top_delta="60"
- width="100" />
+ for the textures above.
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="20"
+ layout="topleft"
+ left_delta="0"
+ name="height_text_lbl11"
+ top_delta="32"
+ width="270">
+ Measured in meters, the LOW value
+ is the MAXIMUM height of Texture #1,
+ and the HIGH value is the MINIMUM
+ height of Texture #4.
+ </text>
+
+ <button
+ enabled="false"
+ follows="left|bottom"
+ height="20"
+ label="Apply"
+ layout="topleft"
+ left="120"
+ name="apply_btn"
+ top_delta="60"
+ width="100" />
+ </panel>
+ </scroll_container>
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_script_ed.xml b/indra/newview/skins/default/xui/en/panel_script_ed.xml
index 9fd075f79b..5738879c5a 100644
--- a/indra/newview/skins/default/xui/en/panel_script_ed.xml
+++ b/indra/newview/skins/default/xui/en/panel_script_ed.xml
@@ -44,6 +44,8 @@
max_length="65536"
name="Script Editor"
width="492"
+ show_line_numbers="true"
+ handle_edit_keys_directly="true"
word_wrap="true">
Loading...
</text_editor>
diff --git a/indra/newview/skins/default/xui/en/panel_status_bar.xml b/indra/newview/skins/default/xui/en/panel_status_bar.xml
index 82b7e02aeb..3ad5cbe018 100644
--- a/indra/newview/skins/default/xui/en/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_status_bar.xml
@@ -224,7 +224,7 @@
left_delta="1"
name="search_editor"
tab_group="1"
- tool_tip="Search Second Life"
+ tool_tip="Search [SECOND_LIFE]"
top_delta="4"
width="78" />
<button
@@ -240,7 +240,7 @@
name="search_btn"
picture_style="true"
scale_image="false"
- tool_tip="Search Second Life"
+ tool_tip="Search [SECOND_LIFE]"
top_delta="-4"
width="16" />
<text
diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
index 3d4ac94044..655cf2b40f 100644
--- a/indra/newview/skins/default/xui/en/strings.xml
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -7,9 +7,9 @@
<!-- Default Args - these arguments will be replaced in all strings -->
<string name="SECOND_LIFE">Second Life</string>
- <string name="SECOND_LIFE_VIEWER">Second Life</string>
- <string name="SECOND_LIFE_GRID">Second Life</string>
- <string name="SECOND_LIFE_SUPPORT">Second Life Support Portal</string>
+ <string name="APP_NAME">Second Life</string>
+ <string name="SECOND_LIFE_GRID">Second Life Grid</string>
+ <string name="SUPPORT_SITE">Second Life Support Portal</string>
<!-- starting up -->
<string name="StartupDetectingHardware">Detecting hardware...</string>
@@ -19,7 +19,7 @@
<string name="CacheNobody">(nobody)</string>
<string name="CacheNone">(none)</string>
<!-- Login -->
- <string name="LoginInProgress">Logging in. [SECOND_LIFE_VIEWER] may appear frozen. Please wait.</string>
+ <string name="LoginInProgress">Logging in. [APP_NAME] may appear frozen. Please wait.</string>
<string name="LoginInProgressNoFrozen">Logging in...</string>
<string name="LoginAuthenticating">Authenticating</string>
<string name="LoginMaintenance">Performing account maintenance...</string>
@@ -683,29 +683,29 @@ Expected .wav, .tga, .bmp, .jpg, .jpeg, or .bvh
Please see: http://wiki.secondlife.com/wiki/Client_parameters
Error:
</string>
- <string name="MBCmdLineUsg">[SECOND_LIFE] Command line usage:</string>
+ <string name="MBCmdLineUsg">[APP_NAME] Command line usage:</string>
<string name="MBUnableToAccessFile">
- [SECOND_LIFE] is unable to access a file that it needs.
+ [APP_NAME] is unable to access a file that it needs.
This can be because you somehow have multiple copies running, or your system incorrectly thinks a file is open.
If this message persists, restart your computer and try again.
-If it continues to persist, you may need to completely uninstall [SECOND_LIFE] and reinstall it.
+If it continues to persist, you may need to completely uninstall [APP_NAME] and reinstall it.
</string>
<string name="MBFatalError">Fatal Error</string>
- <string name="MBRequiresAltiVec"> [SECOND_LIFE] requires a processor with AltiVec (G4 or later).</string>
+ <string name="MBRequiresAltiVec"> [APP_NAME] requires a processor with AltiVec (G4 or later).</string>
<string name="MBAlreadyRunning">
- [SECOND_LIFE] is already running.
+ [APP_NAME] is already running.
Check your task bar for a minimized copy of the program.
If this message persists, restart your computer.
</string>
<string name="MBFrozenCrashed">
- [SECOND_LIFE] appears to have frozen or crashed on the previous run.
+ [APP_NAME] appears to have frozen or crashed on the previous run.
Would you like to send a crash report?
</string>
<string name="MBAlert">Alert</string>
<string name="MBNoDirectX">
- [SECOND_LIFE] is unable to detect DirectX 9.0b or greater.
-[SECOND_LIFE] uses DirectX to detect hardware and/or outdated drivers that can cause stability problems, poor performance and crashes. While you can run [SECOND_LIFE] without it, we highly recommend running with DirectX 9.0b.
+ [APP_NAME] is unable to detect DirectX 9.0b or greater.
+[APP_NAME] uses DirectX to detect hardware and/or outdated drivers that can cause stability problems, poor performance and crashes. While you can run [APP_NAME] without it, we highly recommend running with DirectX 9.0b.
Do you wish to continue?
</string>
@@ -726,23 +726,23 @@ Running in window.
<string name="MBPixelFmtErr">Can't find suitable pixel format</string>
<string name="MBPixelFmtDescErr">Can't get pixel format description</string>
<string name="MBTrueColorWindow">
- [SECOND_LIFE] requires True Color (32-bit) to run in a window.
+ [APP_NAME] requires True Color (32-bit) to run in a window.
Please go to Control Panels &gt; Display &gt; Settings and set the screen to 32-bit color.
-Alternately, if you choose to run fullscreen, [SECOND_LIFE] will automatically adjust the screen each time it runs.
+Alternately, if you choose to run fullscreen, [APP_NAME] will automatically adjust the screen each time it runs.
</string>
<string name="MBAlpha">
- [SECOND_LIFE] is unable to run because it can't get an 8 bit alpha channel. Usually this is due to video card driver issues.
+ [APP_NAME] is unable to run because it can't get an 8 bit alpha channel. Usually this is due to video card driver issues.
Please make sure you have the latest video card drivers installed.
Also be sure your monitor is set to True Color (32-bit) in Control Panels &gt; Display &gt; Settings.
-If you continue to receive this message, contact customer support.
+If you continue to receive this message, contact the [SUPPORT_SITE].
</string>
<string name="MBPixelFmtSetErr">Can't set pixel format</string>
<string name="MBGLContextErr">Can't create GL rendering context</string>
<string name="MBGLContextActErr">Can't activate GL rendering context</string>
<string name="MBVideoDrvErr">
- [SECOND_LIFE] is unable to run because your video card drivers did not install properly, are out of date, or are for unsupported hardware. Please make sure you have the latest video card drivers and even if you do have the latest, try reinstalling them.
+ [APP_NAME] is unable to run because your video card drivers did not install properly, are out of date, or are for unsupported hardware. Please make sure you have the latest video card drivers and even if you do have the latest, try reinstalling them.
-If you continue to receive this message, contact customer support.
+If you continue to receive this message, contact the [SUPPORT_SITE].
</string>
<!-- Avatar Shape Information -->
diff --git a/indra/newview/skins/default/xui/en/teleport_strings.xml b/indra/newview/skins/default/xui/en/teleport_strings.xml
index 616dc1a1d4..e8f6b1319a 100644
--- a/indra/newview/skins/default/xui/en/teleport_strings.xml
+++ b/indra/newview/skins/default/xui/en/teleport_strings.xml
@@ -2,21 +2,16 @@
<teleport_messages>
<message_set name="errors">
<message name="invalid_tport">
- Problem encountered processing your teleport request. You may
-need to log back in before you can teleport. If you continue
-to get this message, please check the Tech Support FAQ at:
-www.secondlife.com/support
+ Problem encountered processing your teleport request. You may need to log back in before you can teleport.
+If you continue to get this message, please check the [SUPPORT_SITE].
</message>
<message name="invalid_region_handoff">
- Problem encountered processing your region crossing. You may
-need to log back in before you can cross regions. If you continue
-to get this message, please check the Tech Support FAQ at:
-www.secondlife.com/support.
+ Problem encountered processing your region crossing. You may need to log back in before you can cross regions.
+If you continue to get this message, please check the [SUPPORT_SITE].
</message>
<message name="blocked_tport">
Sorry, teleport is currently blocked. Try again in a moment.
-If you still cannot teleport, please log out and log back in to
-resolve the problem.
+If you still cannot teleport, please log out and log back in to resolve the problem.
</message>
<message name="nolandmark_tport">
Sorry, but system was unable to locate landmark destination.
@@ -29,27 +24,19 @@ Try again in a moment.
Sorry, you do not have access to that teleport destination.
</message>
<message name="missing_attach_tport">
- Your attachments have not arrived yet. Try waiting for a few
-more seconds or log out and back in again before attempting
-to teleport.
+ Your attachments have not arrived yet. Try waiting for a few more seconds or log out and back in again before attempting to teleport.
</message>
<message name="too_many_uploads_tport">
- The asset queue in this region is currently clogged so your teleport
-request will not be able to succeed in a timely manner. Please try again
-in a few minutes or go to a less busy area.
+ The asset queue in this region is currently clogged so your teleport request will not be able to succeed in a timely manner. Please try again in a few minutes or go to a less busy area.
</message>
<message name="expired_tport">
- Sorry, but the system was unable to complete your teleport request
-in a timely fashion. Please try again in a few minutes.
+ Sorry, but the system was unable to complete your teleport request in a timely fashion. Please try again in a few minutes.
</message>
<message name="expired_region_handoff">
- Sorry, but the system was unable to complete your region crossing
-in a timely fashion. Please try again in a few minutes.
+ Sorry, but the system was unable to complete your region crossing in a timely fashion. Please try again in a few minutes.
</message>
<message name="no_host">
- Unable to find teleport destination. The destination may be
-temporarily unavailable or no longer exists. Please try again
-in a few minutes.
+ Unable to find teleport destination. The destination may be temporarily unavailable or no longer exists. Please try again in a few minutes.
</message>
<message name="no_inventory_host">
The inventory system is currently unavailable.
diff --git a/indra/newview/skins/default/xui/en/widgets/gesture_combo_box.xml b/indra/newview/skins/default/xui/en/widgets/gesture_combo_box.xml
index 17e9a7beb2..26af76d8a3 100644
--- a/indra/newview/skins/default/xui/en/widgets/gesture_combo_box.xml
+++ b/indra/newview/skins/default/xui/en/widgets/gesture_combo_box.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<gesture_combo_box font="SansSerifSmall"
+ label="Gestures"
list_position="below"
max_chars="20"
follows="right|top">
@@ -26,5 +27,4 @@
<gesture_combo_box.combo_editor name="Combo Text Entry"
select_on_focus="true"
font="SansSerifSmall" />
- <gesture_combo_box.item label="Gestures" />
</gesture_combo_box>
diff --git a/indra/newview/skins/default/xui/en/widgets/location_input.xml b/indra/newview/skins/default/xui/en/widgets/location_input.xml
index 89a88330c7..b249451247 100644
--- a/indra/newview/skins/default/xui/en/widgets/location_input.xml
+++ b/indra/newview/skins/default/xui/en/widgets/location_input.xml
@@ -29,6 +29,9 @@
image_disabled="Info_Off" />
<add_landmark_button name="Add Landmark"
label=""
+ hover_glow_amount="0.15"
+ image_hover_selected="Favorite_Star_Over"
+ image_hover_unselected="Favorite_Star_Over"
width="16"
height="16"
tool_tip="Add to My Landmarks"
diff --git a/indra/newview/skins/default/xui/en/widgets/scroll_bar.xml b/indra/newview/skins/default/xui/en/widgets/scroll_bar.xml
index 4ad11c41da..48bc021e6d 100644
--- a/indra/newview/skins/default/xui/en/widgets/scroll_bar.xml
+++ b/indra/newview/skins/default/xui/en/widgets/scroll_bar.xml
@@ -9,17 +9,17 @@
<up_button image_unselected="ScrollArrow_Up"
image_selected="ScrollArrow_Up"
scale_image="true" thickness="15"
- hover_glow_amount="0.15"/>
+ hover_glow_amount="0.35"/>
<down_button image_unselected="ScrollArrow_Down"
image_selected="ScrollArrow_Down"
scale_image="true" thickness="15"
- hover_glow_amount="0.15"/>
+ hover_glow_amount="0.35"/>
<left_button image_unselected="ScrollArrow_Left"
image_selected="ScrollArrow_Left"
scale_image="true" thickness="15"
- hover_glow_amount="0.15"/>
+ hover_glow_amount="0.35"/>
<right_button image_unselected="ScrollArrow_Right"
image_selected="ScrollArrow_Right"
scale_image="true" thickness="15"
- hover_glow_amount="0.15"/>
+ hover_glow_amount="0.35"/>
</scroll_bar>
diff --git a/indra/newview/skins/default/xui/en/widgets/scroll_container.xml b/indra/newview/skins/default/xui/en/widgets/scroll_container.xml
index cb9ef04797..86356ff563 100644
--- a/indra/newview/skins/default/xui/en/widgets/scroll_container.xml
+++ b/indra/newview/skins/default/xui/en/widgets/scroll_container.xml
@@ -1,3 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<scroll_container color="black"
- opaque="false"/>
+ opaque="false"
+ min_auto_scroll_rate="120"
+ max_auto_scroll_rate="500"/>
diff --git a/indra/newview/skins/default/xui/en/widgets/simple_text_editor.xml b/indra/newview/skins/default/xui/en/widgets/simple_text_editor.xml
index 960c4e81e5..4f2261c953 100644
--- a/indra/newview/skins/default/xui/en/widgets/simple_text_editor.xml
+++ b/indra/newview/skins/default/xui/en/widgets/simple_text_editor.xml
@@ -9,14 +9,14 @@
word_wrap="false"
ignore_tab="true"
track_bottom="false"
- takes_non_scroll_clicks="true"
cursor_color="TextCursorColor"
default_color="TextDefaultColor"
text_color="TextFgColor"
text_readonly_color="TextFgReadOnlyColor"
bg_readonly_color="TextBgReadOnlyColor"
bg_writeable_color="TextBgWriteableColor"
- bg_focus_color="TextBgFocusColor">
+ bg_focus_color="TextBgFocusColor"
+ link_color="HTMLLinkColor">
<simple_text_editor.border
bevel_style="in"
follows="all" />
diff --git a/indra/newview/skins/default/xui/es/floater_joystick.xml b/indra/newview/skins/default/xui/es/floater_joystick.xml
index 527485e57d..da7753a7d7 100644
--- a/indra/newview/skins/default/xui/es/floater_joystick.xml
+++ b/indra/newview/skins/default/xui/es/floater_joystick.xml
@@ -3,13 +3,14 @@
<check_box name="enable_joystick">
Activar el joystick:
</check_box>
- <spinner label="Mapping: X" name="JoystickAxis1"/>
- <spinner label="Mapping: Y" name="JoystickAxis2"/>
- <spinner label="Mapping: Z" name="JoystickAxis0"/>
- <spinner label="Mapping: arriba/abajo" name="JoystickAxis4"/>
- <spinner label="Mapping: izq./der." name="JoystickAxis5"/>
- <spinner label="Mapping: giro" name="JoystickAxis3"/>
- <spinner label="Mapping: zoom" name="JoystickAxis6"/>
+ <text left="140" name="joystick_type" width="360"/>
+ <spinner label="Mapping: eje X" name="JoystickAxis1" label_width="118" width="161"/>
+ <spinner label="Mapping: eje Y" name="JoystickAxis2" label_width="105" width="148"/>
+ <spinner label="Mapping: eje Z" name="JoystickAxis0" label_width="95" width="138"/>
+ <spinner label="Mapping: arriba/abajo" name="JoystickAxis4" label_width="118" width="161"/>
+ <spinner label="Mapping: izq./der." name="JoystickAxis5" label_width="105" width="148"/>
+ <spinner label="Mapping: giro" name="JoystickAxis3" label_width="95" width="138"/>
+ <spinner label="Mapping: zoom" name="JoystickAxis6" label_width="118" width="161"/>
<check_box label="Zoom directo" name="ZoomDirect"/>
<check_box label="Cursor 3D" name="Cursor3D"/>
<check_box label="Nivel automático" name="AutoLeveling"/>
@@ -19,7 +20,7 @@
<check_box name="JoystickAvatarEnabled">
Avatar
</check_box>
- <check_box name="JoystickBuildEnabled">
+ <check_box name="JoystickBuildEnabled" left="192">
Construir
</check_box>
<check_box name="JoystickFlycamEnabled">
@@ -34,7 +35,7 @@
<text name="ZScale">
Escala: Z
</text>
- <text name="PitchScale">
+ <text name="PitchScale" left="3" width="115">
Escala: arriba/abajo
</text>
<text name="YawScale">
@@ -52,11 +53,11 @@
<text name="ZDeadZone">
Zona muerta Z
</text>
- <text name="PitchDeadZone">
- Zona muerta arriba/abajo
+ <text name="PitchDeadZone" left="3" width="115">
+ Zona muerta arri./aba.
</text>
- <text name="YawDeadZone">
- Zona muerta izq./der
+ <text name="YawDeadZone" left="3" width="115">
+ Zona muerta izq./der.
</text>
<text name="RollDeadZone">
Zona muerta giro
@@ -70,9 +71,9 @@
<text name="ZoomDeadZone">
Zona muerta zoom
</text>
- <button label="Predeterminados del SpaceNavigator" name="SpaceNavigatorDefaults"/>
- <button label="OK" label_selected="OK" name="ok_btn"/>
- <button label="Cancelar" label_selected="Cancelar" name="cancel_btn"/>
+ <button label="Predeterminados del SpaceNavigator" name="SpaceNavigatorDefaults" font="SansSerifSmall" left="330" width="210"/>
+ <button label="OK" label_selected="OK" name="ok_btn" left="330"/>
+ <button label="Cancelar" label_selected="Cancelar" name="cancel_btn" left_delta="120"/>
<string name="JoystickMonitor">
Monitor del joystick
</string>
diff --git a/indra/newview/skins/default/xui/es/menu_inventory.xml b/indra/newview/skins/default/xui/es/menu_inventory.xml
index 557123d4f8..28d47fce52 100644
--- a/indra/newview/skins/default/xui/es/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/es/menu_inventory.xml
@@ -12,7 +12,7 @@
<menu_item_call label="Script nuevo" name="New Script"/>
<menu_item_call label="Nota nueva" name="New Note"/>
<menu_item_call label="Gesto nuevo" name="New Gesture"/>
- <menu name="New Clothes">
+ <menu name="New Clothes" label="Nueva ropa">
<menu_item_call label="Camisa nueva" name="New Shirt"/>
<menu_item_call label="Pantalones nuevos" name="New Pants"/>
<menu_item_call label="Zapatos nuevos" name="New Shoes"/>
@@ -23,7 +23,7 @@
<menu_item_call label="Camiseta nueva" name="New Undershirt"/>
<menu_item_call label="Ropa interior nueva" name="New Underpants"/>
</menu>
- <menu name="New Body Parts">
+ <menu name="New Body Parts" label="Nuevas partes del cuerpo">
<menu_item_call label="Forma nueva" name="New Shape"/>
<menu_item_call label="Piel nueva" name="New Skin"/>
<menu_item_call label="Pelo nuevo" name="New Hair"/>
diff --git a/indra/newview/skins/default/xui/es/notifications.xml b/indra/newview/skins/default/xui/es/notifications.xml
index d7e480c653..f045c6fe9e 100644
--- a/indra/newview/skins/default/xui/es/notifications.xml
+++ b/indra/newview/skins/default/xui/es/notifications.xml
@@ -6,6 +6,9 @@
<global name="alwayschoose">
Elegir siempre esta opción
</global>
+ <global name="implicitclosebutton">
+ Cerrar
+ </global>
<template name="okbutton">
<form>
<button
@@ -189,7 +192,7 @@ No podrá removérseles de ese rol, sino que deberán renunciar a él por sí mi
<usetemplate name="okcancelbuttons" notext="No" yestext="Sí"/>
</notification>
<notification name="ClickPublishHelpLand">
- Seleccionar &quot;Publicar en la web&quot;
+ Seleccionar &apos;Publicar en la web&apos;
Marcando este ítem, se mostrará:
- esta parcela en los resultados de la búsqueda
- los objetos públicos de esta parcela
@@ -219,7 +222,7 @@ Marcando este ítem, se mostrará:
No puede hacer que esta parcela aparezca en la búsqueda, porque está situada en una región que lo prohíbe.
</notification>
<notification name="ClickPublishHelpAvatar">
- Al seleccionar &quot;Mostrar en Buscar&quot; se mostrará:
+ Al seleccionar &apos;Mostrar en la búsqueda&apos; se mostrará:
- mi perfil en los resultados de la búsqueda
- un enlace a mi perfil en las páginas públicas de grupo
</notification>
@@ -928,7 +931,7 @@ Deberá reconfigurar el nombre y las opciones de la nueva parcela.
El color de las parcelas indica el tipo de propietario.
Verde = Su terreno
-Agua = Terreno de su&apos;s grupo&apos;s
+Agua = Terreno de sus grupos
Rojo = Propiedad de otros
Amarillo = En venta
Morado = Para subasta
@@ -1196,13 +1199,13 @@ Por favor, selección sólo uno y reinténtelo.
No se han podido configurar las texturas de la región:
La textura del terreno [TEXTURE_NUM] tiene una profundidad de bites inválida: [TEXTURE_BIT_DEPTH].
-Cambie la textura [TEXTURE_NUM] por una imagen de 24-bit y 512x512 o menor, y pulse de nuevo &quot;Aplicar&quot; .
+Cambie la textura [TEXTURE_NUM] por una imagen de 24-bit y 512x512 o menor, y pulse de nuevo &apos;Aplicar&apos; .
</notification>
<notification name="InvalidTerrainSize">
No se han podido configurar las texturas de la región:
La textura del terreno [TEXTURE_NUM] es demasiado grande: [TEXTURE_SIZE_X]x[TEXTURE_SIZE_Y].
-Cambie la textura [TEXTURE_NUM] por una imagen de 24-bit y 512x512 o menor, y pulse de nuevo &quot;Aplicar&quot; .
+Cambie la textura [TEXTURE_NUM] por una imagen de 24-bit y 512x512 o menor, y pulse de nuevo &apos;Aplicar&apos; .
</notification>
<notification name="RawUploadStarted">
Ha empezado la subida. Dependiendo de la velocidad de su conexión, llevará unos dos minutos.
@@ -1537,7 +1540,7 @@ Por favor, compruebe que tiene instalado el último visor, y vaya a la Base de C
Usted no está autorizado en esa región por su nivel de calificación..
Puede pulsar &apos;Cambiar preferencia&apos; para aumentar su nivel de calificación y poder entrar. Desde ese momento, podrá buscar y acceder a contenido [REGIONMATURITY]. Si más adelante quiere deshacer esta configuración, vaya a Editar &gt; Preferencias... &gt; General.
- <form>
+ <form name="form">
<button
name="OK"
text="Cambiar preferencia"/>
@@ -1545,7 +1548,7 @@ Puede pulsar &apos;Cambiar preferencia&apos; para aumentar su nivel de calificac
default="true"
name="Cancel"
text="Cerrar"/>
- <ignore text="Cuando la entrada a la región está bloqueada por la preferencia del nivel de calificación"/>
+ <ignore name="ignore" text="Cuando la entrada a la región está bloqueada por la preferencia del nivel de calificación"/>
</form>
</notification>
<notification name="LandClaimAccessBlocked">
@@ -1735,7 +1738,7 @@ Cuando está activada, los residentes sólo pueden ser empujados por sí mismos
Por defecto: Off
</notification>
<notification label="Unir/Dividir parcelas" name="HelpParcelChanges">
- Esta casilla determina si las parcelas que no son del propietario del estado pueden puede unirse o subdividirse.
+ Esta casilla determina si las parcelas que no son del propietario del estado pueden unirse o subdividirse.
Si no se marca esta opción:
* Sólo los propietarios o los administradores del estado pueden unir o dividir parcelas.
* Sólo podrán unir o dividir las parcelas pertenecientes al propietario o a un grupo en el que tengan los poderes adecuados.
@@ -1860,7 +1863,7 @@ Por defecto: on
Esta casilla fija la posición del Sol en la posición del deslizable Fase, y detiene su movimiento.
</notification>
<notification label="Acceso público" name="HelpEstateExternallyVisible">
- Esta casilla habilita a cualquier residente que esté en otro estado pueda entrar en éste sin tener que estar en una lista de acceso.
+ Esta casilla habilita que cualquier residente que esté en otro estado pueda entrar en éste sin tener que estar en una lista de acceso.
Por defecto: on
</notification>
@@ -2162,7 +2165,7 @@ Núm. máx. de partículas: define el número máximo de partículas que podrá
Calidad del procesamiento: define la resolución con que se renderiza el brillo.
-Detalle de la malla: define la cantidad de dettales o número de triángulos usados para renderizar algunos objetos. Cuanto más alto sea el valor, más detalle, pero más tiempo para renderizar.
+Detalle de la malla: define la cantidad de detalles o número de triángulos usados para renderizar algunos objetos. Cuanto más alto sea el valor, más detalle, pero más tiempo para renderizar.
Detalles de la iluminación: determina que tipo de luces quiere usted que se rendericen.
@@ -2195,30 +2198,30 @@ Nivel de detalle del terreno: marca con cuánto detalle quiere ver la textura de
<notification name="EnvSettingsHelpButton">
Estas configuraciones ajustan la forma en que usted ve el medio ambiente localmente, en su ordenador. Su tarjeta gráfica debe admitir shaders de la atmósfera (&apos;atmospheric shaders&apos;) para poder acceder a esta configuración.
-Ajuste el deslizable &quot;Duración de un día&quot; para cambiar localmente, en su visor, las etapas del día.
+Ajuste el deslizable &apos;Duración de un día&apos; para cambiar localmente, en su visor, las etapas del día.
-Ajuste el deslizable &quot;Nubosidad&quot; para controlar cuántas nubes cubren el cielo.
+Ajuste el deslizable &apos;Nubosidad&apos; para controlar cuántas nubes cubren el cielo.
-Pulse un color en el selector de &quot;Color del agua&quot; para cambiar el color de la misma.
+Pulse un color en el selector de &apos;Color del agua&apos; para cambiar el color de la misma.
-Ajuste el deslizable &quot;Claridad del agua&quot; para controlar el nivel de claridad del agua bajo la superficie.
+Ajuste el deslizable &apos;Claridad del agua&apos; para controlar el nivel de claridad del agua bajo la superficie.
-Pulse &quot;Usar el horario del estado&quot; para devolver los valores del día al tiempo actual de la región y seguir a partir de él.
+Pulse &apos;Usar el horario del estado&apos; para devolver los valores del día al tiempo actual de la región y seguir a partir de él.
-Pulse &quot;Cielo avanzado&quot; para abrir un editor con configuraciones avanzadas para el cielo.
+Pulse &apos;Cielo avanzado&apos; para abrir un editor con configuraciones avanzadas para el cielo.
-Pulse &quot;Agua avanzada&quot; para abrir un editor con configuraciones avanzadas para el agua.
+Pulse &apos;Agua avanzada&apos; para abrir un editor con configuraciones avanzadas para el agua.
</notification>
<notification name="HelpDayCycle">
El Editor del ciclo del día le permite controlar el cielo de Second Life durante el ciclo día/noche. Este es el ciclo que usa el deslizable Duración de un día del Editor del entorno.
-El Editor del ciclo del día trabaja configurando fotogramas clave (&apos;keyframes&apos;): nodos (representados por los puntos grises en la línea del tiempo) cada uno de los cuales tiene asociado un Cielo definido. Según progresa la Duración de un día, el WindLight realiza la &quot;animación&quot; del cielo interpolándose entre esos fotogramas clave.
+El Editor del ciclo del día trabaja configurando fotogramas clave (&apos;keyframes&apos;): nodos (representados por los puntos grises en la línea del tiempo) cada uno de los cuales tiene asociado un Cielo definido. Según progresa la Duración de un día, el WindLight realiza la &apos;animación&apos; del cielo interpolándose entre esos fotogramas clave.
La flecha amarilla sobre la línea del tiempo representa lo que usted ve actualmente, basándose en la Duración de un día. Púlsela y muévela para ver cómo cambia la animación del día. Puede añadir o borrar fotogramas clave pulsando los botones Añadir un punto o Quitar un punto, situados a la derecha de la línea del tiempo.
-Puede establecer la posición en el tiempo de cualquier fotograma clave moviéndolo a lo largo de la línea del tiempo, o configurando manualmente su valor por su valor manualmente en el recuadro Configuración del fotograma clave. También en ese recuadro podrá asociar el fotograma clave a un modelo predefinido de WindLight.
+Puede establecer la posición en el tiempo de cualquier fotograma clave moviéndolo a lo largo de la línea del tiempo, o configurando manualmente su valor en el recuadro Configuración del fotograma clave. También en ese recuadro podrá asociar el fotograma clave a un modelo predefinido de WindLight.
-La Duración del ciclo establece la duración total de un &quot;día&quot;. Marcar un valor bajo (por ejemplo, 2 min.) hará que las 24 horas de su línea del tiempo se animen ¡en sólo dos minutos reales! Una vez que esté satisfecho con su ciclo de la línea del tiempo y los fotogramas clave, utilice los botones Probar y Parar para obtener una vista previa de los resultados. Recuerde que también puede mover la flecha amarilla de encima de la línea del tiempo para ver el ciclo de la animación. El botón Usar el horario del estado sincronizará su ciclo de duración de un día con el ciclo del estado.
+La Duración del ciclo establece la duración total de un &apos;día&apos;. Marcar un valor bajo (por ejemplo, 2 min.) hará que las 24 horas de su línea del tiempo se animen ¡en sólo dos minutos reales! Una vez que esté satisfecho con su ciclo de la línea del tiempo y los fotogramas clave, utilice los botones Probar y Parar para obtener una vista previa de los resultados. Recuerde que también puede mover la flecha amarilla de encima de la línea del tiempo para ver el ciclo de la animación. El botón Usar el horario del estado sincronizará su ciclo de duración de un día con el ciclo del estado.
Cuando todo esté a su gusto, puede guardar esos datos y cargarlos luego usando los botones Guardar este tipo de día y Cargar un tipo de día. Note que, por el momento, sólo podemos permitir un ciclo de un día.
</notification>
@@ -2235,13 +2238,13 @@ Cuando todo esté a su gusto, puede guardar esos datos y cargarlos luego usando
La Densidad de la bruma controla lo sombrío de la atmósfera, su neblina. Es eficaz para simular escenas con mucho humo o contaminantes, y también para simular niebla y llovizna.
</notification>
<notification name="HelpDensityMult">
- La Densidad puede usarse para definir globalmente la &apos;pesadez&apos; de la atmósfera. Los ajustes bajos dan sensación de un &quot;aire limpio&quot;, y los altos de pesadez, de esmog.
+ La Densidad puede usarse para definir globalmente la &apos;pesadez&apos; de la atmósfera. Los ajustes bajos dan sensación de un &apos;aire limpio&apos;, y los altos de pesadez, de esmog.
</notification>
<notification name="HelpDistanceMult">
Ajusta a qué distancia se percibe el WindLight. El valor cero desactiva la influencia del WindLight en el terreno y los objetos. Los valores superiores a 1 simulan mayores distancias a las que afectan los efectos atmosféricos
</notification>
<notification name="HelpMaxAltitude">
- La Altitud máx. ajusta hasta que altura el WindLight realiza sus cálculos para computar la iluminación atmosférica. En las últimas horas del día, es útil para ajustar la &quot;profundidad&quot; a la que aparece el Sol.
+ La Altitud máx. ajusta hasta que altura el WindLight realiza sus cálculos para computar la iluminación atmosférica. En las últimas horas del día, es útil para ajustar la &apos;profundidad&apos; a la que aparece el Sol.
</notification>
<notification name="HelpSunlightColor">
Ajusta en la escena la intensidad y el color de las luces directas.
@@ -2382,7 +2385,7 @@ Pero, vaya, diviértase si quiere.
</notification>
<notification name="AutoWearNewClothing">
¿Quiere vestirse automáticamente el ítem de ropa nueva que ha creado?
- <usetemplate ignoretext="Vestirme automáticamente la ropa nueva" name="okcancelignore" notext="No" yestext="Sí"/>
+ <usetemplate ignoretext="Al vestirme automáticamente la ropa nueva" name="okcancelignore" notext="No" yestext="Sí"/>
</notification>
<notification name="NotAgeVerified">
Para acceder a esta parcela, se debe haber verificado su edad.
@@ -2390,7 +2393,7 @@ Pero, vaya, diviértase si quiere.
[_URL]
<url name="url" option="0">
- https://secondlife.com/account/verification.php
+ https://secondlife.com/account/verification.php?lang=es
</url>
<usetemplate ignoretext="Advertir de la falta de la verificación de edad" name="okcancelignore" notext="No" yestext="Sí"/>
</notification>
@@ -2663,7 +2666,7 @@ Vaya a la &apos;Help Island Public&apos; (&apos;Isla Pública de Ayuda&apos;) pa
<notification name="ImproperPaymentStatus">
No tiene el estado de pago adecuado para entrar a esta región.
</notification>
- <notification name="MustGetAgeRgion">
+ <notification name="MustGetAgeRegion">
Debe haber verificado su edad para entrar a esta región.
</notification>
<notification name="MustGetAgeParcel">
@@ -2944,7 +2947,7 @@ Los objetos flexibles no pueden ser materiales, y serán inmateriales hasta que
<notification name="FirstDebugMenus">
Ha activado el menú Avanzado.
Contiene herramientas útiles para los desarrolladores que trabajan mejorando Second Life.
-Para pasar este menú a una ventana, pulse Ctrl-Alt-D. En un Mac, pulse Cmd-Opt-Shift-D.
+Para pasar este menú a una ventana, pulse Ctrl-Alt-D. En un Mac, pulse &#8984;-Opt-D.
</notification>
<notification name="FirstSculptedPrim">
Está editando un prim &apos;sculpted&apos;.
diff --git a/indra/newview/skins/default/xui/es/role_actions.xml b/indra/newview/skins/default/xui/es/role_actions.xml
index 1e10ccf992..da9a820eb8 100644
--- a/indra/newview/skins/default/xui/es/role_actions.xml
+++ b/indra/newview/skins/default/xui/es/role_actions.xml
@@ -1,186 +1,199 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<role_actions>
<action_set
- description="Estas habilidades incluyen poderes de adicionar o remover miembros del grupo y permitir que nuevos miembros se junten sin una invitación."
+ description="Estas capacidades incluyen poderes para añadir o quitar miembros del grupo, y para pemitir que se sumen nuevos miembros sin necesidad de invitación."
name="Membership">
- <action description="Invitar personas para este grupo"
- longdescription="Invite personas para este grupo usando el botón &apos;Invitar nueva persona...&apos; en Miembros &amp; pestaña Funciones &gt; subpestaña Miembros."
+ <action description="Invitar personas al grupo"
+ longdescription="Invitar a personas al grupo usando el botón &apos;Invitar a un nuevo miembro&apos; en Miembros y Roles &gt; subpestaña Miembros."
name="member invite" value="1" />
- <action description="Expulsar a miembros de este grupo"
- longdescription="Expulse a miembros de este grupo usando el botón &apos;Expulsar del grupo&apos; en Miembros &amp; pestaña Funciones &gt; subpestaña Miembros. Un propietario puede expulsar a cualquiera, excepto a otro propietario. Si usted no es un propietario, un miembro puede a expulsarlo del grupo si, y solamente si, él apenas tiene la función de todos y no otras funciones. Para remover miembros de funciones, necesita tener la habilidad &apos;Remover miembros de funciones&apos;."
+ <action description="Expulsar a miembros del grupo"
+ longdescription="Expulsar a miembros del grupo usando el botón &apos;Expulsar del grupo&apos; en Miembros y Roles &gt; subpestaña Miembros. Un propietario puede expulsar a cualquiera, excepto a otro propietario. Si usted no es un propietario, un miembro del grupo puede expulsarle sólo si tiene concedida tal capacidad específica. Para quitar capacidades a los miembros, usted debe tener la de &apos;Quitar capacidades a miembros&apos;."
name="member eject" value="2" />
<action
- description="Activar/desactivar &apos;Abrir registro&apos; y cambiar &apos;Tasa de suscripción&apos;"
- longdescription="Active/desactive &apos;Abrir registro&apos; para permitir que nuevos miembros se unan sin una invitación, y cambie &apos;Tasa de registro&apos; en la sección Preferencia de grupo de la pestaña General."
+ description="Activar/desactivar &apos;Inscripción libre&apos; y cambiar &apos;Cuota de inscripción&apos;"
+ longdescription="Activar/desactivar &apos;Inscripción libre&apos; para permitir o no que se unan sin invitación nuevos miembros, y cambiar la &apos;Cuota de inscripción&apos; en la sección Preferencias del grupo de la pestaña General."
name="member options" value="3" />
</action_set>
<action_set
- description="Estas habilidades incluyen poderes de adicionar, remover y cambiar funciones del grupo; adicionar y remover miembros en funciones y designar habilidades a funciones."
+ description="Estas habilidades incluyen el poder añadir, quitar y cambiar roles, asignarlos a miembros, y darles capacidades."
name="Roles">
- <action description="Crear nuevas funciones"
- longdescription="Cree nuevas funciones en Miembros &amp; pestaña Funciones &gt; subpestaña Funciones."
+ <action description="Crear nuevos roles"
+ longdescription="Crear nuevos roles en Miembros y Roles &gt; pestaña Roles &gt; botón Crear un rol nuevo."
name="role create" value="4" />
- <action description="Borrar funciones"
- longdescription="Borra funciones en Miembros &amp; pestaña Funciones &gt; subpestaña Funciones."
+ <action description="Borrar roles"
+ longdescription="Borrar roles en Miembros y Roles &gt; pestaña Roles &gt; botón Eliminar el rol."
name="role delete" value="5" />
- <action description="Cambiar nombres de funciones, títulos y descripciones"
- longdescription="Cambie el nombre de funciones, títulos y descripciones en la parte inferior de Miembros &amp; pestaña Funciones &gt; subpestaña Funciones después de seleccionar una función."
+ <action description="Cambiar nombres de roles, títulos y descripciones"
+ longdescription="Cambiar el nombre del rol que elija, su etiqueta y descripción en la parte media de la pestaña Miembros y Roles."
name="role properties" value="6" />
- <action description="Designar miembros para la función&apos;s del asignador"
- longdescription="Designe miembros para funciones en la sección de funciones designadas de Miembros &amp; pestaña Funciones &gt; subpestaña Miembros. Un miembro con este poder puede solamente adicionar miembros para la función que el asignador ya posee."
+ <action description="Designar miembros para el rol del asignador"
+ longdescription="Designar miembros para un rol en la sección Roles asignados de la pestaña Miembros y Roles &gt; subpestaña Miembros. Un miembro con este poder sólo puede asignar a otros el rol que él posee."
name="role assign member limited" value="7" />
- <action description="Designar miembros para cualquier función"
- longdescription="Designe miembros para cualquier función en la sección de funciones designadas de Miembros &amp; pestaña Funciones &gt; subpestaña Miembros. *AVISO* Cualesquiera miembros en una función con esta habilidad pueden designar a sí propios--y cualesquiera otros miembros no propietarios--para funciones que tienen más poderes que las actuales, promocionándolos a poderes próximos al del propietario. Asegúrese de saber lo que está haciendo antes de designar esta habilidad."
+ <action description="Designar miembros para cualquier rol"
+ longdescription="Designar miembros para cualquier rol en la sección Roles asignados de la pestaña Miembros y Roles &gt; subpestaña Miembros. *AVISO* Todos los miembros con esta capacidad podrán asignarse a sí mismos -y a otros miembros- roles con mayores poderes de los que actualmente tienen. Potencialmente, podrían elevarse hasta poderes cercanos a los del propietario. Asegúrese de lo que está haciendo antes de otorgar esta capacidad."
name="role assign member" value="8" />
- <action description="Remover miembros de las funciones"
- longdescription="Remueva miembros de funciones en la sección de funciones designadas de Miembros &amp; pestaña Funciones &gt; subpestaña Miembros. Propietarios no pueden&apos; ser removidos."
+ <action description="Quitar capacidades a los miembros"
+ longdescription="Quitar capacidades a los miembros en la sección Capacidades asignadas de Miembros y Roles &gt; subpestaña Roles. No se pueden quitar a los Propietarios."
name="role remove member" value="9" />
- <action description="Determinar y remover habilidades en función"
- longdescription="Designe y remueva habilidades en funciones en la sección habilidades permitidas de Miembros &amp; pestaña Funciones &gt; subpestaña Funciones. *AVISO* Cualesquiera miembros en una función con esta habilidad pueden designar a sí propios--y cualesquiera otros miembros no propietarios--todas las habilidades, promocionándolos a poderes próximos al del propietario. Asegúrese de saber lo que está haciendo antes de designar esta habilidad."
+ <action description="Añadir o quitar capacidades a los roles"
+ longdescription="Añadir o quitar capacidades a los roles en la sección Capacidades asignadas de Miembros y Roles &gt; subpestaña Roles. *AVISO* Todos los miembros con esta capacidad podrán asignarse a sí mismos -y a otros miembros- roles con mayores poderes de los que actualmente tienen. Potencialmente, podrían elevarse hasta poderes cercanos a los del propietario. Asegúrese de lo que está haciendo antes de otorgar esta capacidad."
name="role change actions" value="10" />
</action_set>
<action_set
- description="Estas habilidades incluyen poderes para modificar esta identidad de grupo, como cambiar la visibilidad pública, presentación y insignia."
+ description="Estas capacidades incluyen poderes para modificar la identidad del grupo, como su visibilidad pública, su carta o su emblema."
name="Group Identity">
<action
- description="Cambiar presentación, insignia, &apos;Publicar en la web&apos;, y cuales miembros están públicamente visibles en Informaciones del Grupo."
- longdescription="Cambie la presentación, insignia, &apos;Publicar en la web&apos; y cuales miembros están públicamente visibles en Informaciones del grupo. Es hecho en la pestaña General."
+ description="Cambiar la carta, emblema, &apos;Mostrar en la búsqueda&apos;, y qué miembros serán visibles en la información del grupo"
+ longdescription="Cambiar la carta, emblema, &apos;Mostrar en la búsqueda&apos;, y qué miembros serán visibles en la información del grupo de la pestaña General."
name="group change identity" value="11" />
</action_set>
<action_set
- description="Estas habilidades incluyen poderes para transferir, modificar y vender terrenos del grupo. Vaya para la ventana Sobre el terreno, haga clic con el botón derecho en el terreno y seleccione &apos;Sobre el terreno...&apos; o haga clic en la información de la parcela en la barra del menú."
+ description="Estas capacidades incluyen poderes para transferir, modificar y vender terrenos del grupo. Vea el menú Mundo &gt; Acerca del terreno, o pulse con el botón derecho en el terreno y seleccione &apos;Acerca del terreno...&apos;, o pulse en la información de la parcela en la barra superior del menú."
name="Parcel Management">
<action description="Transferir y comprar terreno para el grupo"
- longdescription="Transfiere y compre terreno para el grupo. Es hecho en Sobre el terreno &gt; pestaña General."
+ longdescription="Transferir y comprar terreno para el grupo. Se hace en Acerca del terreno &gt; pestaña General."
name="land deed" value="12" />
- <action description="Abandonar al terreno para Gobernador Linden"
- longdescription="Abandone al terreno para Gobernador Linden. *AVISO* Cualquier miembro en una función con esta habilidad puede abandonar al terreno perteneciente al grupo en Sobre el terreno &gt; pestaña General, revirtiendo a la posesión Linden sin una venta! Asegúrese de saber lo que está haciendo antes de designar esta habilidad."
+ <action description="Abandonar al terreno a favor de Governor Linden"
+ longdescription="Abandonar al terreno a favor de Governor Linden. *AVISO* Todos los miembros con esta capacidad pueden abandonar terreno perteneciente al grupo en Acerca del terreno &gt; pestaña General, devolviendo la posesión a Linden ¡gratuitamente! Asegúrese de lo que está haciendo antes de otorgar esta capacidad."
name="land release" value="13" />
- <action description="Definir terreno para información de venta"
- longdescription="Defina informaciones de venta para terreno. *AVISO* Cualquier miembro en una función con esta habilidad puede vender terrenos pertenecientes al grupo en Sobre el terreno &gt; pestaña General ¡cómo quiera! Asegúrese de saber lo que está haciendo antes de designar esta habilidad."
+ <action description="Vender terreno"
+ longdescription="Vender terreno. *AVISO* Todos los miembros con esta capacidad pueden vender terreno perteneciente al grupo -¡en la forma en que quieran!- en Acerca del terreno &gt; pestaña General. Asegúrese de lo que está haciendo antes de otorgar esta capacidad."
name="land set sale info" value="14" />
- <action description="Subdividir y unir parcelas"
- longdescription="Subdivide and join parcels. This is done by right-clicking the ground, &apos;Edit Terrain&apos;, and dragging your mouse on the land to make a selection. To subdivide, select what you want to split and click &apos;Subdivide...&apos;. To join, select two or more contiguous parcels and click &apos;Join...&apos;. "
+ <action description="Dividir y unir parcelas"
+ longdescription="Dividir y unir parcelas. Se hace pulsando con el botón derecho en el terreno, &apos;Modificar el terreno&apos;, y dibujando en el terreno con el ratón lo que se quiere seleccionar. Para dividir, elija la parte que quiere separar y pulse &apos;Subdividir...&apos;. Para unir, seleccione dos o más parcelas contiguas y pulse &apos;Unir...&apos;. "
name="land divide join" value="15" />
</action_set>
<action_set
- description="Estas habilidades incluyen poderes para cambiar el nombre de las parcelas y configuraciones de publicación, visibilidad de la búsqueda de directorio y punto de aterrizaje &amp; opciones de ruta de TP."
+ description="Estas capacidades incluyen poder cambiar el nombre de la parcela y su configuración, así como si se muestra en Buscar y las opciones del punto de llegada y el de teleporte."
name="Parcel Identity">
<action
- description="Activar/desactivar &apos;Exhibir en locales de encuentro&apos; y definir categoría"
- longdescription="Activar/desactivar &apos;Exhibir en locales de encuentro&apos; y configurar una categoría de parcela en Sobre el terreno &gt; pestaña Opciones."
+ description="Activar/desactivar &apos;Mostrar en Buscar&apos; y el definir la categoría"
+ longdescription="Activar/desactivar el &apos;Mostrar en Buscar&apos; y en que categoría se mostrará en Acerca del terreno &gt; pestaña Opciones."
name="land find places" value="17" />
<action
- description="Cambiar nombre de la parcela, descripción, y configuraciones &apos;Publicar en la web&apos;"
- longdescription="Cambie el nombre de la parcela, descripción y configuraciones de &apos;Publicar en la web&apos;. Es hecho en Sobre el terreno &gt; pestaña Opciones."
+ description="Cambiar el nombre de la parcela, la descripción, y la configuración de &apos;Mostrar en Buscar&apos;"
+ longdescription="Cambiar el nombre y descripción de la parcela, y la configuración de &apos;Mostrar en Buscar&apos;. Se hace en Acerca del terreno &gt; pestaña Opciones."
name="land change identity" value="18" />
- <action description="Definir punto de aterrizaje y ruta de teletransporte"
- longdescription="En una parcela perteneciente al grupo, miembros en una función con esta habilidad pueden definir un punto de aterrizaje para especificar donde los teletransportes llegan y también definir la ruta del teletransporte para un mayor control. Es hecho en Sobre el terreno &gt; pestaña Opciones."
+ <action description="Definir los puntos de llegada y teleporte"
+ longdescription="En una parcela perteneciente al grupo, los miembros con un rol que tenga esta capacidad pueden precisar el punto de llegada o el de teleporte. Se hace en Acerca del terreno &gt; pestaña Opciones."
name="land set landing point" value="19" />
</action_set>
<action_set
- description="Estas habilidades incluyen poderes que afectan opciones de parcela, como &apos;Crear objetos&apos;, &apos;Editar terreno&apos; y música &amp; configuraciones de multimedia."
+ description="Estas capacidades incluyen poderes que afectan a las opciones de la parcela, como &apos;Crear objetos&apos;, &apos;Editar el terreno&apos; y las configuraciones de la música y los media."
name="Parcel Settings">
- <action description="Cambiar música &amp; configuraciones de multimedia"
- longdescription="Cambie streaming de música y configuraciones de vídeo en Sobre el terreno &gt; pestaña Multimedia."
+ <action description="Cambiar música y configuraciones de los media"
+ longdescription="Cambiar la música en streaming y las configuraciones de vídeo en Acerca del terreno &gt; pestaña Media."
name="land change media" value="20" />
- <action description="Activar/desactivar &apos;Editar terreno&apos;"
- longdescription="Active/desactive &apos;Editar terreno&apos;. *AVISO* Sobre el terreno &gt; pestaña Opciones &gt; Editar terreno permite a cualquiera alterar las formas de su terreno&apos;, sustituir y mover plantas Linden. Asegúrese de saber lo que está haciendo antes de designar esta habilidad. La edición de terreno es activada/desactivada en Sobre el terreno &gt; pestaña Opciones."
+ <action description="Activar/desactivar &apos;Editar el terreno&apos;"
+ longdescription="Activar/desactivar &apos;Editar el terreno&apos;. *AVISO* Acerca del terreno &gt; pestaña Opciones &gt; Editar el terreno, permite a cualquiera alterar la forma de su terreno y sustituir y mover plantas Linden. Asegúrese de lo que está haciendo antes de otorgar esta capacidad. La edición del terreno se activada/desactiva en Acerca del terreno &gt; pestaña Opciones."
name="land edit" value="21" />
<action
- description="Activar/desactivar variados Sobre el Terreno &gt; Opciones de configuraciones"
- longdescription="Active/desactive &apos;Seguro (sin daño)&apos;, &apos;Volar&apos;, y permita a otros residentes: &apos;Crear objetos&apos;, &apos;Editar terreno&apos;, &apos;Crear puntos de referencia&apos;, y &apos;Ejecutar scripts&apos; en un terreno perteneciente al grupo en Sobre el terreno &gt; pestaña Opciones."
+ description="Activar/desactivar varios ítems de Acerca del terreno &gt; Opciones"
+ longdescription="Activar/desactivar en un terreno del grupo los ítems de Acerca del terreno &gt; pestaña Opciones: &apos;Seguro (sin daño)&apos;, &apos;Volar&apos;, y permitir a otros residentes: &apos;Crear objetos&apos;, &apos;Editar el terreno&apos;, &apos;Crear hitos&apos;, y &apos;Ejecutar scripts&apos;."
name="land options" value="22" />
</action_set>
<action_set
- description="Estas habilidades incluyen poderes que permiten a miembros rebasar restricciones en parcelas pertenecientes al grupo."
+ description="Estas capacidades incluyen poderes que permiten a los miembros rebasar las restricciones de parcelas pertenecientes al grupo."
name="Parcel Powers">
- <action description="Siempre permitir &apos;Editar terreno&apos;"
- longdescription="Miembros en una función con esta habilidad pueden editar terreno en una parcela perteneciente al grupo, mismo si está desactivada en Sobre el terreno &gt; pestaña Opciones."
+ <action description="Permitir siempre &apos;Editar el terreno&apos;"
+ longdescription="Quien tenga un rol con esta capacidad puede editar el terreno de una parcela perteneciente al grupo aunque eso esté desactivado en Acerca del terreno &gt; pestaña Opciones."
name="land allow edit land" value="23" />
- <action description="Siempre permitir &apos;Volar&apos;"
- longdescription="Miembros en una función con esta habilidad pueden volar sobre una parcela perteneciente al grupo, mismo si está desactivada en Sobre el terreno &gt; pestaña Opciones."
+ <action description="Permitir siempre &apos;Volar&apos;"
+ longdescription="Quien tenga un rol con esta capacidad puede volar sobre una parcela perteneciente al grupo aunque eso esté desactivado en Acerca del terreno &gt; pestaña Opciones."
name="land allow fly" value="24" />
- <action description="Siempre permitir &apos;Crear objetos&apos;"
- longdescription="Miembros en una función con esta habilidad pueden crear objetos en una parcela perteneciente al grupo, mismo si está desactivada en Sobre el terreno &gt; pestaña Opciones."
+ <action description="Permitir siempre &apos;Crear objetos&apos;"
+ longdescription="Quien tenga un rol con esta capacidad puede crear objetos en una parcela perteneciente al grupo aunque eso esté desactivado en Acerca del terreno &gt; pestaña Opciones."
name="land allow create" value="25" />
- <action description="Siempre permitir &apos;Crear punto de referencia&apos;"
- longdescription="Miembros en una función con esta habilidad pueden poner un punto de referencia en una parcela perteneciente al grupo, mismo si está desactivada en Sobre el terreno &gt; pestaña Opciones."
+ <action description="Permitir siempre &apos;Crear hitos&apos;"
+ longdescription="Quien tenga un rol con esta capacidad puede crear un hito en una parcela perteneciente al grupo aunque eso esté desactivado en Acerca del terreno &gt; pestaña Opciones."
name="land allow landmark" value="26" />
- <action description="Permitir &apos;Colocar casa aquí&apos; en el terreno del grupo"
- longdescription="Miembros en una función con esta habilidad pueden usar el menú Mundo &gt; Definir hogar aquí en una parcela del grupo (definir terreno o transferir para este grupo)."
+ <action description="Permitir &apos;Fijar mi Base aquí&apos; en el terreno del grupo"
+ longdescription="Quien tenga un rol con esta capacidad puede usar el menú Mundo &gt; Fijar mi Base aquí en una parcela transferida al grupo."
name="land allow set home" value="28" />
</action_set>
<action_set
- description="Estas habilidades incluyen poderes de permitir o restringir acceso a parcelas pertenecientes al grupo, incluyendo congelar y expulsar a residentes."
+ description="Estas capacidades incluyen poderes para permitir o restringir el acceso a parcelas pertenecientes al grupo, incluyendo el congelar y expulsar a residentes."
name="Parcel Access">
- <action description="Administrar listas de acceso a la parcela"
- longdescription="Administre la lista de acceso a la parcela en Sobre el terreno &gt; pestaña Acceso."
+ <action description="Administrar las listas de acceso a la parcela"
+ longdescription="Administre las listas de acceso a la parcela en Acerca del terreno &gt; pestaña Acceso."
name="land manage allowed" value="29" />
- <action description="Administrar lista de desterrados de la parcela"
- longdescription="Administre la lista de desterrados de la parcela en Sobre el terreno &gt; pestaña Desterrado."
+ <action description="Administrar la lista de residentes con el acceso prohibido"
+ longdescription="Administrar la lista de residentes con el acceso prohibido a la parcela en Acerca del terreno &gt; pestaña Acceso."
name="land manage banned" value="30" />
- <action description="Cambiar configuraciones de parcela &apos;Vender pases...&apos;"
- longdescription="Cambie configuraciones de &apos;Vender pases...&apos; en Sobre el terreno &gt; pestaña Acceso."
+ <action description="Cambiar en las configuraciones de parcela el &apos;Vender pases a...&apos;"
+ longdescription="Cambiar la configuración de &apos;Vender pases a...&apos; en Acerca del terreno &gt; pestaña Acceso."
name="land manage passes" value="31" />
<action description="Expulsar y congelar residentes en las parcelas"
- longdescription="Miembros en una función con esta habilidad pueden lidiar con un residente indeseado en una parcela perteneciente al grupo haciendo clic con el botón derecho sobre él, Más &gt; y seleccionando &apos;Expulsar...&apos; o &apos;Congelar...&apos;."
+ longdescription="Quien tenga un rol con esta capacidad puede actuar frente a un residente indeseado en una parcela del grupo pulsando con el botón derecho sobre él, Más &gt; y seleccionando &apos;Expulsar...&apos; o &apos;Congelar...&apos;."
name="land admin" value="32" />
</action_set>
<action_set
- description="Estas habilidades incluyen poderes de permitir a miembros devolver objetos y poner y mover plantas Linden. Útil para que miembros organicen el paisaje, pero debe ser usado con cuidado, debido a no ser posible deshacer la mudanza de los objetos."
+ description="Estas capacidades incluyen poderes que permitan a los miembros devolver objetos y poner y mover plantas Linden. Es útil para que miembros organicen el paisaje, pero debe ser usado con cuidado, ya que no se pueden deshacer esos cambios en los objetos."
name="Parcel Content">
<action description="Devolver objetos que pertenecen al grupo"
- longdescription="Devuelva objetos en parcelas pertenecientes al grupo que pertenecen al grupo en Sobre el terreno &gt; pestaña Objetos."
+ longdescription="Devolver objetos pertenecientes al grupo en parcelas de su propiedad en Acerca del terreno &gt; pestaña Objetos."
name="land return group owned" value="48" />
<action description="Devolver objetos definidos para el grupo"
- longdescription="Devuelva objetos en parcelas pertenecientes al grupo en Sobre el terreno &gt; pestaña Objetos."
+ longdescription="Devuelva objetos en parcelas pertenecientes al grupo en Acerca del terreno &gt; pestaña Objetos."
name="land return group set" value="33" />
<action description="Devolver objetos que no pertenecen al grupo"
- longdescription="Devuelva objetos en las parcelas pertenecientes a un grupo que está sin grupo en el Sobre el terreno &gt; pestaña Objetos."
+ longdescription="Devuolver objetos que estén en una parcela del grupo y pertenezcan a alguien que no sea del grupo en Acerca del terreno &gt; pestaña Objetos."
name="land return non group" value="34" />
- <action description="Enjardinar usando plantas Linden"
- longdescription="La habilidad de enjardinar permite poner y mover árboles Linden, plantas y céspedes. Estos ítems pueden ser encontrados en la&apos;s Biblioteca de su inventario &gt; carpeta Objetos o pueden ser criados a través del botón Construir."
+ <action description="Modificar el paisaje usando plantas Linden"
+ longdescription="La capacidad de modificar el paisaje permite poner y mover árboles Linden, plantas y arbustos. Estos ítems están en la &apos;s Biblioteca de su Inventario &gt; carpeta Objetos, o pueden crearse con el botón Construir."
name="land gardening" value="35" />
</action_set>
<action_set
- description="These Abilities include powers to deed, modify, and sell group-owned objects. These changes are done in the Edit Tools &gt; General Tab. Right-click an object and Edit to see its settings. "
+ description="Estas capacidades incluyen poderes para tranferir, modificar y vender objetos pertenecientes al grupo. Estos cambios se hacen en la pestaña General de la herramienta de edición. Para verlo, pulse en un objeto con el botón derecho y elija Editar. "
name="Object Management">
- <action description="Transferir objetos para el grupo"
- longdescription="Transfiere objetos para el grupo en Editar herramientas &gt; pestaña General."
+ <action description="Transferir objetos al grupo"
+ longdescription="Transferir objetos al grupo en Editar &gt; pestaña General."
name="object deed" value="36" />
- <action description="Manipular (mover, copiar, modificar) objetos del grupo"
- longdescription="Manipule (mover,copiar, modificar) objetos pertenecientes al grupo en Editar Herramientas &gt; pestaña General."
+ <action description="Manipular (mover, copiar, y modificar) objetos del grupo"
+ longdescription="Manipular (mover, copiar, y modificar) objetos pertenecientes al grupo en Editar &gt; pestaña General."
name="object manipulate" value="38" />
- <action description="Definir objetos pertenecientes al grupo para venta"
- longdescription="Defina objetos pertenecientes al grupo para venta en Editar Herramientas &gt; pestaña General."
+ <action description="Vender objetos pertenecientes al grupo"
+ longdescription="Poner a la venta objetos pertenecientes al grupo para venta en Editar &gt; pestaña General."
name="object set sale" value="39" />
</action_set>
<action_set
- description="Estas habilidades incluyen poderes que requieren que miembros paguen deudas y reciban dividendos del grupo, y restringen acceso al historial de cuenta del grupo."
+ description="Estas habilidades incluyen poderes para que los miembros paguen deudas del grupo o reciban sus dividendos, y para limitar el acceso al historial de la cuenta del grupo."
name="Accounting">
- <action description="Pagar débitos y reciber dividendos del grupo"
- longdescription="Members in a Role with this Ability will automatically pay group liabilities and receive group dividends. This means they will receive a portion of group-owned land sales which are distributed daily, as well as contribute towards things like parcel listing fees. "
+ <action description="Pagar deudas y recibir dividendos del grupo"
+ longdescription="Quien tenga un rol con esta capacidad, automáticamente pagará deudas del grupo y recibirá sus dividendos. Esto significa que recibirá una parte de las ventas de terreno de grupo, y que contribuirá a cosas como, por ejemplo, las cuotas por posesión de terreno. "
name="accounting accountable" value="40" />
</action_set>
<action_set
- description="Estas habilidades incluyen poderes de permitir enviar, recibir y ver avisos de grupo."
+ description="Estas habilidades incluyen poderes para enviar, recibir y ver avisos de grupo."
name="Notices">
<action description="Enviar aviso"
- longdescription="Miembros en una función con esta habilidad pueden enviar avisos en Informaciones de grupo &gt; pestaña Avisos."
+ longdescription="Quien tenga un rol con esta capacidad puede enviar avisos en Información del grupo &gt; pestaña Avisos."
name="notices send" value="42" />
- <action description="Reciber nuevos avisos y ver los anteriores"
- longdescription="Miembros en una función con esta habilidad pueden recibir los nuevos avisos y ver los anteriores en Informaciones de grupo &gt; pestaña Avisos."
+ <action description="Recibir avisos nuevos y ver los anteriores"
+ longdescription="Quien tenga un rol con esta capacidad puede recibir los avisos nuevos, y ver los anteriores en Información del grupo &gt; pestaña Avisos."
name="notices receive" value="43" />
</action_set>
<action_set
- description="Estas habilidades incluyen poderes de permitir a miembros definir y votar en propuestas y ver historial de votación."
+ description="Estas habilidades incluyen poderes para permitir a los miembros crear propuestas, votarlas, y ver el historial de votaciones."
name="Proposals">
- <action description="Crear propuesta"
- longdescription="Miembros en una función con esta habilidad pueden crear propuestas para que sean votadas en Informaciones de grupo &gt; pestaña Propuestas."
+ <action description="Hacer una propuesta"
+ longdescription="Quien tenga un rol con esta capacidad puede crear propuestas para que sean votadas en Información del grupo &gt; pestaña Propuestas."
name="proposal start" value="44" />
<action description="Votar en propuestas"
- longdescription="Miembros en una función con esta habilidad pueden votar en propuestas en Informaciones de grupo &gt; pestaña Propuestas."
+ longdescription="Quien tenga un rol con esta capacidad puede votar las propuestas en Información del grupo &gt; pestaña Propuestas."
name="proposal vote" value="45" />
</action_set>
+ <action_set
+ description="Estas capacidades incluyen poderes para permitir o no el aceso a las sesiones de chat del grupo y al chat de voz del mismo."
+ name="Chat">
+ <action description="Abrir chat de grupo"
+ longdescription="Quien tenga un rol con esta capacidad puede abrir sesiones de chat del grupo, tanto de texto como de voz."
+ name="join group chat" value="16" />
+ <action description="Abrir chat de voz del grupo"
+ longdescription="Quien tenga un rol con esta capacidad puede abrir sesiones de chat de voz del grupo. NOTA: para acceder al chat de voz debe tenerse la capacidad &apos;Abrir chat de grupo&apos;."
+ name="join voice chat" value="27" />
+ <action description="Moderar el chat de grupo"
+ longdescription="Quien tenga esta capacidad puede controlar el acceso y la participación en los chats de texto y de voz del grupo."
+ name="moderate group chat" value="37" />
+ </action_set>
</role_actions>
diff --git a/indra/newview/skins/default/xui/es/strings.xml b/indra/newview/skins/default/xui/es/strings.xml
index 4793f6c661..96bf0ea865 100644
--- a/indra/newview/skins/default/xui/es/strings.xml
+++ b/indra/newview/skins/default/xui/es/strings.xml
@@ -55,6 +55,9 @@
<string name="LoginDownloadingClothing">
Descargando la ropa...
</string>
+ <string name="Quit">
+ Salir
+ </string>
<string name="AgentLostConnection">
Esta región puede estar teniendo problemas. Por favor, compruebe su conexión a internet.
</string>
diff --git a/indra/newview/skins/default/xui/fr/notifications.xml b/indra/newview/skins/default/xui/fr/notifications.xml
index 30092a426f..7d2cdd8454 100644
--- a/indra/newview/skins/default/xui/fr/notifications.xml
+++ b/indra/newview/skins/default/xui/fr/notifications.xml
@@ -6,6 +6,9 @@
<global name="alwayschoose">
Toujours choisir cette option
</global>
+ <global name="implicitclosebutton">
+ Fermer
+ </global>
<template name="okbutton">
<form>
<button
@@ -2877,7 +2880,7 @@ Les objets flexibles ne peuvent pas avoir de propriétés physiques et doivent r
<notification name="FirstDebugMenus">
Vous avez activé le menu Avancé.
Ce menu contient des fonctionnalités utiles pour les développeurs qui travaillent sur Second Life.
-Pour activer/désactiver ce menu sous Windows, appuyez sur Ctrl-Alt-D. Sur un Mac, appuyez sur Cmd-Opt-Maj-D
+Pour activer/désactiver ce menu sous Windows, appuyez sur Ctrl-Alt-D. Sur un Mac, appuyez sur &#8984;-Opt-Maj-D
</notification>
<notification name="FirstSculptedPrim">
Vous êtes en train d&apos;éditer un sculptie.
diff --git a/indra/newview/skins/default/xui/it/floater_tools.xml b/indra/newview/skins/default/xui/it/floater_tools.xml
index a89ae9d803..3c79cd8829 100644
--- a/indra/newview/skins/default/xui/it/floater_tools.xml
+++ b/indra/newview/skins/default/xui/it/floater_tools.xml
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="toolbox floater" title="">
+<floater name="toolbox floater" title="" short_title="Costruisci" width="288">
<button label="" label_selected="" name="button focus" tool_tip="Focus"/>
<button label="" label_selected="" name="button move" tool_tip="Muoviti"/>
<button label="" label_selected="" name="button edit" tool_tip="Modifica"/>
<button label="" label_selected="" name="button create" tool_tip="Crea"/>
<button label="" label_selected="" name="button land" tool_tip="Terra"/>
<check_box label="Zoom" name="radio zoom"/>
- <check_box label="Guarda ruotando(Ctrl)" name="radio orbit"/>
+ <check_box label="Guarda ruotando (Ctrl)" name="radio orbit"/>
<check_box label="Guarda panoramicamente (Ctrl-Shift)" name="radio pan"/>
<check_box label="Muovi" name="radio move"/>
<check_box label="Alza (Ctrl)" name="radio lift"/>
@@ -17,9 +17,9 @@
<check_box label="Seleziona Texture" name="radio select face"/>
<check_box label="Modifica parti unite" name="checkbox edit linked parts"/>
<text name="text ruler mode">
- Modalità regolo di precisione:
+ Modalità:
</text>
- <combo_box name="combobox grid mode">
+ <combo_box name="combobox grid mode" left_delta="48">
<combo_item name="World">
Globale
</combo_item>
@@ -30,11 +30,11 @@
Riferito a
</combo_item>
</combo_box>
- <check_box label="Ridimensiona simmetricamente" name="checkbox uniform"/>
- <check_box label="Ridimensiona le Texture" name="checkbox stretch textures"/>
+ <check_box label="Ridimens. simmetricamente" name="checkbox uniform"/>
+ <check_box label="Ridimensiona le texture" name="checkbox stretch textures"/>
<check_box label="Usa righello" name="checkbox snap to grid"/>
<button label="Opzioni..." label_selected="Opzioni..." name="Options..."/>
- <text name="text status">
+ <text name="text status" width="280">
Trascina per muovere, trascina+maiuscolo per copiare
</text>
<button label="" label_selected="" name="ToolCube" tool_tip="Cubo"/>
@@ -63,23 +63,24 @@
<check_box label="Uniforma" name="radio smooth"/>
<check_box label="Ondula" name="radio noise"/>
<check_box label="Ripristina" name="radio revert"/>
- <button label="Applica" label_selected="Applica" name="button apply to selection" tool_tip="Modifica il terreno selezionato"/>
+ <button label="Applica" label_selected="Applica" name="button apply to selection" tool_tip="Modifica il terreno selezionato" left="146"/>
<text name="Bulldozer:">
Bulldozer:
</text>
<text name="Dozer Size:">
Grandezza
</text>
+ <volume_slider left="184" name="slider brush size" width="74" />
<text name="Strength:">
Potenza
</text>
- <text name="obj_count">
+ <text name="obj_count" left="134">
Oggetti selezionati: [COUNT]
</text>
- <text name="prim_count">
- primitive: [COUNT]
+ <text name="prim_count" left="134">
+ primitivi: [COUNT]
</text>
- <tab_container name="Object Info Tabs">
+ <tab_container name="Object Info Tabs" tab_max_width="150" tab_min_width="30" width="288">
<panel label="Generale" name="General">
<text name="Name:">
Nome:
@@ -121,7 +122,7 @@
<string name="text deed">
Cedi al gruppo
</string>
- <button label="Cedi al gruppo..." label_selected="Cedi al gruppo..." name="button deed" tool_tip="Gli oggetti condivisi con il gruppo possono essere ceduti da un funzionario del gruppo."/>
+ <button left_delta="152" width="98" label="Cedi al gruppo..." label_selected="Cedi al gruppo..." name="button deed" tool_tip="Gli oggetti condivisi con il gruppo possono essere ceduti da un funzionario del gruppo."/>
<check_box label="Permetti a chiunque di spostare" name="checkbox allow everyone move"/>
<check_box label="Permetti a chiunque di copiare" name="checkbox allow everyone copy"/>
<check_box label="Mostra nella ricerca" name="search_check" tool_tip="Permetti che l&apos;oggetto sia visibile nella ricerca"/>
@@ -144,12 +145,12 @@
Il prossimo proprietario può:
</text>
<check_box label="Modificare" name="checkbox next owner can modify"/>
- <check_box label="Copiare" name="checkbox next owner can copy"/>
- <check_box label="Rivendere/Regalare" name="checkbox next owner can transfer"/>
- <text name="label click action">
- Se cliccato con il tasto sinistro del mouse
+ <check_box label="Copiare" name="checkbox next owner can copy" left_delta="80"/>
+ <check_box label="Rivendere/Regalare" name="checkbox next owner can transfer" left_delta="67"/>
+ <text name="label click action" width="220">
+ Se cliccato con il tasto sinistro del mouse:
</text>
- <combo_box name="clickaction">
+ <combo_box name="clickaction" width="192">
<combo_item name="Touch/grab(default)">
Tocca/Afferra (default)
</combo_item>
@@ -176,7 +177,7 @@
B:
</text>
<text name="O:">
- O;
+ O:
</text>
<text name="G:">
G:
@@ -206,7 +207,7 @@
Devi selezionare l&apos;intero oggetto per impostare i permessi.
</string>
<string name="Cost Default">
- Prezzo: L$
+ Prezzo: L$
</string>
<string name="Cost Total">
Prezzo totale: L$
@@ -351,7 +352,7 @@
</text>
<spinner label="X" name="Shear X"/>
<spinner label="Y" name="Shear Y"/>
- <text name="advanced_cut">
+ <text name="advanced_cut" width="149">
Ritaglia il profilo Inizio e Fine
</text>
<text name="advanced_dimple">
@@ -398,29 +399,29 @@
</combo_box>
</panel>
<panel label="Caratteristiche" name="Features">
- <text name="select_single">
+ <text name="select_single" width="280">
Seleziona solo un prim per modificarne le caratteristiche.
</text>
<text name="edit_object">
Modifica le caratteristiche dell&apos;oggetto:
</text>
<check_box label="Flessibilità" name="Flexible1D Checkbox Ctrl" tool_tip="Permette all&apos;oggetto di flettersi rispetto all&apos;asse Z. (solo lato client)"/>
- <spinner label="Morbidezza" name="FlexNumSections"/>
- <spinner label="Gravità" name="FlexGravity"/>
- <spinner label="Elasticità" name="FlexFriction"/>
- <spinner label="Sventolio" name="FlexWind"/>
- <spinner label="Tensione" name="FlexTension"/>
- <spinner label="Forza X" name="FlexForceX"/>
- <spinner label="Forza Y" name="FlexForceY"/>
- <spinner label="Forza Z" name="FlexForceZ"/>
+ <spinner label="Morbidezza" name="FlexNumSections" label_width="72" width="135"/>
+ <spinner label="Gravità" name="FlexGravity" label_width="72" width="135"/>
+ <spinner label="Elasticità" name="FlexFriction" label_width="72" width="135"/>
+ <spinner label="Sventolio" name="FlexWind" label_width="72" width="135"/>
+ <spinner label="Tensione" name="FlexTension" label_width="72" width="135"/>
+ <spinner label="Forza X" name="FlexForceX" label_width="72" width="135"/>
+ <spinner label="Forza Y" name="FlexForceY" label_width="72" width="135"/>
+ <spinner label="Forza Z" name="FlexForceZ" label_width="72" width="135"/>
<check_box label="Luce" name="Light Checkbox Ctrl" tool_tip="Imposta l&apos;oggetto come sorgente di luce"/>
<text name="label color">
Colore
</text>
<color_swatch label="" name="colorswatch" tool_tip="Clicca per aprire la tavolozza dei colori"/>
- <spinner label="Intensità" name="Light Intensity"/>
- <spinner label="Raggio" name="Light Radius"/>
- <spinner label="Attenuazione" name="Light Falloff"/>
+ <spinner label="Intensità" name="Light Intensity" label_width="72" width="135"/>
+ <spinner label="Raggio" name="Light Radius" label_width="72" width="135"/>
+ <spinner label="Attenuazione" name="Light Falloff" label_width="72" width="135" />
</panel>
<panel label="Texture" name="Texture">
<texture_picker label="Texture" name="texture control" tool_tip="Clicca per scegliere un&apos;immagine"/>
@@ -431,11 +432,11 @@
<text name="glow label">
Bagliore
</text>
- <check_box label="Massima luminosità" name="checkbox fullbright"/>
+ <check_box label="Massima &#10;luminosità" name="checkbox fullbright" bottom_delta="-21"/>
<text name="tex gen">
- Applicazione della texture
+ Applicazione &#10;della texture
</text>
- <combo_box name="combobox texgen">
+ <combo_box name="combobox texgen" bottom_delta="-38">
<combo_item name="Default">
Default
</combo_item>
@@ -443,10 +444,10 @@
Planare
</combo_item>
</combo_box>
- <text name="label shininess">
+ <text name="label shininess" bottom="-120">
Brillantezza
</text>
- <combo_box name="combobox shininess">
+ <combo_box name="combobox shininess" bottom_delta="-22">
<combo_item name="None">
Nessuna
</combo_item>
@@ -460,10 +461,10 @@
Alta
</combo_item>
</combo_box>
- <text name="label bumpiness">
+ <text name="label bumpiness" bottom="-120">
Rilievo
</text>
- <combo_box name="combobox bumpiness">
+ <combo_box name="combobox bumpiness" width="100" bottom_delta="-22">
<combo_item name="None">
Nessuna
</combo_item>
@@ -538,7 +539,9 @@
<text name="rpt">
Ripetizioni per metro
</text>
- <button label="Applica" label_selected="Applica" name="button apply"/>
+ <spinner left="120" name="TexRot" width="60" />
+ <spinner left="120" name="rptctrl" width="60" />
+ <button label="Applica" label_selected="Applica" name="button apply" left_delta="72"/>
<text name="tex offset">
Offset
</text>
@@ -548,11 +551,12 @@
Allinea texture dei media
(deve prima caricarsi)
</text>
- <button label="Allinea" label_selected="Allinea" name="button align"/>
+ <button label="Allinea" label_selected="Allinea" name="button align" left="160"/>
</panel>
<panel label="Contenuto" name="Contents">
<button label="Nuovo Script" label_selected="Nuovo script..." name="button new script"/>
<button label="Permessi..." name="button permissions"/>
+ <panel name="ContentsInventory" width="272" />
</panel>
</tab_container>
<panel name="land info panel">
@@ -560,24 +564,24 @@
Informazioni sul terreno
</text>
<text name="label_area_price">
- Prezzo: [PRICE] L$ per [AREA] mq.
+ Prezzo: [PRICE] L$ per [AREA] m²
</text>
<text name="label_area">
- Area: [AREA] mq.
+ Area: [AREA] m²
</text>
- <button label="Informazioni sul terreno..." label_selected="Informazioni sul terreno..." name="button about land"/>
+ <button label="Informazioni sul terreno..." label_selected="Informazioni sul terreno..." name="button about land" width="156"/>
<check_box label="Mostra i proprietari" name="checkbox show owners" tool_tip="Colora i terreni in base ai loro proprietari"/>
- <button label="?" label_selected="?" name="button show owners help"/>
+ <button label="?" label_selected="?" name="button show owners help" left_delta="120"/>
<text name="label_parcel_modify">
Modifica il terreno
</text>
- <button label="Suddividi..." label_selected="Suddividi..." name="button subdivide land"/>
- <button label="Unisci..." label_selected="Unisci..." name="button join land"/>
+ <button label="Suddividi..." label_selected="Suddividi..." name="button subdivide land" width="156"/>
+ <button label="Unisci..." label_selected="Unisci..." name="button join land" width="156"/>
<text name="label_parcel_trans">
Transazioni del territorio
</text>
- <button label="Acquista il terreno..." label_selected="Acquista il terreno..." name="button buy land"/>
- <button label="Abbandona il terreno..." label_selected="Abbandona il terreno..." name="button abandon land"/>
+ <button label="Acquista il terreno..." label_selected="Acquista il terreno..." name="button buy land" width="156"/>
+ <button label="Abbandona il terreno..." label_selected="Abbandona il terreno..." name="button abandon land" width="156"/>
</panel>
<string name="status_rotate">
Sposta le fasce colorate per ruotare l&apos;oggetto
diff --git a/indra/newview/skins/default/xui/it/notifications.xml b/indra/newview/skins/default/xui/it/notifications.xml
index a9edf6766e..9e54bc24a9 100644
--- a/indra/newview/skins/default/xui/it/notifications.xml
+++ b/indra/newview/skins/default/xui/it/notifications.xml
@@ -6,6 +6,9 @@
<global name="alwayschoose">
Scegli sempre questa opzione
</global>
+ <global name="implicitclosebutton">
+ Chiudi
+ </global>
<template name="okbutton">
<form>
<button
@@ -2957,7 +2960,7 @@ Gli oggetti flessibili non possono essere fisici e devano essere fantasma fino a
<notification name="FirstDebugMenus">
Hai attivato il menu Avanzato.
Questo menu contiene funzioni utili per gli sviluppatori per il debug di Second Life.
-Per attivare o disattivare questo menu su Windows premere Ctrl-Alt-D. Su Mac premere Cmd-Opt-Shift-D.
+Per attivare o disattivare questo menu su Windows premere Ctrl-Alt-D. Su Mac premere &#8984;-Opt-D.
</notification>
<notification name="FirstSculptedPrim">
Si sta modificando uno sculpted prim.
diff --git a/indra/newview/skins/default/xui/ja/notifications.xml b/indra/newview/skins/default/xui/ja/notifications.xml
index b33d883dc4..478bcfda18 100644
--- a/indra/newview/skins/default/xui/ja/notifications.xml
+++ b/indra/newview/skins/default/xui/ja/notifications.xml
@@ -6,6 +6,9 @@
<global name="alwayschoose">
常にこのオプションを選択
</global>
+ <global name="implicitclosebutton">
+ 閉じる
+ </global>
<template name="okbutton">
<form>
<button
@@ -3165,7 +3168,7 @@ Second Life をデバッグするデベロッパーにとって
有用な機能があります。
このメニューを切り替えるには、
WindowsではCtrl-Alt-Dを押します。
-Macの場合は、Cmd-Opt-Shift-Dを押してください。
+Macの場合は、&#8984;-Opt-Shift-Dを押してください。
</notification>
<notification name="FirstSculptedPrim">
スカルプトプリムを編集しています。
diff --git a/indra/newview/skins/default/xui/nl/menu_inventory.xml b/indra/newview/skins/default/xui/nl/menu_inventory.xml
index f406bcf6bc..6a514422b9 100644
--- a/indra/newview/skins/default/xui/nl/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/nl/menu_inventory.xml
@@ -12,7 +12,7 @@
<menu_item_call label="Nieuw script" name="New Script"/>
<menu_item_call label="Nieuwe notitie" name="New Note"/>
<menu_item_call label="Nieuw gebaar" name="New Gesture"/>
- <menu name="New Clothes">
+ <menu name="New Clothes" label="Nieuwe Kleding">
<menu_item_call label="Nieuw shirt" name="New Shirt"/>
<menu_item_call label="Nieuwe broek" name="New Pants"/>
<menu_item_call label="Nieuwe schoenen" name="New Shoes"/>
@@ -23,7 +23,7 @@
<menu_item_call label="Nieuw onderhemd" name="New Undershirt"/>
<menu_item_call label="Nieuwe onderbroek" name="New Underpants"/>
</menu>
- <menu name="New Body Parts">
+ <menu name="New Body Parts" label="Nieuwe Lichaamsdelen">
<menu_item_call label="Nieuwe postuur" name="New Shape"/>
<menu_item_call label="Nieuwe huid" name="New Skin"/>
<menu_item_call label="Nieuw haar" name="New Hair"/>
diff --git a/indra/newview/skins/default/xui/nl/notifications.xml b/indra/newview/skins/default/xui/nl/notifications.xml
index d6f13f1f33..4c64c93de3 100644
--- a/indra/newview/skins/default/xui/nl/notifications.xml
+++ b/indra/newview/skins/default/xui/nl/notifications.xml
@@ -6,6 +6,9 @@
<global name="alwayschoose">
Kies altijd deze optie
</global>
+ <global name="implicitclosebutton">
+ Sluiten
+ </global>
<template name="okbutton">
<form>
<button
@@ -2953,7 +2956,7 @@ Flexibele objecten mogen niet fysiek zijn en moeten fantoom zijn tot de &apos;fl
<notification name="FirstDebugMenus">
U heeft het menu Geavanceerd geactiveerd.
Dit menu bevat opties die handig zijn voor ontwikkelaars tijdens het debuggen van Second Life.
-Om dit menu in en uit te schakelen drukt u binnen Windows Ctrl-Alt-D. Met een Mac drukt u Cmd-Opt-Shift-D.
+Om dit menu in en uit te schakelen drukt u binnen Windows Ctrl-Alt-D. Met een Mac drukt u &#8984;-Opt-D.
</notification>
<notification name="FirstSculptedPrim">
U bent een sculpted prim aan het bewerken.
diff --git a/indra/newview/skins/default/xui/nl/strings.xml b/indra/newview/skins/default/xui/nl/strings.xml
index 4b64586887..49e566080a 100644
--- a/indra/newview/skins/default/xui/nl/strings.xml
+++ b/indra/newview/skins/default/xui/nl/strings.xml
@@ -55,6 +55,9 @@
<string name="LoginDownloadingClothing">
Kleding downloaden...
</string>
+ <string name="Quit">
+ Afsluiten
+ </string>
<string name="AgentLostConnection">
Deze regio kan problemen ondervinden. Controleer alstublieft uw verbinding met het internet.
</string>
diff --git a/indra/newview/skins/default/xui/pl/floater_god_tools.xml b/indra/newview/skins/default/xui/pl/floater_god_tools.xml
index c978da6d65..762b9f0f55 100755
--- a/indra/newview/skins/default/xui/pl/floater_god_tools.xml
+++ b/indra/newview/skins/default/xui/pl/floater_god_tools.xml
@@ -42,7 +42,7 @@
<line_editor left_delta="45" name="redirecty" width="35" />
<spinner name="billable factor"/>
<text name="billable factor text">
- Czynnik Płatnośći:
+ Czynnik Płatności:
</text>
<spinner name="land cost"/>
<text name="land cost text">
@@ -68,8 +68,8 @@
<text name="target_avatar_name">
(brak)
</text>
- <button label="Usuń cel &apos;s skryptowane obiekty na innych posiadłościach" label_selected="Usuń cel &apos;s skryptowane obiekty na innych posiadłościach" name="Delete Target&apos;s Scripted Objects On Others Land" />
- <button label="Usuń cel &apos;s skryptowane obiekty na jakichkolwiek posiadłościach" label_selected="Usuń cel &apos;s skryptowane obiekty na jakichkolwiek posiadłościach" name="Delete Target&apos;s Scripted Objects On *Any* Land" />
+ <button label="Usuń cel z oskryptowanych obiektów na innych posiadłościach" label_selected="Usuń cel &apos;s skryptowane obiekty na innych posiadłościach" name="Delete Target&apos;s Scripted Objects On Others Land" />
+ <button label="Usuń cel z oskryptowanych obiektów na jakichkolwiek posiadłościach" label_selected="Usuń cel &apos;s skryptowane obiekty na jakichkolwiek posiadłościach" name="Delete Target&apos;s Scripted Objects On *Any* Land" />
<button label="Usuń wszystkie cele i obiekty" label_selected="Usuń wszystkie cele i obiekty" name="Delete *ALL* Of Target&apos;s Objects" />
<button label="Główne Kolizje" label_selected="Główne Kolizje" name="Get Top Colliders" />
<button label="Główne Skrypty" label_selected="Główne Skrypty" name="Get Top Scripts" />
diff --git a/indra/newview/skins/default/xui/pl/notifications.xml b/indra/newview/skins/default/xui/pl/notifications.xml
index 74f92ba1c0..84075b9db8 100644
--- a/indra/newview/skins/default/xui/pl/notifications.xml
+++ b/indra/newview/skins/default/xui/pl/notifications.xml
@@ -6,6 +6,9 @@
<global name="alwayschoose">
Pozwalaj na wybór tej opcji
</global>
+ <global name="implicitclosebutton">
+ Zamknij
+ </global>
<template name="okbutton">
<form>
<button
@@ -2718,7 +2721,7 @@ Spróbuj ponowanie za kilka minut.
</form>
</notification>
<notification name="TeleportOffered">
- [NAME] proponuje Ci teleportcję do siebie:
+ [NAME] proponuje Ci teleportację do siebie:
[MESSAGE]
<form name="form">
@@ -2899,8 +2902,8 @@ Obiekty elastyczne nie mogą być fizyczne i muszą być typu fantom.
</notification>
<notification name="FirstDebugMenus">
Zaawansowane menu zostało włączone.
-To menu zawiera funkcje użyteczne dla programistów analizujących Secon Life.
-To menu jest włączne przez Ctrl-Alt-D pod Windows. Mac używa Cmd-Opt-Shift-D.
+To menu zawiera funkcje użyteczne dla programistów analizujących Second Life.
+To menu jest aktywowane dzięki kombinacji klawiszy Ctrl-Alt-D (Windows) lub &#8984;-Opt-D (Mac).
</notification>
<notification name="FirstSculptedPrim">
Edytujesz sculpt.
diff --git a/indra/newview/skins/default/xui/pl/strings.xml b/indra/newview/skins/default/xui/pl/strings.xml
index 5067f044e0..3ec2b45237 100755
--- a/indra/newview/skins/default/xui/pl/strings.xml
+++ b/indra/newview/skins/default/xui/pl/strings.xml
@@ -55,6 +55,9 @@
<string name="LoginDownloadingClothing">
Ładowanie ubrania...
</string>
+ <string name="Quit">
+ Wyjdź
+ </string>
<string name="AgentLostConnection">
Ten region może mieć problemy. Sprawdź podłączenie do Internetu.
</string>
diff --git a/indra/newview/skins/default/xui/pt/notifications.xml b/indra/newview/skins/default/xui/pt/notifications.xml
index 26c5f9debf..cc90b6d08f 100644
--- a/indra/newview/skins/default/xui/pt/notifications.xml
+++ b/indra/newview/skins/default/xui/pt/notifications.xml
@@ -6,6 +6,9 @@
<global name="alwayschoose">
Sempre escolher esta opção
</global>
+ <global name="implicitclosebutton">
+ Fechar
+ </global>
<template name="okbutton">
<form>
<button
@@ -2118,7 +2121,7 @@ Coloque-a em uma página web para dar aos outros um fácil acesso a este local o
</form>
</notification>
<notification name="GraphicsPreferencesHelp">
- Este painel controla o tamanho da janela, resolução e a qualidade dos gráficos do computador cliente. O Preferências &gt; Interface Gráfica permite escolher entre quatro níveis gráficos: Baixo, Médio, Alto e Ultra. Você também pode personalizar suas configurações de gráficos selecionando a opção Padrão e manipulando as seguintes definições:
+ Este painel controla o tamanho da janela, resolução e a qualidade dos gráficos do computador cliente. O Preferências &gt; Interface Gráfica permite escolher entre quatro níveis gráficos: Baixo, Médio, Alto e Ultra. Você também pode personalizar suas configurações de gráficos selecionando a opção Personalizar e manipulando as seguintes definições:
Sombreamento: Ativar ou desativar vários tipos de sombreadores de pixel.
@@ -2910,7 +2913,7 @@ Objetos flexíveis não podem ser físicos e devem ser fantasmas até que a caix
<notification name="FirstDebugMenus">
Você ativou o menu Avançado.
Este menu contém funcionalidades úteis para desenvolvedores debugarem o Second Life.
-Para mostrar esse menu no Windows pressione Ctrl-Alt-D. No Mac pressione Cmd-Opt-Shift-D.
+Para mostrar esse menu no Windows pressione Ctrl-Alt-D. No Mac pressione &#8984;-Opt-D.
</notification>
<notification name="FirstSculptedPrim">
Você está editando uma primitiva esculpida.
diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml
index ec46c8b99c..621e99c9c5 100644
--- a/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml
@@ -3,7 +3,7 @@
<button label="?" name="GraphicsPreferencesHelpButton"/>
<check_box label="Execute Second Life em uma janela" name="windowed mode"/>
<text_editor bottom="-56" height="40" name="FullScreenInfo" width="480">
- Se desmarcado, o visualizador irá exibir em tela inteira quando fizer o acesso.
+ Se desmarcado, o visualizador exibirá tela inteira quando fizer o acesso.
</text_editor>
<text name="WindowSizeLabel">
Tamanho da Janela:
@@ -56,7 +56,7 @@ rápido
<text name="QualityText2">
Qualidade
</text>
- <check_box label="Padrão" left="395" name="CustomSettings"/>
+ <check_box label="Personalizar" left="395" name="CustomSettings"/>
<text name="ShadersText">
Sombreadores:
</text>