/** * @RDE_HEADER@ * ActiveExerciseWithRadioGroup * $Id$ * $HeadURL$ * $Author$ * Created by Christian Fröbel, NLSE, 2018-02-16 */ #include "active_exercises.h" #include "exercise_context.h" #include "exercises_handler.h" #include #include namespace AudioVideoManagement { ActiveExercises::ActiveExercises(ExercisesHandler *exercisesHandler) { Q_ASSERT(exercisesHandler); connect(exercisesHandler, &ExercisesHandler::contextActivated, this, &ActiveExercises::onContextActivated); connect(exercisesHandler, &ExercisesHandler::contextDeactivated, this, &ActiveExercises::onContextDeactivated); } const std::vector &ActiveExercises::allContexts() const { return m_activeExercises; } ActiveExercises::~ActiveExercises() = default; void ActiveExercises::onContextActivated(const ExerciseContext &context) { Q_ASSERT(!context.isDefault()); m_activeExercises.push_back(context); emit contextActivated(context); } void ActiveExercises::onContextDeactivated(const ExerciseContext &context) { auto newEnd = std::remove(m_activeExercises.begin(), m_activeExercises.end(), context); const int removeCount = m_activeExercises.end() - newEnd; Q_ASSERT(removeCount == 1); m_activeExercises.erase(newEnd, m_activeExercises.end()); emit contextDeactivated(context); } bool ActiveExercises::isActive(const ExerciseContext &context) const { auto found = std::find(m_activeExercises.begin(), m_activeExercises.end(), context); return found != m_activeExercises.end(); } } // namespace AudioVideoManagement