mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-27 10:51:22 +00:00
Design: move bodies into their own Parts list (Onshape-style)
Bodies were appended INSIDE the feature tree, after the features, and only when there was more than one body. Two consequences: - With a single body — sketch + extrude, the common case — no body row existed at all, so the solid could not be selected from the tree. That also blocked Move (it requires a selected body), the show/hide eye and every body-targeted op; the viewport was the only way to select. - With several features the Bodies group was pushed past the tree's auto-sized height (capped at 9 rows) and clipped out of view, so bodies became unreachable as history grew. Bodies now live in their own list under the feature tree, mirroring Onshape's Features + Parts split that the rest of the tab already follows. The list is hidden while empty, sizes to its content (scrolls past 6), keeps the selected row across a recompute, and greys hidden bodies as before. Selecting in either list clears the other, so only one thing is ever "the target". Verified on :10: single body -> Body 1 listed, selectable, Move opens the gizmo on it (previously impossible); two imported solids -> both listed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BVzKmX6Y1aEteit1HTXG4Q
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
8d529ad413
commit
b9e927876d
@@ -425,6 +425,8 @@ private:
|
||||
// integer row indices via tree_selection()/set_tree_selection(); m_tree_items
|
||||
// maps feature order -> tree node, rebuilt by refresh_tree().
|
||||
wxTreeCtrl* m_tree{nullptr};
|
||||
wxTreeCtrl* m_parts{nullptr}; // Bodies list under the feature tree
|
||||
wxStaticText* m_parts_label{nullptr}; // its "Bodies" caption (hidden when empty)
|
||||
wxImageList* m_tree_images{nullptr};
|
||||
std::vector<wxTreeItemId> m_tree_items;
|
||||
// Parts list: tree rows for each body (parallel to m_doc.bodies). Selecting one
|
||||
@@ -461,6 +463,7 @@ private:
|
||||
void on_set_body_color(); // Color tool: pick a per-body display colour override
|
||||
int tree_selection() const; // selected feature row, or wxNOT_FOUND
|
||||
int tree_body_selection() const; // selected Parts-list body index, or -1
|
||||
void refresh_parts(); // rebuild the Bodies list under the feature tree
|
||||
void set_tree_selection(int row);
|
||||
static int tree_icon_for(CadFeatureType t);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user