void QtPropertyData::BuildCurrentValue() { // Build value const QVariant master = GetValueInternal(); bool isAllEqual = true; isValuesMerged = false; for ( int i = 0; i < mergedData.size(); i++ ) { QtPropertyData *item = mergedData.at(i); const QVariant slave = item->GetValue(); if (master != slave) { isAllEqual = false; break; } } curValue = isAllEqual ? master : QVariant(); isValuesMerged = isAllEqual; // Update Qt MVC properties if ( !isAllEqual ) { QList<int> roles; roles << Qt::DecorationRole; for ( int iRole = 0; iRole < roles.size(); iRole++ ) { const int role = roles.at(iRole); auto it = style.find( role ); if ( it != style.end() ) { *it = QVariant(); } } } }