From 10988f0bae8d550f3873237eae90698c6b9a5d6e Mon Sep 17 00:00:00 2001 From: "chunmao.guo" Date: Fri, 9 Jun 2023 11:40:39 +0800 Subject: [PATCH] FIX: [STUDIO-3090] export error string to file panel Change-Id: Ifabff9646dfcf19da9188edfb2447b33c8c1089e --- src/slic3r/GUI/MediaFilePanel.cpp | 1 + src/slic3r/GUI/Printer/PrinterFileSystem.cpp | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/src/slic3r/GUI/MediaFilePanel.cpp b/src/slic3r/GUI/MediaFilePanel.cpp index 717d1a741..180570994 100644 --- a/src/slic3r/GUI/MediaFilePanel.cpp +++ b/src/slic3r/GUI/MediaFilePanel.cpp @@ -277,6 +277,7 @@ void MediaFilePanel::SetMachineObject(MachineObject* obj) case PrinterFileSystem::ListSyncing: icon = m_bmp_loading; msg = _L("Loading file list..."); break; case PrinterFileSystem::ListReady: icon = extra == 0 ? m_bmp_empty : m_bmp_failed; msg = extra == 0 ? _L("No files [%d]") : _L("Load failed [%d]"); break; } + if (!e.GetString().IsEmpty()) msg = e.GetString(); if (fs->GetCount() == 0 && !msg.empty()) m_image_grid->SetStatus(icon, msg); if (e.GetInt() == PrinterFileSystem::Initializing) diff --git a/src/slic3r/GUI/Printer/PrinterFileSystem.cpp b/src/slic3r/GUI/Printer/PrinterFileSystem.cpp index afee649c6..0ac441e61 100644 --- a/src/slic3r/GUI/Printer/PrinterFileSystem.cpp +++ b/src/slic3r/GUI/Printer/PrinterFileSystem.cpp @@ -2,6 +2,7 @@ #include "libslic3r/Utils.hpp" #include "libslic3r/Format/bbs_3mf.hpp" #include "libslic3r/Model.hpp" +#include "slic3r/GUI/I18N.hpp" #include "../../Utils/NetworkAgent.hpp" #include "../BitmapCache.hpp" @@ -29,6 +30,10 @@ wxDEFINE_EVENT(EVT_FILE_CALLBACK, wxCommandEvent); static wxBitmap default_thumbnail; +static std::map error_messages = { + {PrinterFileSystem::FILE_TYPE_ERR, L("Not supported on the current printer version.")} +}; + struct StaticBambuLib : BambuLib { static StaticBambuLib & get(); static int Fake_Bambu_Create(Bambu_Tunnel*, char const*) { return -2; } @@ -973,6 +978,8 @@ void PrinterFileSystem::SendChangedEvent(wxEventType type, size_t index, std::st event.SetInt(index); if (!str.empty()) event.SetString(wxString::FromUTF8(str.c_str())); + else if (auto iter = error_messages.find(extra); iter != error_messages.end()) + event.SetString(wxString::FromUTF8(iter->second.c_str())); event.SetExtraLong(extra); if (wxThread::IsMain()) ProcessEventLocally(event);