From e3ef90941f0ddcc18f604b6c528aa5ea602bbc4a Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Mon, 31 Jan 2022 11:08:55 +0100 Subject: [PATCH] Hopefully fixed get_wraped_wxString() and did not introduce new bugs. --- src/slic3r/GUI/MsgDialog.cpp | 39 ++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/src/slic3r/GUI/MsgDialog.cpp b/src/slic3r/GUI/MsgDialog.cpp index 79ff4214a..368bc8618 100644 --- a/src/slic3r/GUI/MsgDialog.cpp +++ b/src/slic3r/GUI/MsgDialog.cpp @@ -294,37 +294,38 @@ InfoDialog::InfoDialog(wxWindow* parent, const wxString &title, const wxString& wxString get_wraped_wxString(const wxString& text_in, size_t line_len /*=80*/) { #ifdef __WXMSW__ - char slash = '\\'; + static constexpr const char slash = '\\'; #else - char slash = '/'; + static constexpr const char slash = '/'; #endif - char space = ' '; - char new_line = '\n'; + static constexpr const char space = ' '; + static constexpr const char new_line = '\n'; wxString text = text_in; int idx = -1; size_t cur_len = 0; - size_t text_len = text.Len(); + size_t text_len = text.size(); - for (size_t i = 0; i < text_len; i++) { - cur_len++; - if (text[i] == space || text[i] == slash) - idx = i; + for (size_t i = 0; i < text_len; ++ i) { if (text[i] == new_line) { idx = -1; cur_len = 0; - continue; - } - if (cur_len >= line_len && idx >= 0) { - if (text[idx] == slash) { - text.insert(static_cast(idx) + 1, 1, new_line); - idx++; - text_len++; + } else { + ++ cur_len; + if (text[i] == space || text[i] == slash) + idx = i; + if (cur_len >= line_len && idx >= 0) { + if (text[idx] == slash) { + text.insert(static_cast(++ idx), 1, new_line); + ++ text_len; + ++ i; + } + else // space + text[idx] = new_line; + cur_len = i - static_cast(idx); + idx = -1; } - else // space - text[idx] = new_line; - cur_len = i - static_cast(idx); } } return text;