From a3730b923664e0b100cd494639c44b3d51e5cdcc Mon Sep 17 00:00:00 2001 From: "tao.jin" Date: Sat, 10 Dec 2022 17:00:55 +0800 Subject: [PATCH] FIX: fix display of long filename in preview-only hint Change-Id: Ib365a39b262cbf03b14eeefa64e3e46d1b48306e --- src/slic3r/GUI/MainFrame.cpp | 5 ++++- src/slic3r/GUI/ReleaseNote.cpp | 19 +++++++++++++++++++ src/slic3r/GUI/ReleaseNote.hpp | 1 + 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index 6a14bdbb0..fc59350d8 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -979,7 +979,10 @@ bool MainFrame::preview_only_hint() }); confirm_dlg.update_btn_label(_L("Yes"), _L("No")); auto filename = wxString((m_plater->get_preview_only_filename()).c_str(), wxConvUTF8); - confirm_dlg.update_text(filename + _L(" will be closed before creating a new model. Do you want to continue?")); + //if size of filename is beyond limit + auto format_filename = confirm_dlg.format_text(filename, FromDIP(240)); + + confirm_dlg.update_text(format_filename + _L(" will be closed before creating a new model. Do you want to continue?")); confirm_dlg.on_show(); if (preview_only_to_editor) { m_plater->new_project(); diff --git a/src/slic3r/GUI/ReleaseNote.cpp b/src/slic3r/GUI/ReleaseNote.cpp index f8afc7ef5..fca89f4f2 100644 --- a/src/slic3r/GUI/ReleaseNote.cpp +++ b/src/slic3r/GUI/ReleaseNote.cpp @@ -667,6 +667,25 @@ void ConfirmBeforeSendDialog::update_btn_label(wxString ok_btn_text, wxString ca rescale(); } +wxString ConfirmBeforeSendDialog::format_text(wxString str, int warp) +{ + Label st (this, str); + wxString out_txt = str; + wxString count_txt = ""; + int new_line_pos = 0; + + for (int i = 0; i < str.length(); i++) { + auto text_size = st.GetTextExtent(count_txt); + if (text_size.x < warp) { + count_txt += str[i]; + } else { + out_txt.insert(i - 1, '\n'); + count_txt = ""; + } + } + return out_txt; +} + ConfirmBeforeSendDialog::~ConfirmBeforeSendDialog() { diff --git a/src/slic3r/GUI/ReleaseNote.hpp b/src/slic3r/GUI/ReleaseNote.hpp index a62c31069..19fbdc25a 100644 --- a/src/slic3r/GUI/ReleaseNote.hpp +++ b/src/slic3r/GUI/ReleaseNote.hpp @@ -138,6 +138,7 @@ public: void on_show(); void on_hide(); void update_btn_label(wxString ok_btn_text, wxString cancel_btn_text); + wxString format_text(wxString str, int warp); void rescale(); ~ConfirmBeforeSendDialog(); void on_dpi_changed(const wxRect& suggested_rect);