From 930109877d255cd637b2260291579e5a2bc59e9c Mon Sep 17 00:00:00 2001 From: "chunmao.guo" Date: Tue, 21 Nov 2023 12:17:24 +0800 Subject: [PATCH] ENH: show liveview stat Change-Id: I70d1f458aa2ed379ad7fe07dee76fbe035316420 Jira: none --- src/slic3r/GUI/MediaPlayCtrl.cpp | 9 +++++++++ src/slic3r/GUI/MediaPlayCtrl.h | 1 + src/slic3r/GUI/wxMediaCtrl2.cpp | 7 +++++++ src/slic3r/GUI/wxMediaCtrl2.h | 2 ++ src/slic3r/GUI/wxMediaCtrl2.mm | 2 ++ 5 files changed, 21 insertions(+) diff --git a/src/slic3r/GUI/MediaPlayCtrl.cpp b/src/slic3r/GUI/MediaPlayCtrl.cpp index afed708fa..4e5f1aaec 100644 --- a/src/slic3r/GUI/MediaPlayCtrl.cpp +++ b/src/slic3r/GUI/MediaPlayCtrl.cpp @@ -41,6 +41,14 @@ MediaPlayCtrl::MediaPlayCtrl(wxWindow *parent, wxMediaCtrl2 *media_ctrl, const w m_label_status = new Label(this, ""); m_label_status->SetForegroundColour(wxColour("#323A3C")); + m_label_stat = new Label(this, ""); + m_label_stat->SetForegroundColour(wxColour("#323A3C")); +#if !BBL_RELEASE_TO_PUBLIC + m_media_ctrl->Bind(EVT_MEDIA_CTRL_STAT, [this](auto & e) { + m_label_stat->SetLabel(e.GetString()); + }); +#endif + m_button_play->Bind(wxEVT_COMMAND_BUTTON_CLICKED, [this](auto &e) { TogglePlay(); }); m_button_play->Bind(wxEVT_RIGHT_UP, [this](auto & e) { m_media_ctrl->Play(); }); m_label_status->Bind(wxEVT_LEFT_UP, [this](auto &e) { @@ -68,6 +76,7 @@ MediaPlayCtrl::MediaPlayCtrl(wxWindow *parent, wxMediaCtrl2 *media_ctrl, const w wxBoxSizer * sizer = new wxBoxSizer(wxHORIZONTAL); sizer->Add(m_button_play, 0, wxEXPAND | wxALL, 0); + sizer->Add(m_label_stat, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, FromDIP(25)); sizer->AddStretchSpacer(1); sizer->Add(m_label_status, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, FromDIP(25)); SetSizer(sizer); diff --git a/src/slic3r/GUI/MediaPlayCtrl.h b/src/slic3r/GUI/MediaPlayCtrl.h index 1508150ff..ee9ff7352 100644 --- a/src/slic3r/GUI/MediaPlayCtrl.h +++ b/src/slic3r/GUI/MediaPlayCtrl.h @@ -103,6 +103,7 @@ private: wxDateTime m_next_retry; ::Button *m_button_play; + ::Label * m_label_stat; ::Label * m_label_status; }; diff --git a/src/slic3r/GUI/wxMediaCtrl2.cpp b/src/slic3r/GUI/wxMediaCtrl2.cpp index 2b46b5c70..4af5254c1 100644 --- a/src/slic3r/GUI/wxMediaCtrl2.cpp +++ b/src/slic3r/GUI/wxMediaCtrl2.cpp @@ -18,6 +18,8 @@ public: }; #endif +wxDEFINE_EVENT(EVT_MEDIA_CTRL_STAT, wxCommandEvent); + wxMediaCtrl2::wxMediaCtrl2(wxWindow *parent) { #ifdef __WIN32__ @@ -233,6 +235,11 @@ WXLRESULT wxMediaCtrl2::MSWWindowProc(WXUINT nMsg, if (msg.SubString(n + 1, msg.Length() - 2).ToLong(&val)) m_error = (int) val; } + } else if (msg.Contains("stat_log")) { + wxCommandEvent evt(EVT_MEDIA_CTRL_STAT); + evt.SetEventObject(this); + evt.SetString(msg.Mid(msg.Find(' ') + 1)); + wxPostEvent(this, evt); } } BOOST_LOG_TRIVIAL(info) << msg.ToUTF8().data(); diff --git a/src/slic3r/GUI/wxMediaCtrl2.h b/src/slic3r/GUI/wxMediaCtrl2.h index 3f1467a13..8fde180e9 100644 --- a/src/slic3r/GUI/wxMediaCtrl2.h +++ b/src/slic3r/GUI/wxMediaCtrl2.h @@ -11,6 +11,8 @@ #include "wx/uri.h" #include "wx/mediactrl.h" +wxDECLARE_EVENT(EVT_MEDIA_CTRL_STAT, wxCommandEvent); + #ifdef __WXMAC__ class wxMediaCtrl2 : public wxWindow diff --git a/src/slic3r/GUI/wxMediaCtrl2.mm b/src/slic3r/GUI/wxMediaCtrl2.mm index b3b8775e7..186baa688 100644 --- a/src/slic3r/GUI/wxMediaCtrl2.mm +++ b/src/slic3r/GUI/wxMediaCtrl2.mm @@ -16,6 +16,8 @@ #include #include +wxDEFINE_EVENT(EVT_MEDIA_CTRL_STAT, wxCommandEvent); + #define BAMBU_DYNAMIC void wxMediaCtrl2::bambu_log(void const * ctx, int level, char const * msg)