openmw-tes3coop/apps/opencs/model/tools/signalhandler.cpp

42 lines
1.2 KiB
C++
Raw Normal View History

#include "signalhandler.hpp"
#include <QMetaObject>
2015-05-30 09:17:42 +00:00
#include <QThread>
#include "../settings/usersettings.hpp"
CSMTools::SignalHandler::SignalHandler(bool extraCheck)
: mExtraCheck(extraCheck)
{
connect (&CSMSettings::UserSettings::instance(),
SIGNAL (userSettingUpdated(const QString &, const QStringList &)),
this,
SLOT (updateUserSetting (const QString &, const QStringList &)));
}
// called from the main thread
void CSMTools::SignalHandler::updateUserSetting (const QString &name, const QStringList &list)
{
if (name=="verifier/pathgrid-extra-check" && !list.empty())
QMetaObject::invokeMethod(this, "updateExtraCheck", Qt::AutoConnection, Q_ARG(bool, list.at(0) == "true"));
}
// should be in the operations thread via an event message queue
void CSMTools::SignalHandler::updateExtraCheck (bool extraCheck)
{
2015-05-30 09:17:42 +00:00
if (thread()!=QThread::currentThread())
{
QMetaObject::invokeMethod(this,"updateExtraCheck", Qt::QueuedConnection, Q_ARG(bool, extraCheck));
return;
}
// extra safety
mExtraCheck = extraCheck;
}
// called from the operations thread
bool CSMTools::SignalHandler::extraCheck ()
{
return mExtraCheck;
}