Measure: Reduce boilerplate code by adding some helper methods

This commit is contained in:
hlorus
2024-07-17 17:53:12 +02:00
parent e4c707b989
commit bb7f84c32a
10 changed files with 93 additions and 190 deletions

View File

@@ -62,6 +62,27 @@ namespace App {
return empty;
}
MeasureHandler MeasureManager::getMeasureHandler(const App::MeasureSelectionItem& selectionItem) {
auto objT = selectionItem.object;
App::DocumentObject* sub = objT.getSubObject();
const char* className = sub->getTypeId().getName();
std::string mod = Base::Type::getModuleName(className);
return getMeasureHandler(mod.c_str());
}
MeasureElementType MeasureManager::getMeasureElementType(const App::MeasureSelectionItem& selectionItem) {
auto handler = getMeasureHandler(selectionItem);
if (handler.module.empty()) {
return App::MeasureElementType::INVALID;
}
auto objT = selectionItem.object;
return handler.typeCb(objT.getObject(), objT.getSubName().c_str());
}
void MeasureManager::addMeasureType(MeasureType* measureType) {
_mMeasureTypes.push_back(measureType);
}