diff options
author | Vadim Savchuk <vsavchuk@productengine.com> | 2010-07-29 17:48:41 +0300 |
---|---|---|
committer | Vadim Savchuk <vsavchuk@productengine.com> | 2010-07-29 17:48:41 +0300 |
commit | 45adf1d6124e72be55a5764a72a58cde8b7c85fe (patch) | |
tree | f0c1ba4e4053ebc5527ce76396e2c9e93b8cfe98 | |
parent | 5e2448347c3b3d071a51a26fc71ea29c779dd7b5 (diff) |
EXT-8501 FIXED Check menu items always looked as checked.
Reason:
Check menu items (instances of LLMenuItemCheckGL) had used LLUICtrl::getValue() to know whether they should draw the checkmark.
Recently this was broken when getValue() was overriden in LLMenuItemCallGL to return a string.
Fix:
Overriden getValue() in LLMenuItemCheckGL to return a boolean value, not a string.
Reviewed by Mike Antipov at https://codereview.productengine.com/secondlife/r/821/
--HG--
branch : product-engine
-rw-r--r-- | indra/llui/llmenugl.cpp | 9 | ||||
-rw-r--r-- | indra/llui/llmenugl.h | 1 | ||||
-rw-r--r-- | indra/newview/llviewermenu.cpp | 2 |
3 files changed, 12 insertions, 0 deletions
diff --git a/indra/llui/llmenugl.cpp b/indra/llui/llmenugl.cpp index 8610d79142..12007f7b52 100644 --- a/indra/llui/llmenugl.cpp +++ b/indra/llui/llmenugl.cpp @@ -928,6 +928,15 @@ void LLMenuItemCheckGL::setValue(const LLSD& value) } } +//virtual +LLSD LLMenuItemCheckGL::getValue() const +{ + // Get our boolean value from the view model. + // If we don't override this method then the implementation from + // LLMenuItemGL will return a string. (EXT-8501) + return LLUICtrl::getValue(); +} + // called to rebuild the draw label void LLMenuItemCheckGL::buildDrawLabel( void ) { diff --git a/indra/llui/llmenugl.h b/indra/llui/llmenugl.h index a484405eaa..bf40163dac 100644 --- a/indra/llui/llmenugl.h +++ b/indra/llui/llmenugl.h @@ -322,6 +322,7 @@ public: virtual void onCommit( void ); virtual void setValue(const LLSD& value); + virtual LLSD getValue() const; // called to rebuild the draw label virtual void buildDrawLabel( void ); diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index df8e127b1f..23e502c76f 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -2411,6 +2411,8 @@ static void init_default_item_label(const std::string& item_name) boost::unordered_map<std::string, LLStringExplicit>::iterator it = sDefaultItemLabels.find(item_name); if (it == sDefaultItemLabels.end()) { + // *NOTE: This will not work for items of type LLMenuItemCheckGL because they return boolean value + // (doesn't seem to matter much ATM). LLStringExplicit default_label = gMenuHolder->childGetValue(item_name).asString(); if (!default_label.empty()) { |