From 406927f6293efa416b174cfa1c88689aab9615f7 Mon Sep 17 00:00:00 2001 From: Adam Moss Date: Wed, 14 Oct 2009 10:40:56 +0000 Subject: Merge a big bunch of fixes from maint-viewer. Hooray. svn merge -r136066:136073 svn+ssh://svn.lindenlab.com/svn/linden/branches/maint-viewer/maint-viewer-24-qa-9 DEV-8553 New Server Tools - Prep Land For Sale DEV-32942 (QAR-1521) Bad border crossings or TP / Ruthing issues DEV-32942 (QAR-1521) Bad border crossings or TP / Ruthing issues DEV-33239 VWR-13816: Resizing the Search Window Causes the Results to Refresh back to First Page DEV-27746 Running a dev build of Second Life will make console window show up on non-dev builds (Windows) DEV-33209 Linux 1.24.0.120778 client fails to run DEV-29123 SVC-3871: Crash of viewer when clicking on ghost objects at (0,0,0) on a sim DEV-35433 Attempting to upload wrong file type crashes viewer DEV-33499 viewer2009 is not using KDU DEV-33912 Griefing viewer crashes others' viewers with malformed sound files DEV-3784 VWR-138: Animation Priority not working correctly, Can't create new AOs DEV-20678 VWR-9069: Region variable says 'Region Name' in AR if no object is selected DEV-19934 Help->About Second Life doesn't differentiate between 32- and 64-bit Vista DEV-6604 Restored folders have 'Purge Item' and 'Restore Item' options DEV-12867 VWR-5717: Selected Text is not replaced by Input text when Japanese IME is on DEV-11894 Notecards/Texture windows don't open completely when opened from inventory DEV-10641 VWR-4955: Local Chat doesn't show end of last conversation DEV-30039 VWR-12620: Viewer build fails on Linux when compiled with -O2 (--type=Release) DEV-20944 VWR-9065: (intermittent) Right Click >profile on avatar does not display profile DEV-24828 Menu accelerator prefixes shouldn't be hard-coded DEV-34529 VWR-14267: Clicking send in an IM window does not add the sent text to the line editor history DEV-34124 Invite to group, search by name will not show resident if their first name is two characters DEV-20930 VWR-9248: On Mac: the "--url" option causes a command line parsing error DEV-35306 Adult keyword filter triggers multiple warnings DEV-35503 VWR-3595: "Second Life requires True Color (32-bit) to run in a window" message is incorrect DEV-35656 VWR-12995: FTBFS: error: format '%-3d' expects type 'int', but argument 3 has type 'size_t' DEV-30043 VWR-12533: Linux viewer build for OpenAL fails during packaging unless FMOD library is available DEV-31898 VWR-13202: Right clicking mouse triggers arrow key control events DEV-32610 Keyboard shortcuts on OSX viewer overridden by OSX DEV-27067 Coverity Prevent: EVALUATION_ORDER defects DEV-26188 VWR-2242: Specially formatted .BVH file can cause avatar distortion DEV-25475 About Land dialog no longer shows Area: field DEV-19897 OSX Viewer Installer (for an RC) opens with poor positioning DEV-22837 Inventory> Search Recent Items highlighting incorrect characters DEV-21709 VWR-9377: Mapping will default to leave exact sim name listing first. (Searching Gar forces Gar to come up and not Garden of Dreams) DEV-23079 implement volume serial for linux client DEV-13930 VWR-6432: Space Navigator operation with vehicles is broken DEV-27666 VWR-10829: Linux Viewer: CLICK_ACTION_PAY shows CLICK_ACTION_PLAY icon DEV-23670 Viewer crashes on startup if installed into a custom folder with Korean, Japanese or Chinese characters in path DEV-19313 VWR-8454: PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS not highlighted in script editor DEV-19918 VWR-8885: Move character/*.xml files to source bundle DEV-25555 VWR-11172: A source coding mistake prevents number-pad keys from specifying Ctrl+digit shortcuts on Windows DEV-8536 VWR-4057: Multi-line chat display bug - first character in line missing DEV-29592 Mac LLFastTimer uses wall clock instead of Intel PMU DEV-29644 VWR-12587: Cmake install target has a hard coded secondlife-bin reference remaining DEV-25320 VWR-11128: Python not always detected by develop.py DEV-30040 VWR-12617: Poor type name that violates Coding Standard breaks compatibility with system header files DEV-30380 indra/newview/res-sdl/toolpay.BMP is modified during ./develop.py configure DEV-31247 VWR-12763: non-portable printf specifier used with size_t causes FTBFS on 64bit (due to -Werror) DEV-29565 VWR-12569: A comment in lluistring.h contains undefined UTF-8 code sequences DEV-22100 VWR-9620: send_parcel_select_objects in newview/llfloaterland.cpp uses the wrong datatype for the ReturnType field causing a warning DEV-31911 Selected objects / primitives should be greyed out when nothing is selected DEV-3667 Windows: Accelerator keys should be "Ctrl+X" rather than "Ctrl-X" DEV-27223 disable gstreamer on 64-bit linux DEV-8172 We Need a Linden Sale Option to Sell Land to Anyone DEV-25511 VWR-10311: Enable LipSync by default DEV-20443 Revamp group creation confirmation dialog to be more communicative DEV-20132 VWR-7800: Joystick / SpaceNavigator. Camera should remain in position when exiting flycam mode into avatar mode. DEV-18420 VWR-8393: Have build scripts copy fmod from an external location DEV-24841 VWR-10717: Right Space Navigator button should toggle fly in avatar movment, not jump/flyup. DEV-28457 change auto-populate value in buy L$ window from 1000 to 2000 DEV-15545 VWR-3725: Please add resize option to the SEARCH window UI --- indra/llxuixml/lltrans.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'indra/llxuixml') diff --git a/indra/llxuixml/lltrans.h b/indra/llxuixml/lltrans.h index 79df5802e5..856b9e04fc 100644 --- a/indra/llxuixml/lltrans.h +++ b/indra/llxuixml/lltrans.h @@ -103,6 +103,11 @@ public: return findString(result, xml_desc, empty); } + static std::string getKeyboardString(const char* keystring) + { + // These map directly - no need to specialize + return getString( ll_safe_string(keystring) ); + } // get the default args static const LLStringUtil::format_map_t& getDefaultArgs() -- cgit v1.2.3 From 5edb4f2171fb92ff64913459a63afb20474db25a Mon Sep 17 00:00:00 2001 From: Richard Nelson Date: Thu, 15 Oct 2009 19:56:45 +0000 Subject: removed requirement for specializing ParamCompare on boost::function types eliminated usage of iterator_range from LLInitParam made LLTextEditor::addChar consistent with truncate in counting text bytes (not including null terminator) EXT-1494 - Avatar profile description text truncated to 255 characters reviewed by Leyla --- indra/llxuixml/llinitparam.cpp | 41 ++++++---------------------- indra/llxuixml/llinitparam.h | 61 +++++++++++++++++++----------------------- indra/llxuixml/lluicolor.cpp | 13 +++------ indra/llxuixml/lluicolor.h | 16 ++++++++--- 4 files changed, 52 insertions(+), 79 deletions(-) (limited to 'indra/llxuixml') diff --git a/indra/llxuixml/llinitparam.cpp b/indra/llxuixml/llinitparam.cpp index 1b867b79c9..1abd411f37 100644 --- a/indra/llxuixml/llinitparam.cpp +++ b/indra/llxuixml/llinitparam.cpp @@ -127,7 +127,7 @@ namespace LLInitParam bool BaseBlock::submitValue(const Parser::name_stack_t& name_stack, Parser& p, bool silent) { - if (!deserializeBlock(p, boost::make_iterator_range(name_stack.begin(), name_stack.end()))) + if (!deserializeBlock(p, std::make_pair(name_stack.begin(), name_stack.end()))) { if (!silent) { @@ -304,11 +304,11 @@ namespace LLInitParam bool BaseBlock::deserializeBlock(Parser& p, Parser::name_stack_range_t name_stack) { BlockDescriptor& block_data = getBlockDescriptor(); - bool names_left = !name_stack.empty(); + bool names_left = name_stack.first != name_stack.second; if (names_left) { - const std::string& top_name = name_stack.front().first; + const std::string& top_name = name_stack.first->first; ParamDescriptor::deserialize_func_t deserialize_func = NULL; Param* paramp = NULL; @@ -331,10 +331,11 @@ namespace LLInitParam } } - Parser::name_stack_range_t new_name_stack(++name_stack.begin(), name_stack.end()); + Parser::name_stack_range_t new_name_stack(name_stack.first, name_stack.second); + ++new_name_stack.first; if (deserialize_func) { - return deserialize_func(*paramp, p, new_name_stack, name_stack.empty() ? -1 : name_stack.front().second); + return deserialize_func(*paramp, p, new_name_stack, name_stack.first == name_stack.second ? -1 : name_stack.first->second); } } @@ -346,7 +347,7 @@ namespace LLInitParam Param* paramp = getParamFromHandle((*it)->mParamHandle); ParamDescriptor::deserialize_func_t deserialize_func = (*it)->mDeserializeFunc; - if (deserialize_func && deserialize_func(*paramp, p, name_stack, name_stack.empty() ? -1 : name_stack.front().second)) + if (deserialize_func && deserialize_func(*paramp, p, name_stack, name_stack.first == name_stack.second ? -1 : name_stack.first->second)) { mLastChangedParam = (*it)->mParamHandle; return true; @@ -499,33 +500,7 @@ namespace LLInitParam return param_changed; } - - template<> - bool ParamCompare >::equals( - const boost::function &a, - const boost::function &b) - { - return false; - } - - template<> - bool ParamCompare >::equals( - const boost::function &a, - const boost::function &b) - { - return false; - } - - template<> - bool ParamCompare >::equals( - const boost::function &a, - const boost::function &b) - { - return false; - } - - template<> - bool ParamCompare::equals(const LLSD &a, const LLSD &b) + bool ParamCompare::equals(const LLSD &a, const LLSD &b) { return false; } diff --git a/indra/llxuixml/llinitparam.h b/indra/llxuixml/llinitparam.h index 88bc430504..193d8c1f64 100644 --- a/indra/llxuixml/llinitparam.h +++ b/indra/llxuixml/llinitparam.h @@ -39,25 +39,31 @@ #include #include #include -#include +#include #include "llregistry.h" #include "llmemory.h" namespace LLInitParam { - template - class ParamCompare { - public: - static bool equals(const T &a, const T &b); + template ::type > + struct ParamCompare + { + static bool equals(const T &a, const T &b) + { + return a == b; + } }; - template - bool ParamCompare::equals(const T &a, const T&b) - { - return a == b; - } - + // boost function types are not comparable + template + struct ParamCompare + { + static bool equals(const T&a, const T &b) + { + return false; + } + }; // default constructor adaptor for InitParam Values // constructs default instances of the given type, returned by const reference @@ -192,7 +198,7 @@ namespace LLInitParam }; typedef std::vector > name_stack_t; - typedef boost::iterator_range name_stack_range_t; + typedef std::pair name_stack_range_t; typedef std::vector possible_values_t; typedef boost::function parser_read_func_t; @@ -535,7 +541,7 @@ namespace LLInitParam { self_t& typed_param = static_cast(param); // no further names in stack, attempt to parse value now - if (name_stack.empty()) + if (name_stack.first == name_stack.second) { if (parser.readValue(typed_param.mData.mValue)) { @@ -886,7 +892,7 @@ namespace LLInitParam self_t& typed_param = static_cast(param); value_t value; // no further names in stack, attempt to parse value now - if (name_stack.empty()) + if (name_stack.first == name_stack.second) { // attempt to read value directly if (parser.readValue(value)) @@ -1541,7 +1547,7 @@ namespace LLInitParam static bool deserializeParam(Param& param, Parser& parser, const Parser::name_stack_range_t& name_stack, S32 generation) { - if (name_stack.empty()) + if (name_stack.first == name_stack.second) { //std::string message = llformat("Deprecated value %s ignored", getName().c_str()); //parser.parserWarning(message); @@ -1600,7 +1606,7 @@ namespace LLInitParam { self_t& typed_param = static_cast(param); // type to apply parse direct value T - if (name_stack.empty()) + if (name_stack.first == name_stack.second) { if(parser.readValue(typed_param.mData.mValue)) { @@ -1811,24 +1817,11 @@ namespace LLInitParam } }; - template<> - bool ParamCompare >::equals( - const boost::function &a, - const boost::function &b); - - template<> - bool ParamCompare >::equals( - const boost::function &a, - const boost::function &b); - - template<> - bool ParamCompare >::equals( - const boost::function &a, - const boost::function &b); - - - template<> - bool ParamCompare::equals(const LLSD &a, const LLSD &b); + template<> + struct ParamCompare + { + static bool equals(const LLSD &a, const LLSD &b); + }; } #endif // LL_LLPARAM_H diff --git a/indra/llxuixml/lluicolor.cpp b/indra/llxuixml/lluicolor.cpp index ef0fa5d634..0065edb309 100644 --- a/indra/llxuixml/lluicolor.cpp +++ b/indra/llxuixml/lluicolor.cpp @@ -58,14 +58,9 @@ bool LLUIColor::isReference() const namespace LLInitParam { // used to detect equivalence with default values on export - template<> - class ParamCompare + bool ParamCompare::equals(const LLUIColor &a, const LLUIColor &b) { - public: - static bool equals(const LLUIColor &a, const LLUIColor &b) - { - // do not detect value equivalence, treat pointers to colors as distinct from color values - return (a.mColorPtr == NULL && b.mColorPtr == NULL ? a.mColor == b.mColor : a.mColorPtr == b.mColorPtr); - } - }; + // do not detect value equivalence, treat pointers to colors as distinct from color values + return (a.mColorPtr == NULL && b.mColorPtr == NULL ? a.mColor == b.mColor : a.mColorPtr == b.mColorPtr); + } } diff --git a/indra/llxuixml/lluicolor.h b/indra/llxuixml/lluicolor.h index 365f61003b..aff81a695d 100644 --- a/indra/llxuixml/lluicolor.h +++ b/indra/llxuixml/lluicolor.h @@ -11,11 +11,12 @@ #define LL_LLUICOLOR_H_ #include "v4color.h" +#include // for boost::false_type namespace LLInitParam { - template - class ParamCompare; + template + struct ParamCompare; } class LLUIColor @@ -36,10 +37,19 @@ public: bool isReference() const; private: - friend class LLInitParam::ParamCompare; + friend struct LLInitParam::ParamCompare; const LLColor4* mColorPtr; LLColor4 mColor; }; +namespace LLInitParam +{ + template<> + struct ParamCompare + { + static bool equals(const class LLUIColor& a, const class LLUIColor& b); + }; +} + #endif -- cgit v1.2.3 From 2ff7f8a772e07335e4ab6788410858667189059e Mon Sep 17 00:00:00 2001 From: Richard Nelson Date: Thu, 15 Oct 2009 21:35:30 +0000 Subject: fix for gcc build --- indra/llxuixml/llinitparam.cpp | 2 +- indra/llxuixml/llinitparam.h | 6 +++--- indra/llxuixml/lluicolor.cpp | 2 +- indra/llxuixml/lluicolor.h | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) (limited to 'indra/llxuixml') diff --git a/indra/llxuixml/llinitparam.cpp b/indra/llxuixml/llinitparam.cpp index 1abd411f37..6dd1f93baf 100644 --- a/indra/llxuixml/llinitparam.cpp +++ b/indra/llxuixml/llinitparam.cpp @@ -500,7 +500,7 @@ namespace LLInitParam return param_changed; } - bool ParamCompare::equals(const LLSD &a, const LLSD &b) + bool ParamCompare::equals(const LLSD &a, const LLSD &b) { return false; } diff --git a/indra/llxuixml/llinitparam.h b/indra/llxuixml/llinitparam.h index 193d8c1f64..b280dfdf63 100644 --- a/indra/llxuixml/llinitparam.h +++ b/indra/llxuixml/llinitparam.h @@ -46,7 +46,7 @@ namespace LLInitParam { - template ::type > + template ::value > struct ParamCompare { static bool equals(const T &a, const T &b) @@ -57,7 +57,7 @@ namespace LLInitParam // boost function types are not comparable template - struct ParamCompare + struct ParamCompare { static bool equals(const T&a, const T &b) { @@ -1818,7 +1818,7 @@ namespace LLInitParam }; template<> - struct ParamCompare + struct ParamCompare { static bool equals(const LLSD &a, const LLSD &b); }; diff --git a/indra/llxuixml/lluicolor.cpp b/indra/llxuixml/lluicolor.cpp index 0065edb309..856c05cf4a 100644 --- a/indra/llxuixml/lluicolor.cpp +++ b/indra/llxuixml/lluicolor.cpp @@ -58,7 +58,7 @@ bool LLUIColor::isReference() const namespace LLInitParam { // used to detect equivalence with default values on export - bool ParamCompare::equals(const LLUIColor &a, const LLUIColor &b) + bool ParamCompare::equals(const LLUIColor &a, const LLUIColor &b) { // do not detect value equivalence, treat pointers to colors as distinct from color values return (a.mColorPtr == NULL && b.mColorPtr == NULL ? a.mColor == b.mColor : a.mColorPtr == b.mColorPtr); diff --git a/indra/llxuixml/lluicolor.h b/indra/llxuixml/lluicolor.h index aff81a695d..fb9c6b9161 100644 --- a/indra/llxuixml/lluicolor.h +++ b/indra/llxuixml/lluicolor.h @@ -15,7 +15,7 @@ namespace LLInitParam { - template + template struct ParamCompare; } @@ -37,7 +37,7 @@ public: bool isReference() const; private: - friend struct LLInitParam::ParamCompare; + friend struct LLInitParam::ParamCompare; const LLColor4* mColorPtr; LLColor4 mColor; @@ -46,7 +46,7 @@ private: namespace LLInitParam { template<> - struct ParamCompare + struct ParamCompare { static bool equals(const class LLUIColor& a, const class LLUIColor& b); }; -- cgit v1.2.3