diff --git a/src/declarativeimports/core/units.cpp b/src/declarativeimports/core/units.cpp index 02cc172c9..49e2f74a1 100644 --- a/src/declarativeimports/core/units.cpp +++ b/src/declarativeimports/core/units.cpp @@ -252,19 +252,18 @@ int Units::largeSpacing() const void Units::updateSpacing() { - int gridUnit = QFontMetrics(QGuiApplication::font()).boundingRect(QStringLiteral("M")).height(); + int fontSize = QFontMetrics(QGuiApplication::font()).boundingRect(QStringLiteral("M")).height(); - if (gridUnit % 2 != 0) { - gridUnit++; - } - if (gridUnit != m_gridUnit) { - m_gridUnit = gridUnit; + int smallSpacing = qMax(2, qRound(fontSize / 4)); + int largeSpacing = m_smallSpacing * 4; // roughly msize.height but rounded to 4 + + if (largeSpacing != m_gridUnit) { + m_gridUnit = m_largeSpacing; emit gridUnitChanged(); } - - if (gridUnit != m_largeSpacing) { - m_smallSpacing = qMax(2, (int)(gridUnit / 4)); // 1/4 of gridUnit, at least 2 - m_largeSpacing = gridUnit; // msize.height + if (smallSpacing != m_smallSpacing) { + m_smallSpacing = smallSpacing; + m_largeSpacing = largeSpacing; emit spacingChanged(); } }