Changeset View
Changeset View
Standalone View
Standalone View
ui/sidebar.cpp
Show First 20 Lines • Show All 183 Lines • ▼ Show 20 Line(s) | 179 | { | |||
---|---|---|---|---|---|
184 | iconpos += option.rect.topLeft(); | 184 | iconpos += option.rect.topLeft(); | ||
185 | QIcon::Mode iconmode = disabled ? QIcon::Disabled : QIcon::Normal; | 185 | QIcon::Mode iconmode = disabled ? QIcon::Disabled : QIcon::Normal; | ||
186 | painter->drawPixmap( iconpos, icon.pixmap( option.decorationSize, iconmode ) ); | 186 | painter->drawPixmap( iconpos, icon.pixmap( option.decorationSize, iconmode ) ); | ||
187 | } | 187 | } | ||
188 | 188 | | |||
189 | if ( m_showText ) | 189 | if ( m_showText ) | ||
190 | { | 190 | { | ||
191 | QString text = index.data( Qt::DisplayRole ).toString(); | 191 | QString text = index.data( Qt::DisplayRole ).toString(); | ||
192 | QRect fontBoundaries = QFontMetrics( option.font ).boundingRect( text ); | 192 | QRect fontBoundaries = QFontMetrics( option.font ).boundingRect( QRect(), Qt::AlignCenter, text ); | ||
193 | QPoint textPos( | 193 | QPoint textPos( | ||
194 | ITEM_MARGIN_LEFT + ( option.rect.width() - ITEM_MARGIN_LEFT - ITEM_MARGIN_RIGHT - fontBoundaries.width() ) / 2, | 194 | ITEM_MARGIN_LEFT + ( option.rect.width() - ITEM_MARGIN_LEFT - ITEM_MARGIN_RIGHT - fontBoundaries.width() ) / 2, | ||
195 | ITEM_MARGIN_TOP + option.decorationSize.height() + ITEM_PADDING | 195 | ITEM_MARGIN_TOP + option.decorationSize.height() + ITEM_PADDING | ||
196 | ); | 196 | ); | ||
197 | fontBoundaries.translate( -fontBoundaries.topLeft() ); | 197 | fontBoundaries.translate( -fontBoundaries.topLeft() ); | ||
198 | fontBoundaries.translate( textPos ); | 198 | fontBoundaries.translate( textPos ); | ||
199 | fontBoundaries.translate( option.rect.topLeft() ); | 199 | fontBoundaries.translate( option.rect.topLeft() ); | ||
200 | painter->setPen( foreColor ); | 200 | painter->setPen( foreColor ); | ||
201 | painter->drawText( fontBoundaries, Qt::AlignCenter, text ); | 201 | painter->drawText( fontBoundaries, Qt::AlignCenter, text ); | ||
202 | } | 202 | } | ||
203 | } | 203 | } | ||
204 | 204 | | |||
205 | QSize SidebarDelegate::sizeHint( const QStyleOptionViewItem &option, const QModelIndex &index ) const | 205 | QSize SidebarDelegate::sizeHint( const QStyleOptionViewItem &option, const QModelIndex &index ) const | ||
206 | { | 206 | { | ||
207 | QSize baseSize( option.decorationSize.width(), option.decorationSize.height() ); | 207 | QSize baseSize( option.decorationSize.width(), option.decorationSize.height() ); | ||
208 | if ( m_showText ) | 208 | if ( m_showText ) | ||
209 | { | 209 | { | ||
210 | QRect fontBoundaries = QFontMetrics( option.font ).boundingRect( index.data( Qt::DisplayRole ).toString() ); | 210 | QRect fontBoundaries = QFontMetrics( option.font ).boundingRect( QRect(), Qt::AlignCenter, index.data( Qt::DisplayRole ).toString() ); | ||
211 | baseSize.setWidth( qMax( fontBoundaries.width(), baseSize.width() ) ); | 211 | baseSize.setWidth( qMax( fontBoundaries.width(), baseSize.width() ) ); | ||
212 | baseSize.setHeight( baseSize.height() + fontBoundaries.height() + ITEM_PADDING ); | 212 | baseSize.setHeight( baseSize.height() + fontBoundaries.height() + ITEM_PADDING ); | ||
213 | } | 213 | } | ||
214 | return baseSize + QSize( ITEM_MARGIN_LEFT + ITEM_MARGIN_RIGHT, ITEM_MARGIN_TOP + ITEM_MARGIN_BOTTOM ); | 214 | return baseSize + QSize( ITEM_MARGIN_LEFT + ITEM_MARGIN_RIGHT, ITEM_MARGIN_TOP + ITEM_MARGIN_BOTTOM ); | ||
215 | } | 215 | } | ||
216 | 216 | | |||
217 | 217 | | |||
218 | /* A custom list widget that ignores the events for disabled items */ | 218 | /* A custom list widget that ignores the events for disabled items */ | ||
▲ Show 20 Lines • Show All 606 Lines • Show Last 20 Lines |