Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/frontend/StarChat.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/frontend/StarChat.cpp')
-rw-r--r--source/frontend/StarChat.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/source/frontend/StarChat.cpp b/source/frontend/StarChat.cpp
index d780d23..bbb28c1 100644
--- a/source/frontend/StarChat.cpp
+++ b/source/frontend/StarChat.cpp
@@ -27,6 +27,7 @@ Chat::Chat(UniverseClientPtr client) : m_client(client) {
m_chatVisTime = config.get("visTime").toFloat();
m_fadeRate = config.get("fadeRate").toDouble();
m_chatHistoryLimit = config.get("chatHistoryLimit").toInt();
+ m_chatFormatString = config.getString("chatFormatString");
m_portraitTextOffset = jsonToVec2I(config.get("portraitTextOffset"));
m_portraitImageOffset = jsonToVec2I(config.get("portraitImageOffset"));
@@ -180,7 +181,7 @@ void Chat::addMessages(List<ChatReceivedMessage> const& messages, bool showPane)
guiContext.setTextStyle(m_chatTextStyle);
StringList lines;
if (message.fromNick != "" && message.portrait == "")
- lines = guiContext.wrapInterfaceText(strf("<{}> {}", message.fromNick, message.text), wrapWidth);
+ lines = guiContext.wrapInterfaceText(strf(m_chatFormatString.utf8Ptr(), message.fromNick, message.text), wrapWidth);
else
lines = guiContext.wrapInterfaceText(message.text, wrapWidth);
@@ -203,7 +204,8 @@ void Chat::addMessages(List<ChatReceivedMessage> const& messages, bool showPane)
show();
}
- m_receivedMessages.resize(std::min((unsigned)m_receivedMessages.size(), m_chatHistoryLimit));
+ if ((unsigned)m_receivedMessages.size() > m_chatHistoryLimit)
+ m_receivedMessages.resize(m_chatHistoryLimit);
}
void Chat::addHistory(String const& chat) {
@@ -216,6 +218,13 @@ void Chat::addHistory(String const& chat) {
m_client->playerStorage()->setMetadata("chatHistory", JsonArray::from(m_chatHistory));
}
+void Chat::clear(size_t count) {
+ if (count > m_receivedMessages.size())
+ m_receivedMessages.clear();
+ else
+ m_receivedMessages.erase(m_receivedMessages.begin(), m_receivedMessages.begin() + count);
+}
+
void Chat::renderImpl() {
Pane::renderImpl();
if (m_textBox->hasFocus())