added basic keyword ignore setting

This commit is contained in:
fourtf
2018-01-23 21:33:49 +01:00
parent 91d45214d9
commit dd05ea28fe
13 changed files with 195 additions and 7 deletions
+20
View File
@@ -17,6 +17,7 @@ void _registerSetting(std::weak_ptr<pajlada::Settings::ISettingData> setting)
SettingManager::SettingManager()
: snapshot(nullptr)
, _ignoredKeywords(new std::vector<QString>)
{
this->wordFlagsListener.addSetting(this->showTimestamps);
this->wordFlagsListener.addSetting(this->showBadges);
@@ -29,6 +30,7 @@ SettingManager::SettingManager()
};
this->moderationActions.connect([this](auto, auto) { this->updateModerationActions(); });
this->ignoredKeywords.connect([this](auto, auto) { this->updateIgnoredKeywords(); });
}
MessageElement::Flags SettingManager::getWordFlags()
@@ -135,6 +137,11 @@ std::vector<ModerationAction> SettingManager::getModerationActions() const
return this->_moderationActions;
}
const std::shared_ptr<std::vector<QString>> SettingManager::getIgnoredKeywords() const
{
return this->_ignoredKeywords;
}
void SettingManager::updateModerationActions()
{
auto &resources = singletons::ResourceManager::getInstance();
@@ -202,5 +209,18 @@ void SettingManager::updateModerationActions()
}
}
}
void SettingManager::updateIgnoredKeywords()
{
static QRegularExpression newLineRegex("(\r\n?|\n)+");
auto items = new std::vector<QString>();
for (QString line : this->ignoredKeywords.getValue().split(newLineRegex)) {
items->push_back(line);
}
this->_ignoredKeywords = std::shared_ptr<std::vector<QString>>(items);
}
} // namespace singletons
} // namespace chatterino