From bd8fab7e6886cc1aefa4e14c55ccf3fd682c5b48 Mon Sep 17 00:00:00 2001 From: fourtf Date: Sun, 2 Dec 2018 19:20:14 +0100 Subject: [PATCH] fixed redraw issue --- src/messages/layouts/MessageLayout.cpp | 12 ++++++++---- src/messages/layouts/MessageLayout.hpp | 1 + src/singletons/Settings.hpp | 2 +- src/singletons/Theme.cpp | 2 +- src/singletons/Theme.hpp | 4 ++-- src/widgets/helper/ChannelView.cpp | 2 +- 6 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/messages/layouts/MessageLayout.cpp b/src/messages/layouts/MessageLayout.cpp index 5501452f6..9618a66a9 100644 --- a/src/messages/layouts/MessageLayout.cpp +++ b/src/messages/layouts/MessageLayout.cpp @@ -101,6 +101,8 @@ bool MessageLayout::layout(int width, float scale, MessageElementFlags flags) void MessageLayout::actuallyLayout(int width, MessageElementFlags _flags) { + this->layoutCount_++; + auto messageFlags = this->message_->flags; if (this->flags.has(MessageLayoutFlag::Expanded) || @@ -248,7 +250,7 @@ void MessageLayout::updateBuffer(QPixmap *buffer, int /*messageIndex*/, // draw message this->container_->paintElements(painter); -#ifdef FOURTF + //#ifdef FOURTF // debug painter.setPen(QColor(255, 0, 0)); painter.drawRect(buffer->rect().x(), buffer->rect().y(), @@ -257,9 +259,11 @@ void MessageLayout::updateBuffer(QPixmap *buffer, int /*messageIndex*/, QTextOption option; option.setAlignment(Qt::AlignRight | Qt::AlignTop); - painter.drawText(QRectF(1, 1, this->container.getWidth() - 3, 1000), - QString::number(++this->bufferUpdatedCount), option); -#endif + painter.drawText(QRectF(1, 1, this->container_->getWidth() - 3, 1000), + QString::number(this->layoutCount_) + ", " + + QString::number(++this->bufferUpdatedCount_), + option); + //#endif } void MessageLayout::invalidateBuffer() diff --git a/src/messages/layouts/MessageLayout.hpp b/src/messages/layouts/MessageLayout.hpp index d8877ba4d..cd9bdeb5d 100644 --- a/src/messages/layouts/MessageLayout.hpp +++ b/src/messages/layouts/MessageLayout.hpp @@ -75,6 +75,7 @@ private: int currentLayoutWidth_ = -1; int layoutState_ = -1; float scale_ = -1; + unsigned int layoutCount_ = 0; unsigned int bufferUpdatedCount_ = 0; MessageElementFlags currentWordFlags_; diff --git a/src/singletons/Settings.hpp b/src/singletons/Settings.hpp index 7a31036fe..ed429bb64 100644 --- a/src/singletons/Settings.hpp +++ b/src/singletons/Settings.hpp @@ -1,6 +1,6 @@ #pragma once -#include "ABSettings.hpp" +#include "BaseSettings.hpp" #include "controllers/highlights/HighlightPhrase.hpp" #include "controllers/moderationactions/ModerationAction.hpp" diff --git a/src/singletons/Theme.cpp b/src/singletons/Theme.cpp index 5717026ce..7738ae1b9 100644 --- a/src/singletons/Theme.cpp +++ b/src/singletons/Theme.cpp @@ -21,7 +21,7 @@ Theme::Theme() // multiplier: 1 = white, 0.8 = light, -0.8 dark, -1 black void Theme::actuallyUpdate(double hue, double multiplier) { - ABTheme::actuallyUpdate(hue, multiplier); + BaseTheme::actuallyUpdate(hue, multiplier); auto getColor = [multiplier](double h, double s, double l, double a = 1.0) { return QColor::fromHslF(h, s, ((l - 0.5) * multiplier) + 0.5, a); diff --git a/src/singletons/Theme.hpp b/src/singletons/Theme.hpp index decbb1d47..99905fa83 100644 --- a/src/singletons/Theme.hpp +++ b/src/singletons/Theme.hpp @@ -1,6 +1,6 @@ #pragma once -#include "ABTheme.hpp" +#include "BaseTheme.hpp" #include "common/Singleton.hpp" #include "util/RapidJsonSerializeQString.hpp" @@ -13,7 +13,7 @@ namespace chatterino { class WindowManager; -class Theme final : public Singleton, public ABTheme +class Theme final : public Singleton, public BaseTheme { public: Theme(); diff --git a/src/widgets/helper/ChannelView.cpp b/src/widgets/helper/ChannelView.cpp index 4b723e683..e7221fa48 100644 --- a/src/widgets/helper/ChannelView.cpp +++ b/src/widgets/helper/ChannelView.cpp @@ -352,7 +352,7 @@ void ChannelView::layoutVisibleMessages( auto y = int(-(messages[start]->getHeight() * (fmod(this->scrollBar_->getCurrentValue(), 1)))); - for (auto i = start; i < messages.size() && y >= this->height(); i++) + for (auto i = start; i < messages.size() && y <= this->height(); i++) { auto message = messages[i];