void HeaderItem::setup() { widthChanged(); const int ph = KMHeaders::pixNew->height(); QListView *v = listView(); int h = QMAX( v->fontMetrics().height(), ph ) + 2*v->itemMargin(); h = QMAX( h, QApplication::globalStrut().height()); if ( h % 2 > 0 ) h++; setHeight( h ); }
void ConfigurationItem::paintCell(QPainter *p, const QColorGroup &cg, int column, int width, int align) { if ( (column == 0) || (column == 1) || (column == 2) ) { if ( !p ) return; QListView *lv = listView(); if ( !lv ) return; const BackgroundMode bgmode = lv->viewport()->backgroundMode(); const QColorGroup::ColorRole crole = QPalette::backgroundRoleFromMode( bgmode ); p->fillRect(0, 0, width, height(), cg.brush(crole)); QFontMetrics fm(lv->fontMetrics()); int boxsize = lv->style().pixelMetric(QStyle::PM_CheckListButtonSize, lv); int marg = lv->itemMargin(); int styleflags = QStyle::Style_Default; if (((column == 0) && m_contents) || ((column == 1) && m_index) || ((column == 2) && m_fullTextSearch)) styleflags |= QStyle::Style_On; else styleflags |= QStyle::Style_Off; if ((column == 0) || ((column == 1) && m_indexPossible) || ((column == 2) && m_fullTextSearchPossible)) styleflags |= QStyle::Style_Enabled; int x = 0; int y = 0; x += 3; if (align & AlignVCenter) y = ((height() - boxsize) / 2) + marg; else y = (fm.height() + 2 + marg - boxsize) / 2; QStyleOption opt(this); lv->style().drawPrimitive(QStyle::PE_CheckListIndicator, p, QRect(x, y, boxsize, fm.height() + 2 + marg), cg, styleflags, opt); return; } QListViewItem::paintCell(p, cg, column, width, align); }