From 8a77f918f61baea68cf3ff87eeedb460cb3ad5cc Mon Sep 17 00:00:00 2001 From: fourtf Date: Tue, 23 Jan 2018 21:56:25 +0100 Subject: [PATCH] fixed timestamps not updating when changed in the settings --- src/messages/layouts/messagelayout.cpp | 6 ++++++ src/messages/layouts/messagelayout.hpp | 1 + src/singletons/settingsmanager.cpp | 12 ++++++++++-- src/widgets/settingspages/ignoremessagespage.cpp | 2 -- src/widgets/settingspages/ignoreuserspage.cpp | 2 +- 5 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/messages/layouts/messagelayout.cpp b/src/messages/layouts/messagelayout.cpp index 489dc1724..475076c0d 100644 --- a/src/messages/layouts/messagelayout.cpp +++ b/src/messages/layouts/messagelayout.cpp @@ -89,6 +89,12 @@ bool MessageLayout::layout(int width, float scale, MessageElement::Flags flags) layoutRequired |= wordMaskChanged; this->currentWordFlags = flags; // singletons::SettingManager::getInstance().getWordTypeMask(); + // check if timestamp format changed + bool timestampFormatChanged = + this->timestampFormat != singletons::SettingManager::getInstance().timestampFormat; + + layoutRequired |= timestampFormatChanged; + // check if dpi changed bool scaleChanged = this->scale != scale; layoutRequired |= scaleChanged; diff --git a/src/messages/layouts/messagelayout.hpp b/src/messages/layouts/messagelayout.hpp index 8772e3764..52f1bf73e 100644 --- a/src/messages/layouts/messagelayout.hpp +++ b/src/messages/layouts/messagelayout.hpp @@ -67,6 +67,7 @@ private: int currentLayoutWidth = -1; int fontGeneration = -1; int emoteGeneration = -1; + QString timestampFormat; float scale = -1; unsigned int bufferUpdatedCount = 0; diff --git a/src/singletons/settingsmanager.cpp b/src/singletons/settingsmanager.cpp index 87ab2a9d7..9c697b6e0 100644 --- a/src/singletons/settingsmanager.cpp +++ b/src/singletons/settingsmanager.cpp @@ -2,6 +2,7 @@ #include "debug/log.hpp" #include "singletons/pathmanager.hpp" #include "singletons/resourcemanager.hpp" +#include "singletons/windowmanager.hpp" using namespace chatterino::messages; @@ -31,6 +32,9 @@ SettingManager::SettingManager() this->moderationActions.connect([this](auto, auto) { this->updateModerationActions(); }); this->ignoredKeywords.connect([this](auto, auto) { this->updateIgnoredKeywords(); }); + + this->timestampFormat.connect( + [](auto, auto) { singletons::WindowManager::getInstance().layoutVisibleChatWidgets(); }); } MessageElement::Flags SettingManager::getWordFlags() @@ -216,8 +220,12 @@ void SettingManager::updateIgnoredKeywords() auto items = new std::vector(); - for (QString line : this->ignoredKeywords.getValue().split(newLineRegex)) { - items->push_back(line); + for (const QString &line : this->ignoredKeywords.getValue().split(newLineRegex)) { + QString line2 = line.trimmed(); + + if (!line2.isEmpty()) { + items->push_back(line2); + } } this->_ignoredKeywords = std::shared_ptr>(items); diff --git a/src/widgets/settingspages/ignoremessagespage.cpp b/src/widgets/settingspages/ignoremessagespage.cpp index 2b5ae4eb2..d52c5a29e 100644 --- a/src/widgets/settingspages/ignoremessagespage.cpp +++ b/src/widgets/settingspages/ignoremessagespage.cpp @@ -27,8 +27,6 @@ IgnoreMessagesPage::IgnoreMessagesPage() QString text = textEdit->toPlainText(); settings.ignoredKeywords = text; - - qDebug() << "xD"; }); // ---- misc diff --git a/src/widgets/settingspages/ignoreuserspage.cpp b/src/widgets/settingspages/ignoreuserspage.cpp index 5999dd47d..986fc4f8a 100644 --- a/src/widgets/settingspages/ignoreuserspage.cpp +++ b/src/widgets/settingspages/ignoreuserspage.cpp @@ -21,7 +21,7 @@ IgnoreUsersPage::IgnoreUsersPage() { singletons::SettingManager &settings = singletons::SettingManager::getInstance(); util::LayoutCreator layoutCreator(this); - auto layout = layoutCreator.setLayoutType().withoutMargin(); + auto layout = layoutCreator.setLayoutType(); auto label = layout.emplace(INFO); label->setWordWrap(true);