54 lines
1.5 KiB
C++
54 lines
1.5 KiB
C++
#include "ExamplePlugin.h"
|
|
#include <Logger.h>
|
|
#include <QMutexLocker>
|
|
|
|
ExamplePlugin::ExamplePlugin()
|
|
: Plugin()
|
|
{
|
|
}
|
|
|
|
ExamplePlugin::~ExamplePlugin()
|
|
{
|
|
QMutexLocker mMutexLocker(&mVisibleContextsMutex);
|
|
|
|
QStringList keys = mActions.keys();
|
|
for (qint32 i = 0; i < keys.size(); ++i) {
|
|
delete mActions.value(keys[i]);
|
|
}
|
|
}
|
|
|
|
Action *ExamplePlugin::GetOrCreateAction(const QString &action, const QString &context)
|
|
{
|
|
QMutexLocker mMutexLocker(&mVisibleContextsMutex);
|
|
|
|
if (action == "com.hotspot.streamdockcppsdk.demo.myaction1" ||
|
|
action == "com.hotspot.streamdockcppsdk.demo.myaction2") {
|
|
if (!mActions.contains(context)) {
|
|
ExampleAction *tmpAction = new ExampleAction(mConnectionManager, action, context);
|
|
mActions.insert(context, tmpAction);
|
|
}
|
|
return mActions.value(context);
|
|
}
|
|
|
|
Logger::LogToServer(QString("Asked to get or create unknown action: ").append(action));
|
|
return nullptr;
|
|
}
|
|
|
|
bool ExamplePlugin::RemoveAction(const QString &action, const QString &context)
|
|
{
|
|
QMutexLocker mMutexLocker(&mVisibleContextsMutex);
|
|
|
|
if (action == "com.hotspot.streamdockcppsdk.demo.myaction1" ||
|
|
action == "com.hotspot.streamdockcppsdk.demo.myaction2") {
|
|
if (mActions.contains(context)) {
|
|
delete mActions.take(context);
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
Logger::LogToServer(QString("Asked to get or create unknown action: ").append(action));
|
|
return false;
|
|
}
|