diff --git a/kmymoney/widgets/register.h b/kmymoney/widgets/register.h --- a/kmymoney/widgets/register.h +++ b/kmymoney/widgets/register.h @@ -659,6 +659,7 @@ QList m_sortOrder; QRect m_lastRepaintRect; DetailsColumnType m_detailsColumnType; + QMap m_minimalColumnWidthCache; }; } // namespace diff --git a/kmymoney/widgets/register.cpp b/kmymoney/widgets/register.cpp --- a/kmymoney/widgets/register.cpp +++ b/kmymoney/widgets/register.cpp @@ -1062,6 +1062,9 @@ void Register::resize(int col, bool force) { + if (m_needResize) + m_minimalColumnWidthCache.clear(); + if (!m_needResize && !force) return; @@ -1245,7 +1248,15 @@ void Register::adjustColumn(int col) { - setColumnWidth(col, minimumColumnWidth(col)); + QMap::const_iterator it = m_minimalColumnWidthCache.find(col); + int width = 0; + if (it == m_minimalColumnWidthCache.end()) { + width = minimumColumnWidth(col); + m_minimalColumnWidthCache[col] = width; + } else { + width = it.value(); + } + setColumnWidth(col, width); } void Register::clearSelection()