DataPtr DataUtility::getSelectedDataByType(DataPtr _data, DataTypePtr _info) { if (_data == nullptr) return NULL; if (_data->getType() == _info) return _data; return getSelectedDataByType(_data->getChildSelected(), _info); }
DataPtr DataUtility::getSelectedParentDataByType(DataPtr _data, DataTypePtr _info) { if (_data == nullptr) return NULL; for (DataType::VectorString::const_iterator child = _data->getType()->getChilds().begin(); child != _data->getType()->getChilds().end(); child ++) { if ((*child) == _info->getName()) return _data; } return getSelectedParentDataByType(_data->getChildSelected(), _info); }
void PropertyPanelController::notifyChangeDataSelector(DataPtr _data, bool _changeOnlySelection) { if (mControl != nullptr) { DataPtr selected = _data != nullptr ? _data->getChildSelected() : nullptr; // выделяем только данные с типом скопа if (selected != nullptr) { if (selected->getType()->getName() != ScopeManager::getInstance().getCurrentScope() && selected->getType()->getFriend() != ScopeManager::getInstance().getCurrentScope()) selected = nullptr; } mControl->setCurrentData(selected); } }