| | |
| | |
| |
|
| | #include <QDateTime> |
| | #include "yuzu/applets/qt_error.h" |
| | #include "yuzu/main.h" |
| |
|
| | QtErrorDisplay::QtErrorDisplay(GMainWindow& parent) { |
| | connect(this, &QtErrorDisplay::MainWindowDisplayError, &parent, |
| | &GMainWindow::ErrorDisplayDisplayError, Qt::QueuedConnection); |
| | connect(this, &QtErrorDisplay::MainWindowRequestExit, &parent, |
| | &GMainWindow::ErrorDisplayRequestExit, Qt::QueuedConnection); |
| | connect(&parent, &GMainWindow::ErrorDisplayFinished, this, |
| | &QtErrorDisplay::MainWindowFinishedError, Qt::DirectConnection); |
| | } |
| |
|
| | QtErrorDisplay::~QtErrorDisplay() = default; |
| |
|
| | void QtErrorDisplay::Close() const { |
| | callback = {}; |
| | emit MainWindowRequestExit(); |
| | } |
| |
|
| | void QtErrorDisplay::ShowError(Result error, FinishedCallback finished) const { |
| | callback = std::move(finished); |
| | emit MainWindowDisplayError( |
| | tr("Error Code: %1-%2 (0x%3)") |
| | .arg(static_cast<u32>(error.GetModule()) + 2000, 4, 10, QChar::fromLatin1('0')) |
| | .arg(error.GetDescription(), 4, 10, QChar::fromLatin1('0')) |
| | .arg(error.raw, 8, 16, QChar::fromLatin1('0')), |
| | tr("An error has occurred.\nPlease try again or contact the developer of the software.")); |
| | } |
| |
|
| | void QtErrorDisplay::ShowErrorWithTimestamp(Result error, std::chrono::seconds time, |
| | FinishedCallback finished) const { |
| | callback = std::move(finished); |
| |
|
| | const QDateTime date_time = QDateTime::fromSecsSinceEpoch(time.count()); |
| | emit MainWindowDisplayError( |
| | tr("Error Code: %1-%2 (0x%3)") |
| | .arg(static_cast<u32>(error.GetModule()) + 2000, 4, 10, QChar::fromLatin1('0')) |
| | .arg(error.GetDescription(), 4, 10, QChar::fromLatin1('0')) |
| | .arg(error.raw, 8, 16, QChar::fromLatin1('0')), |
| | tr("An error occurred on %1 at %2.\nPlease try again or contact the developer of the " |
| | "software.") |
| | .arg(date_time.toString(QStringLiteral("dddd, MMMM d, yyyy"))) |
| | .arg(date_time.toString(QStringLiteral("h:mm:ss A")))); |
| | } |
| |
|
| | void QtErrorDisplay::ShowCustomErrorText(Result error, std::string dialog_text, |
| | std::string fullscreen_text, |
| | FinishedCallback finished) const { |
| | callback = std::move(finished); |
| | emit MainWindowDisplayError( |
| | tr("Error Code: %1-%2 (0x%3)") |
| | .arg(static_cast<u32>(error.GetModule()) + 2000, 4, 10, QChar::fromLatin1('0')) |
| | .arg(error.GetDescription(), 4, 10, QChar::fromLatin1('0')) |
| | .arg(error.raw, 8, 16, QChar::fromLatin1('0')), |
| | tr("An error has occurred.\n\n%1\n\n%2") |
| | .arg(QString::fromStdString(dialog_text)) |
| | .arg(QString::fromStdString(fullscreen_text))); |
| | } |
| |
|
| | void QtErrorDisplay::MainWindowFinishedError() { |
| | if (callback) { |
| | callback(); |
| | } |
| | } |
| |
|