EXT-7158 FIXED Moved lltextutil from newview to llui library.

Reviewed by Richard Nelson and Mike Antipov at https://codereview.productengine.com/secondlife/r/363/

--HG--
branch : product-engine
master
Sergei Litovchuk 2010-05-19 01:20:39 +03:00
parent d60a5745c7
commit 09a58b804b
11 changed files with 164 additions and 13 deletions

View File

@ -91,6 +91,7 @@ set(llui_SOURCE_FILES
lltextbox.cpp
lltexteditor.cpp
lltextparser.cpp
lltextutil.cpp
lltextvalidate.cpp
lltransutil.cpp
lltoggleablemenu.cpp
@ -101,7 +102,6 @@ set(llui_SOURCE_FILES
lluictrlfactory.cpp
lluiimage.cpp
lluistring.cpp
lluitextutil.cpp
llundo.cpp
llurlaction.cpp
llurlentry.cpp
@ -186,6 +186,7 @@ set(llui_HEADER_FILES
lltextbox.h
lltexteditor.h
lltextparser.h
lltextutil.h
lltextvalidate.h
lltoggleablemenu.h
lltooltip.h
@ -198,7 +199,6 @@ set(llui_HEADER_FILES
llui.h
lluiimage.h
lluistring.h
lluitextutil.h
llundo.h
llurlaction.h
llurlentry.h

View File

@ -37,8 +37,8 @@
#include "lllocalcliprect.h"
#include "llscrollbar.h"
#include "lltextbox.h"
#include "lltextutil.h"
#include "lluictrl.h"
#include "lluitextutil.h"
static const std::string DD_BUTTON_NAME = "dd_button";
static const std::string DD_TEXTBOX_NAME = "dd_textbox";

79
indra/llui/lltextutil.cpp Normal file
View File

@ -0,0 +1,79 @@
/**
* @file lltextutil.cpp
* @brief Misc text-related auxiliary methods
*
* $LicenseInfo:firstyear=2009&license=viewergpl$
*
* Copyright (c) 2009, Linden Research, Inc.
*
* Second Life Viewer Source Code
* The source code in this file ("Source Code") is provided by Linden Lab
* to you under the terms of the GNU General Public License, version 2.0
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
* online at
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
* and agree to abide by those obligations.
*
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
* COMPLETENESS OR PERFORMANCE.
* $/LicenseInfo$
*/
#include "lltextutil.h"
#include "lluicolor.h"
#include "lltextbox.h"
void LLTextUtil::textboxSetHighlightedVal(LLTextBox *txtbox, const LLStyle::Params& normal_style, const std::string& text, const std::string& hl)
{
static LLUIColor sFilterTextColor = LLUIColorTable::instance().getColor("FilterTextColor", LLColor4::green);
std::string text_uc = text;
LLStringUtil::toUpper(text_uc);
size_t hl_begin = 0, hl_len = hl.size();
if (hl_len == 0 || (hl_begin = text_uc.find(hl)) == std::string::npos)
{
txtbox->setText(text, normal_style);
return;
}
LLStyle::Params hl_style = normal_style;
hl_style.color = sFilterTextColor;
txtbox->setText(LLStringUtil::null); // clear text
txtbox->appendText(text.substr(0, hl_begin), false, normal_style);
txtbox->appendText(text.substr(hl_begin, hl_len), false, hl_style);
txtbox->appendText(text.substr(hl_begin + hl_len), false, normal_style);
}
const std::string& LLTextUtil::formatPhoneNumber(const std::string& phone_str)
{
static const std::string PHONE_SEPARATOR = LLUI::sSettingGroups["config"]->getString("AvalinePhoneSeparator");
static const S32 PHONE_PART_LEN = 2;
static std::string formatted_phone_str;
formatted_phone_str = phone_str;
S32 separator_pos = (S32)(formatted_phone_str.size()) - PHONE_PART_LEN;
for (; separator_pos >= PHONE_PART_LEN; separator_pos -= PHONE_PART_LEN)
{
formatted_phone_str.insert(separator_pos, PHONE_SEPARATOR);
}
return formatted_phone_str;
}
// EOF

72
indra/llui/lltextutil.h Normal file
View File

@ -0,0 +1,72 @@
/**
* @file lltextutil.h
* @brief Misc text-related auxiliary methods
*
* $LicenseInfo:firstyear=2009&license=viewergpl$
*
* Copyright (c) 2009, Linden Research, Inc.
*
* Second Life Viewer Source Code
* The source code in this file ("Source Code") is provided by Linden Lab
* to you under the terms of the GNU General Public License, version 2.0
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
* online at
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
* and agree to abide by those obligations.
*
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
* COMPLETENESS OR PERFORMANCE.
* $/LicenseInfo$
*/
#ifndef LL_LLTEXTUTIL_H
#define LL_LLTEXTUTIL_H
#include "llstyle.h"
class LLTextBox;
namespace LLTextUtil
{
/**
* Set value for text box, highlighting substring hl_uc.
*
* Used to highlight filter matches.
*
* @param txtbox Text box to set value for
* @param normal_style Style to use for non-highlighted text
* @param text Text to set
* @param hl Upper-cased string to highlight
*/
void textboxSetHighlightedVal(
LLTextBox *txtbox,
const LLStyle::Params& normal_style,
const std::string& text,
const std::string& hl);
/**
* Formats passed phone number to be more human readable.
*
* It just divides the number on parts by two digits from right to left. The first left part
* can have 2 or 3 digits, i.e. +44-33-33-44-55-66 or 12-34-56-78-90. Separator is set in
* application settings (AvalinePhoneSeparator)
*
* @param[in] phone_str string with original phone number
* @return reference to string with formatted phone number
*/
const std::string& formatPhoneNumber(const std::string& phone_str);
}
#endif // LL_LLTEXTUTIL_H

View File

@ -421,7 +421,6 @@ set(viewer_SOURCE_FILES
lltexturestats.cpp
lltexturestatsuploader.cpp
lltextureview.cpp
lltextutil.cpp
lltoast.cpp
lltoastalertpanel.cpp
lltoastgroupnotifypanel.cpp
@ -935,7 +934,6 @@ set(viewer_HEADER_FILES
lltexturestats.h
lltexturestatsuploader.h
lltextureview.h
lltextutil.h
lltoast.h
lltoastalertpanel.h
lltoastgroupnotifypanel.h

View File

@ -32,19 +32,21 @@
#include "llviewerprecompiledheaders.h"
#include "llavatarlist.h"
// common
#include "lltrans.h"
#include "llcommonutils.h"
#include "llavatarlist.h"
#include "llagentdata.h" // for comparator
// llui
#include "lltextutil.h"
// newview
#include "llagentdata.h" // for comparator
#include "llavatariconctrl.h"
#include "llcallingcard.h" // for LLAvatarTracker
#include "llcachename.h"
#include "llrecentpeople.h"
#include "lltextutil.h"
#include "lluuid.h"
#include "llvoiceclient.h"
#include "llviewercontrol.h" // for gSavedSettings

View File

@ -38,7 +38,7 @@
#include "llbutton.h"
#include "llfloaterreg.h"
#include "lluitextutil.h"
#include "lltextutil.h"
#include "llagent.h"
#include "llavatariconctrl.h"

View File

@ -39,8 +39,8 @@
#include "lliconctrl.h"
#include "llmenugl.h"
#include "lltextbox.h"
#include "lltextutil.h"
#include "lltrans.h"
#include "lluitextutil.h"
// newview
#include "llagent.h"

View File

@ -43,6 +43,7 @@
#include "llhttpclient.h"
#include "llsdutil_math.h"
#include "llstring.h"
#include "lltextutil.h"
#include "lltrans.h"
#include "lluictrlfactory.h"
@ -65,7 +66,6 @@
#include "llnearbychat.h"
#include "llspeakers.h" //for LLIMSpeakerMgr
#include "lltextbox.h"
#include "lltextutil.h"
#include "llviewercontrol.h"
#include "llviewerparcelmgr.h"

View File

@ -42,7 +42,7 @@
// llui
#include "lliconctrl.h"
#include "lluitextutil.h"
#include "lltextutil.h"
#include "llcallbacklist.h"
#include "llinventoryfunctions.h"

View File

@ -38,7 +38,7 @@
#include "llsidetray.h"
#include "llworldmap.h"
#include "llteleporthistorystorage.h"
#include "lluitextutil.h"
#include "lltextutil.h"
#include "llaccordionctrl.h"
#include "llaccordionctrltab.h"