From dc78fc5a774eb9850088904f228cf7ac07c80a13 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Fri, 26 Apr 2024 16:59:43 +0200 Subject: [PATCH] TopBarMenus: Deleted account menu item and set tooltip with user name on Account button + Make circle icon for logo --- resources/icons/user_mask.svg | 15 +++++++++++++++ src/slic3r/GUI/TopBar.cpp | 5 +++-- src/slic3r/GUI/TopBarMenus.cpp | 9 --------- src/slic3r/GUI/TopBarMenus.hpp | 1 - src/slic3r/GUI/wxExtensions.cpp | 10 ++++++++++ 5 files changed, 28 insertions(+), 12 deletions(-) create mode 100644 resources/icons/user_mask.svg diff --git a/resources/icons/user_mask.svg b/resources/icons/user_mask.svg new file mode 100644 index 0000000000..16a3b55fdf --- /dev/null +++ b/resources/icons/user_mask.svg @@ -0,0 +1,15 @@ + + + + + Mask for user icon + + + \ No newline at end of file diff --git a/src/slic3r/GUI/TopBar.cpp b/src/slic3r/GUI/TopBar.cpp index cbe010759f..fdca313fdb 100644 --- a/src/slic3r/GUI/TopBar.cpp +++ b/src/slic3r/GUI/TopBar.cpp @@ -135,9 +135,9 @@ void TopBarItemsCtrl::Button::render() pt.x = text.IsEmpty() ? ((rc.width - szIcon.x) / 2) : em; pt.y = (rc.height - szIcon.y) / 2; #ifdef __WXGTK3__ - dc.DrawBitmap(m_bmp_bundle.GetBitmap(szIcon), pt); + dc.DrawBitmap(m_bmp_bundle.GetBitmap(szIcon), pt, true); #else - dc.DrawBitmap(m_bmp_bundle.GetBitmapFor(this), pt); + dc.DrawBitmap(m_bmp_bundle.GetBitmapFor(this), pt, true); #endif pt.x += szIcon.x; } @@ -225,6 +225,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("Anonymous"); m_account_btn->SetLabel(m_collapsed_btns ? "" : user_name); + m_account_btn->SetToolTip(user_name); const int icon_sz = 24; #ifdef __linux__ if (avatar) { diff --git a/src/slic3r/GUI/TopBarMenus.cpp b/src/slic3r/GUI/TopBarMenus.cpp index b84da244c7..b3c28309cb 100644 --- a/src/slic3r/GUI/TopBarMenus.cpp +++ b/src/slic3r/GUI/TopBarMenus.cpp @@ -59,11 +59,6 @@ void TopBarMenus::ApplyWorkspacesMenu() void TopBarMenus::CreateAccountMenu() { - m_user_item = append_menu_item(&account, wxID_ANY, "", "", - [this](wxCommandEvent& e) { if (m_cb_on_user_item) m_cb_on_user_item(); }, get_bmp_bundle("user", 16)); - - account.AppendSeparator(); - remember_me_item_id = wxWindow::NewControlId(); append_menu_check_item(&account, remember_me_item_id, _L("Remember me"), "" , [](wxCommandEvent&) { wxGetApp().plater()->get_user_account()->toggle_remember_session(); } , nullptr); @@ -85,10 +80,6 @@ void TopBarMenus::UpdateAccountMenu(Slic3r::GUI::UserAccount* user_account) m_login_item->SetItemLabel(is_logged ? _L("Prusa Account Log out") : _L("Prusa Account Log in")); m_login_item->SetBitmap(is_logged ? *get_bmp_bundle("logout", 16) : *get_bmp_bundle("login", 16)); } - - const wxString user_name = is_logged ? from_u8(user_account->get_username()) : _L("Anonymous"); - if (m_user_item) - m_user_item->SetItemLabel(user_name); } void TopBarMenus::Popup(TopBarItemsCtrl* popup_ctrl, wxMenu* menu, wxPoint pos) diff --git a/src/slic3r/GUI/TopBarMenus.hpp b/src/slic3r/GUI/TopBarMenus.hpp index 0a0017b245..a86f09a051 100644 --- a/src/slic3r/GUI/TopBarMenus.hpp +++ b/src/slic3r/GUI/TopBarMenus.hpp @@ -15,7 +15,6 @@ class UserAccount; class TopBarMenus { // Prusa Account menu items - wxMenuItem* m_user_item { nullptr }; wxMenuItem* m_login_item { nullptr }; TopBarItemsCtrl* m_popup_ctrl { nullptr }; diff --git a/src/slic3r/GUI/wxExtensions.cpp b/src/slic3r/GUI/wxExtensions.cpp index 09f90ccf37..a0c73cdb01 100644 --- a/src/slic3r/GUI/wxExtensions.cpp +++ b/src/slic3r/GUI/wxExtensions.cpp @@ -859,6 +859,14 @@ ScalableBitmap::ScalableBitmap(wxWindow* parent, boost::filesystem::path& icon_p if (ext == ".png" || ext == ".jpg") { bitmap.LoadFile(path, ext == ".png" ? wxBITMAP_TYPE_PNG : wxBITMAP_TYPE_JPEG); + // set mask for circle shape + + wxBitmapBundle mask_bmps = *get_bmp_bundle("user_mask", bitmap.GetSize().GetWidth()); + wxMask* mask = new wxMask(mask_bmps.GetBitmap(bitmap.GetSize()), *wxBLACK); + bitmap.SetMask(mask); + + // get allowed scale factors + std::set scales = { 1.0 }; #ifdef __APPLE__ scales.emplace(Slic3r::GUI::mac_max_scaling_factor()); @@ -868,6 +876,8 @@ ScalableBitmap::ScalableBitmap(wxWindow* parent, boost::filesystem::path& icon_p scales.emplace(wxDisplay(disp).GetScaleFactor()); #endif + // create bitmaps for bundle + wxVector bmps; for (double scale : scales) { wxBitmap bmp = bitmap;