summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rw-r--r--indra/llmath/llcoord.h19
-rw-r--r--indra/llui/llfloater.cpp4
-rw-r--r--indra/llwindow/llwindow.cpp8
-rw-r--r--indra/newview/llfloatergesture.cpp6
-rw-r--r--indra/newview/llfloatervoiceeffect.cpp4
-rw-r--r--indra/newview/llinventorybridge.cpp1
-rw-r--r--indra/newview/skins/default/xui/en/floater_voice_effect.xml9
7 files changed, 37 insertions, 14 deletions
diff --git a/indra/llmath/llcoord.h b/indra/llmath/llcoord.h
index 756e23dbdf..9b76268afd 100644
--- a/indra/llmath/llcoord.h
+++ b/indra/llmath/llcoord.h
@@ -26,6 +26,15 @@
#ifndef LL_LLCOORD_H
#define LL_LLCOORD_H
+template<typename> class LLCoord;
+struct LL_COORD_TYPE_GL;
+struct LL_COORD_TYPE_WINDOW;
+struct LL_COORD_TYPE_SCREEN;
+
+typedef LLCoord<LL_COORD_TYPE_GL> LLCoordGL;
+typedef LLCoord<LL_COORD_TYPE_WINDOW> LLCoordWindow;
+typedef LLCoord<LL_COORD_TYPE_SCREEN> LLCoordScreen;
+
struct LLCoordCommon
{
LLCoordCommon(S32 x, S32 y) : mX(x), mY(y) {}
@@ -62,6 +71,8 @@ public:
bool operator==(const self_t& other) const { return mX == other.mX && mY == other.mY; }
bool operator!=(const self_t& other) const { return !(*this == other); }
+ static const self_t& getTypedCoords(const COORD_FRAME& self) { return static_cast<const self_t&>(self); }
+ static self_t& getTypedCoords(COORD_FRAME& self) { return static_cast<self_t&>(self); }
};
struct LL_COORD_TYPE_GL
@@ -70,13 +81,13 @@ struct LL_COORD_TYPE_GL
LLCoordCommon convertToCommon() const
{
- const LLCoord<LL_COORD_TYPE_GL>& self = static_cast<const LLCoord<LL_COORD_TYPE_GL>&>(*this);
+ const LLCoordGL& self = LLCoordGL::getTypedCoords(*this);
return LLCoordCommon(self.mX, self.mY);
}
void convertFromCommon(const LLCoordCommon& from)
{
- LLCoord<LL_COORD_TYPE_GL>& self = static_cast<LLCoord<LL_COORD_TYPE_GL>&>(*this);
+ LLCoordGL& self = LLCoordGL::getTypedCoords(*this);
self.mX = from.mX;
self.mY = from.mY;
}
@@ -98,8 +109,4 @@ struct LL_COORD_TYPE_SCREEN
void convertFromCommon(const LLCoordCommon& from);
};
-typedef LLCoord<LL_COORD_TYPE_GL> LLCoordGL;
-typedef LLCoord<LL_COORD_TYPE_WINDOW> LLCoordWindow;
-typedef LLCoord<LL_COORD_TYPE_SCREEN> LLCoordScreen;
-
#endif
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index 3afa1b8e3a..2a40bbf33c 100644
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -3306,7 +3306,7 @@ bool LLCoordFloater::operator==(const LLCoordFloater& other) const
LLCoordCommon LL_COORD_FLOATER::convertToCommon() const
{
- const LLCoordFloater& self = static_cast<const LLCoordFloater&>(*this);
+ const LLCoordFloater& self = static_cast<const LLCoordFloater&>(LLCoordFloater::getTypedCoords(*this));
LLRect snap_rect = gFloaterView->getSnapRect();
LLFloater* floaterp = mFloater.get();
@@ -3348,7 +3348,7 @@ LLCoordCommon LL_COORD_FLOATER::convertToCommon() const
void LL_COORD_FLOATER::convertFromCommon(const LLCoordCommon& from)
{
- LLCoordFloater& self = static_cast<LLCoordFloater&>(*this);
+ LLCoordFloater& self = static_cast<LLCoordFloater&>(LLCoordFloater::getTypedCoords(*this));
LLRect snap_rect = gFloaterView->getSnapRect();
LLFloater* floaterp = mFloater.get();
S32 floater_width = floaterp ? floaterp->getRect().getWidth() : 0;
diff --git a/indra/llwindow/llwindow.cpp b/indra/llwindow/llwindow.cpp
index dd56b6e99b..5b7424acbb 100644
--- a/indra/llwindow/llwindow.cpp
+++ b/indra/llwindow/llwindow.cpp
@@ -455,7 +455,7 @@ BOOL LLWindowManager::isWindowValid(LLWindow *window)
//coordinate conversion utility funcs that forward to llwindow
LLCoordCommon LL_COORD_TYPE_WINDOW::convertToCommon() const
{
- const LLCoordWindow& self = static_cast<const LLCoordWindow&>(*this);
+ const LLCoordWindow& self = LLCoordWindow::getTypedCoords(*this);
LLWindow* windowp = &(*LLWindow::beginInstances());
LLCoordGL out;
@@ -465,7 +465,7 @@ LLCoordCommon LL_COORD_TYPE_WINDOW::convertToCommon() const
void LL_COORD_TYPE_WINDOW::convertFromCommon(const LLCoordCommon& from)
{
- LLCoordWindow& self = static_cast<LLCoordWindow&>(*this);
+ LLCoordWindow& self = LLCoordWindow::getTypedCoords(*this);
LLWindow* windowp = &(*LLWindow::beginInstances());
LLCoordGL from_gl(from);
@@ -474,7 +474,7 @@ void LL_COORD_TYPE_WINDOW::convertFromCommon(const LLCoordCommon& from)
LLCoordCommon LL_COORD_TYPE_SCREEN::convertToCommon() const
{
- const LLCoordScreen& self = static_cast<const LLCoordScreen&>(*this);
+ const LLCoordScreen& self = LLCoordScreen::getTypedCoords(*this);
LLWindow* windowp = &(*LLWindow::beginInstances());
LLCoordGL out;
@@ -484,7 +484,7 @@ LLCoordCommon LL_COORD_TYPE_SCREEN::convertToCommon() const
void LL_COORD_TYPE_SCREEN::convertFromCommon(const LLCoordCommon& from)
{
- LLCoordScreen& self = static_cast<LLCoordScreen&>(*this);
+ LLCoordScreen& self = LLCoordScreen::getTypedCoords(*this);
LLWindow* windowp = &(*LLWindow::beginInstances());
LLCoordGL from_gl(from);
diff --git a/indra/newview/llfloatergesture.cpp b/indra/newview/llfloatergesture.cpp
index d495f20a9a..9ed9d10c75 100644
--- a/indra/newview/llfloatergesture.cpp
+++ b/indra/newview/llfloatergesture.cpp
@@ -90,6 +90,12 @@ public:
if(mFloater)
{
mFloater->addGesture(inv_item,NULL,mFloater->getChild<LLScrollListCtrl>("gesture_list"));
+
+ // EXP-1909 (Pasted gesture displayed twice)
+ // The problem is that addGesture is called here for the second time for the same item (which is copied)
+ // First time addGesture is called from LLFloaterGestureObserver::changed(), which is a callback for inventory
+ // change. So we need to refresh the gesture list to avoid duplicates.
+ mFloater->refreshAll();
}
}
};
diff --git a/indra/newview/llfloatervoiceeffect.cpp b/indra/newview/llfloatervoiceeffect.cpp
index 030fed0575..227720bee3 100644
--- a/indra/newview/llfloatervoiceeffect.cpp
+++ b/indra/newview/llfloatervoiceeffect.cpp
@@ -145,7 +145,9 @@ void LLFloaterVoiceEffect::refreshEffectList()
for (voice_effect_list_t::const_iterator it = template_list.begin(); it != template_list.end(); ++it)
{
const LLUUID& effect_id = it->second;
- std::string effect_name = getString("effect_" + it->first); // will throw an error if the effect is not listed in the XML
+
+ std::string localized_effect = "effect_" + it->first;
+ std::string effect_name = hasString(localized_effect) ? getString(localized_effect) : it->first; // XML contains localized effects names
LLSD effect_properties = effect_interface->getVoiceEffectProperties(effect_id);
diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp
index 6a20120808..ef58e4fa21 100644
--- a/indra/newview/llinventorybridge.cpp
+++ b/indra/newview/llinventorybridge.cpp
@@ -396,6 +396,7 @@ void LLInvFVBridge::removeBatchNoCheck(LLDynamicArray<LLFolderViewEventListener*
for(; it != end; ++it)
{
gInventory.moveObject((*it), trash_id);
+ model->updateItem(gInventory.getItem(*it));
}
// notify inventory observers.
diff --git a/indra/newview/skins/default/xui/en/floater_voice_effect.xml b/indra/newview/skins/default/xui/en/floater_voice_effect.xml
index 77fb21e27c..35cb2670d0 100644
--- a/indra/newview/skins/default/xui/en/floater_voice_effect.xml
+++ b/indra/newview/skins/default/xui/en/floater_voice_effect.xml
@@ -36,15 +36,20 @@
<string name="effect_Cyber">Cyber</string>
<string name="effect_DeepBot">DeepBot</string>
<string name="effect_Demon">Demon</string>
+ <string name="effect_Female Elf">Female Elf</string>
<string name="effect_Flirty">Flirty</string>
<string name="effect_Foxy">Foxy</string>
- <string name="effect_Halloween_2010_Bonus">Halloween_2010_Bonus</string>
+ <string name="effect_Halloween 2010 Bonus">Halloween_2010_Bonus</string>
<string name="effect_Helium">Helium</string>
<string name="effect_Husky">Husky</string>
+ <string name="effect_Husky Whisper">Husky Whisper</string>
<string name="effect_Intercom">Intercom</string>
+ <string name="effect_Julia">Julia</string>
+ <string name="effect_Lo Lilt">Lo Lilt</string>
<string name="effect_Macho">Macho</string>
<string name="effect_Micro">Micro</string>
<string name="effect_Mini">Mini</string>
+ <string name="effect_Model">Model</string>
<string name="effect_Nano">Nano</string>
<string name="effect_Nightmare">Nightmare</string>
<string name="effect_PopBot">PopBot</string>
@@ -52,10 +57,12 @@
<string name="effect_Radio">Radio</string>
<string name="effect_Robot">Robot</string>
<string name="effect_Roxanne">Roxanne</string>
+ <string name="effect_Rumble">Rumble</string>
<string name="effect_Sabrina">Sabrina</string>
<string name="effect_Samantha">Samantha</string>
<string name="effect_Sexy">Sexy</string>
<string name="effect_Shorty">Shorty</string>
+ <string name="effect_Smaller">Smaller</string>
<string name="effect_Sneaky">Sneaky</string>
<string name="effect_Stallion">Stallion</string>
<string name="effect_Sultry">Sultry</string>