LeechCraft 0.6.70-16373-g319c272718
Modular cross-platform feature rich live environment.
Loading...
Searching...
No Matches
ianemitter.h
Go to the documentation of this file.
1/**********************************************************************
2 * LeechCraft - modular cross-platform feature rich internet client.
3 * Copyright (C) 2006-2014 Georg Rudoy
4 *
5 * Distributed under the Boost Software License, Version 1.0.
6 * (See accompanying file LICENSE or copy at https://www.boost.org/LICENSE_1_0.txt)
7 **********************************************************************/
8
9#pragma once
10
11#include <variant>
12#include <QtPlugin>
13#include <QVariant>
14#include <QStringList>
15
16namespace LC
17{
29 {
35 QString ID_;
36
41 QString Name_;
42
48 QString Description_;
49
59 QVariant::Type Type_ = QVariant::Invalid;
60
67 QStringList EventTypes_;
68
78 QVariantList AllowedValues_ = {};
79 };
80
84 {
87 bool IsSet_;
88
89 auto operator<=> (const ANBoolFieldValue&) const = default;
90 };
91
95 {
99
103 {
106 OGreater = 0x01,
107
110 OLess = 0x02,
111
114 OEqual = 0x04
115 };
116
117 Q_DECLARE_FLAGS (Operations, Operation)
118
119
123 Operations Ops_;
124
125 bool operator== (const ANIntFieldValue&) const = default;
126 };
127
131 {
134 QRegExp Rx_;
135
142
149 ANStringFieldValue (const QRegExp& rx, bool contains)
150 : Rx_ { rx }
151 , Contains_ { contains }
152 {
153 }
154
167 ANStringFieldValue (const QString& str, bool contains = true)
168 : Rx_ { str, Qt::CaseSensitive, QRegExp::FixedString }
169 , Contains_ { contains }
170 {
171 }
172
173 bool operator== (const ANStringFieldValue&) const = default;
174 };
175
178 using ANFieldValue = std::variant<ANBoolFieldValue, ANIntFieldValue, ANStringFieldValue>;
179}
180
195class Q_DECL_EXPORT IANEmitter
196{
197public:
198 virtual ~IANEmitter () = default;
199
216};
217
218Q_DECLARE_INTERFACE (IANEmitter, "org.Deviant.LeechCraft.IANEmitter/1.0")
219Q_DECLARE_METATYPE (LC::ANFieldData)
222
223Q_DECLARE_OPERATORS_FOR_FLAGS (LC::ANIntFieldValue::Operations)
Interface for plugins emitting AdvancedNotifications entries.
Definition ianemitter.h:196
virtual ~IANEmitter()=default
virtual QList< LC::ANFieldData > GetANFields() const =0
Returns the list of additional fields.
Definition constants.h:15
std::variant< ANBoolFieldValue, ANIntFieldValue, ANStringFieldValue > ANFieldValue
A combination of all possible descriptions.
Definition ianemitter.h:178
Q_DECLARE_FLAGS(TabFeatures, LC::TabFeature)
Describes a field with boolean values.
Definition ianemitter.h:84
bool IsSet_
Whether the field should be set.
Definition ianemitter.h:87
auto operator<=>(const ANBoolFieldValue &) const =default
A single additional AdvancedNotifications field.
Definition ianemitter.h:29
QString Name_
The name of the field.
Definition ianemitter.h:41
QString Description_
The description of the field.
Definition ianemitter.h:48
QVariantList AllowedValues_
The allowed values of this field.
Definition ianemitter.h:78
QStringList EventTypes_
The types of the event that contain this field.
Definition ianemitter.h:67
QString ID_
The field ID.
Definition ianemitter.h:35
QVariant::Type Type_
The type of this field.
Definition ianemitter.h:59
Describes a field with integer values.
Definition ianemitter.h:95
bool operator==(const ANIntFieldValue &) const =default
Operation
Describes the elementary semantics of Boundary_.
Definition ianemitter.h:103
@ OEqual
The value should be equal to Boundary_.
Definition ianemitter.h:114
@ OLess
The value should be less than Boundary_.
Definition ianemitter.h:110
@ OGreater
The value should be greater than Boundary_.
Definition ianemitter.h:106
Operations Ops_
Describe the semantics of Boundary_.
Definition ianemitter.h:123
int Boundary_
The boundary of the field.
Definition ianemitter.h:98
Describes a field with QString values.
Definition ianemitter.h:131
bool Contains_
Whether the values should match or not match Rx_.
Definition ianemitter.h:141
QRegExp Rx_
The regular expression the values should (not) match.
Definition ianemitter.h:134
ANStringFieldValue(const QRegExp &rx, bool contains)
Constructs the field matcher.
Definition ianemitter.h:149
ANStringFieldValue(const QString &str, bool contains=true)
Constructs the field matcher for the given str.
Definition ianemitter.h:167
Q_DECLARE_METATYPE(QVariantList *)