From 4ea7d2de9fcab4dd4694fcbbd2fece1c57f41d2c Mon Sep 17 00:00:00 2001 From: Richard Nelson Date: Mon, 24 May 2010 17:25:35 -0700 Subject: DEV-50271 FIX SLURL support for non-clickable display names reviewed by James --- indra/llui/tests/llurlmatch_test.cpp | 132 ++++++++++++++++++++++++++++++----- 1 file changed, 116 insertions(+), 16 deletions(-) (limited to 'indra/llui/tests/llurlmatch_test.cpp') diff --git a/indra/llui/tests/llurlmatch_test.cpp b/indra/llui/tests/llurlmatch_test.cpp index 24a32de268..ab5770dbf2 100644 --- a/indra/llui/tests/llurlmatch_test.cpp +++ b/indra/llui/tests/llurlmatch_test.cpp @@ -23,11 +23,111 @@ #include "../llurlmatch.h" #include "lltut.h" -// link seam +// link seams + LLUIColor::LLUIColor() : mColorPtr(NULL) {} +LLStyle::Params::Params() +{ +} + +namespace LLInitParam +{ + BaseBlock::BaseBlock() {} + BaseBlock::~BaseBlock() {} + + void BaseBlock::setLastChangedParam(const Param& last_param, bool user_provided) {} + + void BaseBlock::addParam(BlockDescriptor& block_data, const ParamDescriptor& in_param, const char* char_name){} + param_handle_t BaseBlock::getHandleFromParam(const Param* param) const {return 0;} + + void BaseBlock::init(BlockDescriptor& descriptor, BlockDescriptor& base_descriptor, size_t block_size) + { + mBlockDescriptor = &descriptor; + descriptor.mCurrentBlockPtr = this; + } + + Param::Param(BaseBlock* enclosing_block) + : mIsProvided(false) + { + const U8* my_addr = reinterpret_cast(this); + const U8* block_addr = reinterpret_cast(enclosing_block); + mEnclosingBlockOffset = (U16)(my_addr - block_addr); + } + + bool BaseBlock::deserializeBlock(Parser& p, Parser::name_stack_range_t name_stack){ return true; } + bool BaseBlock::serializeBlock(Parser& parser, Parser::name_stack_t name_stack, const LLInitParam::BaseBlock* diff_block) const { return true; } + bool BaseBlock::inspectBlock(Parser& parser, Parser::name_stack_t name_stack) const { return true; } + bool BaseBlock::merge(BlockDescriptor& block_data, const BaseBlock& other, bool overwrite) { return true; } + bool BaseBlock::validateBlock(bool emit_errors) const { return true; } + + TypedParam::TypedParam(BlockDescriptor& descriptor, const char* name, const LLUIColor& value, ParamDescriptor::validation_func_t func, S32 min_count, S32 max_count) + : super_t(descriptor, name, value, func, min_count, max_count) + {} + + void TypedParam::setValueFromBlock() const + {} + + void TypedParam::setBlockFromValue() + {} + + void TypeValues::declareValues() + {} + + bool ParamCompare::equals(const LLFontGL* a, const LLFontGL* b) + { + return false; + } + + TypedParam::TypedParam(BlockDescriptor& descriptor, const char* _name, const LLFontGL*const value, ParamDescriptor::validation_func_t func, S32 min_count, S32 max_count) + : super_t(descriptor, _name, value, func, min_count, max_count) + {} + + void TypedParam::setValueFromBlock() const + {} + + void TypedParam::setBlockFromValue() + {} + + void TypeValues::declareValues() + {} + + void TypeValues::declareValues() + {} + + void TypeValues::declareValues() + {} + + void TypedParam::setValueFromBlock() const + {} + + void TypedParam::setBlockFromValue() + {} + + + bool ParamCompare::equals( + LLUIImage* const &a, + LLUIImage* const &b) + { + return false; + } + + bool ParamCompare::equals(const LLUIColor &a, const LLUIColor &b) + { + return false; + } + +} + +//static +LLFontGL* LLFontGL::getFontDefault() +{ + return NULL; +} + + namespace tut { struct LLUrlMatchData @@ -54,7 +154,7 @@ namespace tut LLUrlMatch match; ensure("empty()", match.empty()); - match.setValues(0, 1, "http://secondlife.com", "Second Life", "", "", LLUIColor(), "", "", false); + match.setValues(0, 1, "http://secondlife.com", "Second Life", "", "", LLStyle::Params(), "", "", false); ensure("! empty()", ! match.empty()); } @@ -67,7 +167,7 @@ namespace tut LLUrlMatch match; ensure_equals("getStart() == 0", match.getStart(), 0); - match.setValues(10, 20, "", "", "", "", LLUIColor(), "", "", false); + match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", "", false); ensure_equals("getStart() == 10", match.getStart(), 10); } @@ -80,7 +180,7 @@ namespace tut LLUrlMatch match; ensure_equals("getEnd() == 0", match.getEnd(), 0); - match.setValues(10, 20, "", "", "", "", LLUIColor(), "", "", false); + match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", "", false); ensure_equals("getEnd() == 20", match.getEnd(), 20); } @@ -93,10 +193,10 @@ namespace tut LLUrlMatch match; ensure_equals("getUrl() == ''", match.getUrl(), ""); - match.setValues(10, 20, "http://slurl.com/", "", "", "", LLUIColor(), "", "", false); + match.setValues(10, 20, "http://slurl.com/", "", "", "", LLStyle::Params(), "", "", false); ensure_equals("getUrl() == 'http://slurl.com/'", match.getUrl(), "http://slurl.com/"); - match.setValues(10, 20, "", "", "", "", LLUIColor(), "", "", false); + match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", "", false); ensure_equals("getUrl() == '' (2)", match.getUrl(), ""); } @@ -109,10 +209,10 @@ namespace tut LLUrlMatch match; ensure_equals("getLabel() == ''", match.getLabel(), ""); - match.setValues(10, 20, "", "Label", "", "", LLUIColor(), "", "", false); + match.setValues(10, 20, "", "Label", "", "", LLStyle::Params(), "", "", false); ensure_equals("getLabel() == 'Label'", match.getLabel(), "Label"); - match.setValues(10, 20, "", "", "", "", LLUIColor(), "", "", false); + match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", "", false); ensure_equals("getLabel() == '' (2)", match.getLabel(), ""); } @@ -125,10 +225,10 @@ namespace tut LLUrlMatch match; ensure_equals("getTooltip() == ''", match.getTooltip(), ""); - match.setValues(10, 20, "", "", "Info", "", LLUIColor(), "", "", false); + match.setValues(10, 20, "", "", "Info", "", LLStyle::Params(), "", "", false); ensure_equals("getTooltip() == 'Info'", match.getTooltip(), "Info"); - match.setValues(10, 20, "", "", "", "", LLUIColor(), "", "", false); + match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", "", false); ensure_equals("getTooltip() == '' (2)", match.getTooltip(), ""); } @@ -141,10 +241,10 @@ namespace tut LLUrlMatch match; ensure_equals("getIcon() == ''", match.getIcon(), ""); - match.setValues(10, 20, "", "", "", "Icon", LLUIColor(), "", "", false); + match.setValues(10, 20, "", "", "", "Icon", LLStyle::Params(), "", "", false); ensure_equals("getIcon() == 'Icon'", match.getIcon(), "Icon"); - match.setValues(10, 20, "", "", "", "", LLUIColor(), "", "", false); + match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", "", false); ensure_equals("getIcon() == '' (2)", match.getIcon(), ""); } @@ -157,10 +257,10 @@ namespace tut LLUrlMatch match; ensure("getMenuName() empty", match.getMenuName().empty()); - match.setValues(10, 20, "", "", "", "Icon", LLUIColor(), "xui_file.xml", "", false); + match.setValues(10, 20, "", "", "", "Icon", LLStyle::Params(), "xui_file.xml", "", false); ensure_equals("getMenuName() == \"xui_file.xml\"", match.getMenuName(), "xui_file.xml"); - match.setValues(10, 20, "", "", "", "", LLUIColor(), "", "", false); + match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", "", false); ensure("getMenuName() empty (2)", match.getMenuName().empty()); } @@ -173,10 +273,10 @@ namespace tut LLUrlMatch match; ensure("getLocation() empty", match.getLocation().empty()); - match.setValues(10, 20, "", "", "", "Icon", LLUIColor(), "xui_file.xml", "Paris", false); + match.setValues(10, 20, "", "", "", "Icon", LLStyle::Params(), "xui_file.xml", "Paris", false); ensure_equals("getLocation() == \"Paris\"", match.getLocation(), "Paris"); - match.setValues(10, 20, "", "", "", "", LLUIColor(), "", "", false); + match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", "", false); ensure("getLocation() empty (2)", match.getLocation().empty()); } } -- cgit v1.3 From f682c996d28c3841b6709f8fc67ba443bfcd1926 Mon Sep 17 00:00:00 2001 From: Richard Nelson Date: Mon, 24 May 2010 18:29:29 -0700 Subject: DEV-50271 FIX SLURL support for non-clickable display names --- indra/llui/lltextbase.cpp | 33 ++++++++----------- indra/llui/llurlentry.cpp | 64 +++++++++++++++++++++++------------- indra/llui/llurlentry.h | 11 +++---- indra/llui/llurlmatch.cpp | 8 ++--- indra/llui/llurlmatch.h | 6 +--- indra/llui/llurlregistry.cpp | 6 ++-- indra/llui/tests/llurlmatch_test.cpp | 30 ++++++++--------- 7 files changed, 81 insertions(+), 77 deletions(-) (limited to 'indra/llui/tests/llurlmatch_test.cpp') diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp index c93e6c7257..9a07712757 100644 --- a/indra/llui/lltextbase.cpp +++ b/indra/llui/lltextbase.cpp @@ -1582,9 +1582,8 @@ void LLTextBase::appendText(const std::string &new_text, bool prepend_newline, c start = match.getStart(); end = match.getEnd()+1; - LLStyle::Params link_params = style_params; + LLStyle::Params link_params(style_params); link_params.overwriteFrom(match.getStyle()); - link_params.link_href = match.getUrl(); // output the text before the Url if (start > 0) @@ -1622,26 +1621,20 @@ void LLTextBase::appendText(const std::string &new_text, bool prepend_newline, c } } - // output the styled Url (unless we've been asked to suppress hyperlinking) - if (match.isLinkDisabled()) - { - appendAndHighlightText(match.getLabel(), prepend_newline, part, style_params); - } - else - { - appendAndHighlightText(match.getLabel(), prepend_newline, part, link_params); + // output the styled Url + appendAndHighlightText(match.getLabel(), prepend_newline, part, link_params); - // set the tooltip for the Url label - if (! match.getTooltip().empty()) - { - segment_set_t::iterator it = getSegIterContaining(getLength()-1); - if (it != mSegments.end()) - { - LLTextSegmentPtr segment = *it; - segment->setToolTip(match.getTooltip()); - } - } + // set the tooltip for the Url label + if (! match.getTooltip().empty()) + { + segment_set_t::iterator it = getSegIterContaining(getLength()-1); + if (it != mSegments.end()) + { + LLTextSegmentPtr segment = *it; + segment->setToolTip(match.getTooltip()); + } } + prepend_newline = false; // move on to the rest of the text after the Url diff --git a/indra/llui/llurlentry.cpp b/indra/llui/llurlentry.cpp index 7ba569408a..2dda64c434 100644 --- a/indra/llui/llurlentry.cpp +++ b/indra/llui/llurlentry.cpp @@ -48,13 +48,8 @@ std::string localize_slapp_label(const std::string& url, const std::string& full_name); -LLUrlEntryBase::LLUrlEntryBase() : - mDisabledLink(false) -{ - mStyle.color = LLUIColorTable::instance().getColor("HTMLLinkColor"); - mStyle.readonly_color = LLUIColorTable::instance().getColor("HTMLLinkColor"); - mStyle.font.style("UNDERLINE"); -} +LLUrlEntryBase::LLUrlEntryBase() +{} LLUrlEntryBase::~LLUrlEntryBase() { @@ -71,6 +66,16 @@ std::string LLUrlEntryBase::getIcon(const std::string &url) return mIcon; } +LLStyle::Params LLUrlEntryBase::getStyle() const +{ + LLStyle::Params style_params; + style_params.color = LLUIColorTable::instance().getColor("HTMLLinkColor"); + style_params.readonly_color = LLUIColorTable::instance().getColor("HTMLLinkColor"); + style_params.font.style = "UNDERLINE"; + return style_params; +} + + std::string LLUrlEntryBase::getIDStringFromUrl(const std::string &url) const { // return the id from a SLURL in the format /app/{cmd}/{id}/about @@ -329,8 +334,6 @@ LLUrlEntryAgent::LLUrlEntryAgent() boost::regex::perl|boost::regex::icase); mMenuName = "menu_url_agent.xml"; mIcon = "Generic_Person"; - mStyle.color = LLUIColorTable::instance().getColor("AgentLinkColor"); - mStyle.readonly_color = LLUIColorTable::instance().getColor("AgentLinkColor"); } // virtual @@ -355,11 +358,8 @@ void LLUrlEntryAgent::callObservers(const std::string &id, void LLUrlEntryAgent::onAvatarNameCache(const LLUUID& id, const LLAvatarName& av_name) { - std::string label = av_name.mDisplayName; - if (!av_name.mUsername.empty()) - { - label += " (" + av_name.mUsername + ")"; - } + std::string label = av_name.getCompleteName(); + // received the agent name from the server - tell our observers callObservers(id.asString(), label, mIcon); } @@ -440,6 +440,14 @@ std::string LLUrlEntryAgent::getLabel(const std::string &url, const LLUrlLabelCa } } +LLStyle::Params LLUrlEntryAgent::getStyle() const +{ + LLStyle::Params style_params = LLUrlEntryBase::getStyle(); + style_params.color = LLUIColorTable::instance().getColor("AgentLinkColor"); + style_params.readonly_color = LLUIColorTable::instance().getColor("AgentLinkColor"); + return style_params; +} + std::string localize_slapp_label(const std::string& url, const std::string& full_name) { // customize label string based on agent SLapp suffix @@ -485,10 +493,6 @@ std::string LLUrlEntryAgent::getIcon(const std::string &url) // LLUrlEntryAgentName::LLUrlEntryAgentName() { - mDisabledLink = true; - mStyle.color.setProvided(false); - mStyle.readonly_color.setProvided(false); - mStyle.font.setProvided(false); } // virtual @@ -558,6 +562,11 @@ std::string LLUrlEntryAgentName::getUrl(const std::string &url) const return LLStringUtil::null; } +LLStyle::Params LLUrlEntryAgentName::getStyle() const +{ + return LLStyle::Params(); +} + // // LLUrlEntryAgentCompleteName describes a Second Life agent complete name Url, e.g., // secondlife:///app/agent/0e346d8b-4433-4d66-a6b0-fd37083abc4c/completename @@ -619,8 +628,6 @@ LLUrlEntryGroup::LLUrlEntryGroup() mMenuName = "menu_url_group.xml"; mIcon = "Generic_Group"; mTooltip = LLTrans::getString("TooltipGroupUrl"); - mStyle.color = LLUIColorTable::instance().getColor("GroupLinkColor"); - mStyle.readonly_color = LLUIColorTable::instance().getColor("GroupLinkColor"); } void LLUrlEntryGroup::onGroupNameReceived(const LLUUID& id, @@ -666,6 +673,15 @@ std::string LLUrlEntryGroup::getLabel(const std::string &url, const LLUrlLabelCa } } +LLStyle::Params LLUrlEntryGroup::getStyle() const +{ + LLStyle::Params style_params = LLUrlEntryBase::getStyle(); + style_params.color = LLUIColorTable::instance().getColor("GroupLinkColor"); + style_params.readonly_color = LLUIColorTable::instance().getColor("GroupLinkColor"); + return style_params; +} + + // // LLUrlEntryInventory Describes a Second Life inventory Url, e.g., // secondlife:///app/inventory/0e346d8b-4433-4d66-a6b0-fd37083abc4c/select @@ -953,7 +969,6 @@ LLUrlEntryNoLink::LLUrlEntryNoLink() { mPattern = boost::regex("[^<]*", boost::regex::perl|boost::regex::icase); - mDisabledLink = true; } std::string LLUrlEntryNoLink::getUrl(const std::string &url) const @@ -967,6 +982,12 @@ std::string LLUrlEntryNoLink::getLabel(const std::string &url, const LLUrlLabelC return getUrl(url); } +LLStyle::Params LLUrlEntryNoLink::getStyle() const +{ + return LLStyle::Params(); +} + + // // LLUrlEntryIcon describes an icon with ... tags // @@ -974,7 +995,6 @@ LLUrlEntryIcon::LLUrlEntryIcon() { mPattern = boost::regex("\\s*([^<]*)?\\s*", boost::regex::perl|boost::regex::icase); - mDisabledLink = true; } std::string LLUrlEntryIcon::getUrl(const std::string &url) const diff --git a/indra/llui/llurlentry.h b/indra/llui/llurlentry.h index 21d4c29b2b..cd93d1ac41 100644 --- a/indra/llui/llurlentry.h +++ b/indra/llui/llurlentry.h @@ -84,7 +84,7 @@ public: virtual std::string getIcon(const std::string &url); /// Return the style to render the displayed text - LLStyle::Params getStyle() const { return mStyle; } + virtual LLStyle::Params getStyle() const; /// Given a matched Url, return a tooltip string for the hyperlink virtual std::string getTooltip(const std::string &string) const { return mTooltip; } @@ -95,9 +95,6 @@ public: /// Return the name of a SL location described by this Url, if any virtual std::string getLocation(const std::string &url) const { return ""; } - /// is this a match for a URL that should not be hyperlinked? - bool isLinkDisabled() const { return mDisabledLink; } - protected: std::string getIDStringFromUrl(const std::string &url) const; std::string escapeUrl(const std::string &url) const; @@ -116,9 +113,7 @@ protected: std::string mIcon; std::string mMenuName; std::string mTooltip; - LLStyle::Params mStyle; std::multimap mObservers; - bool mDisabledLink; }; /// @@ -174,6 +169,7 @@ public: /*virtual*/ std::string getLabel(const std::string &url, const LLUrlLabelCallback &cb); /*virtual*/ std::string getIcon(const std::string &url); /*virtual*/ std::string getTooltip(const std::string &string) const; + /*virtual*/ LLStyle::Params getStyle() const; protected: /*virtual*/ void callObservers(const std::string &id, const std::string &label, const std::string& icon); private: @@ -191,6 +187,7 @@ public: LLUrlEntryAgentName(); /*virtual*/ std::string getLabel(const std::string &url, const LLUrlLabelCallback &cb); /*virtual*/ std::string getUrl(const std::string &string) const; + /*virtual*/ LLStyle::Params getStyle() const; protected: /*virtual*/ void callObservers(const std::string &id, const std::string &label, const std::string& icon); // override this to pull out relevant name fields @@ -248,6 +245,7 @@ class LLUrlEntryGroup : public LLUrlEntryBase public: LLUrlEntryGroup(); /*virtual*/ std::string getLabel(const std::string &url, const LLUrlLabelCallback &cb); + /*virtual*/ LLStyle::Params getStyle() const; private: void onGroupNameReceived(const LLUUID& id, const std::string& name, bool is_group); }; @@ -357,6 +355,7 @@ public: LLUrlEntryNoLink(); /*virtual*/ std::string getLabel(const std::string &url, const LLUrlLabelCallback &cb); /*virtual*/ std::string getUrl(const std::string &string) const; + /*virtual*/ LLStyle::Params getStyle() const; }; /// diff --git a/indra/llui/llurlmatch.cpp b/indra/llui/llurlmatch.cpp index 8a7e2e162b..51fca6d7c0 100644 --- a/indra/llui/llurlmatch.cpp +++ b/indra/llui/llurlmatch.cpp @@ -42,16 +42,14 @@ LLUrlMatch::LLUrlMatch() : mTooltip(""), mIcon(""), mMenuName(""), - mLocation(""), - mDisabledLink(false) + mLocation("") { } void LLUrlMatch::setValues(U32 start, U32 end, const std::string &url, const std::string &label, const std::string &tooltip, const std::string &icon, const LLStyle::Params& style, - const std::string &menu, const std::string &location, - bool disabled_link) + const std::string &menu, const std::string &location) { mStart = start; mEnd = end; @@ -60,7 +58,7 @@ void LLUrlMatch::setValues(U32 start, U32 end, const std::string &url, mTooltip = tooltip; mIcon = icon; mStyle = style; + mStyle.link_href = url; mMenuName = menu; mLocation = location; - mDisabledLink = disabled_link; } diff --git a/indra/llui/llurlmatch.h b/indra/llui/llurlmatch.h index 92a87c3d4c..43bd9da14a 100644 --- a/indra/llui/llurlmatch.h +++ b/indra/llui/llurlmatch.h @@ -83,14 +83,11 @@ public: /// return the SL location that this Url describes, or "" if none. std::string getLocation() const { return mLocation; } - /// is this a match for a URL that should not be hyperlinked? - bool isLinkDisabled() const { return mDisabledLink; } - /// Change the contents of this match object (used by LLUrlRegistry) void setValues(U32 start, U32 end, const std::string &url, const std::string &label, const std::string &tooltip, const std::string &icon, const LLStyle::Params& style, const std::string &menu, - const std::string &location, bool disabled_link); + const std::string &location); private: U32 mStart; @@ -102,7 +99,6 @@ private: std::string mMenuName; std::string mLocation; LLStyle::Params mStyle; - bool mDisabledLink; }; #endif diff --git a/indra/llui/llurlregistry.cpp b/indra/llui/llurlregistry.cpp index f61603545f..f119233f8f 100644 --- a/indra/llui/llurlregistry.cpp +++ b/indra/llui/llurlregistry.cpp @@ -192,8 +192,7 @@ bool LLUrlRegistry::findUrl(const std::string &text, LLUrlMatch &match, const LL match_entry->getIcon(url), match_entry->getStyle(), match_entry->getMenuName(), - match_entry->getLocation(url), - match_entry->isLinkDisabled()); + match_entry->getLocation(url)); return true; } @@ -226,8 +225,7 @@ bool LLUrlRegistry::findUrl(const LLWString &text, LLUrlMatch &match, const LLUr match.getIcon(), match.getStyle(), match.getMenuName(), - match.getLocation(), - match.isLinkDisabled()); + match.getLocation()); return true; } return false; diff --git a/indra/llui/tests/llurlmatch_test.cpp b/indra/llui/tests/llurlmatch_test.cpp index ab5770dbf2..85318196e0 100644 --- a/indra/llui/tests/llurlmatch_test.cpp +++ b/indra/llui/tests/llurlmatch_test.cpp @@ -154,7 +154,7 @@ namespace tut LLUrlMatch match; ensure("empty()", match.empty()); - match.setValues(0, 1, "http://secondlife.com", "Second Life", "", "", LLStyle::Params(), "", "", false); + match.setValues(0, 1, "http://secondlife.com", "Second Life", "", "", LLStyle::Params(), "", ""); ensure("! empty()", ! match.empty()); } @@ -167,7 +167,7 @@ namespace tut LLUrlMatch match; ensure_equals("getStart() == 0", match.getStart(), 0); - match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", "", false); + match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", ""); ensure_equals("getStart() == 10", match.getStart(), 10); } @@ -180,7 +180,7 @@ namespace tut LLUrlMatch match; ensure_equals("getEnd() == 0", match.getEnd(), 0); - match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", "", false); + match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", ""); ensure_equals("getEnd() == 20", match.getEnd(), 20); } @@ -193,10 +193,10 @@ namespace tut LLUrlMatch match; ensure_equals("getUrl() == ''", match.getUrl(), ""); - match.setValues(10, 20, "http://slurl.com/", "", "", "", LLStyle::Params(), "", "", false); + match.setValues(10, 20, "http://slurl.com/", "", "", "", LLStyle::Params(), "", ""); ensure_equals("getUrl() == 'http://slurl.com/'", match.getUrl(), "http://slurl.com/"); - match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", "", false); + match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", ""); ensure_equals("getUrl() == '' (2)", match.getUrl(), ""); } @@ -209,10 +209,10 @@ namespace tut LLUrlMatch match; ensure_equals("getLabel() == ''", match.getLabel(), ""); - match.setValues(10, 20, "", "Label", "", "", LLStyle::Params(), "", "", false); + match.setValues(10, 20, "", "Label", "", "", LLStyle::Params(), "", ""); ensure_equals("getLabel() == 'Label'", match.getLabel(), "Label"); - match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", "", false); + match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", ""); ensure_equals("getLabel() == '' (2)", match.getLabel(), ""); } @@ -225,10 +225,10 @@ namespace tut LLUrlMatch match; ensure_equals("getTooltip() == ''", match.getTooltip(), ""); - match.setValues(10, 20, "", "", "Info", "", LLStyle::Params(), "", "", false); + match.setValues(10, 20, "", "", "Info", "", LLStyle::Params(), "", ""); ensure_equals("getTooltip() == 'Info'", match.getTooltip(), "Info"); - match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", "", false); + match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", ""); ensure_equals("getTooltip() == '' (2)", match.getTooltip(), ""); } @@ -241,10 +241,10 @@ namespace tut LLUrlMatch match; ensure_equals("getIcon() == ''", match.getIcon(), ""); - match.setValues(10, 20, "", "", "", "Icon", LLStyle::Params(), "", "", false); + match.setValues(10, 20, "", "", "", "Icon", LLStyle::Params(), "", ""); ensure_equals("getIcon() == 'Icon'", match.getIcon(), "Icon"); - match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", "", false); + match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", ""); ensure_equals("getIcon() == '' (2)", match.getIcon(), ""); } @@ -257,10 +257,10 @@ namespace tut LLUrlMatch match; ensure("getMenuName() empty", match.getMenuName().empty()); - match.setValues(10, 20, "", "", "", "Icon", LLStyle::Params(), "xui_file.xml", "", false); + match.setValues(10, 20, "", "", "", "Icon", LLStyle::Params(), "xui_file.xml", ""); ensure_equals("getMenuName() == \"xui_file.xml\"", match.getMenuName(), "xui_file.xml"); - match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", "", false); + match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", ""); ensure("getMenuName() empty (2)", match.getMenuName().empty()); } @@ -273,10 +273,10 @@ namespace tut LLUrlMatch match; ensure("getLocation() empty", match.getLocation().empty()); - match.setValues(10, 20, "", "", "", "Icon", LLStyle::Params(), "xui_file.xml", "Paris", false); + match.setValues(10, 20, "", "", "", "Icon", LLStyle::Params(), "xui_file.xml", "Paris"); ensure_equals("getLocation() == \"Paris\"", match.getLocation(), "Paris"); - match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", "", false); + match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", ""); ensure("getLocation() empty (2)", match.getLocation().empty()); } } -- cgit v1.3 From d539145367d74c0881bcf47daefaca4820f04c72 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Tue, 25 May 2010 18:52:24 -0700 Subject: DEV-50271 FIX SLURL support for non-clickable display names revived mDisabledLink to make url replacement logic work again --- indra/llui/llurlentry.cpp | 28 +++++----------------------- indra/llui/llurlentry.h | 6 ++++-- indra/llui/llurlmatch.cpp | 7 +++++-- indra/llui/llurlmatch.h | 6 +++++- indra/llui/llurlregistry.cpp | 6 ++++-- indra/llui/tests/llurlmatch_test.cpp | 30 +++++++++++++++--------------- 6 files changed, 38 insertions(+), 45 deletions(-) (limited to 'indra/llui/tests/llurlmatch_test.cpp') diff --git a/indra/llui/llurlentry.cpp b/indra/llui/llurlentry.cpp index 866c228a12..60566f457d 100644 --- a/indra/llui/llurlentry.cpp +++ b/indra/llui/llurlentry.cpp @@ -49,6 +49,7 @@ std::string localize_slapp_label(const std::string& url, const std::string& full LLUrlEntryBase::LLUrlEntryBase() +: mDisabledLink(false) {} LLUrlEntryBase::~LLUrlEntryBase() @@ -493,24 +494,7 @@ std::string LLUrlEntryAgent::getIcon(const std::string &url) // LLUrlEntryAgentName::LLUrlEntryAgentName() { -} - -// virtual -void LLUrlEntryAgentName::callObservers(const std::string &id, - const std::string &label, - const std::string &icon) -{ - // notify all callbacks waiting on the given uuid - std::multimap::iterator it; - for (it = mObservers.find(id); it != mObservers.end();) - { - // call the callback - give it the new label - LLUrlEntryObserver &observer = it->second; - (*observer.signal)(observer.url, label, icon); - // then remove the signal - we only need to call it once - delete observer.signal; - mObservers.erase(it++); - } + mDisabledLink = true; } void LLUrlEntryAgentName::onAvatarNameCache(const LLUUID& id, @@ -557,13 +541,9 @@ std::string LLUrlEntryAgentName::getLabel(const std::string &url, const LLUrlLab } } -std::string LLUrlEntryAgentName::getUrl(const std::string &url) const -{ - return LLStringUtil::null; -} - LLStyle::Params LLUrlEntryAgentName::getStyle() const { + // don't override default colors return LLStyle::Params(); } @@ -969,6 +949,7 @@ LLUrlEntryNoLink::LLUrlEntryNoLink() { mPattern = boost::regex("[^<]*", boost::regex::perl|boost::regex::icase); + mDisabledLink = true; } std::string LLUrlEntryNoLink::getUrl(const std::string &url) const @@ -995,6 +976,7 @@ LLUrlEntryIcon::LLUrlEntryIcon() { mPattern = boost::regex("\\s*([^<]*)?\\s*", boost::regex::perl|boost::regex::icase); + mDisabledLink = true; } std::string LLUrlEntryIcon::getUrl(const std::string &url) const diff --git a/indra/llui/llurlentry.h b/indra/llui/llurlentry.h index cd93d1ac41..ca4562cee0 100644 --- a/indra/llui/llurlentry.h +++ b/indra/llui/llurlentry.h @@ -95,6 +95,9 @@ public: /// Return the name of a SL location described by this Url, if any virtual std::string getLocation(const std::string &url) const { return ""; } + /// is this a match for a URL that should not be hyperlinked? + bool isLinkDisabled() const { return mDisabledLink; } + protected: std::string getIDStringFromUrl(const std::string &url) const; std::string escapeUrl(const std::string &url) const; @@ -114,6 +117,7 @@ protected: std::string mMenuName; std::string mTooltip; std::multimap mObservers; + bool mDisabledLink; }; /// @@ -186,10 +190,8 @@ class LLUrlEntryAgentName : public LLUrlEntryBase public: LLUrlEntryAgentName(); /*virtual*/ std::string getLabel(const std::string &url, const LLUrlLabelCallback &cb); - /*virtual*/ std::string getUrl(const std::string &string) const; /*virtual*/ LLStyle::Params getStyle() const; protected: - /*virtual*/ void callObservers(const std::string &id, const std::string &label, const std::string& icon); // override this to pull out relevant name fields virtual std::string getName(const LLAvatarName& avatar_name) = 0; private: diff --git a/indra/llui/llurlmatch.cpp b/indra/llui/llurlmatch.cpp index 51fca6d7c0..dcfdd70b42 100644 --- a/indra/llui/llurlmatch.cpp +++ b/indra/llui/llurlmatch.cpp @@ -42,14 +42,16 @@ LLUrlMatch::LLUrlMatch() : mTooltip(""), mIcon(""), mMenuName(""), - mLocation("") + mLocation(""), + mDisabledLink(false) { } void LLUrlMatch::setValues(U32 start, U32 end, const std::string &url, const std::string &label, const std::string &tooltip, const std::string &icon, const LLStyle::Params& style, - const std::string &menu, const std::string &location) + const std::string &menu, const std::string &location, + bool disabled_link) { mStart = start; mEnd = end; @@ -61,4 +63,5 @@ void LLUrlMatch::setValues(U32 start, U32 end, const std::string &url, mStyle.link_href = url; mMenuName = menu; mLocation = location; + mDisabledLink = disabled_link; } diff --git a/indra/llui/llurlmatch.h b/indra/llui/llurlmatch.h index 43bd9da14a..92a87c3d4c 100644 --- a/indra/llui/llurlmatch.h +++ b/indra/llui/llurlmatch.h @@ -83,11 +83,14 @@ public: /// return the SL location that this Url describes, or "" if none. std::string getLocation() const { return mLocation; } + /// is this a match for a URL that should not be hyperlinked? + bool isLinkDisabled() const { return mDisabledLink; } + /// Change the contents of this match object (used by LLUrlRegistry) void setValues(U32 start, U32 end, const std::string &url, const std::string &label, const std::string &tooltip, const std::string &icon, const LLStyle::Params& style, const std::string &menu, - const std::string &location); + const std::string &location, bool disabled_link); private: U32 mStart; @@ -99,6 +102,7 @@ private: std::string mMenuName; std::string mLocation; LLStyle::Params mStyle; + bool mDisabledLink; }; #endif diff --git a/indra/llui/llurlregistry.cpp b/indra/llui/llurlregistry.cpp index f119233f8f..f61603545f 100644 --- a/indra/llui/llurlregistry.cpp +++ b/indra/llui/llurlregistry.cpp @@ -192,7 +192,8 @@ bool LLUrlRegistry::findUrl(const std::string &text, LLUrlMatch &match, const LL match_entry->getIcon(url), match_entry->getStyle(), match_entry->getMenuName(), - match_entry->getLocation(url)); + match_entry->getLocation(url), + match_entry->isLinkDisabled()); return true; } @@ -225,7 +226,8 @@ bool LLUrlRegistry::findUrl(const LLWString &text, LLUrlMatch &match, const LLUr match.getIcon(), match.getStyle(), match.getMenuName(), - match.getLocation()); + match.getLocation(), + match.isLinkDisabled()); return true; } return false; diff --git a/indra/llui/tests/llurlmatch_test.cpp b/indra/llui/tests/llurlmatch_test.cpp index 85318196e0..ab5770dbf2 100644 --- a/indra/llui/tests/llurlmatch_test.cpp +++ b/indra/llui/tests/llurlmatch_test.cpp @@ -154,7 +154,7 @@ namespace tut LLUrlMatch match; ensure("empty()", match.empty()); - match.setValues(0, 1, "http://secondlife.com", "Second Life", "", "", LLStyle::Params(), "", ""); + match.setValues(0, 1, "http://secondlife.com", "Second Life", "", "", LLStyle::Params(), "", "", false); ensure("! empty()", ! match.empty()); } @@ -167,7 +167,7 @@ namespace tut LLUrlMatch match; ensure_equals("getStart() == 0", match.getStart(), 0); - match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", ""); + match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", "", false); ensure_equals("getStart() == 10", match.getStart(), 10); } @@ -180,7 +180,7 @@ namespace tut LLUrlMatch match; ensure_equals("getEnd() == 0", match.getEnd(), 0); - match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", ""); + match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", "", false); ensure_equals("getEnd() == 20", match.getEnd(), 20); } @@ -193,10 +193,10 @@ namespace tut LLUrlMatch match; ensure_equals("getUrl() == ''", match.getUrl(), ""); - match.setValues(10, 20, "http://slurl.com/", "", "", "", LLStyle::Params(), "", ""); + match.setValues(10, 20, "http://slurl.com/", "", "", "", LLStyle::Params(), "", "", false); ensure_equals("getUrl() == 'http://slurl.com/'", match.getUrl(), "http://slurl.com/"); - match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", ""); + match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", "", false); ensure_equals("getUrl() == '' (2)", match.getUrl(), ""); } @@ -209,10 +209,10 @@ namespace tut LLUrlMatch match; ensure_equals("getLabel() == ''", match.getLabel(), ""); - match.setValues(10, 20, "", "Label", "", "", LLStyle::Params(), "", ""); + match.setValues(10, 20, "", "Label", "", "", LLStyle::Params(), "", "", false); ensure_equals("getLabel() == 'Label'", match.getLabel(), "Label"); - match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", ""); + match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", "", false); ensure_equals("getLabel() == '' (2)", match.getLabel(), ""); } @@ -225,10 +225,10 @@ namespace tut LLUrlMatch match; ensure_equals("getTooltip() == ''", match.getTooltip(), ""); - match.setValues(10, 20, "", "", "Info", "", LLStyle::Params(), "", ""); + match.setValues(10, 20, "", "", "Info", "", LLStyle::Params(), "", "", false); ensure_equals("getTooltip() == 'Info'", match.getTooltip(), "Info"); - match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", ""); + match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", "", false); ensure_equals("getTooltip() == '' (2)", match.getTooltip(), ""); } @@ -241,10 +241,10 @@ namespace tut LLUrlMatch match; ensure_equals("getIcon() == ''", match.getIcon(), ""); - match.setValues(10, 20, "", "", "", "Icon", LLStyle::Params(), "", ""); + match.setValues(10, 20, "", "", "", "Icon", LLStyle::Params(), "", "", false); ensure_equals("getIcon() == 'Icon'", match.getIcon(), "Icon"); - match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", ""); + match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", "", false); ensure_equals("getIcon() == '' (2)", match.getIcon(), ""); } @@ -257,10 +257,10 @@ namespace tut LLUrlMatch match; ensure("getMenuName() empty", match.getMenuName().empty()); - match.setValues(10, 20, "", "", "", "Icon", LLStyle::Params(), "xui_file.xml", ""); + match.setValues(10, 20, "", "", "", "Icon", LLStyle::Params(), "xui_file.xml", "", false); ensure_equals("getMenuName() == \"xui_file.xml\"", match.getMenuName(), "xui_file.xml"); - match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", ""); + match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", "", false); ensure("getMenuName() empty (2)", match.getMenuName().empty()); } @@ -273,10 +273,10 @@ namespace tut LLUrlMatch match; ensure("getLocation() empty", match.getLocation().empty()); - match.setValues(10, 20, "", "", "", "Icon", LLStyle::Params(), "xui_file.xml", "Paris"); + match.setValues(10, 20, "", "", "", "Icon", LLStyle::Params(), "xui_file.xml", "Paris", false); ensure_equals("getLocation() == \"Paris\"", match.getLocation(), "Paris"); - match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", ""); + match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", "", false); ensure("getLocation() empty (2)", match.getLocation().empty()); } } -- cgit v1.3 From 640e3a2e9800bdcc772504953af17bd020c1c232 Mon Sep 17 00:00:00 2001 From: James Cook Date: Wed, 26 May 2010 09:24:06 -0700 Subject: Fix broken Mac build on llurlmatch_test.cpp --- indra/llui/tests/llurlmatch_test.cpp | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'indra/llui/tests/llurlmatch_test.cpp') diff --git a/indra/llui/tests/llurlmatch_test.cpp b/indra/llui/tests/llurlmatch_test.cpp index ab5770dbf2..e5d4c5b09d 100644 --- a/indra/llui/tests/llurlmatch_test.cpp +++ b/indra/llui/tests/llurlmatch_test.cpp @@ -21,6 +21,7 @@ */ #include "../llurlmatch.h" +//#include "../lluiimage.h" #include "lltut.h" // link seams @@ -33,6 +34,26 @@ LLStyle::Params::Params() { } +LLUIImage::LLUIImage(const std::string& name, LLPointer image) +{ +} + +LLUIImage::~LLUIImage() +{ +} + +//virtual +S32 LLUIImage::getWidth() const +{ + return 0; +} + +//virtual +S32 LLUIImage::getHeight() const +{ + return 0; +} + namespace LLInitParam { BaseBlock::BaseBlock() {} @@ -105,7 +126,6 @@ namespace LLInitParam void TypedParam::setBlockFromValue() {} - bool ParamCompare::equals( LLUIImage* const &a, -- cgit v1.3 From 703cd608005a60a55963bb5920fd3bec113c7384 Mon Sep 17 00:00:00 2001 From: James Cook Date: Wed, 26 May 2010 10:48:23 -0700 Subject: Clean up llurlmatch test headers --- indra/llui/llurlmatch.h | 2 +- indra/llui/tests/llurlmatch_test.cpp | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'indra/llui/tests/llurlmatch_test.cpp') diff --git a/indra/llui/llurlmatch.h b/indra/llui/llurlmatch.h index 92a87c3d4c..293935e251 100644 --- a/indra/llui/llurlmatch.h +++ b/indra/llui/llurlmatch.h @@ -34,7 +34,7 @@ #ifndef LL_LLURLMATCH_H #define LL_LLURLMATCH_H -#include "linden_common.h" +//#include "linden_common.h" #include #include diff --git a/indra/llui/tests/llurlmatch_test.cpp b/indra/llui/tests/llurlmatch_test.cpp index e5d4c5b09d..10c44a9073 100644 --- a/indra/llui/tests/llurlmatch_test.cpp +++ b/indra/llui/tests/llurlmatch_test.cpp @@ -20,8 +20,10 @@ * $/LicenseInfo$ */ +#include "linden_common.h" + #include "../llurlmatch.h" -//#include "../lluiimage.h" +#include "../lluiimage.h" #include "lltut.h" // link seams -- cgit v1.3 From 7435ff08b5f548d6e5c61129179c70d99177cc45 Mon Sep 17 00:00:00 2001 From: Richard Nelson Date: Wed, 26 May 2010 13:14:47 -0700 Subject: DEV-50271 FIX SLURL support for non-clickable display names separate mIsLink from mLink to support non-clickable urls (e.g. secondlife:///app/agent/0e346d8b-4433-4d66-a6b0-fd37083abc4c/completename) --- indra/llui/llstyle.cpp | 6 ++++-- indra/llui/llstyle.h | 2 ++ indra/llui/lltextbase.cpp | 2 +- indra/llui/lltextbase.h | 1 + indra/llui/llurlentry.cpp | 9 ++------- indra/llui/llurlentry.h | 4 ---- indra/llui/llurlmatch.cpp | 7 ++----- indra/llui/llurlmatch.h | 6 +----- indra/llui/llurlregistry.cpp | 6 ++---- indra/llui/tests/llurlmatch_test.cpp | 30 +++++++++++++++--------------- 10 files changed, 30 insertions(+), 43 deletions(-) (limited to 'indra/llui/tests/llurlmatch_test.cpp') diff --git a/indra/llui/llstyle.cpp b/indra/llui/llstyle.cpp index b8f93b6a0e..5965ca6fb5 100644 --- a/indra/llui/llstyle.cpp +++ b/indra/llui/llstyle.cpp @@ -44,7 +44,8 @@ LLStyle::Params::Params() color("color", LLColor4::black), font("font", LLFontGL::getFontMonospace()), image("image"), - link_href("href") + link_href("href"), + is_link("is_link") {} @@ -57,6 +58,7 @@ LLStyle::LLStyle(const LLStyle::Params& p) mReadOnlyColor(p.readonly_color()), mFont(p.font()), mLink(p.link_href), + mIsLink(p.is_link.isProvided() ? p.is_link : !p.link_href().empty()), mDropShadow(p.drop_shadow), mImagep(p.image()) {} @@ -79,7 +81,7 @@ void LLStyle::setLinkHREF(const std::string& href) BOOL LLStyle::isLink() const { - return mLink.size(); + return mIsLink; } BOOL LLStyle::isVisible() const diff --git a/indra/llui/llstyle.h b/indra/llui/llstyle.h index 2067e8e8be..0ca1f2027e 100644 --- a/indra/llui/llstyle.h +++ b/indra/llui/llstyle.h @@ -51,6 +51,7 @@ public: Optional font; Optional image; Optional link_href; + Optional is_link; Params(); }; LLStyle(const Params& p = Params()); @@ -113,6 +114,7 @@ private: std::string mFontName; const LLFontGL* mFont; // cached for performance std::string mLink; + bool mIsLink; LLUIImagePtr mImagep; }; diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp index 915b0427ba..8fc6f16702 100644 --- a/indra/llui/lltextbase.cpp +++ b/indra/llui/lltextbase.cpp @@ -1794,7 +1794,7 @@ void LLTextBase::replaceUrl(const std::string &url, seg->setEnd(seg_start + seg_length); // if we find a link with our Url, then replace the label - if (style->isLink() && style->getLinkHREF() == url) + if (style->getLinkHREF() == url) { S32 start = seg->getStart(); S32 end = seg->getEnd(); diff --git a/indra/llui/lltextbase.h b/indra/llui/lltextbase.h index 3a3a5d0e20..ddf604c195 100644 --- a/indra/llui/lltextbase.h +++ b/indra/llui/lltextbase.h @@ -315,6 +315,7 @@ protected: void updateRects(); void needsScroll() { mScrollNeeded = TRUE; } + struct URLLabelCallback; // Replace a URL with a new icon and label, for example, when // avatar names are looked up. void replaceUrl(const std::string &url, const std::string &label, const std::string& icon); diff --git a/indra/llui/llurlentry.cpp b/indra/llui/llurlentry.cpp index 60566f457d..13fd20faf8 100644 --- a/indra/llui/llurlentry.cpp +++ b/indra/llui/llurlentry.cpp @@ -49,7 +49,6 @@ std::string localize_slapp_label(const std::string& url, const std::string& full LLUrlEntryBase::LLUrlEntryBase() -: mDisabledLink(false) {} LLUrlEntryBase::~LLUrlEntryBase() @@ -493,9 +492,7 @@ std::string LLUrlEntryAgent::getIcon(const std::string &url) // x-grid-location-info://lincoln.lindenlab.com/app/agent/0e346d8b-4433-4d66-a6b0-fd37083abc4c/(completename|displayname|username) // LLUrlEntryAgentName::LLUrlEntryAgentName() -{ - mDisabledLink = true; -} +{} void LLUrlEntryAgentName::onAvatarNameCache(const LLUUID& id, const LLAvatarName& av_name) @@ -544,7 +541,7 @@ std::string LLUrlEntryAgentName::getLabel(const std::string &url, const LLUrlLab LLStyle::Params LLUrlEntryAgentName::getStyle() const { // don't override default colors - return LLStyle::Params(); + return LLStyle::Params().is_link(false); } // @@ -949,7 +946,6 @@ LLUrlEntryNoLink::LLUrlEntryNoLink() { mPattern = boost::regex("[^<]*", boost::regex::perl|boost::regex::icase); - mDisabledLink = true; } std::string LLUrlEntryNoLink::getUrl(const std::string &url) const @@ -976,7 +972,6 @@ LLUrlEntryIcon::LLUrlEntryIcon() { mPattern = boost::regex("\\s*([^<]*)?\\s*", boost::regex::perl|boost::regex::icase); - mDisabledLink = true; } std::string LLUrlEntryIcon::getUrl(const std::string &url) const diff --git a/indra/llui/llurlentry.h b/indra/llui/llurlentry.h index ca4562cee0..5be3c6a45b 100644 --- a/indra/llui/llurlentry.h +++ b/indra/llui/llurlentry.h @@ -95,9 +95,6 @@ public: /// Return the name of a SL location described by this Url, if any virtual std::string getLocation(const std::string &url) const { return ""; } - /// is this a match for a URL that should not be hyperlinked? - bool isLinkDisabled() const { return mDisabledLink; } - protected: std::string getIDStringFromUrl(const std::string &url) const; std::string escapeUrl(const std::string &url) const; @@ -117,7 +114,6 @@ protected: std::string mMenuName; std::string mTooltip; std::multimap mObservers; - bool mDisabledLink; }; /// diff --git a/indra/llui/llurlmatch.cpp b/indra/llui/llurlmatch.cpp index dcfdd70b42..51fca6d7c0 100644 --- a/indra/llui/llurlmatch.cpp +++ b/indra/llui/llurlmatch.cpp @@ -42,16 +42,14 @@ LLUrlMatch::LLUrlMatch() : mTooltip(""), mIcon(""), mMenuName(""), - mLocation(""), - mDisabledLink(false) + mLocation("") { } void LLUrlMatch::setValues(U32 start, U32 end, const std::string &url, const std::string &label, const std::string &tooltip, const std::string &icon, const LLStyle::Params& style, - const std::string &menu, const std::string &location, - bool disabled_link) + const std::string &menu, const std::string &location) { mStart = start; mEnd = end; @@ -63,5 +61,4 @@ void LLUrlMatch::setValues(U32 start, U32 end, const std::string &url, mStyle.link_href = url; mMenuName = menu; mLocation = location; - mDisabledLink = disabled_link; } diff --git a/indra/llui/llurlmatch.h b/indra/llui/llurlmatch.h index 293935e251..3b15a156a8 100644 --- a/indra/llui/llurlmatch.h +++ b/indra/llui/llurlmatch.h @@ -83,14 +83,11 @@ public: /// return the SL location that this Url describes, or "" if none. std::string getLocation() const { return mLocation; } - /// is this a match for a URL that should not be hyperlinked? - bool isLinkDisabled() const { return mDisabledLink; } - /// Change the contents of this match object (used by LLUrlRegistry) void setValues(U32 start, U32 end, const std::string &url, const std::string &label, const std::string &tooltip, const std::string &icon, const LLStyle::Params& style, const std::string &menu, - const std::string &location, bool disabled_link); + const std::string &location); private: U32 mStart; @@ -102,7 +99,6 @@ private: std::string mMenuName; std::string mLocation; LLStyle::Params mStyle; - bool mDisabledLink; }; #endif diff --git a/indra/llui/llurlregistry.cpp b/indra/llui/llurlregistry.cpp index f61603545f..f119233f8f 100644 --- a/indra/llui/llurlregistry.cpp +++ b/indra/llui/llurlregistry.cpp @@ -192,8 +192,7 @@ bool LLUrlRegistry::findUrl(const std::string &text, LLUrlMatch &match, const LL match_entry->getIcon(url), match_entry->getStyle(), match_entry->getMenuName(), - match_entry->getLocation(url), - match_entry->isLinkDisabled()); + match_entry->getLocation(url)); return true; } @@ -226,8 +225,7 @@ bool LLUrlRegistry::findUrl(const LLWString &text, LLUrlMatch &match, const LLUr match.getIcon(), match.getStyle(), match.getMenuName(), - match.getLocation(), - match.isLinkDisabled()); + match.getLocation()); return true; } return false; diff --git a/indra/llui/tests/llurlmatch_test.cpp b/indra/llui/tests/llurlmatch_test.cpp index 10c44a9073..d6ef5132c8 100644 --- a/indra/llui/tests/llurlmatch_test.cpp +++ b/indra/llui/tests/llurlmatch_test.cpp @@ -176,7 +176,7 @@ namespace tut LLUrlMatch match; ensure("empty()", match.empty()); - match.setValues(0, 1, "http://secondlife.com", "Second Life", "", "", LLStyle::Params(), "", "", false); + match.setValues(0, 1, "http://secondlife.com", "Second Life", "", "", LLStyle::Params(), "", ""); ensure("! empty()", ! match.empty()); } @@ -189,7 +189,7 @@ namespace tut LLUrlMatch match; ensure_equals("getStart() == 0", match.getStart(), 0); - match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", "", false); + match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", ""); ensure_equals("getStart() == 10", match.getStart(), 10); } @@ -202,7 +202,7 @@ namespace tut LLUrlMatch match; ensure_equals("getEnd() == 0", match.getEnd(), 0); - match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", "", false); + match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", ""); ensure_equals("getEnd() == 20", match.getEnd(), 20); } @@ -215,10 +215,10 @@ namespace tut LLUrlMatch match; ensure_equals("getUrl() == ''", match.getUrl(), ""); - match.setValues(10, 20, "http://slurl.com/", "", "", "", LLStyle::Params(), "", "", false); + match.setValues(10, 20, "http://slurl.com/", "", "", "", LLStyle::Params(), "", ""); ensure_equals("getUrl() == 'http://slurl.com/'", match.getUrl(), "http://slurl.com/"); - match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", "", false); + match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", ""); ensure_equals("getUrl() == '' (2)", match.getUrl(), ""); } @@ -231,10 +231,10 @@ namespace tut LLUrlMatch match; ensure_equals("getLabel() == ''", match.getLabel(), ""); - match.setValues(10, 20, "", "Label", "", "", LLStyle::Params(), "", "", false); + match.setValues(10, 20, "", "Label", "", "", LLStyle::Params(), "", ""); ensure_equals("getLabel() == 'Label'", match.getLabel(), "Label"); - match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", "", false); + match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", ""); ensure_equals("getLabel() == '' (2)", match.getLabel(), ""); } @@ -247,10 +247,10 @@ namespace tut LLUrlMatch match; ensure_equals("getTooltip() == ''", match.getTooltip(), ""); - match.setValues(10, 20, "", "", "Info", "", LLStyle::Params(), "", "", false); + match.setValues(10, 20, "", "", "Info", "", LLStyle::Params(), "", ""); ensure_equals("getTooltip() == 'Info'", match.getTooltip(), "Info"); - match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", "", false); + match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", ""); ensure_equals("getTooltip() == '' (2)", match.getTooltip(), ""); } @@ -263,10 +263,10 @@ namespace tut LLUrlMatch match; ensure_equals("getIcon() == ''", match.getIcon(), ""); - match.setValues(10, 20, "", "", "", "Icon", LLStyle::Params(), "", "", false); + match.setValues(10, 20, "", "", "", "Icon", LLStyle::Params(), "", ""); ensure_equals("getIcon() == 'Icon'", match.getIcon(), "Icon"); - match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", "", false); + match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", ""); ensure_equals("getIcon() == '' (2)", match.getIcon(), ""); } @@ -279,10 +279,10 @@ namespace tut LLUrlMatch match; ensure("getMenuName() empty", match.getMenuName().empty()); - match.setValues(10, 20, "", "", "", "Icon", LLStyle::Params(), "xui_file.xml", "", false); + match.setValues(10, 20, "", "", "", "Icon", LLStyle::Params(), "xui_file.xml", ""); ensure_equals("getMenuName() == \"xui_file.xml\"", match.getMenuName(), "xui_file.xml"); - match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", "", false); + match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", ""); ensure("getMenuName() empty (2)", match.getMenuName().empty()); } @@ -295,10 +295,10 @@ namespace tut LLUrlMatch match; ensure("getLocation() empty", match.getLocation().empty()); - match.setValues(10, 20, "", "", "", "Icon", LLStyle::Params(), "xui_file.xml", "Paris", false); + match.setValues(10, 20, "", "", "", "Icon", LLStyle::Params(), "xui_file.xml", "Paris"); ensure_equals("getLocation() == \"Paris\"", match.getLocation(), "Paris"); - match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", "", false); + match.setValues(10, 20, "", "", "", "", LLStyle::Params(), "", ""); ensure("getLocation() empty (2)", match.getLocation().empty()); } } -- cgit v1.3