multitrack-video-error.cpp 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #include "multitrack-video-error.hpp"
  2. #include <QMessageBox>
  3. #include <QPushButton>
  4. #include "obs-app.hpp"
  5. MultitrackVideoError MultitrackVideoError::critical(QString error)
  6. {
  7. return {Type::Critical, error};
  8. }
  9. MultitrackVideoError MultitrackVideoError::warning(QString error)
  10. {
  11. return {Type::Warning, error};
  12. }
  13. MultitrackVideoError MultitrackVideoError::cancel()
  14. {
  15. return {Type::Cancel, {}};
  16. }
  17. bool MultitrackVideoError::ShowDialog(QWidget *parent, const QString &multitrack_video_name) const
  18. {
  19. QMessageBox mb(parent);
  20. mb.setTextFormat(Qt::RichText);
  21. mb.setWindowTitle(QTStr("Output.StartStreamFailed"));
  22. if (type == Type::Warning) {
  23. mb.setText(error +
  24. QTStr("FailedToStartStream.WarningRetryNonMultitrackVideo").arg(multitrack_video_name));
  25. mb.setIcon(QMessageBox::Warning);
  26. QAbstractButton *yesButton = mb.addButton(QTStr("Yes"), QMessageBox::YesRole);
  27. mb.addButton(QTStr("No"), QMessageBox::NoRole);
  28. mb.exec();
  29. return mb.clickedButton() == yesButton;
  30. } else if (type == Type::Critical) {
  31. mb.setText(error);
  32. mb.setIcon(QMessageBox::Critical);
  33. mb.setStandardButtons(QMessageBox::StandardButton::Ok); // cannot continue
  34. mb.exec();
  35. }
  36. return false;
  37. }