diff --git a/UI/window-basic-filters.cpp b/UI/window-basic-filters.cpp index 8db101946..fa2ef9906 100644 --- a/UI/window-basic-filters.cpp +++ b/UI/window-basic-filters.cpp @@ -434,7 +434,7 @@ void OBSBasicFilters::AddNewFilter(const char *id) return; if (name.empty()) { - OBSMessageBox::information(this, + OBSMessageBox::warning(this, QTStr("NoNameEntered.Title"), QTStr("NoNameEntered.Text")); AddNewFilter(id); @@ -444,7 +444,7 @@ void OBSBasicFilters::AddNewFilter(const char *id) existing_filter = obs_source_get_filter_by_name(source, name.c_str()); if (existing_filter) { - OBSMessageBox::information(this, + OBSMessageBox::warning(this, QTStr("NameExists.Title"), QTStr("NameExists.Text")); obs_source_release(existing_filter); diff --git a/UI/window-basic-main-outputs.cpp b/UI/window-basic-main-outputs.cpp index 90a38c8db..6b3e46fc6 100644 --- a/UI/window-basic-main-outputs.cpp +++ b/UI/window-basic-main-outputs.cpp @@ -63,7 +63,8 @@ static void OBSStopStreaming(void *data, calldata_t *params) output->delayActive = false; os_atomic_set_bool(&streaming_active, false); QMetaObject::invokeMethod(output->main, - "StreamingStop", Q_ARG(int, code), Q_ARG(QString, arg_last_error)); + "StreamingStop", Q_ARG(int, code), + Q_ARG(QString, arg_last_error)); } static void OBSStartRecording(void *data, calldata_t *params) @@ -81,11 +82,15 @@ static void OBSStopRecording(void *data, calldata_t *params) { BasicOutputHandler *output = static_cast(data); int code = (int)calldata_int(params, "code"); + const char *last_error = calldata_string(params, "last_error"); + + QString arg_last_error = QString::fromUtf8(last_error); output->recordingActive = false; os_atomic_set_bool(&recording_active, false); QMetaObject::invokeMethod(output->main, - "RecordingStop", Q_ARG(int, code)); + "RecordingStop", Q_ARG(int, code), + Q_ARG(QString, arg_last_error)); UNUSED_PARAMETER(params); } @@ -891,7 +896,7 @@ bool SimpleOutput::ConfigureRecording(bool updateReplayBuffer) if (!dir) { if (main->isVisible()) - OBSMessageBox::information(main, + OBSMessageBox::warning(main, QTStr("Output.BadPath.Title"), QTStr("Output.BadPath.Text")); else @@ -1658,7 +1663,7 @@ bool AdvancedOutput::StartRecording() if (!dir) { if (main->isVisible()) - OBSMessageBox::information(main, + OBSMessageBox::warning(main, QTStr("Output.BadPath.Title"), QTStr("Output.BadPath.Text")); else @@ -1758,7 +1763,7 @@ bool AdvancedOutput::StartReplayBuffer() if (!dir) { if (main->isVisible()) - OBSMessageBox::information(main, + OBSMessageBox::warning(main, QTStr("Output.BadPath.Title"), QTStr("Output.BadPath.Text")); else diff --git a/UI/window-basic-main-profiles.cpp b/UI/window-basic-main-profiles.cpp index 24640eee1..aa512d540 100644 --- a/UI/window-basic-main-profiles.cpp +++ b/UI/window-basic-main-profiles.cpp @@ -107,13 +107,13 @@ static bool GetProfileName(QWidget *parent, std::string &name, return false; } if (name.empty()) { - OBSMessageBox::information(parent, + OBSMessageBox::warning(parent, QTStr("NoNameEntered.Title"), QTStr("NoNameEntered.Text")); continue; } if (ProfileExists(name.c_str())) { - OBSMessageBox::information(parent, + OBSMessageBox::warning(parent, QTStr("NameExists.Title"), QTStr("NameExists.Text")); continue; @@ -526,7 +526,7 @@ void OBSBasic::on_actionImportProfile_triggered() profileDir + "/recordEncoder.json"); RefreshProfiles(); } else { - OBSMessageBox::information(this, + OBSMessageBox::warning(this, QTStr("Basic.MainMenu.Profile.Import"), QTStr("Basic.MainMenu.Profile.Exists")); } diff --git a/UI/window-basic-main-scene-collections.cpp b/UI/window-basic-main-scene-collections.cpp index 56661ce0a..84da0f3e4 100644 --- a/UI/window-basic-main-scene-collections.cpp +++ b/UI/window-basic-main-scene-collections.cpp @@ -114,13 +114,13 @@ static bool GetSceneCollectionName(QWidget *parent, std::string &name, return false; } if (name.empty()) { - OBSMessageBox::information(parent, + OBSMessageBox::warning(parent, QTStr("NoNameEntered.Title"), QTStr("NoNameEntered.Text")); continue; } if (SceneCollectionExists(name.c_str())) { - OBSMessageBox::information(parent, + OBSMessageBox::warning(parent, QTStr("NameExists.Title"), QTStr("NameExists.Text")); continue; diff --git a/UI/window-basic-main-transitions.cpp b/UI/window-basic-main-transitions.cpp index 5d3530122..939910930 100644 --- a/UI/window-basic-main-transitions.cpp +++ b/UI/window-basic-main-transitions.cpp @@ -453,7 +453,7 @@ void OBSBasic::AddTransition() if (accepted) { if (name.empty()) { - OBSMessageBox::information(this, + OBSMessageBox::warning(this, QTStr("NoNameEntered.Title"), QTStr("NoNameEntered.Text")); AddTransition(); @@ -462,7 +462,7 @@ void OBSBasic::AddTransition() source = FindTransition(name.c_str()); if (source) { - OBSMessageBox::information(this, + OBSMessageBox::warning(this, QTStr("NameExists.Title"), QTStr("NameExists.Text")); @@ -559,7 +559,7 @@ void OBSBasic::RenameTransition() if (accepted) { if (name.empty()) { - OBSMessageBox::information(this, + OBSMessageBox::warning(this, QTStr("NoNameEntered.Title"), QTStr("NoNameEntered.Text")); RenameTransition(); @@ -568,7 +568,7 @@ void OBSBasic::RenameTransition() source = FindTransition(name.c_str()); if (source) { - OBSMessageBox::information(this, + OBSMessageBox::warning(this, QTStr("NameExists.Title"), QTStr("NameExists.Text")); diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index 8909133ab..0af17baa7 100644 --- a/UI/window-basic-main.cpp +++ b/UI/window-basic-main.cpp @@ -2790,7 +2790,7 @@ void OBSBasic::MixerRenameSource() return; if (name.empty()) { - OBSMessageBox::information(this, + OBSMessageBox::warning(this, QTStr("NoNameEntered.Title"), QTStr("NoNameEntered.Text")); continue; @@ -2800,7 +2800,7 @@ void OBSBasic::MixerRenameSource() obs_source_release(sourceTest); if (sourceTest) { - OBSMessageBox::information(this, + OBSMessageBox::warning(this, QTStr("NameExists.Title"), QTStr("NameExists.Text")); continue; @@ -3165,7 +3165,7 @@ void OBSBasic::DuplicateSelectedScene() return; if (name.empty()) { - OBSMessageBox::information(this, + OBSMessageBox::warning(this, QTStr("NoNameEntered.Title"), QTStr("NoNameEntered.Text")); continue; @@ -3173,7 +3173,7 @@ void OBSBasic::DuplicateSelectedScene() obs_source_t *source = obs_get_source_by_name(name.c_str()); if (source) { - OBSMessageBox::information(this, + OBSMessageBox::warning(this, QTStr("NameExists.Title"), QTStr("NameExists.Text")); @@ -4109,7 +4109,7 @@ void OBSBasic::on_actionAddScene_triggered() if (accepted) { if (name.empty()) { - OBSMessageBox::information(this, + OBSMessageBox::warning(this, QTStr("NoNameEntered.Title"), QTStr("NoNameEntered.Text")); on_actionAddScene_triggered(); @@ -4118,7 +4118,7 @@ void OBSBasic::on_actionAddScene_triggered() obs_source_t *source = obs_get_source_by_name(name.c_str()); if (source) { - OBSMessageBox::information(this, + OBSMessageBox::warning(this, QTStr("NameExists.Title"), QTStr("NameExists.Text")); @@ -4869,7 +4869,7 @@ void OBSBasic::logUploadFinished(const QString &text, const QString &error) ui->menuLogFiles->setEnabled(true); if (text.isEmpty()) { - OBSMessageBox::information(this, + OBSMessageBox::critical(this, QTStr("LogReturnDialog.ErrorUploadingLog"), error); return; @@ -4898,11 +4898,11 @@ static void RenameListItem(OBSBasic *parent, QListWidget *listWidget, listItem->setText(QT_UTF8(prevName)); if (foundSource) { - OBSMessageBox::information(parent, + OBSMessageBox::warning(parent, QTStr("NameExists.Title"), QTStr("NameExists.Text")); } else if (name.empty()) { - OBSMessageBox::information(parent, + OBSMessageBox::warning(parent, QTStr("NoNameEntered.Title"), QTStr("NoNameEntered.Text")); } @@ -5363,7 +5363,7 @@ void OBSBasic::RecordingStart() blog(LOG_INFO, RECORDING_START); } -void OBSBasic::RecordingStop(int code) +void OBSBasic::RecordingStop(int code, QString last_error) { ui->statusbar->RecordingStopped(); ui->recordButton->setText(QTStr("Basic.Main.StartRecording")); @@ -5375,19 +5375,32 @@ void OBSBasic::RecordingStop(int code) blog(LOG_INFO, RECORDING_STOP); if (code == OBS_OUTPUT_UNSUPPORTED && isVisible()) { - OBSMessageBox::information(this, + OBSMessageBox::critical(this, QTStr("Output.RecordFail.Title"), QTStr("Output.RecordFail.Unsupported")); } else if (code == OBS_OUTPUT_NO_SPACE && isVisible()) { - OBSMessageBox::information(this, + OBSMessageBox::warning(this, QTStr("Output.RecordNoSpace.Title"), QTStr("Output.RecordNoSpace.Msg")); } else if (code != OBS_OUTPUT_SUCCESS && isVisible()) { - OBSMessageBox::information(this, + + const char *errorDescription; + DStr errorMessage; + bool use_last_error = true; + + errorDescription = Str("Output.RecordError.Msg"); + + if (use_last_error && !last_error.isEmpty()) + dstr_printf(errorMessage, "%s\n\n%s", errorDescription, + QT_TO_UTF8(last_error)); + else + dstr_copy(errorMessage, errorDescription); + + OBSMessageBox::critical(this, QTStr("Output.RecordError.Title"), - QTStr("Output.RecordError.Msg")); + QT_UTF8(errorMessage)); } else if (code == OBS_OUTPUT_UNSUPPORTED && !isVisible()) { SysTrayNotify(QTStr("Output.RecordFail.Unsupported"), @@ -5528,17 +5541,17 @@ void OBSBasic::ReplayBufferStop(int code) blog(LOG_INFO, REPLAY_BUFFER_STOP); if (code == OBS_OUTPUT_UNSUPPORTED && isVisible()) { - OBSMessageBox::information(this, + OBSMessageBox::critical(this, QTStr("Output.RecordFail.Title"), QTStr("Output.RecordFail.Unsupported")); } else if (code == OBS_OUTPUT_NO_SPACE && isVisible()) { - OBSMessageBox::information(this, + OBSMessageBox::warning(this, QTStr("Output.RecordNoSpace.Title"), QTStr("Output.RecordNoSpace.Msg")); } else if (code != OBS_OUTPUT_SUCCESS && isVisible()) { - OBSMessageBox::information(this, + OBSMessageBox::critical(this, QTStr("Output.RecordError.Title"), QTStr("Output.RecordError.Msg")); diff --git a/UI/window-basic-main.hpp b/UI/window-basic-main.hpp index 3495dae26..a94215341 100644 --- a/UI/window-basic-main.hpp +++ b/UI/window-basic-main.hpp @@ -438,7 +438,7 @@ public slots: void RecordingStart(); void RecordStopping(); - void RecordingStop(int code); + void RecordingStop(int code, QString last_error); void StartReplayBuffer(); void StopReplayBuffer(); diff --git a/UI/window-basic-source-select.cpp b/UI/window-basic-source-select.cpp index f2bf21b97..171dc64ef 100644 --- a/UI/window-basic-source-select.cpp +++ b/UI/window-basic-source-select.cpp @@ -215,7 +215,7 @@ void OBSBasicSourceSelect::on_buttonBox_accepted() AddExisting(QT_TO_UTF8(item->text()), visible, false); } else { if (ui->sourceName->text().isEmpty()) { - OBSMessageBox::information(this, + OBSMessageBox::warning(this, QTStr("NoNameEntered.Title"), QTStr("NoNameEntered.Text")); return;