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:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user