Launch troubleshoot center with clicking to dev button (#14178)

* init

* show tooltip for dev mode
This commit is contained in:
yw4z
2026-06-14 13:55:40 +03:00
committed by GitHub
parent 3e2373c86e
commit 8c0b89bc8a
3 changed files with 31 additions and 13 deletions

View File

@@ -279,12 +279,9 @@ ParamsPanel::ParamsPanel( wxWindow* parent, wxWindowID id, const wxPoint& pos, c
}); });
m_mode_icon->SetToolTip(_L("Cycle settings visibility")); m_mode_icon->SetToolTip(_L("Cycle settings visibility"));
m_mode_view = new ModeSwitchButton(m_top_panel); m_mode_view = new ModeSwitchButton(m_top_panel);
if (wxGetApp().get_mode() == comDevelop) { bool isDevMode = wxGetApp().get_mode() == comDevelop;
m_mode_view->SetSelection(mode_to_selection(comExpert)); m_mode_view->SetSelection(mode_to_selection(isDevMode ? comExpert : wxGetApp().get_saved_mode()));
m_mode_view->Enable(false); m_mode_view->SetDevMode(isDevMode);
} else {
m_mode_view->SetSelection(mode_to_selection(wxGetApp().get_saved_mode()));
}
// BBS: new layout // BBS: new layout
//m_search_btn = new ScalableButton(m_top_panel, wxID_ANY, "search", wxEmptyString, wxDefaultSize, wxDefaultPosition, wxBU_EXACTFIT | wxNO_BORDER, true); //m_search_btn = new ScalableButton(m_top_panel, wxID_ANY, "search", wxEmptyString, wxDefaultSize, wxDefaultPosition, wxBU_EXACTFIT | wxNO_BORDER, true);
@@ -653,13 +650,13 @@ void ParamsPanel::update_mode()
if (app_mode == comDevelop) { if (app_mode == comDevelop) {
mode_view->SetSelection(mode_to_selection(comExpert)); mode_view->SetSelection(mode_to_selection(comExpert));
mode_view->Enable(false); mode_view->SetDevMode(true);
return; return;
} }
mode_view->SetSelection(mode_to_selection(Slic3r::GUI::wxGetApp().get_saved_mode())); mode_view->SetSelection(mode_to_selection(Slic3r::GUI::wxGetApp().get_saved_mode()));
if (!mode_view->IsEnabled()) if (mode_view->GetDevMode())
mode_view->Enable(); mode_view->SetDevMode(false);
}; };
sync_mode_view(m_mode_view); sync_mode_view(m_mode_view);

View File

@@ -262,6 +262,7 @@ ModeSwitchButton::ModeSwitchButton(wxWindow* parent, wxWindowID id)
m_tooltips[0] = _L("Simple settings"); m_tooltips[0] = _L("Simple settings");
m_tooltips[1] = _L("Advanced settings"); m_tooltips[1] = _L("Advanced settings");
m_tooltips[2] = _L("Expert settings"); m_tooltips[2] = _L("Expert settings");
m_tooltips[3] = _L("Developer mode") + "\n" + _L("Launch troubleshoot center") + "...";
Bind(wxEVT_LEFT_DOWN, &ModeSwitchButton::mouseDown, this); Bind(wxEVT_LEFT_DOWN, &ModeSwitchButton::mouseDown, this);
Bind(wxEVT_LEFT_UP, &ModeSwitchButton::mouseReleased, this); Bind(wxEVT_LEFT_UP, &ModeSwitchButton::mouseReleased, this);
@@ -280,7 +281,7 @@ void ModeSwitchButton::SetSelection(int selection)
void ModeSwitchButton::SelectAndNotify(int selection) void ModeSwitchButton::SelectAndNotify(int selection)
{ {
if (!IsEnabled()) if (m_dev_mode || !IsEnabled())
return; return;
SetSelection(selection); SetSelection(selection);
@@ -310,6 +311,15 @@ bool ModeSwitchButton::Enable(bool enable /* = true */)
return changed; return changed;
} }
void ModeSwitchButton::SetDevMode(bool enable /* = true */)
{
if (enable != m_dev_mode){
m_dev_mode = enable;
update_tooltip();
Refresh();
}
}
void ModeSwitchButton::doRender(wxDC& dc) void ModeSwitchButton::doRender(wxDC& dc)
{ {
const wxRect bounds = GetClientRect(); const wxRect bounds = GetClientRect();
@@ -328,7 +338,7 @@ void ModeSwitchButton::doRender(wxDC& dc)
dc.SetBrush(wxBrush(background_color.colorForStates(states))); dc.SetBrush(wxBrush(background_color.colorForStates(states)));
dc.DrawRoundedRectangle(bounds, v_center); dc.DrawRoundedRectangle(bounds, v_center);
if (m_enabled) { if (!m_dev_mode) {
double dot_dist = (bounds.width - bounds.height) * 0.50; double dot_dist = (bounds.width - bounds.height) * 0.50;
// Track // Track
@@ -368,6 +378,11 @@ void ModeSwitchButton::doRender(wxDC& dc)
void ModeSwitchButton::mouseDown(wxMouseEvent& event) void ModeSwitchButton::mouseDown(wxMouseEvent& event)
{ {
if (m_dev_mode){
Slic3r::GUI::wxGetApp().troubleshoot();
return;
}
if (!IsEnabled()) { if (!IsEnabled()) {
event.Skip(); event.Skip();
return; return;
@@ -425,7 +440,10 @@ wxRect ModeSwitchButton::thumb_rect_for(int selection) const
void ModeSwitchButton::update_tooltip() void ModeSwitchButton::update_tooltip()
{ {
SetToolTip(m_tooltips[m_selection]); if (m_dev_mode)
SetToolTip(m_tooltips[3]);
else
SetToolTip(m_tooltips[m_selection]);
} }
MultiSwitchButton::MultiSwitchButton(wxWindow *parent, wxWindowID id, const wxPoint &pos, const wxSize &size, long style) MultiSwitchButton::MultiSwitchButton(wxWindow *parent, wxWindowID id, const wxPoint &pos, const wxSize &size, long style)

View File

@@ -63,6 +63,8 @@ public:
void msw_rescale() { Rescale(); } void msw_rescale() { Rescale(); }
bool Enable(bool enable = true) override; bool Enable(bool enable = true) override;
void SetDevMode(bool enable = true);
bool GetDevMode() const {return m_dev_mode;};
protected: protected:
void doRender(wxDC& dc) override; void doRender(wxDC& dc) override;
@@ -79,7 +81,8 @@ private:
int m_selection { 0 }; int m_selection { 0 };
bool m_pressed { false }; bool m_pressed { false };
bool m_enabled { true }; bool m_enabled { true };
wxString m_tooltips[3]; bool m_dev_mode { false };
wxString m_tooltips[4];
StateColor dot_active; StateColor dot_active;
StateColor dot_dimmed; StateColor dot_dimmed;
StateColor text_color; StateColor text_color;