1
0

BackgroundTask.cpp 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #include "BackgroundTask.h"
  2. BackgroundTask::BackgroundTask(const std::string& shortDescription) :
  3. shortDescription{ shortDescription }
  4. {
  5. }
  6. ImageExportTask::ImageExportTask(const alm::ImageExportInfo& iei) :
  7. BackgroundTask{ "Exporting Image" },
  8. iei{ iei }
  9. {
  10. }
  11. void ImageExportTask::run(void)
  12. {
  13. try {
  14. alm::exportImage(iei, [this](float percentage) {
  15. emit progress(percentage);
  16. });
  17. emit finished(true, "Image successfully exported.");
  18. }
  19. catch (alm::ImageExportException& ex) {
  20. emit finished(false, QString("Error during image export: ") + ex.what());
  21. }
  22. catch (...) {
  23. emit finished(false, "Unknown error occurred during image export.");
  24. }
  25. }
  26. VideoExportTask::VideoExportTask(MandelVideoGenerator mvg, mnd::MandelGenerator& generator) :
  27. BackgroundTask{ "Exporting Video" },
  28. mvg{ std::move(mvg) },
  29. generator{ generator }
  30. {
  31. }
  32. void VideoExportTask::run(void)
  33. {
  34. try {
  35. mvg.addProgressCallback([this](const MandelVideoProgressInfo& mvpi) {
  36. emit progress(mvpi.progress);
  37. });
  38. mvg.generate(generator);
  39. emit finished(true, "Video successfully exported.");
  40. }
  41. catch (alm::VideoExportException& ex) {
  42. emit finished(false, QString("Error during video export: ") + ex.what());
  43. }
  44. catch (...) {
  45. emit finished(false, "Unknown error occurred during video export.");
  46. }
  47. }