31 #include <QStandardItem> 47 const QString& senderID,
const QString& cat,
const QString& type,
48 const QString&
id,
const QStringList& visualPath,
50 const QString& fullText,
const QString& extendedText)
68 const QString& cat,
const QStringList& types, AN::NotifyFlags flags,
69 bool openConfiguration,
const QList<QPair<QString, ANFieldValue>>&
fields)
73 e.Additional_ [
AN::EF::EventID] =
"org.LC.AdvNotifications.RuleRegister";
77 e.Mime_ +=
"-rule-create";
79 for (
const auto& field :
fields)
80 e.Additional_ [field.first] = QVariant::fromValue (field.second);
96 const auto& e =
MakeEntity (data, QString (), {},
"x-leechcraft/data-filter-request");
100 std::copy_if (handlers.begin (), handlers.end (), std::back_inserter (result),
101 [] (QObject *obj) {
return qobject_cast<
IDataFilter*> (obj); });
106 const QString& location,
119 const QString& text,
Priority priority)
124 "x-leechcraft/notification");
151 const auto& plugins = proxy->GetPluginsManager ()->
152 GetAllCastableTo<IPersistentStoragePlugin*> ();
153 for (
const auto plug : plugins)
155 const auto& storage = plug->RequestStorage ();
159 const auto& value = storage->Get (key);
160 if (!value.isNull ())
167 qint64 done, qint64 total,
const QString& text)
170 if (text.contains (
"%1") && text.contains (
"%2"))
171 item->setText (text.arg (done).arg (total));
173 item->setText (text);
187 for (
const auto item : row)
189 item->setEditable (
false);
Entity MakeEntity(const QVariant &entity, const QString &location, TaskParameters tp, const QString &mime)
Proxy to core entity manager.
constexpr detail::AggregateType< detail::AggregateFunction::Count > count
const QString EventID
The ID of the event (QString).
void InitJobHolderRow(const QList< QStandardItem *> &row)
Base interface for data filter plugins.
const QString VisualPath
Visual path to this event (QStringList).
Rule should be triggered only once.
const QString SenderID
The plugin ID of the sender (QByteArray or QString).
const QString Count
The new total event count (int).
const QString FullText
The detailed text of the event (QString).
void SetJobHolderProgress(const QList< QStandardItem *> &row, qint64 done, qint64 total, const QString &text)
Sets the progress values on the given row.
const QString EventCategory
The category of the event (QString).
User should be notified visually.
QVariant GetPersistentData(const QByteArray &key, const ICoreProxy_ptr &proxy)
Returns persistent data stored under given key.
const QString CatEventCancel
Event cancel pseudo-category.
const QString IsSingleShot
Whether the created rule should be single-shot (bool).
virtual QList< QObject * > GetPossibleHandlers(const LeechCraft::Entity &entity)=0
Queries what plugins can handle the given entity.
const QString NotifyAudio
Whether an audio notifier should be enabled by default in the rule being created (bool).
TaskParameters Parameters_
Parameters of this task.
Entity MakeANRule(const QString &title, const QString &senderID, const QString &cat, const QStringList &types, AN::NotifyFlags flags, bool openConfiguration, const QList< QPair< QString, ANFieldValue >> &fields)
Creates an Entity defining an Advanced Notifications rule.
const QString DeltaCount
The change in event count (int).
const QString OpenConfiguration
Whether configuration dialog should be opened (bool).
Describes the state of a process.
std::shared_ptr< ICoreProxy > ICoreProxy_ptr
const QString NotifyTransient
Whether a transient notifier should be enabled by default in the rule being created (bool)...
The process is running just fine.
Entity MakeNotification(const QString &header, const QString &text, Priority priority)
An utility function to make a Entity with notification.
State of a single process represented in a IJobHolder model.
Entity MakeANCancel(const Entity &event)
Makes an event for canceling another Advanced Notifications event.
Q_DECLARE_METATYPE(QVariantList *)
QList< QObject * > GetDataFilters(const QVariant &data, IEntityManager *manager)
Returns the data filter plugins that can handle data.
const QString ExtendedText
The even more detailed text than FullText (QString).
constexpr detail::MemberPtrs< Ptrs... > fields
const QString EventType
The type of the event (QString).
QMap< QString, QVariant > Additional_
Additional parameters.
QString Mime_
MIME type of the entity.
qlonglong Done_
The amount of items already processed or downloaded.
User should be notified visually via persistent notifications.
const QString NotifyPersistent
Whether a persistent notifier should be enabled by default in the rule being created (bool)...
QVariant Entity_
The entity that this object represents.
Notify by playing back an audio file.
Entity MakeAN(const QString &header, const QString &text, Priority priority, const QString &senderID, const QString &cat, const QString &type, const QString &id, const QStringList &visualPath, int delta, int count, const QString &fullText, const QString &extendedText)
Creates an Advanced Notifications-enabled notify entity.
A message used for inter-plugin communication.
The column with the progress of the task, like the amount of data downloaded so far or last update...
QString Location_
Source or destination.