diff --git a/kstars/ekos/scheduler/scheduler.h b/kstars/ekos/scheduler/scheduler.h --- a/kstars/ekos/scheduler/scheduler.h +++ b/kstars/ekos/scheduler/scheduler.h @@ -563,7 +563,11 @@ bool isWeatherOK(SchedulerJob *job); - void updateCompletedJobsCount(); + /** + * @brief updateCompletedJobsCount For each scheduler job, examine sequence job storage and count captures. + * @param forced forces recounting captures unconditionally if true, else only IDLE, EVALUATION or new jobs are examined. + */ + void updateCompletedJobsCount(bool forced = false); SequenceJob *processJobInfo(XMLEle *root, SchedulerJob *schedJob); bool loadSequenceQueue(const QString &fileURL, SchedulerJob *schedJob, QList &jobs, diff --git a/kstars/ekos/scheduler/scheduler.cpp b/kstars/ekos/scheduler/scheduler.cpp --- a/kstars/ekos/scheduler/scheduler.cpp +++ b/kstars/ekos/scheduler/scheduler.cpp @@ -1013,6 +1013,7 @@ { if (state == SCHEDULER_RUNNIG) return; + else if (state == SCHEDULER_PAUSED) { state = SCHEDULER_RUNNIG; @@ -1065,6 +1066,9 @@ if (job->getState() == SchedulerJob::JOB_ABORTED) job->reset(); + /* Run a unconditional storage update */ + updateCompletedJobsCount(true); + queueLoadB->setEnabled(false); addToQueueB->setEnabled(false); removeFromQueueB->setEnabled(false); @@ -4287,11 +4291,15 @@ mosaicB->setEnabled(addingOK); } -void Scheduler::updateCompletedJobsCount() +void Scheduler::updateCompletedJobsCount(bool forced) { /* Use a temporary map in order to limit the number of file searches */ QMap newFramesCount; + /* If update is forced, clear the frame map */ + if (forced) + capturedFramesCount.clear(); + /* Enumerate SchedulerJobs to count captures that are already stored */ for (SchedulerJob *oneJob : jobs) {