ErrorMessage.cpp 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. //
  2. // Created by Tobias Hieta on 18/03/16.
  3. //
  4. #include <QCoreApplication>
  5. #include <QPushButton>
  6. #include <QDesktopServices>
  7. #include "system/SystemComponent.h"
  8. #include "settings/SettingsComponent.h"
  9. #include "ErrorMessage.h"
  10. /////////////////////////////////////////////////////////////////////////////////////////
  11. ErrorMessage::ErrorMessage(const QString& errorMessage, bool allowResetConfig)
  12. : QMessageBox(nullptr)
  13. {
  14. setIcon(Critical);
  15. setText("Jellyfin Media Player encountered a fatal error and must exit");
  16. setDetailedText(errorMessage);
  17. setInformativeText("Press help below to be redirected to our friendly support forums." \
  18. "Press reset to reset configuration to the default and try again." \
  19. "Press abort to exit.");
  20. setWindowTitle("PMP Fatal Error!");
  21. auto exitButton = addButton(Abort);
  22. auto helpButton = addButton(Help);
  23. QPushButton* resetButton = nullptr;
  24. if (allowResetConfig)
  25. resetButton = addButton(Reset);
  26. connect(this, &QMessageBox::buttonClicked, [=](QAbstractButton* button)
  27. {
  28. if (button == exitButton)
  29. {
  30. qApp->quit();
  31. }
  32. else if (button == resetButton)
  33. {
  34. SettingsComponent::resetAndSaveOldConfiguration();
  35. SystemComponent::restart();
  36. }
  37. else if (button == helpButton)
  38. {
  39. QDesktopServices::openUrl(QUrl("https://jellyfin.org"));
  40. }
  41. });
  42. }