BackgroundTask.cpp 972 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #include "BackgroundTask.h"
  2. #include <QMessageBox>
  3. BackgroundTask::BackgroundTask(const std::string& shortDescription) :
  4. shortDescription{ shortDescription }
  5. {
  6. }
  7. ImageExportTask::ImageExportTask(const alm::ImageExportInfo& iei) :
  8. BackgroundTask{ "exporting image" },
  9. iei{ iei }
  10. {
  11. }
  12. void ImageExportTask::run(void)
  13. {
  14. alm::exportPng(iei, [this](float percentage) {
  15. emit progress(percentage);
  16. });
  17. emit finished(true);
  18. }
  19. VideoExportTask::VideoExportTask(MandelVideoGenerator mvg, mnd::MandelGenerator& generator) :
  20. BackgroundTask{ "exporting video" },
  21. mvg{ std::move(mvg) },
  22. generator{ generator }
  23. {
  24. }
  25. void VideoExportTask::run(void)
  26. {
  27. mvg.addProgressCallback([this](const MandelVideoProgressInfo& mvpi) {
  28. emit progress(0);
  29. });
  30. mvg.generate(generator);
  31. emit finished(true);
  32. QMessageBox* msgBox = new QMessageBox;
  33. msgBox->setText("Video successfully exported.");
  34. emit msgBox->exec();
  35. }