summaryrefslogtreecommitdiff
path: root/indra/llui/lllineeditor.cpp
diff options
context:
space:
mode:
authorNicky <nicky.dasmijn@gmail.com>2022-04-18 19:57:34 +0200
committerNicky <nicky.dasmijn@gmail.com>2022-04-18 19:57:34 +0200
commitca839307f9edb5f5b6807a2a7185733518c241cf (patch)
treeabec0f3c2b8aa5a8f821f306e19b5a54599a275f /indra/llui/lllineeditor.cpp
parent2b151e0aefd54671e1be504269f10318d303dccb (diff)
parentdbb044e9bb1c3d155ceb6736e2d6c9c1360b4882 (diff)
Merge remote-tracking branch 'origin/DRTVWR-543-maint' into DRTVWR-543-maint_cmake
Diffstat (limited to 'indra/llui/lllineeditor.cpp')
-rw-r--r--indra/llui/lllineeditor.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/indra/llui/lllineeditor.cpp b/indra/llui/lllineeditor.cpp
index 1badd54fca..33037b5001 100644
--- a/indra/llui/lllineeditor.cpp
+++ b/indra/llui/lllineeditor.cpp
@@ -175,6 +175,14 @@ LLLineEditor::LLLineEditor(const LLLineEditor::Params& p)
mTripleClickTimer.reset();
setText(p.default_text());
+ if (p.initial_value.isProvided()
+ && !p.control_name.isProvided())
+ {
+ // Initial value often is descriptive, like "Type some ID here"
+ // and can be longer than size limitation, ignore size
+ setText(p.initial_value.getValue().asString(), false);
+ }
+
// Initialize current history line iterator
mCurrentHistoryLine = mLineHistory.begin();
@@ -390,6 +398,11 @@ void LLLineEditor::updateTextPadding()
void LLLineEditor::setText(const LLStringExplicit &new_text)
{
+ setText(new_text, true);
+}
+
+void LLLineEditor::setText(const LLStringExplicit &new_text, bool use_size_limit)
+{
// If new text is identical, don't copy and don't move insertion point
if (mText.getString() == new_text)
{
@@ -407,13 +420,13 @@ void LLLineEditor::setText(const LLStringExplicit &new_text)
all_selected = all_selected || (len == 0 && hasFocus() && mSelectAllonFocusReceived);
std::string truncated_utf8 = new_text;
- if (truncated_utf8.size() > (U32)mMaxLengthBytes)
+ if (use_size_limit && truncated_utf8.size() > (U32)mMaxLengthBytes)
{
truncated_utf8 = utf8str_truncate(new_text, mMaxLengthBytes);
}
mText.assign(truncated_utf8);
- if (mMaxLengthChars)
+ if (use_size_limit && mMaxLengthChars)
{
mText.assign(utf8str_symbol_truncate(truncated_utf8, mMaxLengthChars));
}