Selection filterSelections( T* pressedModel, Selection sel, bool cumulation) { if(!cumulation) { sel.clear(); } // If the pressed element is selected if(pressedModel->selection.get()) { if(cumulation) { sel.erase(pressedModel); } else { sel.insert(pressedModel); } } else { sel.insert(pressedModel); } return sel; }
void InspectorPanel::on_tabClose(int index) { auto inspector_widget = static_cast<InspectorWidgetBase*>(m_tabWidget->widget(index)); // TODO need m_tabWidget.movable() = false ! Selection sel = m_currentSel; sel.erase(inspector_widget->inspectedObject()); m_selectionDispatcher.setAndCommit(sel); }