void ItemDelegate::setItemSizes(const QSize &size, int idealWidth) { const int margins = 2 * m_hMargin + rowNumberWidth(); m_maxSize.setWidth(size.width() - margins); m_idealWidth = idealWidth - margins; for( int i = 0; i < m_cache.length(); ++i ) { ItemWidget *w = m_cache[i]; if (w != NULL) w->updateSize(m_maxSize, m_idealWidth); } }
void ItemDelegate::setItemMaximumSize(const QSize &size) { int w = size.width() - 8; if (m_showNumber) { w -= QFontMetrics(m_numberFont).boundingRect( QString("0123") ).width(); } if (m_maxSize.width() == w) return; m_maxSize.setWidth(w); for( int i = 0; i < m_cache.length(); ++i ) { ItemWidget *w = m_cache[i]; if (w != NULL) { QSize oldSize = w->widget()->size(); w->widget()->setMaximumSize(m_maxSize); w->updateSize(); emit rowChanged(i, oldSize); } } }