summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/llagentwearables.cpp4
-rw-r--r--indra/newview/llappearancemgr.cpp49
-rw-r--r--indra/newview/llappearancemgr.h109
-rw-r--r--indra/newview/llappviewer.cpp4
-rw-r--r--indra/newview/llappviewer.h1
-rw-r--r--indra/newview/llcallfloater.cpp3
-rw-r--r--indra/newview/llchathistory.cpp5
-rw-r--r--indra/newview/llchiclet.cpp1
-rw-r--r--indra/newview/llcurrencyuimanager.cpp2
-rw-r--r--indra/newview/lleventpoll.cpp2
-rw-r--r--indra/newview/llfloatercamera.cpp24
-rw-r--r--indra/newview/llfloaterfriends.cpp2
-rw-r--r--indra/newview/llfloatergodtools.cpp14
-rw-r--r--indra/newview/llfloaterland.cpp4
-rw-r--r--indra/newview/llfloaternamedesc.cpp4
-rw-r--r--indra/newview/llfloaterpay.cpp2
-rw-r--r--indra/newview/llfloaterproperties.cpp4
-rw-r--r--indra/newview/llfloatersellland.cpp4
-rw-r--r--indra/newview/llfloateruipreview.cpp2
-rw-r--r--indra/newview/llfolderview.cpp2
-rw-r--r--indra/newview/llmediactrl.cpp24
-rwxr-xr-xindra/newview/llmediadataclient.h2
-rw-r--r--indra/newview/llnamelistctrl.cpp3
-rw-r--r--indra/newview/llpanelclassified.cpp4
-rw-r--r--indra/newview/llpanelgroupgeneral.cpp2
-rw-r--r--indra/newview/llpanellandaudio.cpp7
-rw-r--r--indra/newview/llpanellogin.cpp4
-rw-r--r--indra/newview/llpanelpeople.cpp1
-rw-r--r--indra/newview/llpanelpermissions.cpp4
-rw-r--r--indra/newview/llpanelplaces.cpp1
-rw-r--r--indra/newview/llpanelprimmediacontrols.cpp5
-rw-r--r--indra/newview/llpreviewanim.cpp2
-rw-r--r--indra/newview/llpreviewgesture.cpp6
-rw-r--r--indra/newview/llpreviewnotecard.cpp2
-rw-r--r--indra/newview/llpreviewscript.cpp2
-rw-r--r--indra/newview/llpreviewsound.cpp2
-rw-r--r--indra/newview/llpreviewtexture.cpp2
-rw-r--r--indra/newview/llsidepaneliteminfo.cpp4
-rw-r--r--indra/newview/llsidepaneltaskinfo.cpp4
-rw-r--r--indra/newview/llspeakers.cpp19
-rw-r--r--indra/newview/llspeakers.h11
-rw-r--r--indra/newview/llstartup.cpp60
-rw-r--r--indra/newview/llviewermediafocus.cpp12
-rw-r--r--indra/newview/llviewermediafocus.h2
-rw-r--r--indra/newview/llviewermessage.cpp12
-rw-r--r--indra/newview/llviewerobject.cpp9
-rw-r--r--indra/newview/llviewerparcelmediaautoplay.h2
-rw-r--r--indra/newview/llviewerparcelmgr.cpp6
-rw-r--r--indra/newview/llviewerwindow.cpp6
-rw-r--r--indra/newview/llvoavatar.h2
-rw-r--r--indra/newview/llvoavatarself.cpp8
-rw-r--r--indra/newview/llworldmapview.cpp6
-rw-r--r--indra/newview/skins/default/textures/textures.xml16
-rw-r--r--indra/newview/skins/default/xui/en/floater_about_land.xml9
-rw-r--r--indra/newview/skins/default/xui/en/floater_camera.xml2
-rw-r--r--indra/newview/skins/default/xui/en/floater_inventory.xml4
-rw-r--r--indra/newview/skins/default/xui/en/floater_test_inspectors.xml9
-rw-r--r--indra/newview/skins/default/xui/en/floater_test_text_editor.xml13
-rw-r--r--indra/newview/skins/default/xui/en/floater_world_map.xml12
-rw-r--r--indra/newview/skins/default/xui/en/panel_chat_header.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_classified_info.xml44
-rw-r--r--indra/newview/skins/default/xui/en/panel_classifieds_list_item.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_edit_classified.xml56
-rw-r--r--indra/newview/skins/default/xui/en/panel_edit_pick.xml47
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_notices.xml1
-rw-r--r--indra/newview/skins/default/xui/en/panel_landmark_info.xml1
-rw-r--r--indra/newview/skins/default/xui/en/panel_people.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_pick_info.xml34
-rw-r--r--indra/newview/skins/default/xui/en/panel_pick_list_item.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_picks.xml40
-rw-r--r--indra/newview/skins/default/xui/en/widgets/inspector.xml15
-rw-r--r--indra/newview/skins/default/xui/en/widgets/tool_tip.xml5
-rw-r--r--indra/newview/skins/default/xui/ja/floater_buy_currency.xml2
73 files changed, 524 insertions, 272 deletions
diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp
index 7cbd7e46a9..d560331392 100644
--- a/indra/newview/llagentwearables.cpp
+++ b/indra/newview/llagentwearables.cpp
@@ -1412,7 +1412,7 @@ LLUUID LLAgentWearables::makeNewOutfitLinks(const std::string& new_folder_name)
new_folder_name);
LLPointer<LLInventoryCallback> cb = new LLShowCreatedOutfit(folder_id);
- LLAppearanceManager::instance().shallowCopyCategory(LLAppearanceManager::instance().getCOF(),folder_id, cb);
+ LLAppearanceManager::instance().shallowCopyCategoryContents(LLAppearanceManager::instance().getCOF(),folder_id, cb);
LLAppearanceManager::instance().createBaseOutfitLink(folder_id, cb);
return folder_id;
@@ -2329,7 +2329,7 @@ void LLLibraryOutfitsFetch::libraryDone(void)
LLUUID folder_id = gInventory.createNewCategory(mImportedClothingID,
LLFolderType::FT_NONE,
iter->second);
- LLAppearanceManager::getInstance()->shallowCopyCategory(iter->first, folder_id, copy_waiter);
+ LLAppearanceManager::getInstance()->shallowCopyCategoryContents(iter->first, folder_id, copy_waiter);
}
}
else
diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp
index 326fc41c1e..0cceba6cb0 100644
--- a/indra/newview/llappearancemgr.cpp
+++ b/indra/newview/llappearancemgr.cpp
@@ -48,6 +48,31 @@
#include "llviewerregion.h"
#include "llwearablelist.h"
+LLUUID findDescendentCategoryIDByName(const LLUUID& parent_id,const std::string& name)
+{
+ LLInventoryModel::cat_array_t cat_array;
+ LLInventoryModel::item_array_t item_array;
+ LLNameCategoryCollector has_name(name);
+ gInventory.collectDescendentsIf(parent_id,
+ cat_array,
+ item_array,
+ LLInventoryModel::EXCLUDE_TRASH,
+ has_name);
+ if (0 == cat_array.count())
+ return LLUUID();
+ else
+ {
+ LLViewerInventoryCategory *cat = cat_array.get(0);
+ if (cat)
+ return cat->getUUID();
+ else
+ {
+ llwarns << "null cat" << llendl;
+ return LLUUID();
+ }
+ }
+}
+
// support for secondlife:///app/appearance SLapps
class LLAppearanceHandler : public LLCommandHandler
{
@@ -519,9 +544,33 @@ void LLAppearanceManager::changeOutfit(bool proceed, const LLUUID& category, boo
LLAppearanceManager::instance().updateCOF(category,append);
}
+// Create a copy of src_id + contents as a subfolder of dst_id.
void LLAppearanceManager::shallowCopyCategory(const LLUUID& src_id, const LLUUID& dst_id,
LLPointer<LLInventoryCallback> cb)
{
+ LLInventoryCategory *src_cat = gInventory.getCategory(src_id);
+ if (!src_cat)
+ {
+ llwarns << "folder not found for src " << src_id.asString() << llendl;
+ return;
+ }
+ LLUUID parent_id = dst_id;
+ if(parent_id.isNull())
+ {
+ parent_id = gInventory.getRootFolderID();
+ }
+ LLUUID subfolder_id = gInventory.createNewCategory( parent_id,
+ LLFolderType::FT_NONE,
+ src_cat->getName());
+ shallowCopyCategoryContents(src_id, subfolder_id, cb);
+
+ gInventory.notifyObservers();
+}
+
+// Copy contents of src_id to dst_id.
+void LLAppearanceManager::shallowCopyCategoryContents(const LLUUID& src_id, const LLUUID& dst_id,
+ LLPointer<LLInventoryCallback> cb)
+{
LLInventoryModel::cat_array_t cats;
LLInventoryModel::item_array_t items;
gInventory.collectDescendents(src_id, cats, items,
diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h
index 38d1e01d08..5fdff45735 100644
--- a/indra/newview/llappearancemgr.h
+++ b/indra/newview/llappearancemgr.h
@@ -35,6 +35,8 @@
#include "llsingleton.h"
#include "llinventorymodel.h"
+#include "llinventoryobserver.h"
+#include "llviewerinventory.h"
#include "llcallbacklist.h"
class LLWearable;
@@ -54,10 +56,14 @@ public:
void wearOutfitByName(const std::string& name);
void changeOutfit(bool proceed, const LLUUID& category, bool append);
- // Copy all items in a category.
+ // Copy all items and the src category itself.
void shallowCopyCategory(const LLUUID& src_id, const LLUUID& dst_id,
LLPointer<LLInventoryCallback> cb);
+ // Copy all items in a category.
+ void shallowCopyCategoryContents(const LLUUID& src_id, const LLUUID& dst_id,
+ LLPointer<LLInventoryCallback> cb);
+
// Find the Current Outfit folder.
const LLUUID getCOF() const;
@@ -144,6 +150,8 @@ public:
#define SUPPORT_ENSEMBLES 0
+LLUUID findDescendentCategoryIDByName(const LLUUID& parent_id,const std::string& name);
+
// Shim class and template function to allow arbitrary boost::bind
// expressions to be run as one-time idle callbacks.
template <typename T>
@@ -212,4 +220,103 @@ void doOnIdleRepeating(T callable)
gIdleCallbacks.addFunction(&OnIdleCallbackRepeating<T>::onIdle,cb_functor);
}
+template <class T>
+class CallAfterCategoryFetchStage2: public LLInventoryFetchObserver
+{
+public:
+ CallAfterCategoryFetchStage2(T callable):
+ mCallable(callable)
+ {
+ }
+ ~CallAfterCategoryFetchStage2()
+ {
+ }
+ virtual void done()
+ {
+ gInventory.removeObserver(this);
+ doOnIdle(mCallable);
+ delete this;
+ }
+protected:
+ T mCallable;
+};
+
+template <class T>
+class CallAfterCategoryFetchStage1: public LLInventoryFetchDescendentsObserver
+{
+public:
+ CallAfterCategoryFetchStage1(T callable):
+ mCallable(callable)
+ {
+ }
+ ~CallAfterCategoryFetchStage1()
+ {
+ }
+ virtual void done()
+ {
+ // What we do here is get the complete information on the items in
+ // the library, and set up an observer that will wait for that to
+ // happen.
+ LLInventoryModel::cat_array_t cat_array;
+ LLInventoryModel::item_array_t item_array;
+ gInventory.collectDescendents(mCompleteFolders.front(),
+ cat_array,
+ item_array,
+ LLInventoryModel::EXCLUDE_TRASH);
+ S32 count = item_array.count();
+ if(!count)
+ {
+ llwarns << "Nothing fetched in category " << mCompleteFolders.front()
+ << llendl;
+ //dec_busy_count();
+ gInventory.removeObserver(this);
+ delete this;
+ return;
+ }
+
+ CallAfterCategoryFetchStage2<T> *stage2 = new CallAfterCategoryFetchStage2<T>(mCallable);
+ LLInventoryFetchObserver::item_ref_t ids;
+ for(S32 i = 0; i < count; ++i)
+ {
+ ids.push_back(item_array.get(i)->getUUID());
+ }
+
+ gInventory.removeObserver(this);
+
+ // do the fetch
+ stage2->fetchItems(ids);
+ if(stage2->isEverythingComplete())
+ {
+ // everything is already here - call done.
+ stage2->done();
+ }
+ else
+ {
+ // it's all on it's way - add an observer, and the inventory
+ // will call done for us when everything is here.
+ gInventory.addObserver(stage2);
+ }
+ delete this;
+ }
+protected:
+ T mCallable;
+};
+
+template <class T>
+void callAfterCategoryFetch(const LLUUID& cat_id, T callable)
+{
+ CallAfterCategoryFetchStage1<T> *stage1 = new CallAfterCategoryFetchStage1<T>(callable);
+ LLInventoryFetchDescendentsObserver::folder_ref_t folders;
+ folders.push_back(cat_id);
+ stage1->fetchDescendents(folders);
+ if (stage1->isEverythingComplete())
+ {
+ stage1->done();
+ }
+ else
+ {
+ gInventory.addObserver(stage1);
+ }
+}
+
#endif
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 5a2152e1e7..98ec907886 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -40,6 +40,7 @@
#include "lluictrlfactory.h"
#include "lltexteditor.h"
#include "llerrorcontrol.h"
+#include "lleventtimer.h"
#include "llviewertexturelist.h"
#include "llgroupmgr.h"
#include "llagent.h"
@@ -2362,9 +2363,6 @@ bool LLAppViewer::initWindow()
// store setting in a global for easy access and modification
gNoRender = gSavedSettings.getBOOL("DisableRendering");
- // Hide the splash screen
- LLSplashScreen::hide();
-
// always start windowed
BOOL ignorePixelDepth = gSavedSettings.getBOOL("IgnorePixelDepth");
gViewerWindow = new LLViewerWindow(gWindowTitle,
diff --git a/indra/newview/llappviewer.h b/indra/newview/llappviewer.h
index a011c5ebfd..a915b7fa50 100644
--- a/indra/newview/llappviewer.h
+++ b/indra/newview/llappviewer.h
@@ -36,6 +36,7 @@
#include "llallocator.h"
#include "llcontrol.h"
#include "llsys.h" // for LLOSInfo
+#include "lltimer.h"
class LLCommandLineParser;
class LLFrameTimer;
diff --git a/indra/newview/llcallfloater.cpp b/indra/newview/llcallfloater.cpp
index d405c1bbc1..97a5c3b8e2 100644
--- a/indra/newview/llcallfloater.cpp
+++ b/indra/newview/llcallfloater.cpp
@@ -678,8 +678,7 @@ void LLCallFloater::resetVoiceRemoveTimers()
void LLCallFloater::removeVoiceRemoveTimer(const LLUUID& voice_speaker_id)
{
- bool delete_it = true;
- mSpeakerDelayRemover->unsetActionTimer(voice_speaker_id, delete_it);
+ mSpeakerDelayRemover->unsetActionTimer(voice_speaker_id);
}
bool LLCallFloater::validateSpeaker(const LLUUID& speaker_id)
diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp
index f046e08827..929457046c 100644
--- a/indra/newview/llchathistory.cpp
+++ b/indra/newview/llchathistory.cpp
@@ -262,7 +262,7 @@ public:
mSourceType = CHAT_SOURCE_SYSTEM;
}
- LLTextEditor* userName = getChild<LLTextEditor>("user_name");
+ LLTextBox* userName = getChild<LLTextBox>("user_name");
userName->setReadOnlyColor(style_params.readonly_color());
userName->setColor(style_params.color());
@@ -300,7 +300,7 @@ public:
/*virtual*/ void draw()
{
- LLTextEditor* user_name = getChild<LLTextEditor>("user_name");
+ LLTextBox* user_name = getChild<LLTextBox>("user_name");
LLTextBox* time_box = getChild<LLTextBox>("time_box");
LLRect user_name_rect = user_name->getRect();
@@ -444,6 +444,7 @@ LLChatHistory::LLChatHistory(const LLChatHistory::Params& p)
editor_params.rect = getLocalRect();
editor_params.follows.flags = FOLLOWS_ALL;
editor_params.enabled = false; // read only
+ editor_params.show_context_menu = "true";
mEditor = LLUICtrlFactory::create<LLTextEditor>(editor_params, this);
}
diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp
index 18bd7b725f..db804c7c8b 100644
--- a/indra/newview/llchiclet.cpp
+++ b/indra/newview/llchiclet.cpp
@@ -36,6 +36,7 @@
#include "llagent.h"
#include "llavataractions.h"
#include "llbottomtray.h"
+#include "lleventtimer.h"
#include "llgroupactions.h"
#include "lliconctrl.h"
#include "llimfloater.h"
diff --git a/indra/newview/llcurrencyuimanager.cpp b/indra/newview/llcurrencyuimanager.cpp
index 00c05445e1..be6c15eab4 100644
--- a/indra/newview/llcurrencyuimanager.cpp
+++ b/indra/newview/llcurrencyuimanager.cpp
@@ -426,7 +426,7 @@ void LLCurrencyUIManager::Impl::prepare()
LLLineEditor* lindenAmount = mPanel.getChild<LLLineEditor>("currency_amt");
if (lindenAmount)
{
- lindenAmount->setPrevalidate(LLLineEditor::prevalidateNonNegativeS32);
+ lindenAmount->setPrevalidate(LLTextValidate::validateNonNegativeS32);
lindenAmount->setKeystrokeCallback(onCurrencyKey, this);
}
}
diff --git a/indra/newview/lleventpoll.cpp b/indra/newview/lleventpoll.cpp
index eca9f8aba2..cc4e1a1868 100644
--- a/indra/newview/lleventpoll.cpp
+++ b/indra/newview/lleventpoll.cpp
@@ -39,7 +39,7 @@
#include "llhttpclient.h"
#include "llhttpstatuscodes.h"
#include "llsdserialize.h"
-#include "lltimer.h"
+#include "lleventtimer.h"
#include "llviewerregion.h"
#include "message.h"
#include "lltrans.h"
diff --git a/indra/newview/llfloatercamera.cpp b/indra/newview/llfloatercamera.cpp
index 9496e94780..ecb6254f8a 100644
--- a/indra/newview/llfloatercamera.cpp
+++ b/indra/newview/llfloatercamera.cpp
@@ -65,7 +65,7 @@ public:
LLPanelCameraZoom();
/* virtual */ BOOL postBuild();
- /* virtual */ void onOpen(const LLSD& key);
+ /* virtual */ void draw();
protected:
void onZoomPlusHeldDown();
@@ -73,7 +73,6 @@ protected:
void onSliderValueChanged();
private:
- F32 mSavedSliderVal;
LLButton* mPlusBtn;
LLButton* mMinusBtn;
LLSlider* mSlider;
@@ -88,8 +87,7 @@ static LLRegisterPanelClassWrapper<LLPanelCameraZoom> t_camera_zoom_panel("camer
LLPanelCameraZoom::LLPanelCameraZoom()
: mPlusBtn( NULL ),
mMinusBtn( NULL ),
- mSlider( NULL ),
- mSavedSliderVal(0.f)
+ mSlider( NULL )
{
mCommitCallbackRegistrar.add("Zoom.minus", boost::bind(&LLPanelCameraZoom::onZoomPlusHeldDown, this));
mCommitCallbackRegistrar.add("Zoom.plus", boost::bind(&LLPanelCameraZoom::onZoomMinusHeldDown, this));
@@ -101,16 +99,13 @@ BOOL LLPanelCameraZoom::postBuild()
mPlusBtn = getChild <LLButton> ("zoom_plus_btn");
mMinusBtn = getChild <LLButton> ("zoom_minus_btn");
mSlider = getChild <LLSlider> ("zoom_slider");
- mSlider->setMinValue(.0f);
- mSlider->setMaxValue(8.f);
return LLPanel::postBuild();
}
-void LLPanelCameraZoom::onOpen(const LLSD& key)
+void LLPanelCameraZoom::draw()
{
- LLVector3d to_focus = gAgent.getPosGlobalFromAgent(LLViewerCamera::getInstance()->getOrigin()) - gAgent.calcFocusPositionTargetGlobal();
- mSavedSliderVal = 8.f - (F32)to_focus.magVec(); // maximum minus current
- mSlider->setValue( mSavedSliderVal );
+ mSlider->setValue(gAgent.getCameraZoomFraction());
+ LLPanel::draw();
}
void LLPanelCameraZoom::onZoomPlusHeldDown()
@@ -135,13 +130,8 @@ void LLPanelCameraZoom::onZoomMinusHeldDown()
void LLPanelCameraZoom::onSliderValueChanged()
{
- F32 val = mSlider->getValueF32();
- F32 rate = val - mSavedSliderVal;
-
- gAgent.unlockView();
- gAgent.cameraOrbitIn(rate);
-
- mSavedSliderVal = val;
+ F32 zoom_level = mSlider->getValueF32();
+ gAgent.setCameraZoomFraction(zoom_level);
}
void activate_camera_tool()
diff --git a/indra/newview/llfloaterfriends.cpp b/indra/newview/llfloaterfriends.cpp
index ccc5cab85a..4e2633d750 100644
--- a/indra/newview/llfloaterfriends.cpp
+++ b/indra/newview/llfloaterfriends.cpp
@@ -58,7 +58,7 @@
#include "llmenucommands.h"
#include "llviewercontrol.h"
#include "llviewermessage.h"
-#include "lltimer.h"
+#include "lleventtimer.h"
#include "lltextbox.h"
#include "llvoiceclient.h"
diff --git a/indra/newview/llfloatergodtools.cpp b/indra/newview/llfloatergodtools.cpp
index c2b0bd18fa..5294f09e64 100644
--- a/indra/newview/llfloatergodtools.cpp
+++ b/indra/newview/llfloatergodtools.cpp
@@ -414,17 +414,17 @@ LLPanelRegionTools::LLPanelRegionTools()
BOOL LLPanelRegionTools::postBuild()
{
getChild<LLLineEditor>("region name")->setKeystrokeCallback(onChangeSimName, this);
- childSetPrevalidate("region name", &LLLineEditor::prevalidateASCIIPrintableNoPipe);
- childSetPrevalidate("estate", &LLLineEditor::prevalidatePositiveS32);
- childSetPrevalidate("parentestate", &LLLineEditor::prevalidatePositiveS32);
+ childSetPrevalidate("region name", &LLTextValidate::validateASCIIPrintableNoPipe);
+ childSetPrevalidate("estate", &LLTextValidate::validatePositiveS32);
+ childSetPrevalidate("parentestate", &LLTextValidate::validatePositiveS32);
childDisable("parentestate");
- childSetPrevalidate("gridposx", &LLLineEditor::prevalidatePositiveS32);
+ childSetPrevalidate("gridposx", &LLTextValidate::validatePositiveS32);
childDisable("gridposx");
- childSetPrevalidate("gridposy", &LLLineEditor::prevalidatePositiveS32);
+ childSetPrevalidate("gridposy", &LLTextValidate::validatePositiveS32);
childDisable("gridposy");
- childSetPrevalidate("redirectx", &LLLineEditor::prevalidatePositiveS32);
- childSetPrevalidate("redirecty", &LLLineEditor::prevalidatePositiveS32);
+ childSetPrevalidate("redirectx", &LLTextValidate::validatePositiveS32);
+ childSetPrevalidate("redirecty", &LLTextValidate::validatePositiveS32);
return TRUE;
}
diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp
index 8cd63deebe..26c6db9652 100644
--- a/indra/newview/llfloaterland.cpp
+++ b/indra/newview/llfloaterland.cpp
@@ -353,7 +353,7 @@ BOOL LLPanelLandGeneral::postBuild()
{
mEditName = getChild<LLLineEditor>("Name");
mEditName->setCommitCallback(onCommitAny, this);
- childSetPrevalidate("Name", LLLineEditor::prevalidateASCIIPrintableNoPipe);
+ childSetPrevalidate("Name", LLTextValidate::validateASCIIPrintableNoPipe);
mEditDesc = getChild<LLTextEditor>("Description");
mEditDesc->setCommitOnFocusLost(TRUE);
@@ -1111,7 +1111,7 @@ BOOL LLPanelLandObjects::postBuild()
mCleanOtherObjectsTime->setFocusLostCallback(boost::bind(onLostFocus, _1, this));
mCleanOtherObjectsTime->setCommitCallback(onCommitClean, this);
- childSetPrevalidate("clean other time", LLLineEditor::prevalidateNonNegativeS32);
+ childSetPrevalidate("clean other time", LLTextValidate::validateNonNegativeS32);
mBtnRefresh = getChild<LLButton>("Refresh List");
mBtnRefresh->setClickedCallback(onClickRefresh, this);
diff --git a/indra/newview/llfloaternamedesc.cpp b/indra/newview/llfloaternamedesc.cpp
index 810761e034..159ce41b79 100644
--- a/indra/newview/llfloaternamedesc.cpp
+++ b/indra/newview/llfloaternamedesc.cpp
@@ -111,7 +111,7 @@ BOOL LLFloaterNameDesc::postBuild()
if (NameEditor)
{
NameEditor->setMaxTextLength(DB_INV_ITEM_NAME_STR_LEN);
- NameEditor->setPrevalidate(&LLLineEditor::prevalidateASCIIPrintableNoPipe);
+ NameEditor->setPrevalidate(&LLTextValidate::validateASCIIPrintableNoPipe);
}
y -= llfloor(PREVIEW_LINE_HEIGHT * 1.2f);
@@ -123,7 +123,7 @@ BOOL LLFloaterNameDesc::postBuild()
if (DescEditor)
{
DescEditor->setMaxTextLength(DB_INV_ITEM_DESC_STR_LEN);
- DescEditor->setPrevalidate(&LLLineEditor::prevalidateASCIIPrintableNoPipe);
+ DescEditor->setPrevalidate(&LLTextValidate::validateASCIIPrintableNoPipe);
}
y -= llfloor(PREVIEW_LINE_HEIGHT * 1.2f);
diff --git a/indra/newview/llfloaterpay.cpp b/indra/newview/llfloaterpay.cpp
index 00959322e5..51364594e4 100644
--- a/indra/newview/llfloaterpay.cpp
+++ b/indra/newview/llfloaterpay.cpp
@@ -204,7 +204,7 @@ BOOL LLFloaterPay::postBuild()
getChild<LLLineEditor>("amount")->setKeystrokeCallback(&LLFloaterPay::onKeystroke, this);
childSetText("amount", last_amount);
- childSetPrevalidate("amount", LLLineEditor::prevalidateNonNegativeS32);
+ childSetPrevalidate("amount", LLTextValidate::validateNonNegativeS32);
info = new LLGiveMoneyInfo(this, 0);
mCallbackData.push_back(info);
diff --git a/indra/newview/llfloaterproperties.cpp b/indra/newview/llfloaterproperties.cpp
index ff9002787c..bde86a4034 100644
--- a/indra/newview/llfloaterproperties.cpp
+++ b/indra/newview/llfloaterproperties.cpp
@@ -130,9 +130,9 @@ BOOL LLFloaterProperties::postBuild()
{
// build the UI
// item name & description
- childSetPrevalidate("LabelItemName",&LLLineEditor::prevalidateASCIIPrintableNoPipe);
+ childSetPrevalidate("LabelItemName",&LLTextValidate::validateASCIIPrintableNoPipe);
getChild<LLUICtrl>("LabelItemName")->setCommitCallback(boost::bind(&LLFloaterProperties::onCommitName,this));
- childSetPrevalidate("LabelItemDesc",&LLLineEditor::prevalidateASCIIPrintableNoPipe);
+ childSetPrevalidate("LabelItemDesc",&LLTextValidate::validateASCIIPrintableNoPipe);
getChild<LLUICtrl>("LabelItemDesc")->setCommitCallback(boost::bind(&LLFloaterProperties:: onCommitDescription, this));
// Creator information
getChild<LLUICtrl>("BtnCreator")->setCommitCallback(boost::bind(&LLFloaterProperties::onClickCreator,this));
diff --git a/indra/newview/llfloatersellland.cpp b/indra/newview/llfloatersellland.cpp
index e2b0c4b66f..9895665026 100644
--- a/indra/newview/llfloatersellland.cpp
+++ b/indra/newview/llfloatersellland.cpp
@@ -163,7 +163,7 @@ BOOL LLFloaterSellLandUI::postBuild()
{
childSetCommitCallback("sell_to", onChangeValue, this);
childSetCommitCallback("price", onChangeValue, this);
- childSetPrevalidate("price", LLLineEditor::prevalidateNonNegativeS32);
+ childSetPrevalidate("price", LLTextValidate::validateNonNegativeS32);
childSetCommitCallback("sell_objects", onChangeValue, this);
childSetAction("sell_to_select_agent", boost::bind( &LLFloaterSellLandUI::doSelectAgent, this));
childSetAction("cancel_btn", doCancel, this);
@@ -268,7 +268,7 @@ void LLFloaterSellLandUI::refreshUI()
std::string price_str = childGetValue("price").asString();
bool valid_price = false;
- valid_price = (price_str != "") && LLLineEditor::prevalidateNonNegativeS32(utf8str_to_wstring(price_str));
+ valid_price = (price_str != "") && LLTextValidate::validateNonNegativeS32(utf8str_to_wstring(price_str));
if (valid_price && mParcelActualArea > 0)
{
diff --git a/indra/newview/llfloateruipreview.cpp b/indra/newview/llfloateruipreview.cpp
index c6e12476bd..3e804bef9d 100644
--- a/indra/newview/llfloateruipreview.cpp
+++ b/indra/newview/llfloateruipreview.cpp
@@ -41,6 +41,7 @@
#include "llfloateruipreview.h" // Own header
// Internal utility
+#include "lleventtimer.h"
#include "llrender.h"
#include "llsdutil.h"
#include "llxmltree.h"
@@ -91,7 +92,6 @@ static std::string get_xui_dir()
}
// Forward declarations to avoid header dependencies
-class LLEventTimer;
class LLColor;
class LLScrollListCtrl;
class LLComboBox;
diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp
index 5c65b2c293..57c7ba8e27 100644
--- a/indra/newview/llfolderview.cpp
+++ b/indra/newview/llfolderview.cpp
@@ -225,7 +225,7 @@ LLFolderView::LLFolderView(const Params& p)
params.font(getLabelFontForStyle(LLFontGL::NORMAL));
params.max_length_bytes(DB_INV_ITEM_NAME_STR_LEN);
params.commit_callback.function(boost::bind(&LLFolderView::commitRename, this, _2));
- params.prevalidate_callback(&LLLineEditor::prevalidateASCIIPrintableNoPipe);
+ params.prevalidate_callback(&LLTextValidate::validateASCIIPrintableNoPipe);
params.commit_on_focus_lost(true);
params.visible(false);
mRenamer = LLUICtrlFactory::create<LLLineEditor> (params);
diff --git a/indra/newview/llmediactrl.cpp b/indra/newview/llmediactrl.cpp
index 3c34d26692..501a137b42 100644
--- a/indra/newview/llmediactrl.cpp
+++ b/indra/newview/llmediactrl.cpp
@@ -982,16 +982,20 @@ void LLMediaCtrl::onClickLinkHref( LLPluginClassMedia* self )
U32 target_type = self->getClickTargetType();
// is there is a target specified for the link?
- if (gSavedSettings.getBOOL("UseExternalBrowser") || target_type == LLPluginClassMedia::TARGET_EXTERNAL)
+ if (target_type == LLPluginClassMedia::TARGET_EXTERNAL ||
+ target_type == LLPluginClassMedia::TARGET_BLANK )
{
- LLSD payload;
- payload["url"] = url;
- payload["target_type"] = LLSD::Integer(target_type);
- LLNotificationsUtil::add( "WebLaunchExternalTarget", LLSD(), payload, onClickLinkExternalTarget);
- }
- else if (target_type == LLPluginClassMedia::TARGET_BLANK)
- {
- clickLinkWithTarget(url, target_type);
+ if (gSavedSettings.getBOOL("UseExternalBrowser"))
+ {
+ LLSD payload;
+ payload["url"] = url;
+ payload["target_type"] = LLSD::Integer(target_type);
+ LLNotificationsUtil::add( "WebLaunchExternalTarget", LLSD(), payload, onClickLinkExternalTarget);
+ }
+ else
+ {
+ clickLinkWithTarget(url, target_type);
+ }
}
else {
const std::string protocol1( "http://" );
@@ -1042,7 +1046,7 @@ bool LLMediaCtrl::onClickLinkExternalTarget(const LLSD& notification, const LLSD
// static
void LLMediaCtrl::clickLinkWithTarget(const std::string& url, const S32& target_type )
{
- if (gSavedSettings.getBOOL("UseExternalBrowser") || target_type == LLPluginClassMedia::TARGET_EXTERNAL)
+ if (target_type == LLPluginClassMedia::TARGET_EXTERNAL)
{
// load target in an external browser
LLWeb::loadURLExternal(url);
diff --git a/indra/newview/llmediadataclient.h b/indra/newview/llmediadataclient.h
index 75d32e707b..8dd72cb595 100755
--- a/indra/newview/llmediadataclient.h
+++ b/indra/newview/llmediadataclient.h
@@ -37,7 +37,7 @@
#include <queue>
#include "llrefcount.h"
#include "llpointer.h"
-#include "lltimer.h"
+#include "lleventtimer.h"
// Link seam for LLVOVolume
diff --git a/indra/newview/llnamelistctrl.cpp b/indra/newview/llnamelistctrl.cpp
index d579058c32..40e8b64362 100644
--- a/indra/newview/llnamelistctrl.cpp
+++ b/indra/newview/llnamelistctrl.cpp
@@ -356,8 +356,9 @@ void LLNameListCtrl::refresh(const LLUUID& id, const std::string& first,
void LLNameListCtrl::refreshAll(const LLUUID& id, const std::string& first,
const std::string& last, BOOL is_group)
{
+ LLInstanceTrackerScopedGuard guard;
LLInstanceTracker<LLNameListCtrl>::instance_iter it;
- for (it = beginInstances(); it != endInstances(); ++it)
+ for (it = guard.beginInstances(); it != guard.endInstances(); ++it)
{
LLNameListCtrl& ctrl = *it;
ctrl.refresh(id, first, last, is_group);
diff --git a/indra/newview/llpanelclassified.cpp b/indra/newview/llpanelclassified.cpp
index 1e46827c1a..8ca044f72b 100644
--- a/indra/newview/llpanelclassified.cpp
+++ b/indra/newview/llpanelclassified.cpp
@@ -242,7 +242,7 @@ BOOL LLPanelClassified::postBuild()
mNameEditor->setCommitOnFocusLost(TRUE);
mNameEditor->setFocusReceivedCallback(boost::bind(focusReceived, _1, this));
mNameEditor->setCommitCallback(onCommitAny, this);
- mNameEditor->setPrevalidate( LLLineEditor::prevalidateASCII );
+ mNameEditor->setPrevalidate( LLTextValidate::validateASCII );
mDescEditor = getChild<LLTextEditor>("desc_editor");
mDescEditor->setCommitOnFocusLost(TRUE);
@@ -1072,7 +1072,7 @@ BOOL LLFloaterPriceForListing::postBuild()
LLLineEditor* edit = getChild<LLLineEditor>("price_edit");
if (edit)
{
- edit->setPrevalidate(LLLineEditor::prevalidateNonNegativeS32);
+ edit->setPrevalidate(LLTextValidate::validateNonNegativeS32);
std::string min_price = llformat("%d", MINIMUM_PRICE_FOR_LISTING);
edit->setText(min_price);
edit->selectAll();
diff --git a/indra/newview/llpanelgroupgeneral.cpp b/indra/newview/llpanelgroupgeneral.cpp
index 51fc670d87..3b303eed0f 100644
--- a/indra/newview/llpanelgroupgeneral.cpp
+++ b/indra/newview/llpanelgroupgeneral.cpp
@@ -214,7 +214,7 @@ void LLPanelGroupGeneral::setupCtrls(LLPanel* panel_group)
}
mFounderName = panel_group->getChild<LLNameBox>("founder_name");
mGroupNameEditor = panel_group->getChild<LLLineEditor>("group_name_editor");
- mGroupNameEditor->setPrevalidate( LLLineEditor::prevalidateASCII );
+ mGroupNameEditor->setPrevalidate( LLTextValidate::validateASCII );
}
// static
diff --git a/indra/newview/llpanellandaudio.cpp b/indra/newview/llpanellandaudio.cpp
index 6a4c909759..a92b4357ed 100644
--- a/indra/newview/llpanellandaudio.cpp
+++ b/indra/newview/llpanellandaudio.cpp
@@ -153,6 +153,13 @@ void LLPanelLandAudio::refresh()
mCheckParcelEnableVoice->set(allow_voice);
mCheckParcelVoiceLocal->set(!parcel->getParcelFlagUseEstateVoiceChannel());
+ // don't display urls if you're not able to change it
+ // much requested change in forums so people can't 'steal' urls
+ // NOTE: bug#2009 means this is still vunerable - however, bug
+ // should be closed since this bug opens up major security issues elsewhere.
+ bool obscure_music = ! can_change_media && parcel->getObscureMusic();
+
+ mMusicURLEdit->setDrawAsterixes(obscure_music);
mMusicURLEdit->setText(parcel->getMusicURL());
mMusicURLEdit->setEnabled( can_change_media );
}
diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp
index 2d5246c409..43f4024bac 100644
--- a/indra/newview/llpanellogin.cpp
+++ b/indra/newview/llpanellogin.cpp
@@ -213,8 +213,8 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect,
}
#if !USE_VIEWER_AUTH
- childSetPrevalidate("first_name_edit", LLLineEditor::prevalidateASCIIPrintableNoSpace);
- childSetPrevalidate("last_name_edit", LLLineEditor::prevalidateASCIIPrintableNoSpace);
+ childSetPrevalidate("first_name_edit", LLTextValidate::validateASCIIPrintableNoSpace);
+ childSetPrevalidate("last_name_edit", LLTextValidate::validateASCIIPrintableNoSpace);
childSetCommitCallback("password_edit", mungePassword, this);
getChild<LLLineEditor>("password_edit")->setKeystrokeCallback(onPassKey, this);
diff --git a/indra/newview/llpanelpeople.cpp b/indra/newview/llpanelpeople.cpp
index 423ee61e25..36fab86280 100644
--- a/indra/newview/llpanelpeople.cpp
+++ b/indra/newview/llpanelpeople.cpp
@@ -36,6 +36,7 @@
#include "llfloaterreg.h"
#include "llmenugl.h"
#include "llnotificationsutil.h"
+#include "lleventtimer.h"
#include "llfiltereditor.h"
#include "lltabcontainer.h"
#include "lluictrlfactory.h"
diff --git a/indra/newview/llpanelpermissions.cpp b/indra/newview/llpanelpermissions.cpp
index 8b8b1bed37..01b6e8ffad 100644
--- a/indra/newview/llpanelpermissions.cpp
+++ b/indra/newview/llpanelpermissions.cpp
@@ -142,9 +142,9 @@ LLPanelPermissions::LLPanelPermissions() :
BOOL LLPanelPermissions::postBuild()
{
childSetCommitCallback("Object Name",LLPanelPermissions::onCommitName,this);
- childSetPrevalidate("Object Name",LLLineEditor::prevalidateASCIIPrintableNoPipe);
+ childSetPrevalidate("Object Name",LLTextValidate::validateASCIIPrintableNoPipe);
childSetCommitCallback("Object Description",LLPanelPermissions::onCommitDesc,this);
- childSetPrevalidate("Object Description",LLLineEditor::prevalidateASCIIPrintableNoPipe);
+ childSetPrevalidate("Object Description",LLTextValidate::validateASCIIPrintableNoPipe);
getChild<LLUICtrl>("button set group")->setCommitCallback(boost::bind(&LLPanelPermissions::onClickGroup,this));
diff --git a/indra/newview/llpanelplaces.cpp b/indra/newview/llpanelplaces.cpp
index a49386cb5c..c0491cc00f 100644
--- a/indra/newview/llpanelplaces.cpp
+++ b/indra/newview/llpanelplaces.cpp
@@ -1023,7 +1023,6 @@ void LLPanelPlaces::showAddedLandmarkInfo(const std::vector<LLUUID>& items)
{
setItem(item);
}
- break;
}
}
}
diff --git a/indra/newview/llpanelprimmediacontrols.cpp b/indra/newview/llpanelprimmediacontrols.cpp
index 2dc3a62637..479769ee20 100644
--- a/indra/newview/llpanelprimmediacontrols.cpp
+++ b/indra/newview/llpanelprimmediacontrols.cpp
@@ -1036,8 +1036,9 @@ void LLPanelPrimMediaControls::updateZoom()
}
if (zoom_padding > 0.0f)
- {
- LLViewerMediaFocus::setCameraZoom(getTargetObject(), mTargetObjectNormal, zoom_padding);
+ {
+ // since we only zoom into medium for now, always set zoom_in constraint to true
+ LLViewerMediaFocus::setCameraZoom(getTargetObject(), mTargetObjectNormal, zoom_padding, true);
}
// Remember the object ID/face we zoomed into, so we can update the zoom icon appropriately
diff --git a/indra/newview/llpreviewanim.cpp b/indra/newview/llpreviewanim.cpp
index 92bd4dc62b..0cc747f789 100644
--- a/indra/newview/llpreviewanim.cpp
+++ b/indra/newview/llpreviewanim.cpp
@@ -79,7 +79,7 @@ BOOL LLPreviewAnim::postBuild()
childSetAction("Anim audition btn",auditionAnim, this);
childSetCommitCallback("desc", LLPreview::onText, this);
- childSetPrevalidate("desc", &LLLineEditor::prevalidateASCIIPrintableNoPipe);
+ childSetPrevalidate("desc", &LLTextValidate::validateASCIIPrintableNoPipe);
return LLPreview::postBuild();
}
diff --git a/indra/newview/llpreviewgesture.cpp b/indra/newview/llpreviewgesture.cpp
index 53e351e66e..57a8ca3d12 100644
--- a/indra/newview/llpreviewgesture.cpp
+++ b/indra/newview/llpreviewgesture.cpp
@@ -472,7 +472,7 @@ BOOL LLPreviewGesture::postBuild()
edit = getChild<LLLineEditor>("wait_time_editor");
edit->setEnabled(FALSE);
edit->setVisible(FALSE);
- edit->setPrevalidate(LLLineEditor::prevalidateFloat);
+ edit->setPrevalidate(LLTextValidate::validateFloat);
// edit->setKeystrokeCallback(onKeystrokeCommit, this);
edit->setCommitOnFocusLost(TRUE);
edit->setCommitCallback(onCommitWaitTime, this);
@@ -504,10 +504,10 @@ BOOL LLPreviewGesture::postBuild()
if (item)
{
childSetText("desc", item->getDescription());
- childSetPrevalidate("desc", &LLLineEditor::prevalidateASCIIPrintableNoPipe);
+ childSetPrevalidate("desc", &LLTextValidate::validateASCIIPrintableNoPipe);
childSetText("name", item->getName());
- childSetPrevalidate("name", &LLLineEditor::prevalidateASCIIPrintableNoPipe);
+ childSetPrevalidate("name", &LLTextValidate::validateASCIIPrintableNoPipe);
}
return LLPreview::postBuild();
diff --git a/indra/newview/llpreviewnotecard.cpp b/indra/newview/llpreviewnotecard.cpp
index cc70360528..ee8e3f1db6 100644
--- a/indra/newview/llpreviewnotecard.cpp
+++ b/indra/newview/llpreviewnotecard.cpp
@@ -95,7 +95,7 @@ BOOL LLPreviewNotecard::postBuild()
childSetCommitCallback("desc", LLPreview::onText, this);
if (item)
childSetText("desc", item->getDescription());
- childSetPrevalidate("desc", &LLLineEditor::prevalidateASCIIPrintableNoPipe);
+ childSetPrevalidate("desc", &LLTextValidate::validateASCIIPrintableNoPipe);
return LLPreview::postBuild();
}
diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index 7bcbe334ff..a8feaf690d 100644
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -955,7 +955,7 @@ BOOL LLPreviewLSL::postBuild()
childSetCommitCallback("desc", LLPreview::onText, this);
childSetText("desc", item->getDescription());
- childSetPrevalidate("desc", &LLLineEditor::prevalidateASCIIPrintableNoPipe);
+ childSetPrevalidate("desc", &LLTextValidate::validateASCIIPrintableNoPipe);
return LLPreview::postBuild();
}
diff --git a/indra/newview/llpreviewsound.cpp b/indra/newview/llpreviewsound.cpp
index d7fd252fb6..44b828854b 100644
--- a/indra/newview/llpreviewsound.cpp
+++ b/indra/newview/llpreviewsound.cpp
@@ -75,7 +75,7 @@ BOOL LLPreviewSound::postBuild()
button->setSoundFlags(LLView::SILENT);
childSetCommitCallback("desc", LLPreview::onText, this);
- childSetPrevalidate("desc", &LLLineEditor::prevalidateASCIIPrintableNoPipe);
+ childSetPrevalidate("desc", &LLTextValidate::validateASCIIPrintableNoPipe);
return LLPreview::postBuild();
}
diff --git a/indra/newview/llpreviewtexture.cpp b/indra/newview/llpreviewtexture.cpp
index dfc67d0126..0ed6bea74f 100644
--- a/indra/newview/llpreviewtexture.cpp
+++ b/indra/newview/llpreviewtexture.cpp
@@ -126,7 +126,7 @@ BOOL LLPreviewTexture::postBuild()
{
childSetCommitCallback("desc", LLPreview::onText, this);
childSetText("desc", item->getDescription());
- childSetPrevalidate("desc", &LLLineEditor::prevalidateASCIIPrintableNoPipe);
+ childSetPrevalidate("desc", &LLTextValidate::validateASCIIPrintableNoPipe);
}
}
diff --git a/indra/newview/llsidepaneliteminfo.cpp b/indra/newview/llsidepaneliteminfo.cpp
index 94fe95d215..44348ba429 100644
--- a/indra/newview/llsidepaneliteminfo.cpp
+++ b/indra/newview/llsidepaneliteminfo.cpp
@@ -109,9 +109,9 @@ BOOL LLSidepanelItemInfo::postBuild()
{
LLSidepanelInventorySubpanel::postBuild();
- childSetPrevalidate("LabelItemName",&LLLineEditor::prevalidateASCIIPrintableNoPipe);
+ childSetPrevalidate("LabelItemName",&LLTextValidate::validateASCIIPrintableNoPipe);
getChild<LLUICtrl>("LabelItemName")->setCommitCallback(boost::bind(&LLSidepanelItemInfo::onCommitName,this));
- childSetPrevalidate("LabelItemDesc",&LLLineEditor::prevalidateASCIIPrintableNoPipe);
+ childSetPrevalidate("LabelItemDesc",&LLTextValidate::validateASCIIPrintableNoPipe);
getChild<LLUICtrl>("LabelItemDesc")->setCommitCallback(boost::bind(&LLSidepanelItemInfo:: onCommitDescription, this));
// Creator information
getChild<LLUICtrl>("BtnCreator")->setCommitCallback(boost::bind(&LLSidepanelItemInfo::onClickCreator,this));
diff --git a/indra/newview/llsidepaneltaskinfo.cpp b/indra/newview/llsidepaneltaskinfo.cpp
index 0b8f66c5f3..0630981d7e 100644
--- a/indra/newview/llsidepaneltaskinfo.cpp
+++ b/indra/newview/llsidepaneltaskinfo.cpp
@@ -104,9 +104,9 @@ BOOL LLSidepanelTaskInfo::postBuild()
mLabelGroupName = getChild<LLNameBox>("Group Name Proxy");
childSetCommitCallback("Object Name", LLSidepanelTaskInfo::onCommitName,this);
- childSetPrevalidate("Object Name", LLLineEditor::prevalidateASCIIPrintableNoPipe);
+ childSetPrevalidate("Object Name", LLTextValidate::validateASCIIPrintableNoPipe);
childSetCommitCallback("Object Description", LLSidepanelTaskInfo::onCommitDesc,this);
- childSetPrevalidate("Object Description", LLLineEditor::prevalidateASCIIPrintableNoPipe);
+ childSetPrevalidate("Object Description", LLTextValidate::validateASCIIPrintableNoPipe);
getChild<LLUICtrl>("button set group")->setCommitCallback(boost::bind(&LLSidepanelTaskInfo::onClickGroup,this));
childSetCommitCallback("checkbox share with group", &LLSidepanelTaskInfo::onCommitGroupShare,this);
childSetAction("button deed", &LLSidepanelTaskInfo::onClickDeedToGroup,this);
diff --git a/indra/newview/llspeakers.cpp b/indra/newview/llspeakers.cpp
index 786fa24e65..717a8bda1e 100644
--- a/indra/newview/llspeakers.cpp
+++ b/indra/newview/llspeakers.cpp
@@ -175,6 +175,11 @@ BOOL LLSpeakerActionTimer::tick()
return TRUE;
}
+void LLSpeakerActionTimer::unset()
+{
+ mActionCallback = 0;
+}
+
LLSpeakersDelayActionsStorage::LLSpeakersDelayActionsStorage(LLSpeakerActionTimer::action_callback_t action_cb, F32 action_delay)
: mActionCallback(action_cb)
, mActionDelay(action_delay)
@@ -205,7 +210,7 @@ void LLSpeakersDelayActionsStorage::setActionTimer(const LLUUID& speaker_id)
}
}
-void LLSpeakersDelayActionsStorage::unsetActionTimer(const LLUUID& speaker_id, bool delete_it)
+void LLSpeakersDelayActionsStorage::unsetActionTimer(const LLUUID& speaker_id)
{
if (mActionTimersMap.size() == 0) return;
@@ -213,10 +218,7 @@ void LLSpeakersDelayActionsStorage::unsetActionTimer(const LLUUID& speaker_id, b
if (it_speaker != mActionTimersMap.end())
{
- if (delete_it)
- {
- delete it_speaker->second;
- }
+ it_speaker->second->unset();
mActionTimersMap.erase(it_speaker);
}
}
@@ -233,8 +235,7 @@ void LLSpeakersDelayActionsStorage::removeAllTimers()
bool LLSpeakersDelayActionsStorage::onTimerActionCallback(const LLUUID& speaker_id)
{
- bool delete_it = false; // we're *in* this timer, return true to delete it, don't manually delete it
- unsetActionTimer(speaker_id, delete_it);
+ unsetActionTimer(speaker_id);
if (mActionCallback)
{
@@ -293,9 +294,7 @@ LLPointer<LLSpeaker> LLSpeakerMgr::setSpeaker(const LLUUID& id, const std::strin
}
}
- bool delete_it = true;
- mSpeakerDelayRemover->unsetActionTimer(speakerp->mID, delete_it);
-
+ mSpeakerDelayRemover->unsetActionTimer(speakerp->mID);
return speakerp;
}
diff --git a/indra/newview/llspeakers.h b/indra/newview/llspeakers.h
index ddc3632f07..b924fb2f2c 100644
--- a/indra/newview/llspeakers.h
+++ b/indra/newview/llspeakers.h
@@ -34,6 +34,7 @@
#define LL_LLSPEAKERS_H
#include "llevent.h"
+#include "lleventtimer.h"
#include "llspeakers.h"
#include "llvoicechannel.h"
@@ -155,6 +156,13 @@ public:
*/
virtual BOOL tick();
+ /**
+ * Clears the callback.
+ *
+ * Use this instead of deleteing this object.
+ * The next call to tick() will return true and that will destroy this object.
+ */
+ void unset();
private:
action_callback_t mActionCallback;
LLUUID mSpeakerId;
@@ -180,7 +188,7 @@ public:
*
* @see onTimerActionCallback()
*/
- void unsetActionTimer(const LLUUID& speaker_id, bool delete_it);
+ void unsetActionTimer(const LLUUID& speaker_id);
void removeAllTimers();
private:
@@ -188,7 +196,6 @@ private:
* Callback of the each instance of LLSpeakerActionTimer.
*
* Unsets an appropriate timer instance and calls action callback for specified speacker_id.
- * It always returns false to not use LLEventTimer::updateClass functionality of timer deleting.
*
* @see unsetActionTimer()
*/
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index 37c8d94d5e..d1b91df6e9 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -135,13 +135,14 @@
#include "llsecondlifeurls.h"
#include "llselectmgr.h"
#include "llsky.h"
+#include "llsidetray.h"
#include "llstatview.h"
-#include "lltrans.h"
#include "llstatusbar.h" // sendMoneyBalanceRequest(), owns L$ balance
#include "llsurface.h"
#include "lltexturecache.h"
#include "lltexturefetch.h"
#include "lltoolmgr.h"
+#include "lltrans.h"
#include "llui.h"
#include "llurldispatcher.h"
#include "llurlsimstring.h"
@@ -800,6 +801,9 @@ bool idle_startup()
gLoginMenuBarView->setVisible( TRUE );
gLoginMenuBarView->setEnabled( TRUE );
+ // Hide the splash screen
+ LLSplashScreen::hide();
+
// Push our window frontmost
gViewerWindow->getWindow()->show();
display_startup();
@@ -1198,6 +1202,7 @@ bool idle_startup()
display_startup();
LLStartUp::setStartupState( STATE_MULTIMEDIA_INIT );
+
return FALSE;
}
@@ -1704,6 +1709,9 @@ bool idle_startup()
// Set the show start location to true, now that the user has logged
// on with this install.
gSavedSettings.setBOOL("ShowStartLocation", TRUE);
+
+ LLSideTray::getInstance()->showPanel("panel_home", LLSD());
+
}
// We're successfully logged in.
@@ -2556,27 +2564,53 @@ void LLStartUp::loadInitialOutfit( const std::string& outfit_folder_name,
// try to find the outfit - if not there, create some default
// wearables.
- LLInventoryModel::cat_array_t cat_array;
- LLInventoryModel::item_array_t item_array;
- LLNameCategoryCollector has_name(outfit_folder_name);
- gInventory.collectDescendentsIf(gInventory.getLibraryRootFolderID(),
- cat_array,
- item_array,
- LLInventoryModel::EXCLUDE_TRASH,
- has_name);
- if (0 == cat_array.count())
+ LLUUID cat_id = findDescendentCategoryIDByName(
+ gInventory.getLibraryRootFolderID(),
+ outfit_folder_name);
+ if (cat_id.isNull())
{
gAgentWearables.createStandardWearables(gender);
}
else
{
- LLInventoryCategory* cat = cat_array.get(0);
bool do_copy = true;
bool do_append = false;
+ LLViewerInventoryCategory *cat = gInventory.getCategory(cat_id);
LLAppearanceManager::instance().wearInventoryCategory(cat, do_copy, do_append);
}
- LLAppearanceManager::instance().wearOutfitByName(gestures);
- LLAppearanceManager::instance().wearOutfitByName(COMMON_GESTURES_FOLDER);
+
+ // Copy gestures
+ LLUUID dst_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_GESTURE);
+ LLPointer<LLInventoryCallback> cb(NULL);
+ LLAppearanceManager *app_mgr = &(LLAppearanceManager::instance());
+
+ // - Copy gender-specific gestures.
+ LLUUID gestures_cat_id = findDescendentCategoryIDByName(
+ gInventory.getLibraryRootFolderID(),
+ gestures);
+ if (gestures_cat_id.notNull())
+ {
+ callAfterCategoryFetch(gestures_cat_id,
+ boost::bind(&LLAppearanceManager::shallowCopyCategory,
+ app_mgr,
+ gestures_cat_id,
+ dst_id,
+ cb));
+ }
+
+ // - Copy common gestures.
+ LLUUID common_gestures_cat_id = findDescendentCategoryIDByName(
+ gInventory.getLibraryRootFolderID(),
+ COMMON_GESTURES_FOLDER);
+ if (common_gestures_cat_id.notNull())
+ {
+ callAfterCategoryFetch(common_gestures_cat_id,
+ boost::bind(&LLAppearanceManager::shallowCopyCategory,
+ app_mgr,
+ common_gestures_cat_id,
+ dst_id,
+ cb));
+ }
// This is really misnamed -- it means we have started loading
// an outfit/shape that will give the avatar a gender eventually. JC
diff --git a/indra/newview/llviewermediafocus.cpp b/indra/newview/llviewermediafocus.cpp
index a0ac9c2091..f508a3462a 100644
--- a/indra/newview/llviewermediafocus.cpp
+++ b/indra/newview/llviewermediafocus.cpp
@@ -157,7 +157,6 @@ void LLViewerMediaFocus::setFocusFace(LLPointer<LLViewerObject> objectp, S32 fac
mFocusedObjectFace = 0;
}
}
-
}
void LLViewerMediaFocus::clearFocus()
@@ -198,7 +197,7 @@ bool LLViewerMediaFocus::getFocus()
}
// This function selects an ideal viewing distance based on the focused object, pick normal, and padding value
-void LLViewerMediaFocus::setCameraZoom(LLViewerObject* object, LLVector3 normal, F32 padding_factor)
+void LLViewerMediaFocus::setCameraZoom(LLViewerObject* object, LLVector3 normal, F32 padding_factor, bool zoom_in_only)
{
if (object)
{
@@ -269,7 +268,16 @@ void LLViewerMediaFocus::setCameraZoom(LLViewerObject* object, LLVector3 normal,
camera_pos += 0.01 * len * delta;
}
+ // If we are not allowing zooming out and the old camera position is closer to
+ // the center then the new intended camera position, don't move camera and return
+ if (zoom_in_only &&
+ (dist_vec_squared(gAgent.getCameraPositionGlobal(), target_pos) < dist_vec_squared(camera_pos, target_pos)))
+ {
+ return;
+ }
+
gAgent.setCameraPosAndFocusGlobal(camera_pos, target_pos, object->getID() );
+
}
else
{
diff --git a/indra/newview/llviewermediafocus.h b/indra/newview/llviewermediafocus.h
index 89ee0ae283..002044ea2e 100644
--- a/indra/newview/llviewermediafocus.h
+++ b/indra/newview/llviewermediafocus.h
@@ -66,7 +66,7 @@ public:
void update();
- static void setCameraZoom(LLViewerObject* object, LLVector3 normal, F32 padding_factor);
+ static void setCameraZoom(LLViewerObject* object, LLVector3 normal, F32 padding_factor, bool zoom_in_only = false);
static F32 getBBoxAspectRatio(const LLBBox& bbox, const LLVector3& normal, F32* height, F32* width, F32* depth);
bool isFocusedOnFace(LLPointer<LLViewerObject> objectp, S32 face);
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 143d95d27e..c5d3d7cb25 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -38,6 +38,7 @@
#include "llavataractions.h"
#include "lscript_byteformat.h"
#include "lleconomy.h"
+#include "lleventtimer.h"
#include "llfloaterreg.h"
#include "llfollowcamparams.h"
#include "llregionhandle.h"
@@ -914,12 +915,13 @@ void open_inventory_offer(const std::vector<LLUUID>& items, const std::string& f
{
// Landmark creation handling is moved to LLPanelPlaces::showAddedLandmarkInfo()
// TODO* LLPanelPlaces dependency is going to be removed. See EXT-4347.
- if("create_landmark" == places_panel->getPlaceInfoType() && !places_panel->getItem())
- {
- //places_panel->setItem(item);
- }
+ //if("create_landmark" == places_panel->getPlaceInfoType() && !places_panel->getItem())
+ //{
+ // places_panel->setItem(item);
+ //}
+ //else
// we are opening a group notice attachment
- else
+ if("create_landmark" != places_panel->getPlaceInfoType())
{
LLSD args;
args["type"] = "landmark";
diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp
index 886f1d9ef5..d0afa9d9de 100644
--- a/indra/newview/llviewerobject.cpp
+++ b/indra/newview/llviewerobject.cpp
@@ -4019,9 +4019,14 @@ LLBBox LLViewerObject::getBoundingBoxAgent() const
{
LLVector3 position_agent;
LLQuaternion rot;
+ LLViewerObject* avatar_parent = NULL;
LLViewerObject* root_edit = (LLViewerObject*)getRootEdit();
- LLViewerObject* avatar_parent = (LLViewerObject*)root_edit->getParent();
- if (avatar_parent && avatar_parent->isAvatar() && root_edit->mDrawable.notNull())
+ if (root_edit)
+ {
+ avatar_parent = (LLViewerObject*)root_edit->getParent();
+ }
+
+ if (avatar_parent && avatar_parent->isAvatar() && root_edit && root_edit->mDrawable.notNull())
{
LLXform* parent_xform = root_edit->mDrawable->getXform()->getParent();
position_agent = (getPositionEdit() * parent_xform->getWorldRotation()) + parent_xform->getWorldPosition();
diff --git a/indra/newview/llviewerparcelmediaautoplay.h b/indra/newview/llviewerparcelmediaautoplay.h
index 1d80b4756c..40142c1dd1 100644
--- a/indra/newview/llviewerparcelmediaautoplay.h
+++ b/indra/newview/llviewerparcelmediaautoplay.h
@@ -33,7 +33,7 @@
#ifndef LLVIEWERPARCELMEDIAAUTOPLAY_H
#define LLVIEWERPARCELMEDIAAUTOPLAY_H
-#include "lltimer.h"
+#include "lleventtimer.h"
#include "lluuid.h"
// timer to automatically play media
diff --git a/indra/newview/llviewerparcelmgr.cpp b/indra/newview/llviewerparcelmgr.cpp
index a075a706e1..07c8867e26 100644
--- a/indra/newview/llviewerparcelmgr.cpp
+++ b/indra/newview/llviewerparcelmgr.cpp
@@ -1762,6 +1762,12 @@ void LLViewerParcelMgr::processParcelProperties(LLMessageSystem *msg, void **use
{
optionally_start_music(music_url);
}
+ else
+ {
+ llinfos << "Stopping parcel music (invalid audio stream URL)" << llendl;
+ // clears the URL
+ gAudiop->startInternetStream(LLStringUtil::null);
+ }
}
else if (!gAudiop->getInternetStreamURL().empty())
{
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index 315b7c52cf..4a86e1ca41 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -1726,7 +1726,11 @@ void LLViewerWindow::shutdownViews()
// destroy the nav bar, not currently part of gViewerWindow
// *TODO: Make LLNavigationBar part of gViewerWindow
delete LLNavigationBar::getInstance();
-
+
+ // destroy menus after instantiating navbar above, as it needs
+ // access to gMenuHolder
+ cleanup_menus();
+
// Delete all child views.
delete mRootView;
mRootView = NULL;
diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h
index a5815df20a..b5f0ec7176 100644
--- a/indra/newview/llvoavatar.h
+++ b/indra/newview/llvoavatar.h
@@ -565,7 +565,7 @@ public:
void updateMeshData();
protected:
void releaseMeshData();
- /*virtual*/ void restoreMeshData();
+ virtual void restoreMeshData();
private:
BOOL mDirtyMesh;
BOOL mMeshTexturesDirty;
diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp
index b1ea8a1bbb..13e28b246a 100644
--- a/indra/newview/llvoavatarself.cpp
+++ b/indra/newview/llvoavatarself.cpp
@@ -510,8 +510,12 @@ BOOL LLVOAvatarSelf::buildMenus()
LLVOAvatarSelf::~LLVOAvatarSelf()
{
- gAgent.setAvatarObject(NULL);
- gAgentWearables.setAvatarObject(NULL);
+ // gAgents pointer might have been set to a different Avatar Self, don't get rid of it if so.
+ if (gAgent.getAvatarObject() == this)
+ {
+ gAgent.setAvatarObject(NULL);
+ gAgentWearables.setAvatarObject(NULL);
+ }
delete mScreenp;
mScreenp = NULL;
}
diff --git a/indra/newview/llworldmapview.cpp b/indra/newview/llworldmapview.cpp
index 1940d65ae4..5edf72d4ae 100644
--- a/indra/newview/llworldmapview.cpp
+++ b/indra/newview/llworldmapview.cpp
@@ -128,10 +128,10 @@ void LLWorldMapView::initClass()
sHomeImage = LLUI::getUIImage("map_home.tga");
sTelehubImage = LLUI::getUIImage("map_telehub.tga");
sInfohubImage = LLUI::getUIImage("map_infohub.tga");
- sEventImage = LLUI::getUIImage("map_event.tga");
- sEventMatureImage = LLUI::getUIImage("map_event_mature.tga");
+ sEventImage = LLUI::getUIImage("Parcel_PG_Dark");
+ sEventMatureImage = LLUI::getUIImage("Parcel_M_Dark");
// To Do: update the image resource for adult events.
- sEventAdultImage = LLUI::getUIImage("map_event_adult.tga");
+ sEventAdultImage = LLUI::getUIImage("Parcel_R_Dark");
sTrackCircleImage = LLUI::getUIImage("map_track_16.tga");
sTrackArrowImage = LLUI::getUIImage("direction_arrow.tga");
diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml
index ccf49f6a9f..309c2a5f30 100644
--- a/indra/newview/skins/default/textures/textures.xml
+++ b/indra/newview/skins/default/textures/textures.xml
@@ -143,12 +143,12 @@ with the same filename but different name
<texture name="DownArrow" file_name="bottomtray/DownArrow.png" preload="false" />
- <texture name="DropDown_Disabled" file_name="widgets/DropDown_Disabled.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" />
- <texture name="DropDown_Over" file_name="widgets/DropDown_Over.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" />
- <texture name="DropDown_Press" file_name="widgets/DropDown_Press.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" />
- <texture name="DropDown_Selected" file_name="widgets/DropDown_Selected.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" />
- <texture name="DropDown_On" file_name="widgets/DropDown_On.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" />
- <texture name="DropDown_Off" file_name="widgets/DropDown_Off.png" preload="true" scale.left="2" scale.top="19" scale.right="18" scale.bottom="2" />
+ <texture name="DropDown_Disabled" file_name="widgets/DropDown_Disabled.png" preload="true" scale.left="4" scale.top="19" scale.right="99" scale.bottom="4" />
+ <texture name="DropDown_Over" file_name="widgets/DropDown_Over.png" preload="true" scale.left="4" scale.top="19" scale.right="99" scale.bottom="4" />
+ <texture name="DropDown_Press" file_name="widgets/DropDown_Press.png" preload="true" scale.left="4" scale.top="19" scale.right="99" scale.bottom="4" />
+ <texture name="DropDown_Selected" file_name="widgets/DropDown_Selected.png" preload="true" scale.left="4" scale.top="19" scale.right="99" scale.bottom="4" />
+ <texture name="DropDown_On" file_name="widgets/DropDown_On.png" preload="true" scale.left="4" scale.top="19" scale.right="99" scale.bottom="4" />
+ <texture name="DropDown_Off" file_name="widgets/DropDown_Off.png" preload="true" scale.left="4" scale.top="19" scale.right="99" scale.bottom="4" />
<texture name="DropTarget" file_name="widgets/DropTarget.png" preload="false" />
@@ -265,8 +265,8 @@ with the same filename but different name
<texture name="Linden_Dollar_Alert" file_name="widgets/Linden_Dollar_Alert.png"/>
<texture name="Linden_Dollar_Background" file_name="widgets/Linden_Dollar_Background.png"/>
- <texture name="ListItem_Select" file_name="widgets/ListItem_Select.png" preload="true" />
- <texture name="ListItem_Over" file_name="widgets/ListItem_Over.png" preload="true" />
+ <texture name="ListItem_Select" file_name="widgets/ListItem_Select.png" preload="true" scale.left="2" scale.bottom="2" scale.top="22" scale.right="278" />
+ <texture name="ListItem_Over" file_name="widgets/ListItem_Over.png" preload="true" scale.left="2" scale.bottom="2" scale.top="22" scale.right="278" />
<texture name="Lock" file_name="icons/Lock.png" preload="false" />
<texture name="Lock2" file_name="navbar/Lock.png" preload="false" />
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 61ca783d14..44c9284b36 100644
--- a/indra/newview/skins/default/xui/en/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/en/floater_about_land.xml
@@ -1825,6 +1825,15 @@ Only large parcels can be listed in search.
top_delta="0"
right="-15"
select_on_focus="true" />
+ <check_box
+ height="16"
+ label="Hide URL"
+ layout="topleft"
+ name="hide_music_url"
+ tool_tip="Checking this option will hide the music url to any non-authorized viewers of this parcel information."
+ left_delta="10"
+ top_pad="5"
+ width="292" />
<text
type="string"
length="1"
diff --git a/indra/newview/skins/default/xui/en/floater_camera.xml b/indra/newview/skins/default/xui/en/floater_camera.xml
index a797d54749..2bd8420925 100644
--- a/indra/newview/skins/default/xui/en/floater_camera.xml
+++ b/indra/newview/skins/default/xui/en/floater_camera.xml
@@ -82,6 +82,8 @@
orientation="vertical"
tool_tip="Zoom camera toward focus"
top_pad="0"
+ min_val="0"
+ max_val="1"
width="18">
<commit_callback function="Slider.value_changed"/>
</slider_bar>
diff --git a/indra/newview/skins/default/xui/en/floater_inventory.xml b/indra/newview/skins/default/xui/en/floater_inventory.xml
index e187eabd3a..0d381fe5cb 100644
--- a/indra/newview/skins/default/xui/en/floater_inventory.xml
+++ b/indra/newview/skins/default/xui/en/floater_inventory.xml
@@ -20,11 +20,11 @@
</floater.string>
<floater.string
name="TitleFetching">
- Inventory (Fetching [ITEM_COUNT] Items...) [FILTER]
+ MY INVENTORY (Fetching [ITEM_COUNT] Items...) [FILTER]
</floater.string>
<floater.string
name="TitleCompleted">
- Inventory ([ITEM_COUNT] Items) [FILTER]
+ MY INVENTORY ([ITEM_COUNT] Items) [FILTER]
</floater.string>
<floater.string
name="Fetched">
diff --git a/indra/newview/skins/default/xui/en/floater_test_inspectors.xml b/indra/newview/skins/default/xui/en/floater_test_inspectors.xml
index 0f5c5f2be0..209285da2e 100644
--- a/indra/newview/skins/default/xui/en/floater_test_inspectors.xml
+++ b/indra/newview/skins/default/xui/en/floater_test_inspectors.xml
@@ -116,10 +116,10 @@
follows="left|top"
font="SansSerif"
height="20"
- left="0"
+ left="10"
max_length="65536"
name="slurl"
- top_pad="4"
+ top_pad="20"
width="150">
secondlife:///app/agent/00000000-0000-0000-0000-000000000000/inspect
</text>
@@ -127,12 +127,11 @@
follows="left|top"
font="SansSerif"
height="20"
- left="0"
+ left="10"
max_length="65536"
name="slurl_group"
- top_pad="4"
+ top_pad="20"
width="150">
secondlife:///app/group/00000000-0000-0000-0000-000000000000/inspect
</text>
-
</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_test_text_editor.xml b/indra/newview/skins/default/xui/en/floater_test_text_editor.xml
index dc8f00d5f3..b730f0e511 100644
--- a/indra/newview/skins/default/xui/en/floater_test_text_editor.xml
+++ b/indra/newview/skins/default/xui/en/floater_test_text_editor.xml
@@ -28,4 +28,17 @@
width="200">
This contains long text and should scroll horizontally to the right
</text_editor>
+ <text_editor
+ height="50"
+ follows="top|left|bottom"
+ font="SansSerif"
+ left="10"
+ name="numeric_text_editor"
+ tool_tip="text editor for numeric text entry only"
+ top_pad="10"
+ text_type="int"
+ width="200">
+ This is text that is NOT a number, so shouldn't appear
+ </text_editor>
+
</floater>
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 34d4b19410..86ac7c8e54 100644
--- a/indra/newview/skins/default/xui/en/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/en/floater_world_map.xml
@@ -279,12 +279,12 @@
<icon
follows="top|right"
height="16"
- image_name="map_event.tga"
+ image_name="Parcel_PG_Dark"
layout="topleft"
mouse_opaque="true"
name="event"
left_pad="0"
- width="16" />
+ width="18" />
<text
type="string"
length="1"
@@ -312,13 +312,13 @@
<icon
follows="top|right"
height="16"
- image_name="map_event_mature.tga"
+ image_name="Parcel_M_Dark"
layout="topleft"
mouse_opaque="true"
name="events_mature_icon"
top_delta="0"
left_pad="0"
- width="16" />
+ width="18" />
<text
type="string"
length="1"
@@ -345,13 +345,13 @@
<icon
follows="top|right"
height="16"
- image_name="map_event_adult.tga"
+ image_name="Parcel_R_Dark"
layout="topleft"
left_pad="0"
mouse_opaque="true"
name="events_adult_icon"
top_delta="0"
- width="16" />
+ width="18" />
<text
type="string"
length="1"
diff --git a/indra/newview/skins/default/xui/en/panel_chat_header.xml b/indra/newview/skins/default/xui/en/panel_chat_header.xml
index 89d632c4c6..51e2256a7d 100644
--- a/indra/newview/skins/default/xui/en/panel_chat_header.xml
+++ b/indra/newview/skins/default/xui/en/panel_chat_header.xml
@@ -19,7 +19,7 @@
name="avatar_icon"
top="3"
width="18" />
- <text_editor
+ <text
allow_scroll="false"
v_pad = "7"
read_only = "true"
diff --git a/indra/newview/skins/default/xui/en/panel_classified_info.xml b/indra/newview/skins/default/xui/en/panel_classified_info.xml
index 31719aad20..34c1923582 100644
--- a/indra/newview/skins/default/xui/en/panel_classified_info.xml
+++ b/indra/newview/skins/default/xui/en/panel_classified_info.xml
@@ -29,7 +29,7 @@
layout="topleft"
name="back_btn"
picture_style="true"
- left="10"
+ left="11"
tab_stop="false"
top="2"
width="23" />
@@ -40,7 +40,7 @@
layout="topleft"
left_pad="10"
name="title"
- text_color="white"
+ text_color="LtGray"
top="0"
value="Classified Info"
use_ellipses="true"
@@ -49,13 +49,13 @@
color="DkGray2"
opaque="true"
follows="all"
- height="500"
+ height="502"
layout="topleft"
- left="10"
+ left="9"
top_pad="10"
name="profile_scroll"
reserve_scroll_corner="false"
- width="313">
+ width="310">
<panel
name="scroll_content_panel"
follows="left|top"
@@ -65,16 +65,16 @@
background_visible="false"
height="500"
left="0"
- width="295">
+ width="285">
<texture_picker
enabled="false"
- follows="left|top"
+ follows="left|top|right"
height="197"
layout="topleft"
- left="10"
+ left="11"
name="classified_snapshot"
- top="20"
- width="290" />
+ top="10"
+ width="286" />
<text_editor
allow_scroll="false"
bg_visible="false"
@@ -181,37 +181,35 @@
</scroll_container>
<panel
follows="left|right|bottom"
- height="20"
+ height="35"
layout="topleft"
- top_pad="8"
- left="10"
+ top_pad="5"
+ left="9"
name="buttons">
<button
follows="bottom|left"
- height="19"
+ height="23"
label="Teleport"
layout="topleft"
left="0"
name="teleport_btn"
top="0"
- width="90" />
+ width="101" />
<button
follows="bottom|left"
- height="19"
+ height="23"
label="Map"
layout="topleft"
- left_pad="10"
+ left_pad="3"
name="show_on_map_btn"
- top="0"
- width="90" />
+ width="100" />
<button
follows="bottom|left"
- height="19"
+ height="23"
label="Edit"
layout="topleft"
- right="-1"
name="edit_btn"
- top="0"
- width="90" />
+ left_pad="3"
+ width="101" />
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_classifieds_list_item.xml b/indra/newview/skins/default/xui/en/panel_classifieds_list_item.xml
index 9518151b72..1375eb87d9 100644
--- a/indra/newview/skins/default/xui/en/panel_classifieds_list_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_classifieds_list_item.xml
@@ -76,6 +76,6 @@
left_pad="5"
right="-8"
name="info_chevron"
- top_delta="15"
+ top_delta="24"
width="20" />
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_edit_classified.xml b/indra/newview/skins/default/xui/en/panel_edit_classified.xml
index 188ded3dab..a357ba1d97 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_classified.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_classified.xml
@@ -23,7 +23,7 @@
layout="topleft"
name="back_btn"
picture_style="true"
- left="10"
+ left="11"
tab_stop="false"
top="2"
width="23" />
@@ -31,27 +31,27 @@
type="string"
length="1"
follows="top"
- font="SansSerifHuge"
- height="15"
+ font="SansSerifHugeBold"
+ height="26"
layout="topleft"
left_pad="10"
name="title"
- text_color="white"
- top="5"
+ text_color="LtGray"
+ top="0"
width="250">
Edit Classified
</text>
<scroll_container
color="DkGray2"
follows="all"
- height="510"
+ height="502"
layout="topleft"
- left="10"
+ left="9"
top_pad="10"
name="profile_scroll"
reserve_scroll_corner="false"
opaque="true"
- width="313">
+ width="310">
<panel
name="scroll_content_panel"
follows="left|top"
@@ -65,10 +65,10 @@
<texture_picker
follows="left|top|right"
height="197"
- width="290"
+ width="286"
layout="topleft"
- top="20"
- left="10"
+ top="10"
+ left="11"
name="classified_snapshot" />
<icon
height="18"
@@ -78,7 +78,7 @@
name="edit_icon"
label=""
tool_tip="Click to select an image"
- top="27"
+ top="17"
width="18" />
<text
type="string"
@@ -165,29 +165,29 @@
</text>
<button
follows="left|top"
- height="20"
+ height="23"
label="Set to Current Location"
layout="topleft"
- left="8"
+ left="10"
top_pad="5"
name="set_to_curr_location_btn"
- width="200" />
+ width="156" />
<combo_box
follows="left|top"
- height="18"
+ height="23"
label=""
left="10"
name="category"
top_pad="5"
- width="200" />
+ width="156" />
<combo_box
allow_text_entry="false"
follows="left|top"
- height="18"
+ height="23"
left="10"
name="content_type"
top_pad="5"
- width="200">
+ width="156">
<combo_item
name="mature_ci"
value="Mature">
@@ -203,10 +203,11 @@
decimal_digits="0"
follows="left|top"
halign="left"
- height="16"
+ height="23"
increment="1"
label_width="20"
label="L$"
+ v_pad="10"
layout="topleft"
left="10"
value="50"
@@ -228,30 +229,29 @@
</scroll_container>
<panel
follows="left|right|bottom"
- height="20"
+ height="23"
label="bottom_panel"
layout="topleft"
- left="10"
+ left="9"
name="bottom_panel"
top_pad="5"
width="303">
<button
follows="bottom|left"
- height="19"
+ height="23"
label="Save"
layout="topleft"
name="save_changes_btn"
left="0"
top="0"
- width="130" />
+ width="152" />
<button
follows="bottom|left"
- height="19"
+ height="23"
label="Cancel"
layout="topleft"
name="cancel_btn"
- left_pad="5"
- right="-1"
- width="130" />
+ left_pad="3"
+ width="152" />
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_edit_pick.xml b/indra/newview/skins/default/xui/en/panel_edit_pick.xml
index 8e39697a16..6ef762dc1d 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_pick.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_pick.xml
@@ -18,7 +18,7 @@
image_overlay="BackArrow_Off"
layout="topleft"
name="back_btn"
- left="10"
+ left="11"
tab_stop="false"
top="2"
width="23" />
@@ -26,26 +26,26 @@
type="string"
length="1"
follows="top"
- font="SansSerifHuge"
- height="15"
+ font="SansSerifHugeBold"
+ height="26"
layout="topleft"
left_pad="10"
name="title"
- text_color="white"
- top="5"
+ text_color="LtGray"
+ top="0"
width="250">
Edit Pick
</text>
<scroll_container
color="DkGray2"
follows="all"
- height="500"
+ height="502"
layout="topleft"
- left="10"
+ left="9"
top_pad="10"
name="profile_scroll"
opaque="true"
- width="313">
+ width="310">
<panel
name="scroll_content_panel"
follows="left|top|right"
@@ -59,11 +59,11 @@
<texture_picker
follows="left|top|right"
height="197"
- width="280"
+ width="272"
layout="topleft"
no_commit_on_selection="true"
- top="20"
- left="10"
+ top="10"
+ left="11"
name="pick_snapshot" />
<icon
height="18"
@@ -73,7 +73,7 @@
name="edit_icon"
label=""
tool_tip="Click to select an image"
- top="27"
+ top="17"
width="18" />
<text
type="string"
@@ -100,7 +100,7 @@
max_length="63"
name="pick_name"
text_color="black"
- width="280" />
+ width="273" />
<text
type="string"
length="1"
@@ -119,7 +119,7 @@
<text_editor
follows="left|top|right"
height="100"
- width="280"
+ width="273"
hide_scrollbar="false"
layout="topleft"
left="10"
@@ -158,41 +158,40 @@
</text>
<button
follows="left|top"
- height="20"
+ height="23"
label="Set to Current Location"
layout="topleft"
left="8"
top_pad="0"
name="set_to_curr_location_btn"
- width="200" />
+ width="156" />
</panel>
</scroll_container>
<panel
follows="left|right|bottom"
- height="20"
+ height="23"
label="bottom_panel"
layout="topleft"
- left="10"
+ left="9"
name="bottom_panel"
top_pad="5"
width="303">
<button
follows="bottom|left"
- height="19"
+ height="23"
label="Save [WHAT]"
layout="topleft"
name="save_changes_btn"
left="0"
top="0"
- width="130" />
+ width="152" />
<button
follows="bottom|left"
- height="19"
+ height="23"
label="Cancel"
layout="topleft"
name="cancel_btn"
- left_pad="5"
- right="-1"
- width="130" />
+ left_pad="3"
+ width="152" />
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_group_notices.xml b/indra/newview/skins/default/xui/en/panel_group_notices.xml
index 5f46ad7860..1f16aea2ef 100644
--- a/indra/newview/skins/default/xui/en/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_notices.xml
@@ -159,6 +159,7 @@ Maximum 200 per group daily
left_pad="3"
max_length="511"
name="create_message"
+ text_type="ascii"
top_delta="0"
width="220"
word_wrap="true" />
diff --git a/indra/newview/skins/default/xui/en/panel_landmark_info.xml b/indra/newview/skins/default/xui/en/panel_landmark_info.xml
index d1b22a34bb..6927906d3d 100644
--- a/indra/newview/skins/default/xui/en/panel_landmark_info.xml
+++ b/indra/newview/skins/default/xui/en/panel_landmark_info.xml
@@ -269,6 +269,7 @@
name="notes_editor"
read_only="true"
text_readonly_color="white"
+ text_type="ascii"
top_pad="5"
width="290"
wrap="true" />
diff --git a/indra/newview/skins/default/xui/en/panel_people.xml b/indra/newview/skins/default/xui/en/panel_people.xml
index 447ac1b123..31ea54cf40 100644
--- a/indra/newview/skins/default/xui/en/panel_people.xml
+++ b/indra/newview/skins/default/xui/en/panel_people.xml
@@ -237,7 +237,7 @@ If you're looking for people to hang out with, [secondlife:///app/worldmap try t
left="0"
name="group_list"
no_filtered_groups_msg="No groups"
- no_groups_msg="[secondlife:///app/search/groups Trying searching for some groups to join.]"
+ no_groups_msg="[secondlife:///app/search/groups Try searching for some groups to join.]"
top="0"
width="313" />
<panel
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 375f369ba7..097813131f 100644
--- a/indra/newview/skins/default/xui/en/panel_pick_info.xml
+++ b/indra/newview/skins/default/xui/en/panel_pick_info.xml
@@ -16,7 +16,7 @@
image_overlay="BackArrow_Off"
layout="topleft"
name="back_btn"
- left="10"
+ left="11"
tab_stop="false"
top="2"
width="23" />
@@ -27,7 +27,7 @@
layout="topleft"
left_pad="10"
name="title"
- text_color="white"
+ text_color="LtGray"
top="0"
value="Pick Info"
use_ellipses="true"
@@ -36,12 +36,12 @@
color="DkGray2"
opaque="true"
follows="all"
- height="500"
+ height="502"
layout="topleft"
- left="10"
- top_pad="5"
+ left="9"
+ top_pad="10"
name="profile_scroll"
- width="313">
+ width="310">
<panel
name="scroll_content_panel"
follows="left|top|right"
@@ -57,10 +57,10 @@
follows="left|top|right"
height="197"
layout="topleft"
- left="10"
+ left="11"
name="pick_snapshot"
- top="20"
- width="280" />
+ top="10"
+ width="272" />
<text_editor
allow_scroll="false"
bg_visible="false"
@@ -115,8 +115,8 @@
follows="left|right|bottom"
height="35"
layout="topleft"
- top_pad="8"
- left="10"
+ top_pad="5"
+ left="9"
name="buttons">
<button
follows="bottom|left"
@@ -126,24 +126,22 @@
left="0"
name="teleport_btn"
top="0"
- width="90" />
+ width="101" />
<button
follows="bottom|left"
height="23"
label="Map"
layout="topleft"
- left_pad="10"
+ left_pad="3"
name="show_on_map_btn"
- top="0"
- width="90" />
+ width="100" />
<button
follows="bottom|left"
height="23"
label="Edit"
layout="topleft"
- right="-1"
name="edit_btn"
- top="0"
- width="90" />
+ left_pad="3"
+ width="101" />
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_pick_list_item.xml b/indra/newview/skins/default/xui/en/panel_pick_list_item.xml
index 9bcce1685e..8b25fb5d2a 100644
--- a/indra/newview/skins/default/xui/en/panel_pick_list_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_pick_list_item.xml
@@ -76,6 +76,6 @@
left_pad="5"
right="-8"
name="info_chevron"
- top_delta="15"
+ top_delta="24"
width="20" />
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_picks.xml b/indra/newview/skins/default/xui/en/panel_picks.xml
index d31f4d039f..887a89d518 100644
--- a/indra/newview/skins/default/xui/en/panel_picks.xml
+++ b/indra/newview/skins/default/xui/en/panel_picks.xml
@@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
+bg_opaque_color="DkGray2"
+ background_visible="true"
+ background_opaque="true"
follows="all"
height="540"
label="Picks"
@@ -70,13 +73,15 @@
</accordion_tab>
</accordion>
<panel
- background_visible="true"
+bg_opaque_color="DkGray2"
+ background_visible="true"
+ background_opaque="true"
bevel_style="none"
enabled="false"
auto_resize="false"
follows="bottom"
- left="0"
- height="18"
+ left="1"
+ height="27"
label="bottom_panel"
layout="topleft"
name="edit_panel"
@@ -90,9 +95,9 @@
image_unselected="OptionsMenu_Off"
image_disabled="OptionsMenu_Disabled"
layout="topleft"
- left="0"
+ left="10"
name="gear_menu_btn"
- top="5"
+ top="9"
width="18" />
<button
follows="bottom|left"
@@ -104,7 +109,7 @@
left_pad="15"
name="new_btn"
tool_tip="Create a new pick or classified at the current location"
- top="5"
+ top="9"
width="18" />
<button
follows="bottom|right"
@@ -115,14 +120,17 @@
layout="topleft"
name="trash_btn"
right="-10"
- top="5"
+ top="9"
width="18" />
</panel>
<panel
+ bg_opaque_color="DkGray"
+ background_visible="true"
+ background_opaque="true"
layout="topleft"
left="0"
height="30"
- top_pad="10"
+ top_pad="7"
name="buttons_cucks"
width="313">
<button
@@ -131,35 +139,33 @@
height="23"
label="Info"
layout="topleft"
- left="5"
+ left="2"
name="info_btn"
tab_stop="false"
tool_tip="Show pick information"
- top="0"
- width="55" />
+ top="5"
+ width="95" />
<button
enabled="false"
follows="bottom|left"
height="23"
label="Teleport"
layout="topleft"
- left_pad="5"
+ left_pad="3"
name="teleport_btn"
tab_stop="false"
tool_tip="Teleport to the corresponding area"
- top="0"
- width="77" />
+ width="117" />
<button
enabled="false"
follows="bottom|left"
height="23"
label="Map"
layout="topleft"
- left_pad="5"
+ left_pad="3"
name="show_on_map_btn"
tab_stop="false"
tool_tip="Show the corresponding area on the World Map"
- top="0"
- width="50" />
+ width="90" />
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/en/widgets/inspector.xml b/indra/newview/skins/default/xui/en/widgets/inspector.xml
index 8ec206023e..23f32253b6 100644
--- a/indra/newview/skins/default/xui/en/widgets/inspector.xml
+++ b/indra/newview/skins/default/xui/en/widgets/inspector.xml
@@ -1,10 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<!-- See also settings.xml UIFloater* settings for configuration -->
<inspector name="inspector"
- bg_opaque_color="DkGray_66"
- background_visible="true"
- bg_opaque_image="none"
- background_opaque="true"
- bg_alpha_image="none"
- text_color="InspectorTipTextColor"
- />
+ bg_opaque_color="DkGray_66"
+ background_visible="true"
+ bg_opaque_image="none"
+ background_opaque="true"
+ bg_alpha_image="none"
+ mouse_opaque="true"
+ text_color="InspectorTipTextColor"/>
diff --git a/indra/newview/skins/default/xui/en/widgets/tool_tip.xml b/indra/newview/skins/default/xui/en/widgets/tool_tip.xml
index a19201f7c3..9ca15ae50d 100644
--- a/indra/newview/skins/default/xui/en/widgets/tool_tip.xml
+++ b/indra/newview/skins/default/xui/en/widgets/tool_tip.xml
@@ -1,12 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<!-- See also settings.xml UIFloater* settings for configuration -->
<tool_tip name="tooltip"
max_width="200"
padding="4"
wrap="true"
font="SansSerif"
+ mouse_opaque="false"
bg_opaque_image="Tooltip"
background_opaque="true"
background_visible="true"
- text_color="ToolTipTextColor"
- />
+ text_color="ToolTipTextColor"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_buy_currency.xml b/indra/newview/skins/default/xui/ja/floater_buy_currency.xml
index ffdcf838d3..357b3682ba 100644
--- a/indra/newview/skins/default/xui/ja/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/ja/floater_buy_currency.xml
@@ -46,7 +46,7 @@
L$ [AMT]
</text>
<text name="currency_links">
- [http://www.secondlife.com/my/account/payment_method_management.php?lang=ja-JP payment method] | [http://www.secondlife.com/my/account/currency.php?lang=ja-JP currency] | [http://www.secondlife.com/my/account/exchange_rates.php?lang=ja-JP exchange rate]
+ [http://www.secondlife.com/my/account/payment_method_management.php?lang=ja-JP 支払方法] | [http://www.secondlife.com/my/account/currency.php?lang=ja-JP 通貨] | [http://www.secondlife.com/my/account/exchange_rates.php?lang=ja-JP 換算レート]
</text>
<text name="exchange_rate_note">
金額を再入力して最新換算レートを確認します。