From 986b0e1cdb7ac4d1f140e8bfa87342f31c42eb00 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Thu, 6 Jun 2024 15:53:37 +0200 Subject: [PATCH] Fix for for SPE-2338 - [LINUX] "Menu" / "Log in" has wrong label layout (is bottom placed) (set icon size for 20px instead of 24) + Sidebar: nonMSW specific : Added right margin for bottom buttons + Gizmos toolbar: Code cleaning --- src/slic3r/GUI/GLToolbar.cpp | 2 +- src/slic3r/GUI/Gizmos/GLGizmosManager.cpp | 20 -------------------- src/slic3r/GUI/Sidebar.cpp | 6 +++++- src/slic3r/GUI/TopBar.cpp | 15 +++++++++++---- src/slic3r/GUI/wxExtensions.cpp | 11 ++++++++--- 5 files changed, 25 insertions(+), 29 deletions(-) diff --git a/src/slic3r/GUI/GLToolbar.cpp b/src/slic3r/GUI/GLToolbar.cpp index cbdcb70caf..bbdaaf74f2 100644 --- a/src/slic3r/GUI/GLToolbar.cpp +++ b/src/slic3r/GUI/GLToolbar.cpp @@ -1291,7 +1291,7 @@ void GLToolbar::render_vertical(const GLCanvas3D& parent) render_background(left, top, right, bottom, border_w, border_h); - left += border_w + gap_size_y; + left += border_w + gap_size_x; top -= border_h + gap_size_y; // renders icons diff --git a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp index 7743076d8d..ac62b87df1 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp @@ -62,8 +62,6 @@ std::vector GLGizmosManager::get_selectable_idxs() const return out; } -#define rect_sel 1 // square_sel, if 0 - GLGizmosManager::EType GLGizmosManager::get_gizmo_from_mouse(const Vec2d &mouse_pos) const { if (!m_enabled) return Undefined; @@ -74,7 +72,6 @@ GLGizmosManager::EType GLGizmosManager::get_gizmo_from_mouse(const Vec2d &mouse_ float border = m_layout.scaled_border(); float stride_y = m_layout.scaled_stride_y(); float gap_x = m_layout.scaled_gap_x(); - float gap_y = m_layout.scaled_gap_x(); float top_y = 0.5f * (cnv_h - height) + border; // is mouse horizontally in the area? @@ -83,11 +80,7 @@ GLGizmosManager::EType GLGizmosManager::get_gizmo_from_mouse(const Vec2d &mouse_ // which icon is it on? size_t from_top = (size_t) ((float) mouse_pos(1) - top_y) / stride_y; // is it really on the icon or already past the border? -#if rect_sel if ((float) mouse_pos(1) <= top_y + from_top * stride_y + icons_size) { -#else - if ((float) mouse_pos(1) <= top_y + gap_y + from_top * stride_y + icons_size) { -#endif std::vector selectable = get_selectable_idxs(); if (from_top < selectable.size()) return static_cast(selectable[from_top]); @@ -817,14 +810,9 @@ void GLGizmosManager::do_render_overlay() const render_background(top_x, top_y, top_x + width, top_y - height, border_w, border_h); const float margin_w = border_w + m_layout.scaled_gap_x() * inv_cnv_w; - const float margin_h = border_h + m_layout.scaled_gap_y() * inv_cnv_h; top_x += margin_w; -#if rect_sel top_y -= border_h; -#else - top_y -= margin_h; -#endif const float icons_size_x = 2.0f * m_layout.scaled_icons_size() * inv_cnv_w; const float icons_size_y = 2.0f * m_layout.scaled_icons_size() * inv_cnv_h; @@ -849,11 +837,7 @@ void GLGizmosManager::do_render_overlay() const GLGizmoBase* gizmo = m_gizmos[idx].get(); if (m_current == idx) -#if rect_sel render_background(top_x - margin_w, top_y + border_h, top_x + icons_size_x + margin_w, top_y - icons_size_y - border_h, border_w, border_h); -#else - render_background(top_x - margin_w, top_y + margin_h, top_x + icons_size_x + margin_w, top_y - icons_size_y - margin_h, border_w, border_h); -#endif const unsigned int sprite_id = gizmo->get_sprite_id(); // higlighted state needs to be decided first so its highlighting in every other state @@ -879,11 +863,7 @@ void GLGizmosManager::do_render_overlay() const float GLGizmosManager::get_scaled_total_height() const { -#if rect_sel return 2.0f * m_layout.scaled_border() + (float)get_selectable_idxs().size() * m_layout.scaled_stride_y() - m_layout.scaled_gap_y(); -#else - return 2.0f * m_layout.scaled_border() + (float)get_selectable_idxs().size() * m_layout.scaled_stride_y(); -#endif } float GLGizmosManager::get_scaled_total_width() const diff --git a/src/slic3r/GUI/Sidebar.cpp b/src/slic3r/GUI/Sidebar.cpp index 658881ad8e..334b04eff1 100644 --- a/src/slic3r/GUI/Sidebar.cpp +++ b/src/slic3r/GUI/Sidebar.cpp @@ -513,7 +513,11 @@ Sidebar::Sidebar(Plater *parent) auto *sizer = new wxBoxSizer(wxVERTICAL); sizer->Add(m_scrolled_panel, 1, wxEXPAND); - sizer->Add(btns_sizer, 0, wxEXPAND | wxLEFT | wxBOTTOM, margin_5); + sizer->Add(btns_sizer, 0, wxEXPAND | wxLEFT | wxBOTTOM +#ifndef _WIN32 + | wxRIGHT +#endif // __linux__ + , margin_5); SetSizer(sizer); // Events diff --git a/src/slic3r/GUI/TopBar.cpp b/src/slic3r/GUI/TopBar.cpp index cb73c4f1d6..c6eda864f2 100644 --- a/src/slic3r/GUI/TopBar.cpp +++ b/src/slic3r/GUI/TopBar.cpp @@ -166,8 +166,14 @@ void TopBarItemsCtrl::Button::sys_color_changed() m_foreground_color = wxGetApp().get_label_clr_default(); } +#ifdef __linux__ +const int icon_sz = 20; +#else +const int icon_sz = 24; +#endif + TopBarItemsCtrl::ButtonWithPopup::ButtonWithPopup(wxWindow* parent, const wxString& label, const std::string& icon_name, wxSize size) - :TopBarItemsCtrl::Button(parent, label, icon_name, 24, size) + :TopBarItemsCtrl::Button(parent, label, icon_name, icon_sz, size) { if (size != wxDefaultSize) m_fixed_width = size.x * 0.1; @@ -224,9 +230,7 @@ void TopBarItemsCtrl::UpdateAccountButton(bool avatar/* = false*/) { auto user_account = wxGetApp().plater()->get_user_account(); const wxString user_name = user_account->is_logged() ? from_u8(user_account->get_username()) : _L("Log in"); - m_account_btn->SetLabel(m_collapsed_btns ? "" : user_name); m_account_btn->SetToolTip(user_name); - const int icon_sz = 24; #ifdef __linux__ if (avatar) { if (user_account->is_logged()) { @@ -256,7 +260,10 @@ void TopBarItemsCtrl::UpdateAccountButton(bool avatar/* = false*/) } } #endif - m_account_btn->Refresh(); + + m_account_btn->SetLabel(m_collapsed_btns ? "" : user_name); + this->Layout(); +// m_account_btn->Refresh(); } void TopBarItemsCtrl::UnselectPopupButtons() diff --git a/src/slic3r/GUI/wxExtensions.cpp b/src/slic3r/GUI/wxExtensions.cpp index 5ab0bfca03..2e70271989 100644 --- a/src/slic3r/GUI/wxExtensions.cpp +++ b/src/slic3r/GUI/wxExtensions.cpp @@ -566,10 +566,15 @@ ScalableButton::ScalableButton( wxWindow * parent, SetBitmap(bitmap.bmp()); } -void ScalableButton::SetBitmap_(const ScalableBitmap& bmp) +void ScalableButton::SetBitmap_(const ScalableBitmap& bitmap) { - SetBitmap(bmp.bmp()); - m_current_icon_name = bmp.name(); + const wxBitmapBundle& bmp = bitmap.bmp(); + SetBitmap(bmp); + SetBitmapCurrent(bmp); + SetBitmapPressed(bmp); + SetBitmapFocus(bmp); + SetBitmapDisabled(bmp); + m_current_icon_name = bitmap.name(); } bool ScalableButton::SetBitmap_(const std::string& bmp_name)