Added item menu 'Edit/Show labels' and removed labels activation from preferences dialog
This commit is contained in:
parent
9f536291b0
commit
3ec4b77dcd
@ -95,11 +95,6 @@ void AppConfig::set_defaults()
|
|||||||
set("use_free_camera", "0");
|
set("use_free_camera", "0");
|
||||||
#endif // ENABLE_6DOF_CAMERA
|
#endif // ENABLE_6DOF_CAMERA
|
||||||
|
|
||||||
#if ENABLE_SHOW_SCENE_LABELS
|
|
||||||
if (get("show_labels").empty())
|
|
||||||
set("show_labels", "0");
|
|
||||||
#endif // ENABLE_SHOW_SCENE_LABELS
|
|
||||||
|
|
||||||
// Remove legacy window positions/sizes
|
// Remove legacy window positions/sizes
|
||||||
erase("", "main_frame_maximized");
|
erase("", "main_frame_maximized");
|
||||||
erase("", "main_frame_pos");
|
erase("", "main_frame_pos");
|
||||||
|
@ -1238,21 +1238,6 @@ void GLCanvas3D::LegendTexture::render(const GLCanvas3D& canvas) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if ENABLE_SHOW_SCENE_LABELS
|
#if ENABLE_SHOW_SCENE_LABELS
|
||||||
void GLCanvas3D::Labels::show(bool show)
|
|
||||||
{
|
|
||||||
bool shown = is_shown();
|
|
||||||
if (shown != show)
|
|
||||||
{
|
|
||||||
wxGetApp().app_config->set("show_labels", show ? "1" : "0");
|
|
||||||
wxGetApp().app_config->save();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool GLCanvas3D::Labels::is_shown() const
|
|
||||||
{
|
|
||||||
return wxGetApp().app_config->get("show_labels") == "1";
|
|
||||||
}
|
|
||||||
|
|
||||||
void GLCanvas3D::Labels::render(const std::vector<const PrintInstance*>& sorted_instances) const
|
void GLCanvas3D::Labels::render(const std::vector<const PrintInstance*>& sorted_instances) const
|
||||||
{
|
{
|
||||||
if (!m_enabled || !is_shown())
|
if (!m_enabled || !is_shown())
|
||||||
|
@ -381,13 +381,14 @@ private:
|
|||||||
class Labels
|
class Labels
|
||||||
{
|
{
|
||||||
bool m_enabled{ false };
|
bool m_enabled{ false };
|
||||||
|
bool m_shown{ false };
|
||||||
GLCanvas3D& m_canvas;
|
GLCanvas3D& m_canvas;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit Labels(GLCanvas3D& canvas) : m_canvas(canvas) {}
|
explicit Labels(GLCanvas3D& canvas) : m_canvas(canvas) {}
|
||||||
void enable(bool enable) { m_enabled = enable; }
|
void enable(bool enable) { m_enabled = enable; }
|
||||||
void show(bool show);
|
void show(bool show) { m_shown = m_enabled ? show : false; }
|
||||||
bool is_shown() const;
|
bool is_shown() const { return m_shown; }
|
||||||
void render(const std::vector<const PrintInstance*>& sorted_instances) const;
|
void render(const std::vector<const PrintInstance*>& sorted_instances) const;
|
||||||
};
|
};
|
||||||
#endif // ENABLE_SHOW_SCENE_LABELS
|
#endif // ENABLE_SHOW_SCENE_LABELS
|
||||||
@ -676,6 +677,11 @@ public:
|
|||||||
|
|
||||||
void mouse_up_cleanup();
|
void mouse_up_cleanup();
|
||||||
|
|
||||||
|
#if ENABLE_SHOW_SCENE_LABELS
|
||||||
|
bool are_labels_shown() const { return m_labels.is_shown(); }
|
||||||
|
void show_labels(bool show) { m_labels.show(show); }
|
||||||
|
#endif // ENABLE_SHOW_SCENE_LABELS
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool _is_shown_on_screen() const;
|
bool _is_shown_on_screen() const;
|
||||||
|
|
||||||
|
@ -550,10 +550,10 @@ void MainFrame::init_menubar()
|
|||||||
wxString hotkey_delete = "Del";
|
wxString hotkey_delete = "Del";
|
||||||
#endif
|
#endif
|
||||||
append_menu_item(editMenu, wxID_ANY, _(L("&Select all")) + sep + GUI::shortkey_ctrl_prefix() + sep_space + "A",
|
append_menu_item(editMenu, wxID_ANY, _(L("&Select all")) + sep + GUI::shortkey_ctrl_prefix() + sep_space + "A",
|
||||||
_(L("Selects all objects")), [this](wxCommandEvent&) { if (m_plater != nullptr) m_plater->select_all(); },
|
_(L("Selects all objects")), [this](wxCommandEvent&) { m_plater->select_all(); },
|
||||||
"", nullptr, [this](){return can_select(); }, this);
|
"", nullptr, [this](){return can_select(); }, this);
|
||||||
append_menu_item(editMenu, wxID_ANY, _(L("D&eselect all")) + sep + "Esc",
|
append_menu_item(editMenu, wxID_ANY, _(L("D&eselect all")) + sep + "Esc",
|
||||||
_(L("Deselects all objects")), [this](wxCommandEvent&) { if (m_plater != nullptr) m_plater->deselect_all(); },
|
_(L("Deselects all objects")), [this](wxCommandEvent&) { m_plater->deselect_all(); },
|
||||||
"", nullptr, [this](){return can_deselect(); }, this);
|
"", nullptr, [this](){return can_deselect(); }, this);
|
||||||
editMenu->AppendSeparator();
|
editMenu->AppendSeparator();
|
||||||
append_menu_item(editMenu, wxID_ANY, _(L("&Delete selected")) + sep + hotkey_delete,
|
append_menu_item(editMenu, wxID_ANY, _(L("&Delete selected")) + sep + hotkey_delete,
|
||||||
@ -659,6 +659,12 @@ void MainFrame::init_menubar()
|
|||||||
"", nullptr, [this](){return can_change_view(); }, this);
|
"", nullptr, [this](){return can_change_view(); }, this);
|
||||||
append_menu_item(viewMenu, wxID_ANY, _(L("Right")) + sep + "&6", _(L("Right View")), [this](wxCommandEvent&) { select_view("right"); },
|
append_menu_item(viewMenu, wxID_ANY, _(L("Right")) + sep + "&6", _(L("Right View")), [this](wxCommandEvent&) { select_view("right"); },
|
||||||
"", nullptr, [this](){return can_change_view(); }, this);
|
"", nullptr, [this](){return can_change_view(); }, this);
|
||||||
|
#if ENABLE_SHOW_SCENE_LABELS
|
||||||
|
viewMenu->AppendSeparator();
|
||||||
|
append_menu_check_item(viewMenu, wxID_ANY, _(L("Show &labels")) + sep + "E", _(L("Show object/instance labels in 3D scene")),
|
||||||
|
[this](wxCommandEvent&) { m_plater->show_view3D_labels(!m_plater->are_view3D_labels_shown()); }, this,
|
||||||
|
[this]() { return m_plater->is_view3D_shown(); }, [this]() { return m_plater->are_view3D_labels_shown(); }, this);
|
||||||
|
#endif // ENABLE_SHOW_SCENE_LABELS
|
||||||
}
|
}
|
||||||
|
|
||||||
// Help menu
|
// Help menu
|
||||||
|
@ -1784,6 +1784,11 @@ struct Plater::priv
|
|||||||
bool is_preview_loaded() const { return preview->is_loaded(); }
|
bool is_preview_loaded() const { return preview->is_loaded(); }
|
||||||
bool is_view3D_shown() const { return current_panel == view3D; }
|
bool is_view3D_shown() const { return current_panel == view3D; }
|
||||||
|
|
||||||
|
#if ENABLE_SHOW_SCENE_LABELS
|
||||||
|
bool are_view3D_labels_shown() const { return (current_panel == view3D) && view3D->get_canvas3d()->are_labels_shown(); }
|
||||||
|
void show_view3D_labels(bool show) { if (current_panel == view3D) view3D->get_canvas3d()->show_labels(show); }
|
||||||
|
#endif // ENABLE_SHOW_SCENE_LABELS
|
||||||
|
|
||||||
void set_current_canvas_as_dirty();
|
void set_current_canvas_as_dirty();
|
||||||
#if ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK
|
#if ENABLE_BACKWARD_COMPATIBLE_RELOAD_FROM_DISK
|
||||||
GLCanvas3D* get_current_canvas3D();
|
GLCanvas3D* get_current_canvas3D();
|
||||||
@ -4672,6 +4677,11 @@ bool Plater::is_preview_shown() const { return p->is_preview_shown(); }
|
|||||||
bool Plater::is_preview_loaded() const { return p->is_preview_loaded(); }
|
bool Plater::is_preview_loaded() const { return p->is_preview_loaded(); }
|
||||||
bool Plater::is_view3D_shown() const { return p->is_view3D_shown(); }
|
bool Plater::is_view3D_shown() const { return p->is_view3D_shown(); }
|
||||||
|
|
||||||
|
#if ENABLE_SHOW_SCENE_LABELS
|
||||||
|
bool Plater::are_view3D_labels_shown() const { return p->are_view3D_labels_shown(); }
|
||||||
|
void Plater::show_view3D_labels(bool show) { p->show_view3D_labels(show); }
|
||||||
|
#endif // ENABLE_SHOW_SCENE_LABELS
|
||||||
|
|
||||||
void Plater::select_all() { p->select_all(); }
|
void Plater::select_all() { p->select_all(); }
|
||||||
void Plater::deselect_all() { p->deselect_all(); }
|
void Plater::deselect_all() { p->deselect_all(); }
|
||||||
|
|
||||||
|
@ -170,6 +170,11 @@ public:
|
|||||||
bool is_preview_loaded() const;
|
bool is_preview_loaded() const;
|
||||||
bool is_view3D_shown() const;
|
bool is_view3D_shown() const;
|
||||||
|
|
||||||
|
#if ENABLE_SHOW_SCENE_LABELS
|
||||||
|
bool are_view3D_labels_shown() const;
|
||||||
|
void show_view3D_labels(bool show);
|
||||||
|
#endif // ENABLE_SHOW_SCENE_LABELS
|
||||||
|
|
||||||
// Called after the Preferences dialog is closed and the program settings are saved.
|
// Called after the Preferences dialog is closed and the program settings are saved.
|
||||||
// Update the UI based on the current preferences.
|
// Update the UI based on the current preferences.
|
||||||
void update_ui_from_settings();
|
void update_ui_from_settings();
|
||||||
|
@ -144,15 +144,6 @@ void PreferencesDialog::build()
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
#if ENABLE_SHOW_SCENE_LABELS
|
|
||||||
def.label = L("Show object/instance labels in 3D scene");
|
|
||||||
def.type = coBool;
|
|
||||||
def.tooltip = L("If enabled, shows labels containing info about objects/instances.");
|
|
||||||
def.set_default_value(new ConfigOptionBool{ app_config->get("show_labels") == "1" });
|
|
||||||
option = Option(def, "show_labels");
|
|
||||||
m_optgroup_gui->append_single_option_line(option);
|
|
||||||
#endif // ENABLE_SHOW_SCENE_LABELS
|
|
||||||
|
|
||||||
def.label = L("Use custom size for toolbar icons");
|
def.label = L("Use custom size for toolbar icons");
|
||||||
def.type = coBool;
|
def.type = coBool;
|
||||||
def.tooltip = L("If enabled, you can change size of toolbar icons manually.");
|
def.tooltip = L("If enabled, you can change size of toolbar icons manually.");
|
||||||
|
@ -146,7 +146,8 @@ wxMenuItem* append_menu_radio_item(wxMenu* menu, int id, const wxString& string,
|
|||||||
}
|
}
|
||||||
|
|
||||||
wxMenuItem* append_menu_check_item(wxMenu* menu, int id, const wxString& string, const wxString& description,
|
wxMenuItem* append_menu_check_item(wxMenu* menu, int id, const wxString& string, const wxString& description,
|
||||||
std::function<void(wxCommandEvent& event)> cb, wxEvtHandler* event_handler)
|
std::function<void(wxCommandEvent & event)> cb, wxEvtHandler* event_handler,
|
||||||
|
std::function<bool()> const enable_condition, std::function<bool()> const check_condition, wxWindow* parent)
|
||||||
{
|
{
|
||||||
if (id == wxID_ANY)
|
if (id == wxID_ANY)
|
||||||
id = wxNewId();
|
id = wxNewId();
|
||||||
@ -160,6 +161,13 @@ wxMenuItem* append_menu_check_item(wxMenu* menu, int id, const wxString& string,
|
|||||||
#endif // __WXMSW__
|
#endif // __WXMSW__
|
||||||
menu->Bind(wxEVT_MENU, cb, id);
|
menu->Bind(wxEVT_MENU, cb, id);
|
||||||
|
|
||||||
|
if (parent)
|
||||||
|
parent->Bind(wxEVT_UPDATE_UI, [enable_condition, check_condition](wxUpdateUIEvent& evt)
|
||||||
|
{
|
||||||
|
evt.Enable(enable_condition());
|
||||||
|
evt.Check(check_condition());
|
||||||
|
}, id);
|
||||||
|
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,7 +34,9 @@ wxMenuItem* append_menu_radio_item(wxMenu* menu, int id, const wxString& string,
|
|||||||
std::function<void(wxCommandEvent& event)> cb, wxEvtHandler* event_handler);
|
std::function<void(wxCommandEvent& event)> cb, wxEvtHandler* event_handler);
|
||||||
|
|
||||||
wxMenuItem* append_menu_check_item(wxMenu* menu, int id, const wxString& string, const wxString& description,
|
wxMenuItem* append_menu_check_item(wxMenu* menu, int id, const wxString& string, const wxString& description,
|
||||||
std::function<void(wxCommandEvent& event)> cb, wxEvtHandler* event_handler);
|
std::function<void(wxCommandEvent & event)> cb, wxEvtHandler* event_handler,
|
||||||
|
std::function<bool()> const enable_condition = []() { return true; },
|
||||||
|
std::function<bool()> const check_condition = []() { return true; }, wxWindow* parent = nullptr);
|
||||||
|
|
||||||
void enable_menu_item(wxUpdateUIEvent& evt, std::function<bool()> const cb_condition, wxMenuItem* item, wxWindow* win);
|
void enable_menu_item(wxUpdateUIEvent& evt, std::function<bool()> const cb_condition, wxMenuItem* item, wxWindow* win);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user