diff options
Diffstat (limited to 'src/MessageBoard.cpp')
-rw-r--r-- | src/MessageBoard.cpp | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/MessageBoard.cpp b/src/MessageBoard.cpp index 0152cb5..3e6532c 100644 --- a/src/MessageBoard.cpp +++ b/src/MessageBoard.cpp @@ -27,12 +27,13 @@ namespace dchat sf::Color sideColor, centerColor; }; - const float USERNAME_PADDING_BOTTOM = 5.0f; + const float USERNAME_PADDING_BOTTOM = 0.0f; const float PADDING_SIDE = 40.0f; const float PADDING_TOP = 0.0f; const float LINE_SIDE_PADDING = 20.0f; const float LINE_HEIGHT = 1.0f; + const float TEXT_LINE_SPACING = 5.0f; const float USERNAME_TIMESTAMP_SIDE_PADDING = 15.0f; const float AVATAR_DIAMETER = 70.0f; const float AVATAR_PADDING_SIDE = 30.0f; @@ -82,11 +83,13 @@ namespace dchat void MessageBoard::addMessage(Message *message, const odhtdb::Hash &id) { lock_guard<mutex> lock(messageProcessMutex); - messages.insert(messages.begin() + findPositionToInsertMessageByTimestamp(message), message); + auto positionToAddMessage = findPositionToInsertMessageByTimestamp(message); + if(positionToAddMessage == messages.size()) + scrollToBottom = true; + messages.insert(messages.begin() + positionToAddMessage, message); message->id = id; messageIdMap[id] = message; dirty = true; - scrollToBottom = true; } void MessageBoard::deleteMessage(const odhtdb::Hash &id, const odhtdb::Signature::PublicKey &requestedByUser) @@ -124,11 +127,11 @@ namespace dchat const float MESSAGE_PADDING_TOP = 25.0f; const float MESSAGE_PADDING_BOTTOM = 30.0f; - const sf::Font *usernameFont = ResourceCache::getFont("fonts/Roboto-Regular.ttf"); + const sf::Font *usernameFont = ResourceCache::getFont("fonts/Nunito-Regular.ttf"); const int usernameTextCharacterSize = 20 * Settings::getScaling(); const float usernameTextHeight = usernameFont->getLineSpacing(usernameTextCharacterSize); - const sf::Font *timestampFont = ResourceCache::getFont("fonts/Roboto-Regular.ttf"); + const sf::Font *timestampFont = ResourceCache::getFont("fonts/Nunito-Regular.ttf"); const int timestampTextCharacterSize = (float)usernameTextCharacterSize * 0.75f; const float timestampTextHeight = timestampFont->getLineSpacing(timestampTextCharacterSize); @@ -228,11 +231,10 @@ namespace dchat message->text.setCharacterSize(18.0f * Settings::getScaling()); message->text.setMaxWidth(backgroundSize.x - (AVATAR_DIAMETER + AVATAR_PADDING_SIDE) * Settings::getScaling()); message->text.setPosition(sf::Vector2f(floor(position.x + (AVATAR_DIAMETER + AVATAR_PADDING_SIDE) * Settings::getScaling()), floor(position.y))); - message->text.setLineSpacing(LINE_SPACING); bool textDrawn = message->text.draw(window, cache); if(!visible) visible = textDrawn; - position.y += message->text.getHeight(); + position.y += message->text.getHeight() + (TEXT_LINE_SPACING * Settings::getScaling()); if(!mergeTextWithNext) { position.y += (MESSAGE_PADDING_BOTTOM * Settings::getScaling()); @@ -263,12 +265,12 @@ namespace dchat const float MESSAGE_PADDING_TOP = 0.0f; const float MESSAGE_PADDING_BOTTOM = 0.0f; - const sf::Font *usernameFont = ResourceCache::getFont("fonts/Roboto-Regular.ttf"); + const sf::Font *usernameFont = ResourceCache::getFont("fonts/Nunito-Regular.ttf"); const int usernameTextCharacterSize = 20 * Settings::getScaling(); const float usernameTextHeight = usernameFont->getLineSpacing(usernameTextCharacterSize); const float usernameMaxWidth = usernameTextHeight * 5.0f; - const sf::Font *timestampFont = ResourceCache::getFont("fonts/Roboto-Regular.ttf"); + const sf::Font *timestampFont = ResourceCache::getFont("fonts/Nunito-Regular.ttf"); const int timestampTextCharacterSize = 15 * Settings::getScaling(); const float timestampTextHeight = timestampFont->getLineSpacing(timestampTextCharacterSize); |