LAMPCAE/src/MainWindow/SolveProcessManager.cpp

41 lines
950 B
C++
Raw Normal View History

2023-05-09 11:00:22 +00:00
#include "SolveProcessManager.h"
2023-05-08 06:32:41 +00:00
2023-05-09 11:00:22 +00:00
#include "SolverControl/SolverControlerBase.h"
2023-05-08 06:32:41 +00:00
2023-05-09 11:00:22 +00:00
namespace GUI {
2023-05-08 06:32:41 +00:00
SolveProcessManager::~SolveProcessManager()
{
QList<SolverControl::SolverControlBase*> ss = _solvingProcess.values();
2023-05-09 11:00:22 +00:00
for(auto s : ss)
2023-05-08 06:32:41 +00:00
s->stopSolver();
_solvingProcess.clear();
}
bool SolveProcessManager::isSolving(int id)
{
return _solvingProcess.contains(id);
}
void SolveProcessManager::insertProcess(int id, SolverControl::SolverControlBase* p)
{
connect(p, SIGNAL(removeSolver(int)), this, SLOT(removeSolve(int)));
bool ok = connect(p, SIGNAL(processFinish(int)), this, SLOT(solveFinished(int)));
2023-05-09 11:00:22 +00:00
if(ok)
2023-05-08 06:32:41 +00:00
_solvingProcess.insert(id, p);
}
void SolveProcessManager::solveFinished(int id)
{
auto p = _solvingProcess.value(id);
_solvingProcess.remove(id);
2023-05-09 11:00:22 +00:00
if(p == nullptr)
return;
2023-05-08 06:32:41 +00:00
p->stopSolver();
}
void SolveProcessManager::removeSolve(int id)
{
_solvingProcess.remove(id);
}
2023-05-09 11:00:22 +00:00
} // namespace GUI