diff --git a/src/applib/storage_property.h b/src/applib/storage_property.h index 9b0e71d..536e785 100644 --- a/src/applib/storage_property.h +++ b/src/applib/storage_property.h @@ -316,7 +316,7 @@ struct NvmeSelfTestResultTypeExt { return { {NvmeSelfTestResultType::Unknown, {"unknown", _("Unknown")}}, - {NvmeSelfTestResultType::CompletedNoError, {"completedNoError", _("Completed with No Error")}}, + {NvmeSelfTestResultType::CompletedNoError, {"completedNoError", _("Completed Without Errors")}}, {NvmeSelfTestResultType::AbortedSelfTestCommand, {"abortedSelfTestCommand", _("Aborted: Self-Test Command")}}, {NvmeSelfTestResultType::AbortedControllerReset, {"abortedControllerReset", _("Aborted: Controller Reset")}}, {NvmeSelfTestResultType::AbortedNamespaceRemoved, {"abortedNamespaceRemoved", _("Aborted: Namespace Removed")}}, diff --git a/src/gui/gsc_info_window.cpp b/src/gui/gsc_info_window.cpp index 4bbfe40..f9888e6 100644 --- a/src/gui/gsc_info_window.cpp +++ b/src/gui/gsc_info_window.cpp @@ -2264,7 +2264,7 @@ gboolean GscInfoWindow::test_idle_callback(void* data) break; } - const int8_t rem_percent = self->current_test_->get_remaining_percent(); + const std::int8_t rem_percent = self->current_test_->get_remaining_percent(); const std::string rem_percent_str = (rem_percent == -1 ? C_("value", "Unknown") : hz::number_to_string_locale(100 - rem_percent)); auto poll_in = self->current_test_->get_poll_in_seconds(); // sec @@ -2347,21 +2347,21 @@ gboolean GscInfoWindow::test_idle_callback(void* data) bool aborted = false; SelfTestStatusSeverity severity = SelfTestStatusSeverity::None; - std::string result_msg; + std::string result_details_msg; if (!self->test_error_msg_.empty()) { aborted = true; severity = SelfTestStatusSeverity::Error; - result_msg = Glib::ustring::compose(_("Test aborted: %1"), Glib::Markup::escape_text(self->test_error_msg_)); + result_details_msg = Glib::ustring::compose(_("Test aborted: %1"), Glib::Markup::escape_text(self->test_error_msg_)); } else { severity = get_self_test_status_severity(status); if (status == SelfTestStatus::ManuallyAborted) { aborted = true; - result_msg = ""s + _("Test was manually aborted.") + ""; // it's a StatusSeverity::none message + result_details_msg = ""s + _("Test was manually aborted.") + ""; // it's a StatusSeverity::none message } else { - result_msg = Glib::ustring::compose(_("Test result: %1."), + result_details_msg = Glib::ustring::compose(_("Test result: %1."), Glib::Markup::escape_text(SelfTestStatusExt::get_displayable_name(status))); // It may not reach 100% somehow, so do it manually. @@ -2370,10 +2370,54 @@ gboolean GscInfoWindow::test_idle_callback(void* data) } } - if (severity != SelfTestStatusSeverity::None) { - result_msg += "\n"s + _("Check the Self-Test Log for more information."); + std::string result_main_msg; + if (aborted) { + result_main_msg = _("TEST ABORTED!"); + } else { + switch (status) { + case SelfTestStatus::Unknown: + result_main_msg = _("TEST STATUS UNKNOWN."); + break; + case SelfTestStatus::InProgress: + result_main_msg = _("TEST IN PROGRESS."); + break; + case SelfTestStatus::ManuallyAborted: + result_main_msg = _("TEST ABORTED!"); + break; + case SelfTestStatus::Interrupted: + result_main_msg = _("TEST INTERRUPTED!"); + break; + case SelfTestStatus::CompletedNoError: + result_main_msg = _("TEST SUCCESSFUL."); + break; + case SelfTestStatus::CompletedWithError: + result_main_msg = _("TEST FAILED!"); + break; + case SelfTestStatus::Reserved: + result_main_msg = _("TEST STATUS UNKNOWN."); + break; + } } + switch (severity) { + case SelfTestStatusSeverity::None: + break; + case SelfTestStatusSeverity::Warning: + result_details_msg = "\n"s + _("Check the Self-Test Log for more information."); + break; + case SelfTestStatusSeverity::Error: + if (!result_main_msg.empty()) { // Highlight in red + result_main_msg = ""s + result_main_msg + ""; + } + result_details_msg += "\n"s + _("Check the Self-Test Log for more information."); + break; + } + + if (!result_main_msg.empty()) { + result_main_msg = ""s + result_main_msg + "\n"; + } + std::string result_msg = result_main_msg + result_details_msg; + if (auto* test_type_combo = self->lookup_widget("test_type_combo")) test_type_combo->set_sensitive(true); @@ -2381,8 +2425,9 @@ gboolean GscInfoWindow::test_idle_callback(void* data) if (auto* test_execute_button = self->lookup_widget("test_execute_button")) test_execute_button->set_sensitive(true); - if (test_completion_progressbar) - test_completion_progressbar->set_text(aborted ? _("Test aborted") : _("Test completed")); + if (test_completion_progressbar) { + test_completion_progressbar->set_text(""); + } if (auto* test_stop_button = self->lookup_widget("test_stop_button")) test_stop_button->set_sensitive(false); diff --git a/src/gui/ui/gsc_info_window.glade b/src/gui/ui/gsc_info_window.glade index a838c39..15e4194 100644 --- a/src/gui/ui/gsc_info_window.glade +++ b/src/gui/ui/gsc_info_window.glade @@ -1,5 +1,5 @@ -