LeechCraft
0.6.70-18450-gabe19ee3b0
Modular cross-platform feature rich live environment.
Toggle main menu visibility
Loading...
Searching...
No Matches
notificationactionhandler.cpp
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
#include "
notificationactionhandler.h
"
10
#include <QStringList>
11
12
namespace
LC::Util
13
{
14
NotificationActionHandler::NotificationActionHandler
(
Entity
& e, QObject*)
15
: Entity_ (e)
16
{
17
Entity_.Additional_ [QStringLiteral (
"HandlingObject"
)] = QVariant::fromValue (
QObject_ptr
(
this
));
18
}
19
20
void
NotificationActionHandler::AddFunction
(
const
QString& name,
Callback_t
callback)
21
{
22
ActionName2Callback_ << qMakePair (name, callback);
23
static
const
auto
notificationAction = QStringLiteral (
"NotificationActions"
);
24
const
QStringList& sl = Entity_.Additional_ [notificationAction].toStringList ();
25
Entity_.Additional_ [notificationAction] = sl + QStringList (name);
26
}
27
28
void
NotificationActionHandler::AddDependentObject
(QObject *obj)
29
{
30
DependentObjects_ << QPointer<QObject> (obj);
31
}
32
33
void
NotificationActionHandler::notificationActionTriggered
(
int
idx)
34
{
35
if
(std::any_of (DependentObjects_.begin (), DependentObjects_.end (),
36
[] (
const
auto
& obj) { return obj.isNull (); }))
37
return
;
38
39
ActionName2Callback_.at (idx).second ();
40
}
41
}
LC::Util::NotificationActionHandler::NotificationActionHandler
UTIL_XPC_API NotificationActionHandler(Entity &entity, QObject *=nullptr)
Creates the handler on the given entity.
Definition
notificationactionhandler.cpp:14
LC::Util::NotificationActionHandler::AddDependentObject
UTIL_XPC_API void AddDependentObject(QObject *object)
Adds an object as a dependent object.
Definition
notificationactionhandler.cpp:28
LC::Util::NotificationActionHandler::notificationActionTriggered
void notificationActionTriggered(int)
Definition
notificationactionhandler.cpp:33
LC::Util::NotificationActionHandler::AddFunction
UTIL_XPC_API void AddFunction(const QString &name, Callback_t action)
Adds an action with the given name.
Definition
notificationactionhandler.cpp:20
LC::Util::NotificationActionHandler::Callback_t
std::function< void()> Callback_t
Type of functions used as actions in the handler.
Definition
notificationactionhandler.h:59
LC::Util
Definition
icoreproxy.h:34
notificationactionhandler.h
LC::Entity
A message used for inter-plugin communication.
Definition
structures.h:97
QObject_ptr
std::shared_ptr< QObject > QObject_ptr
Definition
structures.h:198
src
util
xpc
notificationactionhandler.cpp
Generated by
1.17.0