1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-12 17:14:00 +02:00

* Get rid of old mode-header in collection view.

This commit is contained in:
Christian Muehlhaeuser
2014-08-27 19:52:38 +02:00
parent 5d81ff9adb
commit 9c1bc7d293
2 changed files with 54 additions and 31 deletions

View File

@@ -30,7 +30,6 @@
#include "playlist/TrackView.h" #include "playlist/TrackView.h"
#include "playlist/TreeView.h" #include "playlist/TreeView.h"
#include "playlist/GridView.h" #include "playlist/GridView.h"
#include "playlist/ModeHeader.h"
#include "PlayableProxyModelPlaylistInterface.h" #include "PlayableProxyModelPlaylistInterface.h"
#include "TomahawkSettings.h" #include "TomahawkSettings.h"
#include "utils/ImageRegistry.h" #include "utils/ImageRegistry.h"
@@ -45,7 +44,6 @@ using namespace Tomahawk;
FlexibleTreeView::FlexibleTreeView( QWidget* parent, QWidget* extraHeader ) FlexibleTreeView::FlexibleTreeView( QWidget* parent, QWidget* extraHeader )
: QWidget( parent ) : QWidget( parent )
, m_header( new FilterHeader( this ) ) , m_header( new FilterHeader( this ) )
, m_modeHeader( new ModeHeader( this ) )
, m_columnView( new ColumnView() ) , m_columnView( new ColumnView() )
, m_treeView( new TreeView() ) , m_treeView( new TreeView() )
, m_trackView( new TrackView() ) , m_trackView( new TrackView() )
@@ -56,7 +54,7 @@ FlexibleTreeView::FlexibleTreeView( QWidget* parent, QWidget* extraHeader )
qRegisterMetaType< FlexibleTreeViewMode >( "FlexibleTreeViewMode" ); qRegisterMetaType< FlexibleTreeViewMode >( "FlexibleTreeViewMode" );
m_header->setBackgroundColor( Qt::black ); m_header->setBackgroundColor( Qt::black );
m_header->setBackground( ImageRegistry::instance()->pixmap( RESPATH "images/collection_background.png", QSize( 0, 0 ) ), false ); m_header->setBackground( ImageRegistry::instance()->pixmap( RESPATH "images/collection_background_small.png", QSize( 0, 0 ) ), false );
m_treeView->proxyModel()->setStyle( PlayableProxyModel::Collection ); m_treeView->proxyModel()->setStyle( PlayableProxyModel::Collection );
m_treeView->proxyModel()->setPlaylistInterface( m_columnView->proxyModel()->playlistInterface() ); m_treeView->proxyModel()->setPlaylistInterface( m_columnView->proxyModel()->playlistInterface() );
@@ -73,21 +71,32 @@ FlexibleTreeView::FlexibleTreeView( QWidget* parent, QWidget* extraHeader )
setLayout( new QVBoxLayout() ); setLayout( new QVBoxLayout() );
TomahawkUtils::unmarginLayout( layout() ); TomahawkUtils::unmarginLayout( layout() );
QFrame* lineBelow = new QFrame( this ); {
lineBelow->setStyleSheet( QString( "QFrame { border: 1px solid %1; }" ).arg( TomahawkStyle::HEADER_BACKGROUND.name() ) ); m_header->ui->anchor1Label->setText( tr( "Artists" ) );
lineBelow->setFrameShape( QFrame::HLine ); m_header->ui->anchor2Label->setText( tr( "Albums" ) );
lineBelow->setMaximumHeight( 1 ); m_header->ui->anchor3Label->setText( tr( "Songs" ) );
QFrame* lineBelow2 = new QFrame( this ); m_header->ui->anchor1Label->show();
lineBelow2->setStyleSheet( QString( "QFrame { border: 1px solid black; }" ) ); m_header->ui->anchor2Label->show();
lineBelow2->setFrameShape( QFrame::HLine ); m_header->ui->anchor3Label->show();
lineBelow2->setMaximumHeight( 1 );
const float lowOpacity = 0.8;
m_header->ui->anchor1Label->setOpacity( 1 );
m_header->ui->anchor2Label->setOpacity( lowOpacity );
m_header->ui->anchor3Label->setOpacity( lowOpacity );
QFontMetrics fm( m_header->ui->anchor1Label->font() );
m_header->ui->anchor1Label->setFixedWidth( fm.width( m_header->ui->anchor1Label->text() ) + 16 );
m_header->ui->anchor2Label->setFixedWidth( fm.width( m_header->ui->anchor2Label->text() ) + 16 );
m_header->ui->anchor3Label->setFixedWidth( fm.width( m_header->ui->anchor3Label->text() ) + 16 );
NewClosure( m_header->ui->anchor1Label, SIGNAL( clicked() ), const_cast< FlexibleTreeView* >( this ), SLOT( setCurrentMode( FlexibleTreeViewMode ) ), FlexibleTreeView::Columns )->setAutoDelete( false );
NewClosure( m_header->ui->anchor2Label, SIGNAL( clicked() ), const_cast< FlexibleTreeView* >( this ), SLOT( setCurrentMode( FlexibleTreeViewMode ) ), FlexibleTreeView::Albums )->setAutoDelete( false );
NewClosure( m_header->ui->anchor3Label, SIGNAL( clicked() ), const_cast< FlexibleTreeView* >( this ), SLOT( setCurrentMode( FlexibleTreeViewMode ) ), FlexibleTreeView::Flat )->setAutoDelete( false );
}
layout()->addWidget( m_header ); layout()->addWidget( m_header );
layout()->addWidget( m_modeHeader );
if ( extraHeader ) if ( extraHeader )
layout()->addWidget( extraHeader ); layout()->addWidget( extraHeader );
layout()->addWidget( lineBelow );
layout()->addWidget( lineBelow2 );
layout()->addWidget( m_stack ); layout()->addWidget( m_stack );
m_stack->addWidget( m_columnView ); m_stack->addWidget( m_columnView );
@@ -95,10 +104,6 @@ FlexibleTreeView::FlexibleTreeView( QWidget* parent, QWidget* extraHeader )
m_stack->addWidget( m_trackView ); m_stack->addWidget( m_trackView );
connect( m_header, SIGNAL( filterTextChanged( QString ) ), SLOT( setFilter( QString ) ) ); connect( m_header, SIGNAL( filterTextChanged( QString ) ), SLOT( setFilter( QString ) ) );
NewClosure( m_modeHeader, SIGNAL( flatClicked() ), const_cast< FlexibleTreeView* >( this ), SLOT( setCurrentMode( FlexibleTreeViewMode ) ), FlexibleTreeView::Columns )->setAutoDelete( false );
NewClosure( m_modeHeader, SIGNAL( detailedClicked() ), const_cast< FlexibleTreeView* >( this ), SLOT( setCurrentMode( FlexibleTreeViewMode ) ), FlexibleTreeView::Flat )->setAutoDelete( false );
NewClosure( m_modeHeader, SIGNAL( gridClicked() ), const_cast< FlexibleTreeView* >( this ), SLOT( setCurrentMode( FlexibleTreeViewMode ) ), FlexibleTreeView::Albums )->setAutoDelete( false );
} }
@@ -226,22 +231,52 @@ FlexibleTreeView::setCurrentMode( FlexibleTreeViewMode mode )
m_mode = mode; m_mode = mode;
} }
QFont inactive = m_header->ui->anchor1Label->font();
inactive.setBold( false );
QFont active = m_header->ui->anchor1Label->font();
active.setBold( true );
const float lowOpacity = 0.8;
switch ( mode ) switch ( mode )
{ {
case Albums: case Albums:
{ {
m_header->ui->anchor2Label->setOpacity( 1 );
m_header->ui->anchor1Label->setOpacity( lowOpacity );
m_header->ui->anchor3Label->setOpacity( lowOpacity );
m_header->ui->anchor2Label->setFont( active );
m_header->ui->anchor1Label->setFont( inactive );
m_header->ui->anchor3Label->setFont( inactive );
m_stack->setCurrentWidget( m_treeView ); m_stack->setCurrentWidget( m_treeView );
break; break;
} }
case Columns: case Columns:
{ {
m_header->ui->anchor1Label->setOpacity( 1 );
m_header->ui->anchor2Label->setOpacity( lowOpacity );
m_header->ui->anchor3Label->setOpacity( lowOpacity );
m_header->ui->anchor1Label->setFont( active );
m_header->ui->anchor2Label->setFont( inactive );
m_header->ui->anchor3Label->setFont( inactive );
m_stack->setCurrentWidget( m_columnView ); m_stack->setCurrentWidget( m_columnView );
break; break;
} }
case Flat: case Flat:
{ {
m_header->ui->anchor3Label->setOpacity( 1 );
m_header->ui->anchor1Label->setOpacity( lowOpacity );
m_header->ui->anchor2Label->setOpacity( lowOpacity );
m_header->ui->anchor3Label->setFont( active );
m_header->ui->anchor1Label->setFont( inactive );
m_header->ui->anchor2Label->setFont( inactive );
m_stack->setCurrentWidget( m_trackView ); m_stack->setCurrentWidget( m_trackView );
break; break;
} }
@@ -316,17 +351,7 @@ FlexibleTreeView::restoreViewMode()
m_mode = static_cast< FlexibleTreeViewMode >( modeNumber ); m_mode = static_cast< FlexibleTreeViewMode >( modeNumber );
TomahawkSettings::instance()->endGroup(); TomahawkSettings::instance()->endGroup();
switch ( m_mode ) setCurrentMode( (FlexibleTreeViewMode)modeNumber );
{
case Columns:
m_modeHeader->switchTo( 0 );
break;
case Flat:
m_modeHeader->switchTo( 1 );
break;
case Albums:
m_modeHeader->switchTo( 2 );
}
} }

View File

@@ -32,7 +32,6 @@ class TreeView;
class ColumnView; class ColumnView;
class TreeModel; class TreeModel;
class PlayableModel; class PlayableModel;
class ModeHeader;
class PlaylistModel; class PlaylistModel;
class FilterHeader; class FilterHeader;
@@ -91,7 +90,6 @@ private slots:
private: private:
FilterHeader* m_header; FilterHeader* m_header;
ModeHeader* m_modeHeader;
QPixmap m_pixmap; QPixmap m_pixmap;
ColumnView* m_columnView; ColumnView* m_columnView;