QmlProfiler: Reduce code size for feature menu setup

Change-Id: Ied31be4c880f2e38935830e35afb20435d7f74b2
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
This commit is contained in:
hjk
2019-08-30 15:57:22 +02:00
parent a34d84fa4d
commit 2399e4476b
2 changed files with 8 additions and 22 deletions

View File

@@ -716,25 +716,6 @@ void addFeatureToMenu(QMenu *menu, ProfileFeature feature, quint64 enabledFeatur
action->setChecked(enabledFeatures & (1ULL << (feature)));
}
template<ProfileFeature feature>
void QmlProfilerTool::updateFeatures(quint64 features)
{
if (features & (1ULL << (feature))) {
addFeatureToMenu(d->m_recordFeaturesMenu, feature,
d->m_profilerState->requestedFeatures());
addFeatureToMenu(d->m_displayFeaturesMenu, feature,
d->m_profilerModelManager->visibleFeatures());
}
updateFeatures<static_cast<ProfileFeature>(feature + 1)>(features);
}
template<>
void QmlProfilerTool::updateFeatures<MaximumProfileFeature>(quint64 features)
{
Q_UNUSED(features)
return;
}
void QmlProfilerTool::setAvailableFeatures(quint64 features)
{
if (features != d->m_profilerState->requestedFeatures())
@@ -742,7 +723,14 @@ void QmlProfilerTool::setAvailableFeatures(quint64 features)
if (d->m_recordFeaturesMenu && d->m_displayFeaturesMenu) {
d->m_recordFeaturesMenu->clear();
d->m_displayFeaturesMenu->clear();
updateFeatures<static_cast<ProfileFeature>(0)>(features);
for (int feature = 0; feature < MaximumProfileFeature; ++feature) {
if (features & (1ULL << feature)) {
addFeatureToMenu(d->m_recordFeaturesMenu, ProfileFeature(feature),
d->m_profilerState->requestedFeatures());
addFeatureToMenu(d->m_displayFeaturesMenu, ProfileFeature(feature),
d->m_profilerModelManager->visibleFeatures());
}
}
}
}