Add search predicates for badges and sub tiers (#4013)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
This commit is contained in:
xel86
2022-10-01 08:30:29 -04:00
committed by GitHub
parent b5241670ae
commit bfcc9ff7a4
7 changed files with 191 additions and 0 deletions
+26
View File
@@ -7,11 +7,13 @@
#include "common/Channel.hpp"
#include "controllers/hotkeys/HotkeyController.hpp"
#include "messages/search/AuthorPredicate.hpp"
#include "messages/search/BadgePredicate.hpp"
#include "messages/search/ChannelPredicate.hpp"
#include "messages/search/LinkPredicate.hpp"
#include "messages/search/MessageFlagsPredicate.hpp"
#include "messages/search/RegexPredicate.hpp"
#include "messages/search/SubstringPredicate.hpp"
#include "messages/search/SubtierPredicate.hpp"
#include "singletons/WindowManager.hpp"
#include "widgets/helper/ChannelView.hpp"
@@ -297,6 +299,8 @@ std::vector<std::unique_ptr<MessagePredicate>> SearchPopup::parsePredicates(
std::vector<std::unique_ptr<MessagePredicate>> predicates;
QStringList authors;
QStringList channels;
QStringList badges;
QStringList subtiers;
while (it.hasNext())
{
@@ -312,6 +316,14 @@ std::vector<std::unique_ptr<MessagePredicate>> SearchPopup::parsePredicates(
{
authors.append(value);
}
else if (name == "badge")
{
badges.append(value);
}
else if (name == "subtier")
{
subtiers.append(value);
}
else if (name == "has" && value == "link")
{
predicates.push_back(std::make_unique<LinkPredicate>());
@@ -337,10 +349,24 @@ std::vector<std::unique_ptr<MessagePredicate>> SearchPopup::parsePredicates(
}
if (!authors.empty())
{
predicates.push_back(std::make_unique<AuthorPredicate>(authors));
}
if (!channels.empty())
{
predicates.push_back(std::make_unique<ChannelPredicate>(channels));
}
if (!badges.empty())
{
predicates.push_back(std::make_unique<BadgePredicate>(badges));
}
if (!subtiers.empty())
{
predicates.push_back(std::make_unique<SubtierPredicate>(subtiers));
}
return predicates;
}