diff --git a/src/libtomahawk/context/ContextPage.cpp b/src/libtomahawk/context/ContextPage.cpp index cc1aca64d..6e34f277e 100644 --- a/src/libtomahawk/context/ContextPage.cpp +++ b/src/libtomahawk/context/ContextPage.cpp @@ -38,11 +38,12 @@ ContextProxyPage::paint( QPainter* painter, const QStyleOptionGraphicsItem* opti QFont f( font() ); f.setBold( true ); - f.setPixelSize( 14 ); + f.setPointSize( 8 ); painter->setFont( f ); painter->setPen( Qt::white ); - QRect r( 1, 1, option->rect.width(), 19 ); + QFontMetrics fm( f ); + QRect r( 1, 1, option->rect.width(), fm.height() * 1.1 ); QTextOption to( Qt::AlignCenter ); painter->drawText( r, m_page->title(), to ); @@ -65,8 +66,12 @@ ContextProxyPage::setPage( Tomahawk::ContextPage* page ) } #endif + QFont f( font() ); + f.setBold( true ); + f.setPointSize( 8 ); + QFontMetrics fm( f ); QGraphicsLinearLayout* layout = new QGraphicsLinearLayout(); - layout->setContentsMargins( 4, 20, 4, 4 ); + layout->setContentsMargins( 4, fm.height() * 1.1, 4, 4 ); layout->addItem( page->widget() ); setLayout( layout ); diff --git a/src/libtomahawk/context/ContextWidget.cpp b/src/libtomahawk/context/ContextWidget.cpp index 618d1a0fb..d1d6849e2 100644 --- a/src/libtomahawk/context/ContextWidget.cpp +++ b/src/libtomahawk/context/ContextWidget.cpp @@ -43,7 +43,6 @@ using namespace Tomahawk; ContextWidget::ContextWidget( QWidget* parent ) : QWidget( parent ) , ui( new Ui::ContextWidget ) - , m_minHeight( 22 ) , m_currentView( 0 ) , m_visible( false ) { @@ -87,9 +86,14 @@ ContextWidget::ContextWidget( QWidget* parent ) ui->toggleButton->setCursor( Qt::PointingHandCursor ); QFont boldFont = ui->toggleButton->font(); - boldFont.setPixelSize( 12 ); + boldFont.setPointSize( 10 ); boldFont.setBold( true ); ui->toggleButton->setFont( boldFont ); + QFontMetrics fm( boldFont ); + + m_minHeight = fm.height() * 1.2; + + ui->toggleButton->setMinimumHeight( fm.height() * 1.2 ); setAutoFillBackground( true ); setFixedHeight( m_minHeight ); diff --git a/src/libtomahawk/context/ContextWidget.ui b/src/libtomahawk/context/ContextWidget.ui index 77a9f2fe8..5282df4ad 100644 --- a/src/libtomahawk/context/ContextWidget.ui +++ b/src/libtomahawk/context/ContextWidget.ui @@ -7,7 +7,7 @@ 0 0 774 - 72 + 173 diff --git a/src/libtomahawk/infobar/InfoBar.cpp b/src/libtomahawk/infobar/InfoBar.cpp index e69e45c59..d2498ba6a 100644 --- a/src/libtomahawk/infobar/InfoBar.cpp +++ b/src/libtomahawk/infobar/InfoBar.cpp @@ -44,22 +44,31 @@ InfoBar::InfoBar( QWidget* parent ) , ui( new Ui::InfoBar ) , m_queryLabel( 0 ) { + int requiredHeight = 0; + ui->setupUi( this ); TomahawkUtils::unmarginLayout( layout() ); layout()->setContentsMargins( 8, 4, 8, 4 ); + requiredHeight += 8; // Top + bottom margins QFont boldFont = ui->captionLabel->font(); - boldFont.setPixelSize( 18 ); + boldFont.setPointSize( 16 ); boldFont.setBold( true ); ui->captionLabel->setFont( boldFont ); ui->captionLabel->setElideMode( Qt::ElideRight ); - boldFont.setPixelSize( 12 ); + QFontMetrics boldFontMetrics( boldFont ); + requiredHeight += boldFontMetrics.height(); + + boldFont.setPointSize( 10 ); boldFont.setBold( false ); ui->descriptionLabel->setFont( boldFont ); + boldFontMetrics = QFontMetrics( boldFont ); + requiredHeight += boldFontMetrics.height(); + QFont regFont = ui->longDescriptionLabel->font(); - regFont.setPixelSize( 11 ); + regFont.setPointSize( 9 ); ui->longDescriptionLabel->setFont( regFont ); m_whitePal = ui->captionLabel->palette(); @@ -70,7 +79,11 @@ InfoBar::InfoBar( QWidget* parent ) ui->longDescriptionLabel->setPalette( m_whitePal ); ui->captionLabel->setMargin( 6 ); + requiredHeight += 2*6; + ui->descriptionLabel->setMargin( 6 ); + requiredHeight += 2*6; + ui->longDescriptionLabel->setMargin( 4 ); ui->captionLabel->setText( QString() ); @@ -95,8 +108,8 @@ InfoBar::InfoBar( QWidget* parent ) setAutoFillBackground( true ); - setMinimumHeight( geometry().height() ); - setMaximumHeight( geometry().height() ); + setMinimumHeight( requiredHeight ); + setMaximumHeight( requiredHeight ); createTile(); diff --git a/src/libtomahawk/infobar/InfoBar.ui b/src/libtomahawk/infobar/InfoBar.ui index de9a45c78..fc754132f 100644 --- a/src/libtomahawk/infobar/InfoBar.ui +++ b/src/libtomahawk/infobar/InfoBar.ui @@ -7,11 +7,11 @@ 0 0 774 - 80 + 72 - + 0 0 @@ -28,9 +28,6 @@ - - QLayout::SetDefaultConstraint - @@ -59,16 +56,13 @@ - - QLayout::SetDefaultConstraint - 0 - + 0 0 @@ -81,7 +75,7 @@ - + 0 0 @@ -104,16 +98,13 @@ 16 - 20 + 0 - - QLayout::SetMaximumSize - diff --git a/src/libtomahawk/playlist/FlexibleHeader.cpp b/src/libtomahawk/playlist/FlexibleHeader.cpp index e58a2ea02..c24c75d2c 100644 --- a/src/libtomahawk/playlist/FlexibleHeader.cpp +++ b/src/libtomahawk/playlist/FlexibleHeader.cpp @@ -51,11 +51,11 @@ FlexibleHeader::FlexibleHeader( FlexibleView* parent ) ui->descLabel->setPalette( pal ); QFont font = ui->captionLabel->font(); - font.setPixelSize( 16 ); + font.setPointSize( 13 ); font.setBold( true ); ui->captionLabel->setFont( font ); - font.setPixelSize( 11 ); + font.setPointSize( 8 ); ui->descLabel->setFont( font ); ui->radioNormal->setFocusPolicy( Qt::NoFocus ); diff --git a/src/libtomahawk/playlist/PlaylistChartItemDelegate.cpp b/src/libtomahawk/playlist/PlaylistChartItemDelegate.cpp index b36058e94..d97ff6fb4 100644 --- a/src/libtomahawk/playlist/PlaylistChartItemDelegate.cpp +++ b/src/libtomahawk/playlist/PlaylistChartItemDelegate.cpp @@ -157,43 +157,44 @@ PlaylistChartItemDelegate::paint( QPainter* painter, const QStyleOptionViewItem& } QFont figureFont = opt.font; - figureFont.setPixelSize( 18 ); + figureFont.setPointSize( 17 ); figureFont.setWeight( 99 ); QFont boldFont = opt.font; - boldFont.setPixelSize( 15 ); + boldFont.setPointSize( 12 ); boldFont.setWeight( 99 ); QFont smallBoldFont = opt.font; - smallBoldFont.setPixelSize( 12 ); + smallBoldFont.setPointSize( 9 ); smallBoldFont.setWeight( 60 ); QFont durationFont = opt.font; - durationFont.setPixelSize( 12 ); + durationFont.setPointSize( 9 ); durationFont.setWeight( 80 ); + QFontMetrics durationFontMetrics( durationFont ); if ( index.row() == 0 ) { - figureFont.setPixelSize( 36 ); - boldFont.setPixelSize( 26 ); - smallBoldFont.setPixelSize( 22 ); + figureFont.setPointSize( 34 ); + boldFont.setPointSize( 24 ); + smallBoldFont.setPointSize( 20 ); } else if ( index.row() == 1 ) { - figureFont.setPixelSize( 30 ); - boldFont.setPixelSize( 22 ); - smallBoldFont.setPixelSize( 18 ); + figureFont.setPointSize( 28 ); + boldFont.setPointSize( 20 ); + smallBoldFont.setPointSize( 15 ); } else if ( index.row() == 2 ) { - figureFont.setPixelSize( 24 ); - boldFont.setPixelSize( 18 ); - smallBoldFont.setPixelSize( 14 ); + figureFont.setPointSize( 20 ); + boldFont.setPointSize( 15 ); + smallBoldFont.setPointSize( 11 ); } else if ( index.row() >= 10 ) { - boldFont.setPixelSize( 12 ); - smallBoldFont.setPixelSize( 11 ); + boldFont.setPointSize( 9 ); + smallBoldFont.setPointSize( 8 ); } QRect figureRect = r.adjusted( 0, 0, -option.rect.width() + 60 - 6 + r.left(), 0 ); @@ -215,8 +216,7 @@ PlaylistChartItemDelegate::paint( QPainter* painter, const QStyleOptionViewItem& painter->drawPixmap( pixmapRect, pixmap ); r.adjust( pixmapRect.width() + figureRect.width() + 18, 1, -28, 0 ); - QRect leftRect = r.adjusted( 0, 0, -48, 0 ); - QRect rightRect = r.adjusted( r.width() - 40, 0, 0, 0 ); + QRect leftRect = r.adjusted( 0, 0, -durationFontMetrics.width( TomahawkUtils::timeToString( duration ) ) - 8, 0 ); painter->setFont( boldFont ); QString text = painter->fontMetrics().elidedText( track, Qt::ElideRight, leftRect.width() ); @@ -229,6 +229,7 @@ PlaylistChartItemDelegate::paint( QPainter* painter, const QStyleOptionViewItem& if ( duration > 0 ) { painter->setFont( durationFont ); + QRect rightRect = r.adjusted( r.width() - durationFontMetrics.width( TomahawkUtils::timeToString( duration ) ), 0, 0, 0 ); text = painter->fontMetrics().elidedText( TomahawkUtils::timeToString( duration ), Qt::ElideRight, rightRect.width() ); painter->drawText( rightRect, text, m_centerRightOption ); } diff --git a/src/libtomahawk/playlist/PlaylistItemDelegate.cpp b/src/libtomahawk/playlist/PlaylistItemDelegate.cpp index 2ddf88f98..dbae0fd4b 100644 --- a/src/libtomahawk/playlist/PlaylistItemDelegate.cpp +++ b/src/libtomahawk/playlist/PlaylistItemDelegate.cpp @@ -72,6 +72,9 @@ PlaylistItemDelegate::sizeHint( const QStyleOptionViewItem& option, const QModel { int rowHeight = option.fontMetrics.height() + 8; size.setHeight( rowHeight * 2 ); + } else if ( style == PlayableProxyModel::Detailed ) { + int rowHeight = option.fontMetrics.height() * 1.4; + size.setHeight( rowHeight ); } } @@ -230,7 +233,7 @@ PlaylistItemDelegate::paintDetailed( QPainter* painter, const QStyleOptionViewIt if ( m_view->hoveredIndex().row() == index.row() && m_view->hoveredIndex().column() == index.column() && !index.data().toString().isEmpty() && ( index.column() == PlayableModel::Artist || index.column() == PlayableModel::Album || index.column() == PlayableModel::Track ) ) { - opt.rect.setWidth( opt.rect.width() - 16 ); + opt.rect.setWidth( opt.rect.width() - opt.rect.height() - 2 ); QRect arrowRect( opt.rect.x() + opt.rect.width(), opt.rect.y() + 1, opt.rect.height() - 2, opt.rect.height() - 2 ); QPixmap infoIcon = TomahawkUtils::defaultPixmap( TomahawkUtils::InfoIcon, TomahawkUtils::Original, arrowRect.size() ); diff --git a/src/libtomahawk/playlist/PlaylistLargeItemDelegate.cpp b/src/libtomahawk/playlist/PlaylistLargeItemDelegate.cpp index 6783a0d3e..921091b2a 100644 --- a/src/libtomahawk/playlist/PlaylistLargeItemDelegate.cpp +++ b/src/libtomahawk/playlist/PlaylistLargeItemDelegate.cpp @@ -205,20 +205,22 @@ PlaylistLargeItemDelegate::paint( QPainter* painter, const QStyleOptionViewItem& painter->drawPixmap( avatarRect, avatar ); QFont boldFont = opt.font; - boldFont.setPixelSize( 15 ); + boldFont.setPointSize( 11 ); boldFont.setWeight( 99 ); + QFontMetrics boldFontMetrics( boldFont ); QFont smallBoldFont = opt.font; - smallBoldFont.setPixelSize( 12 ); + smallBoldFont.setPointSize( 8 ); smallBoldFont.setBold( true ); smallBoldFont.setWeight( 60 ); + QFontMetrics smallBoldFontMetrics( smallBoldFont ); QFont smallFont = opt.font; - smallFont.setPixelSize( 10 ); + smallFont.setPointSize( 7 ); r.adjust( pixmapRect.width() + 12, 1, -28 - avatar.width(), 0 ); QRect leftRect = r.adjusted( 0, 0, -48, 0 ); - QRect rightRect = r.adjusted( r.width() - 40, 0, 0, 0 ); + QRect rightRect = r.adjusted( r.width() - smallBoldFontMetrics.width( TomahawkUtils::timeToString( duration ) ), 0, 0, 0 ); painter->setFont( boldFont ); QString text = painter->fontMetrics().elidedText( track, Qt::ElideRight, leftRect.width() ); @@ -226,7 +228,7 @@ PlaylistLargeItemDelegate::paint( QPainter* painter, const QStyleOptionViewItem& painter->setFont( smallBoldFont ); text = painter->fontMetrics().elidedText( artist, Qt::ElideRight, leftRect.width() ); - painter->drawText( leftRect.adjusted( 0, 19, 0, 0 ), text, m_topOption ); + painter->drawText( leftRect.adjusted( 0, boldFontMetrics.height(), 0, 0 ), text, m_topOption ); painter->setFont( smallFont ); painter->setPen( Qt::gray ); diff --git a/src/libtomahawk/playlist/QueueView.cpp b/src/libtomahawk/playlist/QueueView.cpp index df60a7705..80fe8aaa5 100644 --- a/src/libtomahawk/playlist/QueueView.cpp +++ b/src/libtomahawk/playlist/QueueView.cpp @@ -41,7 +41,10 @@ QueueView::QueueView( AnimatedSplitter* parent ) TomahawkUtils::unmarginLayout( layout() ); setContentsMargins( 0, 0, 0, 0 ); - setHiddenSize( QSize( 0, 22 ) ); + QFont f; + f.setPointSize( 10 ); + QFontMetrics fm( f ); + setHiddenSize( QSize( 0, fm.height() * 1.2 ) ); ui->queue->setProxyModel( new QueueProxyModel( ui->queue ) ); ui->queue->setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Ignored ); diff --git a/src/libtomahawk/widgets/HeaderLabel.cpp b/src/libtomahawk/widgets/HeaderLabel.cpp index edec62258..b620b0864 100644 --- a/src/libtomahawk/widgets/HeaderLabel.cpp +++ b/src/libtomahawk/widgets/HeaderLabel.cpp @@ -26,7 +26,7 @@ #include "utils/StyleHelper.h" #include "utils/TomahawkUtilsGui.h" -static const int s_defaultFontSize = 12; +static const int s_defaultFontSize = 9; HeaderLabel::HeaderLabel( QWidget* parent ) @@ -37,10 +37,11 @@ HeaderLabel::HeaderLabel( QWidget* parent ) { QFont f( font() ); f.setBold( true ); - f.setPixelSize( s_defaultFontSize ); + f.setPointSize( s_defaultFontSize ); + QFontMetrics fm( f ); setFont( f ); - setFixedHeight( TomahawkUtils::headerHeight() ); + setFixedHeight( fm.height() * 1.4 ); setMouseTracking( true ); } diff --git a/src/libtomahawk/widgets/OverlayButton.cpp b/src/libtomahawk/widgets/OverlayButton.cpp index fc0102bb9..3362143a2 100644 --- a/src/libtomahawk/widgets/OverlayButton.cpp +++ b/src/libtomahawk/widgets/OverlayButton.cpp @@ -81,7 +81,7 @@ OverlayButton::setText( const QString& text ) m_text = text; QFont f( font() ); - f.setPixelSize( FONT_SIZE ); + f.setPointSize( FONT_SIZE ); f.setBold( true ); QFontMetrics fm( f ); diff --git a/src/libtomahawk/widgets/WelcomeWidget.cpp b/src/libtomahawk/widgets/WelcomeWidget.cpp index 37f80611e..4b4c5679c 100644 --- a/src/libtomahawk/widgets/WelcomeWidget.cpp +++ b/src/libtomahawk/widgets/WelcomeWidget.cpp @@ -122,6 +122,12 @@ WelcomeWidget::WelcomeWidget( QWidget* parent ) ui->tracksView->setPlaylistModel( m_tracksModel ); m_tracksModel->setSource( source_ptr() ); + QFont f; + f.setPointSize( 9 ); + f.setBold( true ); + QFontMetrics fm( f ); + ui->tracksView->setMinimumWidth( fm.width( tr("Recently played tracks") ) * 2 ); + m_recentAlbumsModel = new AlbumModel( ui->additionsView ); ui->additionsView->setPlayableModel( m_recentAlbumsModel ); ui->additionsView->proxyModel()->sort( -1 ); @@ -246,7 +252,18 @@ PlaylistDelegate::sizeHint( const QStyleOptionViewItem& option, const QModelInde { Q_UNUSED( option ); Q_UNUSED( index ); - return QSize( 0, 64 ); + + // Calculates the size for the bold line + 3 normal lines + margins + int height = 2 * 6; // margins + QFont font = option.font; + QFontMetrics fm1( font ); + font.setPointSize( 8 ); + height += fm1.height() * 3; + font.setPointSize( 9 ); + QFontMetrics fm2( font ); + height += fm2.height(); + + return QSize( 0, height ); } @@ -269,14 +286,15 @@ PlaylistDelegate::paint( QPainter* painter, const QStyleOptionViewItem& option, QTextOption to; to.setAlignment( Qt::AlignCenter ); QFont font = opt.font; - font.setPixelSize( 10 ); + font.setPointSize( 8 ); QFont boldFont = font; boldFont.setBold( true ); - boldFont.setPixelSize( 11 ); + boldFont.setPointSize( 9 ); + QFontMetrics boldFontMetrics( boldFont ); QFont figFont = boldFont; - figFont.setPixelSize( 10 ); + figFont.setPointSize( 8 ); QPixmap icon; RecentlyPlayedPlaylistsModel::PlaylistTypes type = (RecentlyPlayedPlaylistsModel::PlaylistTypes)index.data( RecentlyPlayedPlaylistsModel::PlaylistTypeRole ).toInt(); @@ -287,7 +305,7 @@ PlaylistDelegate::paint( QPainter* painter, const QStyleOptionViewItem& option, else if( type == RecentlyPlayedPlaylistsModel::Station ) icon = m_stationIcon; - QRect pixmapRect = option.rect.adjusted( 10, 13, -option.rect.width() + 48, -13 ); + QRect pixmapRect = option.rect.adjusted( 10, 13, -option.rect.width() + option.rect.height() - 26, -13 ); icon = icon.scaled( pixmapRect.size(), Qt::KeepAspectRatio, Qt::SmoothTransformation ); painter->drawPixmap( pixmapRect, icon ); @@ -317,7 +335,7 @@ PlaylistDelegate::paint( QPainter* painter, const QStyleOptionViewItem& option, QPixmap avatar = index.data( RecentlyPlayedPlaylistsModel::PlaylistRole ).value< Tomahawk::playlist_ptr >()->author()->avatar( Source::FancyStyle ); if ( avatar.isNull() ) avatar = m_defaultAvatar; - QRect r( option.rect.width() - avatar.width() - 10, option.rect.top() + option.rect.height()/2 - avatar.height()/2, avatar.width(), avatar.height() ); + QRect r( option.rect.width() - option.fontMetrics.height() * 2.5 - 10, option.rect.top() + option.rect.height()/2.25 - option.fontMetrics.height(), option.fontMetrics.height() * 2.5, option.fontMetrics.height() * 2.2 ); painter->drawPixmap( r, avatar ); painter->setFont( font ); @@ -346,7 +364,7 @@ PlaylistDelegate::paint( QPainter* painter, const QStyleOptionViewItem& option, painter->setPen( QColor( Qt::gray ).darker() ); } - QRect rectText = option.rect.adjusted( 66, 20, -leftEdge - 10, -8 ); + QRect rectText = option.rect.adjusted( option.fontMetrics.height() * 4.5, boldFontMetrics.height() + 6, -leftEdge - 10, -8 ); #ifdef Q_WS_MAC rectText.adjust( 0, 1, 0, 0 ); #elif defined Q_WS_WIN @@ -358,7 +376,7 @@ PlaylistDelegate::paint( QPainter* painter, const QStyleOptionViewItem& option, painter->setFont( font ); painter->setFont( boldFont ); - painter->drawText( option.rect.adjusted( 56, 6, -100, -option.rect.height() + 20 ), index.data().toString() ); + painter->drawText( option.rect.adjusted( option.fontMetrics.height() * 4, 6, -100, -option.rect.height() + boldFontMetrics.height() + 6 ), index.data().toString() ); painter->restore(); } diff --git a/src/libtomahawk/widgets/WelcomeWidget.ui b/src/libtomahawk/widgets/WelcomeWidget.ui index e91e39612..f420a1a96 100644 --- a/src/libtomahawk/widgets/WelcomeWidget.ui +++ b/src/libtomahawk/widgets/WelcomeWidget.ui @@ -72,14 +72,7 @@ - - - - 320 - 0 - - - + diff --git a/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.cpp b/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.cpp index 8ae6b0661..77fc8fe21 100644 --- a/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.cpp +++ b/src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.cpp @@ -107,7 +107,7 @@ ArtistInfoWidget::ArtistInfoWidget( const Tomahawk::artist_ptr& artist, QWidget* QFont f = font(); f.setBold( true ); - f.setPixelSize( 18 ); + f.setPointSize( 14 ); ui->artistLabel->setFont( f ); QPalette p = ui->biography->palette(); diff --git a/src/sourcetree/SourceDelegate.cpp b/src/sourcetree/SourceDelegate.cpp index 233fb15c2..90d91aa15 100644 --- a/src/sourcetree/SourceDelegate.cpp +++ b/src/sourcetree/SourceDelegate.cpp @@ -89,23 +89,26 @@ SourceDelegate::sizeHint( const QStyleOptionViewItem& option, const QModelIndex& if ( type == SourcesModel::Collection ) { - return QSize( option.rect.width(), 40 ); +// return QSize( option.rect.width(), 40 ); + return QSize( option.rect.width(), option.fontMetrics.height() * 2.6 ); } else if ( type == SourcesModel::Divider ) { + // TODO: what is the divider? return QSize( option.rect.width(), 6 ); } - else if ( type == SourcesModel::Group && index.row() > 0 ) + else if ( type == SourcesModel::Group ) { - return QSize( option.rect.width(), 24 ); + int groupSpacer = index.row() > 0 ? option.fontMetrics.height() * 0.6 : option.fontMetrics.height() * 0.2; + return QSize( option.rect.width(), option.fontMetrics.height() + groupSpacer ); } else if ( m_expandedMap.contains( index ) ) { if ( !m_expandedMap.value( index )->initialized() ) { int dropTypes = dropTypeCount( item ); - QSize originalSize = QStyledItemDelegate::sizeHint( option, index ); - QSize targetSize = originalSize + QSize( 0, dropTypes == 0 ? 0 : 56 ); + QSize originalSize = QSize( option.rect.width(), option.fontMetrics.height() * 1.2 ); + QSize targetSize = originalSize + QSize( 0, dropTypes == 0 ? 0 : 38 + option.fontMetrics.height() * 1.2 ); m_expandedMap.value( index )->initialize( originalSize, targetSize, 300 ); m_expandedMap.value( index )->expand(); } @@ -113,7 +116,7 @@ SourceDelegate::sizeHint( const QStyleOptionViewItem& option, const QModelIndex& return m_expandedMap.value( index )->size(); } else - return QStyledItemDelegate::sizeHint( option, index ); + return QSize( option.rect.width(), option.fontMetrics.height() * 1.2 ); //QStyledItemDelegate::sizeHint( option, index ) ); } @@ -162,7 +165,7 @@ SourceDelegate::paintCollection( QPainter* painter, const QStyleOptionViewItem& QFont figFont = bold; figFont.setFamily( "Arial Bold" ); figFont.setWeight( QFont::Black ); - figFont.setPixelSize( 10 ); + figFont.setPointSize( 7 ); SourceTreeItem* item = index.data( SourcesModel::SourceTreeItemRole ).value< SourceTreeItem* >(); SourceItem* colItem = qobject_cast< SourceItem* >( item ); @@ -260,7 +263,7 @@ SourceDelegate::paintCollection( QPainter* painter, const QStyleOptionViewItem& { painter->setRenderHint( QPainter::Antialiasing ); - QRect figRect = option.rect.adjusted( option.rect.width() - figWidth - 13, 0, -14, -option.rect.height() + 16 ); + QRect figRect = option.rect.adjusted( option.rect.width() - figWidth - 13, 0, -14, -option.rect.height() + option.fontMetrics.height() * 1.1 ); int hd = ( option.rect.height() - figRect.height() ) / 2; figRect.adjust( 0, hd, 0, hd ); @@ -297,7 +300,7 @@ SourceDelegate::paintCategory( QPainter* painter, const QStyleOptionViewItem& op text = tr( "Hide" ); QFont font = painter->font(); - font.setPixelSize( 11 ); + font.setPointSize( 8 ); font.setBold( true ); painter->setFont( font ); QTextOption to( Qt::AlignVCenter | Qt::AlignRight ); @@ -315,7 +318,7 @@ void SourceDelegate::paintGroup( QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index ) const { QFont font = painter->font(); - font.setPixelSize( 12 ); + font.setPointSize( 9 ); font.setBold( true ); painter->setFont( font ); @@ -337,7 +340,8 @@ SourceDelegate::paintGroup( QPainter* painter, const QStyleOptionViewItem& optio if ( option.state & QStyle::State_Open ) text = tr( "Hide" ); - font.setPixelSize( font.pixelSize() - 1 ); + QFont tmpFont = font; + font.setPointSize( font.pointSize() - 1 ); painter->setFont( font ); QTextOption to( Qt::AlignBottom | Qt::AlignRight ); @@ -346,6 +350,7 @@ SourceDelegate::paintGroup( QPainter* painter, const QStyleOptionViewItem& optio painter->drawText( option.rect.translated( -4, 1 ), text, to ); painter->setPen( QColor( 99, 113, 128 ) ); painter->drawText( option.rect.translated( -4, 0 ), text, to ); + painter->setFont( tmpFont ); } } @@ -359,7 +364,7 @@ SourceDelegate::paint( QPainter* painter, const QStyleOptionViewItem& option, co painter->save(); QFont font = painter->font(); - font.setPixelSize( 11 ); + font.setPointSize( 8 ); painter->setFont( font ); o.font = font; o3.font = font; @@ -458,7 +463,8 @@ SourceDelegate::paint( QPainter* painter, const QStyleOptionViewItem& option, co painter->setPen( pen ); QFont font = painter->font(); - font.setPixelSize( 12 ); + + font.setPointSize( 7 ); painter->setFont( font ); QFont fontBold = painter->font(); fontBold.setBold( true ); diff --git a/src/sourcetree/SourceTreeView.cpp b/src/sourcetree/SourceTreeView.cpp index c439b6316..deda27b5e 100644 --- a/src/sourcetree/SourceTreeView.cpp +++ b/src/sourcetree/SourceTreeView.cpp @@ -67,7 +67,13 @@ SourceTreeView::SourceTreeView( QWidget* parent ) setFrameShape( QFrame::NoFrame ); setAttribute( Qt::WA_MacShowFocusRect, 0 ); setContentsMargins( 0, 0, 0, 0 ); - setMinimumWidth( 220 ); + + QFont dummyFont; + dummyFont.setPointSize( 9 ); + QFontMetrics fm( dummyFont ); + // This is sort of the longest string in there. With translations + // we will never get it right so setting it to something reasonable for the average case + setMinimumWidth( fm.width( "Track Album Artist Local Top10") ); setHeaderHidden( true ); setRootIsDecorated( true );