##// END OF EJS Templates
Handles right clicking on the tree of the data sources...
Handles right clicking on the tree of the data sources The action generates the menu associated to the selected item and shows it

File last commit:

r134:5404c5d53512
r143:7b4ea0e1482b
Show More
VariableController.cpp
53 lines | 1.5 KiB | text/x-c | CppLexer
/ core / src / Variable / VariableController.cpp
#include <Variable/VariableController.h>
#include <Variable/VariableModel.h>
#include <QMutex>
#include <QThread>
Q_LOGGING_CATEGORY(LOG_VariableController, "VariableController")
struct VariableController::VariableControllerPrivate {
explicit VariableControllerPrivate()
: m_WorkingMutex{}, m_VariableModel{std::make_unique<VariableModel>()}
{
}
QMutex m_WorkingMutex;
std::unique_ptr<VariableModel> m_VariableModel;
};
VariableController::VariableController(QObject *parent)
: QObject{parent}, impl{spimpl::make_unique_impl<VariableControllerPrivate>()}
{
qCDebug(LOG_VariableController()) << tr("VariableController construction")
<< QThread::currentThread();
}
VariableController::~VariableController()
{
qCDebug(LOG_VariableController()) << tr("VariableController destruction")
<< QThread::currentThread();
this->waitForFinish();
}
Variable *VariableController::createVariable(const QString &name) noexcept
{
return impl->m_VariableModel->createVariable(name);
}
void VariableController::initialize()
{
qCDebug(LOG_VariableController()) << tr("VariableController init") << QThread::currentThread();
impl->m_WorkingMutex.lock();
qCDebug(LOG_VariableController()) << tr("VariableController init END");
}
void VariableController::finalize()
{
impl->m_WorkingMutex.unlock();
}
void VariableController::waitForFinish()
{
QMutexLocker locker{&impl->m_WorkingMutex};
}