From ed5f5239aa10d32fd48668ae2b0d8cc01d044eef Mon Sep 17 00:00:00 2001 From: YuSanka Date: Wed, 1 Aug 2018 12:49:39 +0200 Subject: [PATCH] Added tooltips for objects list Updated icons with transparency --- resources/icons/add_object.png | Bin 591 -> 829 bytes resources/icons/exclamation_mark_.png | Bin 327 -> 1052 bytes resources/icons/lambda.png | Bin 0 -> 913 bytes resources/icons/object.png | Bin 618 -> 1017 bytes resources/icons/split.png | Bin 0 -> 1021 bytes xs/src/slic3r/GUI/GUI_ObjectParts.cpp | 31 +++++++++++++++++++++----- xs/src/slic3r/GUI/wxExtensions.cpp | 6 +++++ xs/src/slic3r/GUI/wxExtensions.hpp | 1 + 8 files changed, 33 insertions(+), 5 deletions(-) create mode 100644 resources/icons/lambda.png create mode 100644 resources/icons/split.png diff --git a/resources/icons/add_object.png b/resources/icons/add_object.png index 40059f5ac0de3b5c5db4ab492b4de5952fe6f25d..ffc958edc4fca5a58a8600c0495eba3941038262 100644 GIT binary patch delta 807 zcmV+?1K9k}1ic23BYy#cX+uL$b5ch_AW20-HZeIiHZ3wPF#rH4k#&*JE5l(N$6p(3 znrXzr!C?ufO-zZ4vL%$XX3B8czWb%N`S$&OrRAzzSCqK;b>J`Hs+^S~QgU!|CNAjf z^WD@W`#e3L=k>gw&*#(gd>*hzb4p&X?}L27&?4hO?_6x&>wkQr0UIt_aKsf|9Sw)4 zsA=!F5-WD?w`$dn`_~$iDO~|ugYbx=YKHKH@YJfITD&FPrexzu;S*t>CKnXGvGhcR zpDoT*_|sx78VP~DS=gKT#fe|6WVO7oyqvClZbkXIkM$CFsxUhvYp2W(bRvus#LFaO zgczisVey0b34hQlJ8I-Bk`WaZ^;yAp4)qAs{jB1 z32;bRa{vGf6951U69E94oEQKA0bxl*K~y-6b<;m<6;Tic@Zaux@eh(HmKMgu5J|p( z5Nv{2ilh+i?X(H_0n%xyfuMaLRf<4JBYp@43&B<^g(o6uG|98rvzwdsxp29A&&-^; zb7n477=L8d*&pCL{@@L!3fnFGz-+M2P-88DC)mVFNM097mN3R#Nl*s9#MOd$8W)58 z!eIywbM_&Dui{jeQWu$rx%O%ZR&X6g0lwhoe}YSFIsP|-8DSm!IKuXX;6;2&g7dhB zbFBs=JkAyG;27VqkorFcdz*8O``OPBwAp5`8-HDn@EP+-P?j)@dZ_uTfK}9e6mdtm z8(V9y64SL%VQl{;`|nVwwe}MOR z=d`8I@H1ttITf{YxPraZzEco9)QtHUPjJcE8R`1jj_d8*=2-KP#(0j)CQN7BmQuJ1 l7a*_^?1kph^aZXk{tE!YT?uli7wrH5002ovPDHLkV1n)!jl=)| delta 567 zcmV-70?7Tn2G0bLBYyw^b5ch_0Itp)=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGm zbN~PnbOGLGA9w%&0pv+UK~y+TRg+JvaZwb;_qpT_82B?J1BT2bLng{V$`_!ND4Cd; z%D`NF4&T6gm4pnGWMV=LUdg~r`Lo{hJg<%WtJPlnS!+GEbAR?x_xoLLw;MxqIQ*4( zJT6Kpna}6cbbYy8N+1wmj#>3NxY=wZ91e3Z7K=%>T4mmBHlH0Li^YPPh8YG!p%4o& z*lxEhg4Jpzr_)Jhvl;7lyPd1s?G}f_Au63tQ%EEdvfJ&RWB-r*c{6 zem|J`Hs+^S~QgU!|CNAjf z^WD@W`#e3L=k>gw&*#(gd>*hzb4p&X?}L27&?4hO?_6x&>wkQr0UIt_aKsf|9Sw)4 zsA=!F5-WD?w`$dn`_~$iDO~|ugYbx=YKHKH@YJfITD&FPrexzu;S*t>CKnXGvGhcR zpDoT*_|sx78VP~DS=gKT#fe|6WVO7oyqvClZbkXIkM$CFsxUhvYp2W(bRvus#LFaO zgczisVey0b34hQlJ8IBL_t(IjeSu~XcJ)&o%y~^*mRT4+HA8iX{i;9y-3f3_nwL<6czDcwH5K`p~Z_R zUi6^e(#`U_MO?*J;BNhJaR z$d~{?Dwusi2E4O>jvszq4&vm}e{%y6U$Id4?)_5K$H~^sR+0Dd=~Z&HX}`2BvJv+u z+qZh+=UtRC&v4*DjYrex0DXsSBi3|+q){%ad&Tc^vN3tKM;BDR$b`F38CmxVCs;E+NcukSOfs@r@Bn<$I>Mf?s?^;X!^`w_lF1DTFHsdkgdmC zIlpKo$yT3uS(XmUWc}`$^mfW=cPMW*GLbW>1leld%QCA~k3l9>Ff&rnIFoW2kf8)f iArD_xhL_*BYX1NYIOVS08S7sF0000Px#1ZP1_K>z@;j|==^1(UA<7k>cUNkl*h^V{@S(0;*kBA_5t1YYIG}kA|Q=Cz2rGVdwCR z;H$t)55W7TBt|w;uL!xXK67ASk{kFuvzw410rC^rcAS74=S6++TJilEXi6>McX0lJ z7|iU1P7q7rew1NEzC`jUDDYq(Z-(ne^@!?3Qtc^-u*E7FMv{aja9GIE?RK6WMzX0$ gq8eg&J`Hs+^S~QgU!|CNAjf^WD@W`#e3L=k>gw&*#(gd>*hzb4p&X z?}L27&?4hO?_6x&>wKaC8!lRK#1&l~4Tq)Ez@Q9*n zhVX>&)T*Icyd~VGWaCNU6Jehw7Zkp+^hAZ9EzVT<(_$?e34y&?*qiyqiC?T_wY;#r zoUVLsMftgp^%8fgFgqh_r_2s?B8(Hn%Oqoj7^I(J@q_pY&?`G?jH+;o@=my*6o`UqSAGS-p% z{eBL71)czznPmy~G4L61tRj2w4cGzRt{_M3Ye^4C$wg6EQ4|Ik@Cw+G5a_i(gZDnL zjA`o;+md$Mu`TZGoEuB}4)j~c4-$W_w3A*2*amh}a$?wh-~hM_9ByoMy1-4~7x2)` zvb4cEx32;pfWJTkd;zXSti|2TjIt~hLSQzV#Xa%f?{~Z1JHSt16S!e!dl73bF03I3 zfTn3;N&gAqSl$Bb$n*J}^QJU21JF6-(@2$LIDinsC6?C~02Yfy2qBy*1G%J?D+;K9 nr<@JNX34t&9>u!%K1kvpr}3V-p+x%d00000NkvXXu0mjf8P=-p literal 0 HcmV?d00001 diff --git a/resources/icons/object.png b/resources/icons/object.png index ff4974a532b083cd7e8f741b1a2c81d2d1184045..c85cbaf2fa5905e4738034d7bdb069b9abc4f10f 100644 GIT binary patch delta 996 zcmVlP4z`63!j` z_SQ@fhN@p^oq?uj+kWo>&mnwm+xF+NZGV-)Exugs*6WMAF#Ia|PF)Kefo}`WFY8+J z1TJ=<<55o-iHhWwqUvR?_< zwf0jG1UmrUNJ>cFA$dvCx^r$JNs?B%T>f!{z!5m=Nyg`WWMju)oQiDQ^1FoYPH&6sZ^Q+kOBP=B`uL$ zDwoSof*@GSvTQYuPx#1ZP1_K>z@;j|==^1poj532;bRa{vGm zbN~PnbOGLGA9w%&0sl!vK~y+TjZ?qNfl(Ab@9ReOv6_rTgp_1pmrdb*_c^@fGkkqdz1{2F=Q;PBdmhT;@qZ8!1SpC^s;crH*zfmr zzu(F0^}ZuS&*zg@Xu#(LpQ7b*Nxfc=`u#o=OePauuUE?F^HeMrDHsgCnM6{{nZ#UO&&v)Rm~&sG44zk#;&dOcYz7Fw^@q~exT zDn&>XkH@(JSt7p$lH$Xy-ENm}j7Fn`iW7;%>w<7NEM~JA+F^`FBT+7wh12O2kw`?u zVlm-xI7F#b62sx}%@VAER*$l7w;Puy9x-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}6yY17;GAES zs$i;Ts%M~N$E9FXl#*r@k>g7FXt#Bv$C=6)S^`fSBQuTAW;zSx}OhpQivaGchT@w8U0PKeRZts8~NOGbJ@A zIk6yLAE++7B)>qvxF9F9M6Vz(T}dD041K6OfF9C^`v}N^he>K4Fd&M6K7M>HO$!*1 z?U~Nb0mVV?P70o`&Sr*|W@frZdWH-P8WT$=?)E+$AkuChz4R!%?3)JBqc2)E#7CU`^WX`8*k-r53J;43=cit|Wpi%+maNvLtnSmVc6v_Xc&y=Le3B)R zO=6<0&x8pUCJOid#>%g{az1cMRA|{;UY=_wCLCQ9eq~b0^(S-1VkfJsOA4Kn{qyab z4}aUL_>8%Y%hGSxy=OeHSd)AE+w+aN^-~Y(?u&VQ?REEVgFjlo{9?If8uPi&>A#Np z#G+TW;Blb8L}%BNX-~bDKYS~4>(PZe=Cj(N_p_c)d7oG)oVGskKf^AS``dr<$}y(9 zW}fjm1x&!41s;*b3=DinK$vl=HlH+5@Uo|iV~9m>@8p+U%?1K3`(=W>7jo48->wt# zdg8x=B|&4Ky_w1DV5OL^kaU32_5!1^K!dBF;~Yn;bk+`~^9Ld(Fd2CAO*~yx zB*haQnY)Vl$DtXU`470J{% literal 0 HcmV?d00001 diff --git a/xs/src/slic3r/GUI/GUI_ObjectParts.cpp b/xs/src/slic3r/GUI/GUI_ObjectParts.cpp index 59688606e..c1829dada 100644 --- a/xs/src/slic3r/GUI/GUI_ObjectParts.cpp +++ b/xs/src/slic3r/GUI/GUI_ObjectParts.cpp @@ -101,12 +101,15 @@ void get_options_menu(settings_menu_hierarchy& settings_menu, bool is_part) { auto options = get_options(is_part); + auto extruders_cnt = get_preset_bundle()->printers.get_edited_preset().config.option("nozzle_diameter")->values.size(); + DynamicPrintConfig config; for (auto& option : options) { auto const opt = config.def()->get(option); auto category = opt->category; - if (category.empty()) continue; + if (category.empty() || + (category == "Extruders" && extruders_cnt == 1)) continue; std::pair option_label(option, opt->label); std::vector< std::pair > new_category; @@ -135,7 +138,7 @@ void set_objects_from_model(Model &model) { } void init_mesh_icons(){ - m_icon_modifiermesh = wxIcon(Slic3r::GUI::from_u8(Slic3r::var("lambda_.png")), wxBITMAP_TYPE_PNG);//(Slic3r::var("plugin.png")), wxBITMAP_TYPE_PNG); + m_icon_modifiermesh = wxIcon(Slic3r::GUI::from_u8(Slic3r::var("lambda.png")), wxBITMAP_TYPE_PNG);//(Slic3r::var("plugin.png")), wxBITMAP_TYPE_PNG); m_icon_solidmesh = wxIcon(Slic3r::GUI::from_u8(Slic3r::var("object.png")), wxBITMAP_TYPE_PNG);//(Slic3r::var("package.png")), wxBITMAP_TYPE_PNG); // init icon for manifold warning @@ -195,7 +198,7 @@ wxBoxSizer* content_objects_list(wxWindow *win) m_objects_ctrl->AppendColumn(column3); // column 4 of the view control: - m_objects_ctrl->AppendBitmapColumn("", 4, wxDATAVIEW_CELL_INERT, 25, + m_objects_ctrl->AppendBitmapColumn(" ", 4, wxDATAVIEW_CELL_INERT, 25, wxALIGN_CENTER_HORIZONTAL, wxDATAVIEW_COL_RESIZABLE); m_objects_ctrl->Bind(wxEVT_DATAVIEW_SELECTION_CHANGED, [](wxEvent& event) @@ -248,6 +251,19 @@ wxBoxSizer* content_objects_list(wxWindow *win) }); #endif //__WXMSW__ + m_objects_ctrl->GetMainWindow()->Bind(wxEVT_MOTION, [](wxMouseEvent& event) { + wxPoint pt = event.GetPosition(); + wxDataViewItem item; + wxDataViewColumn* col; + m_objects_ctrl->HitTest(pt, item, col); + if (col->GetTitle() == " " && item) + m_objects_ctrl->GetMainWindow()->SetToolTip(_(L("For object settings changing click a right button on icon"))); + else + m_objects_ctrl->GetMainWindow()->SetToolTip(""); +// if (m_objects_model->GetIcon(item) == m_icon_manifold_warning) +// m_objects_ctrl->GetMainWindow()->SetToolTip("Tru-lala"); + }); + return objects_sz; } @@ -604,9 +620,11 @@ void add_object_to_list(const std::string &name, ModelObject* model_object) m_objects_model->SetValue(variant, item, 0); } - if (model_object->volumes.size() > 1) + if (model_object->volumes.size() > 1) { for (auto id = 0; id < model_object->volumes.size(); id++) m_objects_model->AddChild(item, model_object->volumes[id]->name, m_icon_solidmesh, false); + m_objects_ctrl->Expand(item); + } // part_selection_changed(); #ifdef __WXMSW__ @@ -741,9 +759,12 @@ void update_settings_list() if (opt_keys.size() == 1 && opt_keys[0] == "extruder") return; + auto extruders_cnt = get_preset_bundle()->printers.get_edited_preset().config.option("nozzle_diameter")->values.size(); + for (auto& opt_key : opt_keys) { auto category = (*m_config)->def()->get(opt_key)->category; - if (category.empty()) continue; + if (category.empty() || + (category == "Extruders" && extruders_cnt==1)) continue; std::vector< std::string > new_category; diff --git a/xs/src/slic3r/GUI/wxExtensions.cpp b/xs/src/slic3r/GUI/wxExtensions.cpp index 020ea570c..e7bb27b92 100644 --- a/xs/src/slic3r/GUI/wxExtensions.cpp +++ b/xs/src/slic3r/GUI/wxExtensions.cpp @@ -566,6 +566,12 @@ wxString PrusaObjectDataViewModel::GetScale(const wxDataViewItem &item) const return node->m_scale; } +wxIcon PrusaObjectDataViewModel::GetIcon(const wxDataViewItem &item) const +{ + PrusaObjectDataViewModelNode *node = (PrusaObjectDataViewModelNode*)item.GetID(); + return node->m_icon; +} + void PrusaObjectDataViewModel::GetValue(wxVariant &variant, const wxDataViewItem &item, unsigned int col) const { wxASSERT(item.IsOk()); diff --git a/xs/src/slic3r/GUI/wxExtensions.hpp b/xs/src/slic3r/GUI/wxExtensions.hpp index ac9fd4da0..fbe8129fe 100644 --- a/xs/src/slic3r/GUI/wxExtensions.hpp +++ b/xs/src/slic3r/GUI/wxExtensions.hpp @@ -365,6 +365,7 @@ public: wxString GetName(const wxDataViewItem &item) const; wxString GetCopy(const wxDataViewItem &item) const; wxString GetScale(const wxDataViewItem &item) const; + wxIcon GetIcon(const wxDataViewItem &item) const; // helper methods to change the model