| 1229 | } |
| 1230 | |
| 1231 | bool RibbonMenu::drawCloneSelectionButton( const std::vector<std::shared_ptr<Object>>& selected ) |
| 1232 | { |
| 1233 | bool someChanges = false; |
| 1234 | if ( selected.size() != 1 ) |
| 1235 | return someChanges; |
| 1236 | auto objMesh = selected[0]->asType<ObjectMesh>(); |
| 1237 | auto objPoints = selected[0]->asType<ObjectPoints>(); |
| 1238 | if ( ( objMesh && objMesh->getSelectedFaces().any() ) || |
| 1239 | ( objPoints && objPoints->getSelectedPoints().any() ) ) |
| 1240 | { |
| 1241 | if ( UI::button( _tr( "Clone Selection" ), Vector2f( -1, 0 ) ) ) |
| 1242 | { |
| 1243 | cloneSelectedPart( selected[0] ); |
| 1244 | someChanges = true; |
| 1245 | } |
| 1246 | } |
| 1247 | |
| 1248 | return someChanges; |
| 1249 | } |
| 1250 | |
| 1251 | bool RibbonMenu::drawMergeSubtreeButton( const std::vector<std::shared_ptr<Object>>& selected ) |
| 1252 | { |
no test coverage detected