Limit save description length

This commit is contained in:
Simon Robertshaw
2012-10-01 13:03:03 +01:00
parent 134a59609d
commit c0c5717efe
2 changed files with 14 additions and 5 deletions

View File

@@ -215,10 +215,12 @@ void Textbox::pasteIntoSelection()
if(limit!=std::string::npos) if(limit!=std::string::npos)
{ {
if(limit-backingText.length() > 0) if(limit-backingText.length() >= 0)
newText.substr(0, limit-backingText.length()); newText = newText.substr(0, limit-backingText.length());
else
newText = "";
} }
else if(Graphics::textwidth((char*)std::string(backingText+newText).c_str()) > regionWidth) else if(!multiline && Graphics::textwidth((char*)std::string(backingText+newText).c_str()) > regionWidth)
{ {
int pLimit = regionWidth - Graphics::textwidth((char*)backingText.c_str()); int pLimit = regionWidth - Graphics::textwidth((char*)backingText.c_str());
int cIndex = Graphics::CharIndexAtPosition((char *)newText.c_str(), pLimit, 0); int cIndex = Graphics::CharIndexAtPosition((char *)newText.c_str(), pLimit, 0);
@@ -249,6 +251,9 @@ void Textbox::pasteIntoSelection()
if(multiline) if(multiline)
updateMultiline(); updateMultiline();
updateSelection(); updateSelection();
if(multiline)
TextPosition(textLines);
else
TextPosition(text); TextPosition(text);
if(cursor) if(cursor)
@@ -457,6 +462,9 @@ void Textbox::OnVKeyPress(int key, Uint16 character, bool shift, bool ctrl, bool
if(multiline) if(multiline)
updateMultiline(); updateMultiline();
updateSelection(); updateSelection();
if(multiline)
TextPosition(textLines);
else
TextPosition(text); TextPosition(text);
if(cursor) if(cursor)

View File

@@ -93,6 +93,7 @@ ServerSaveActivity::ServerSaveActivity(SaveInfo save, ServerSaveActivity::SaveUp
descriptionField = new ui::Textbox(ui::Point(8, 65), ui::Point((Size.X/2)-16, Size.Y-(65+16+4)), save.GetDescription(), "[save description]"); descriptionField = new ui::Textbox(ui::Point(8, 65), ui::Point((Size.X/2)-16, Size.Y-(65+16+4)), save.GetDescription(), "[save description]");
descriptionField->SetMultiline(true); descriptionField->SetMultiline(true);
descriptionField->SetLimit(254);
descriptionField->Appearance.VerticalAlign = ui::Appearance::AlignTop; descriptionField->Appearance.VerticalAlign = ui::Appearance::AlignTop;
descriptionField->Appearance.HorizontalAlign = ui::Appearance::AlignLeft; descriptionField->Appearance.HorizontalAlign = ui::Appearance::AlignLeft;
AddComponent(descriptionField); AddComponent(descriptionField);