mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-01 03:40:16 +02:00
* Re-enable TreeView for collections.
This commit is contained in:
@@ -22,14 +22,18 @@
|
|||||||
#include <QStackedWidget>
|
#include <QStackedWidget>
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
|
|
||||||
#include "playlist/FlexibleHeader.h"
|
#include "widgets/FilterHeader.h"
|
||||||
#include "playlist/TreeModel.h"
|
#include "playlist/TreeModel.h"
|
||||||
#include "playlist/ColumnView.h"
|
#include "playlist/ColumnView.h"
|
||||||
#include "playlist/TrackView.h"
|
#include "playlist/TrackView.h"
|
||||||
|
#include "playlist/TreeView.h"
|
||||||
#include "playlist/GridView.h"
|
#include "playlist/GridView.h"
|
||||||
|
#include "playlist/ModeHeader.h"
|
||||||
#include "playlist/PlaylistLargeItemDelegate.h"
|
#include "playlist/PlaylistLargeItemDelegate.h"
|
||||||
#include "PlayableProxyModelPlaylistInterface.h"
|
#include "PlayableProxyModelPlaylistInterface.h"
|
||||||
|
#include "utils/TomahawkStyle.h"
|
||||||
#include "utils/TomahawkUtilsGui.h"
|
#include "utils/TomahawkUtilsGui.h"
|
||||||
|
#include "utils/Closure.h"
|
||||||
#include "utils/Logger.h"
|
#include "utils/Logger.h"
|
||||||
|
|
||||||
using namespace Tomahawk;
|
using namespace Tomahawk;
|
||||||
@@ -37,15 +41,18 @@ using namespace Tomahawk;
|
|||||||
|
|
||||||
FlexibleTreeView::FlexibleTreeView( QWidget* parent, QWidget* extraHeader )
|
FlexibleTreeView::FlexibleTreeView( QWidget* parent, QWidget* extraHeader )
|
||||||
: QWidget( parent )
|
: QWidget( parent )
|
||||||
, m_header( new FlexibleHeader( 0 ) )
|
, m_header( new FilterHeader( 0 ) )
|
||||||
|
, m_modeHeader( new ModeHeader( this ) )
|
||||||
, m_columnView( new ColumnView() )
|
, m_columnView( new ColumnView() )
|
||||||
// , m_gridView( new GridView() )
|
, m_treeView( new TreeView() )
|
||||||
// , m_trackView( new TrackView() )
|
, m_trackView( 0 )
|
||||||
, m_model( 0 )
|
, m_model( 0 )
|
||||||
, m_temporary( false )
|
, m_temporary( false )
|
||||||
{
|
{
|
||||||
qRegisterMetaType< FlexibleTreeViewMode >( "FlexibleTreeViewMode" );
|
qRegisterMetaType< FlexibleTreeViewMode >( "FlexibleTreeViewMode" );
|
||||||
|
|
||||||
|
m_treeView->proxyModel()->setStyle( PlayableProxyModel::Collection );
|
||||||
|
|
||||||
// m_trackView->setPlaylistInterface( m_playlistInterface );
|
// m_trackView->setPlaylistInterface( m_playlistInterface );
|
||||||
// m_columnView->setPlaylistInterface( m_trackView->proxyModel()->playlistInterface() );
|
// m_columnView->setPlaylistInterface( m_trackView->proxyModel()->playlistInterface() );
|
||||||
// m_gridView->setPlaylistInterface( m_trackView->proxyModel()->playlistInterface() );
|
// m_gridView->setPlaylistInterface( m_trackView->proxyModel()->playlistInterface() );
|
||||||
@@ -62,18 +69,45 @@ FlexibleTreeView::FlexibleTreeView( QWidget* parent, QWidget* extraHeader )
|
|||||||
setLayout( new QVBoxLayout() );
|
setLayout( new QVBoxLayout() );
|
||||||
TomahawkUtils::unmarginLayout( layout() );
|
TomahawkUtils::unmarginLayout( layout() );
|
||||||
|
|
||||||
|
QFrame* lineAbove = new QFrame( this );
|
||||||
|
lineAbove->setStyleSheet( QString( "QFrame { border: 1px solid %1; }" ).arg( TomahawkStyle::HEADER_UPPER.name() ) );
|
||||||
|
lineAbove->setFrameShape( QFrame::HLine );
|
||||||
|
lineAbove->setMaximumHeight( 1 );
|
||||||
|
QFrame* lineAbove2 = new QFrame( this );
|
||||||
|
lineAbove2->setStyleSheet( QString( "QFrame { border: 1px solid black; }" ) );
|
||||||
|
lineAbove2->setFrameShape( QFrame::HLine );
|
||||||
|
lineAbove2->setMaximumHeight( 1 );
|
||||||
|
QFrame* lineBelow = new QFrame( this );
|
||||||
|
lineBelow->setStyleSheet( QString( "QFrame { border: 1px solid %1; }" ).arg( TomahawkStyle::HEADER_UPPER.name() ) );
|
||||||
|
lineBelow->setFrameShape( QFrame::HLine );
|
||||||
|
lineBelow->setMaximumHeight( 1 );
|
||||||
|
QFrame* lineBelow2 = new QFrame( this );
|
||||||
|
lineBelow2->setStyleSheet( QString( "QFrame { border: 1px solid black; }" ) );
|
||||||
|
lineBelow2->setFrameShape( QFrame::HLine );
|
||||||
|
lineBelow2->setMaximumHeight( 1 );
|
||||||
|
|
||||||
layout()->addWidget( m_header );
|
layout()->addWidget( m_header );
|
||||||
|
layout()->addWidget( lineAbove );
|
||||||
|
layout()->addWidget( lineAbove2 );
|
||||||
|
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 );
|
||||||
/* m_stack->addWidget( m_gridView );
|
m_stack->addWidget( m_treeView );
|
||||||
|
/* m_stack->addWidget( m_gridView );
|
||||||
m_stack->addWidget( m_trackView );*/
|
m_stack->addWidget( m_trackView );*/
|
||||||
|
|
||||||
setCurrentMode( Columns );
|
setCurrentMode( Columns );
|
||||||
|
|
||||||
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 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -86,7 +120,7 @@ FlexibleTreeView::~FlexibleTreeView()
|
|||||||
void
|
void
|
||||||
FlexibleTreeView::setGuid( const QString& guid )
|
FlexibleTreeView::setGuid( const QString& guid )
|
||||||
{
|
{
|
||||||
// m_trackView->setGuid( guid );
|
m_treeView->setGuid( guid );
|
||||||
m_columnView->setGuid( guid );
|
m_columnView->setGuid( guid );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -126,17 +160,17 @@ FlexibleTreeView::setColumnView( ColumnView* view )
|
|||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
FlexibleTreeView::setGridView( GridView* view )
|
FlexibleTreeView::setTreeView( TreeView* view )
|
||||||
{
|
{
|
||||||
if ( m_gridView )
|
if ( m_treeView )
|
||||||
{
|
{
|
||||||
m_stack->removeWidget( m_gridView );
|
m_stack->removeWidget( m_treeView );
|
||||||
delete m_gridView;
|
delete m_treeView;
|
||||||
}
|
}
|
||||||
|
|
||||||
view->setPlaylistInterface( m_trackView->proxyModel()->playlistInterface() );
|
// view->setPlaylistInterface( m_columnView->proxyModel()->playlistInterface() );
|
||||||
|
|
||||||
m_gridView = view;
|
m_treeView = view;
|
||||||
m_stack->addWidget( view );
|
m_stack->addWidget( view );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -154,7 +188,8 @@ FlexibleTreeView::setTreeModel( TreeModel* model )
|
|||||||
|
|
||||||
// m_trackView->setPlayableModel( model );
|
// m_trackView->setPlayableModel( model );
|
||||||
m_columnView->setTreeModel( model );
|
m_columnView->setTreeModel( model );
|
||||||
// m_gridView->setPlayableModel( model );
|
m_treeView->setTreeModel( model );
|
||||||
|
// m_gridView->setPlayableModel( model );
|
||||||
|
|
||||||
/* m_trackView->setSortingEnabled( false );
|
/* m_trackView->setSortingEnabled( false );
|
||||||
m_trackView->sortByColumn( -1 );
|
m_trackView->sortByColumn( -1 );
|
||||||
@@ -176,8 +211,7 @@ FlexibleTreeView::setCurrentMode( FlexibleTreeViewMode mode )
|
|||||||
{
|
{
|
||||||
case Flat:
|
case Flat:
|
||||||
{
|
{
|
||||||
tDebug() << "m_trackView:" << m_trackView << m_stack->indexOf( m_trackView );
|
m_stack->setCurrentWidget( m_treeView );
|
||||||
m_stack->setCurrentWidget( m_trackView );
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -189,7 +223,7 @@ FlexibleTreeView::setCurrentMode( FlexibleTreeViewMode mode )
|
|||||||
|
|
||||||
case Albums:
|
case Albums:
|
||||||
{
|
{
|
||||||
m_stack->setCurrentWidget( m_gridView );
|
// m_stack->setCurrentWidget( m_gridView );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -201,8 +235,7 @@ FlexibleTreeView::setCurrentMode( FlexibleTreeViewMode mode )
|
|||||||
Tomahawk::playlistinterface_ptr
|
Tomahawk::playlistinterface_ptr
|
||||||
FlexibleTreeView::playlistInterface() const
|
FlexibleTreeView::playlistInterface() const
|
||||||
{
|
{
|
||||||
return Tomahawk::playlistinterface_ptr();
|
return m_columnView->proxyModel()->playlistInterface();
|
||||||
return m_trackView->proxyModel()->playlistInterface();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -235,9 +268,9 @@ FlexibleTreeView::jumpToCurrentTrack()
|
|||||||
bool b = false;
|
bool b = false;
|
||||||
|
|
||||||
// note: the order of comparison is important here, if we'd write "b || foo" then foo will not be executed if b is already true!
|
// note: the order of comparison is important here, if we'd write "b || foo" then foo will not be executed if b is already true!
|
||||||
b = m_trackView->jumpToCurrentTrack() || b;
|
|
||||||
b = m_columnView->jumpToCurrentTrack() || b;
|
b = m_columnView->jumpToCurrentTrack() || b;
|
||||||
b = m_gridView->jumpToCurrentTrack() || b;
|
// b = m_trackView->jumpToCurrentTrack() || b;
|
||||||
|
b = m_treeView->jumpToCurrentTrack() || b;
|
||||||
|
|
||||||
return b;
|
return b;
|
||||||
}
|
}
|
||||||
@@ -249,7 +282,8 @@ FlexibleTreeView::setFilter( const QString& pattern )
|
|||||||
ViewPage::setFilter( pattern );
|
ViewPage::setFilter( pattern );
|
||||||
|
|
||||||
m_columnView->setFilter( pattern );
|
m_columnView->setFilter( pattern );
|
||||||
/* m_gridView->setFilter( pattern );
|
m_treeView->proxyModel()->setFilter( pattern );
|
||||||
|
/* m_gridView->setFilter( pattern );
|
||||||
m_trackView->setFilter( pattern );*/
|
m_trackView->setFilter( pattern );*/
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -260,7 +294,8 @@ void
|
|||||||
FlexibleTreeView::setEmptyTip( const QString& tip )
|
FlexibleTreeView::setEmptyTip( const QString& tip )
|
||||||
{
|
{
|
||||||
m_columnView->setEmptyTip( tip );
|
m_columnView->setEmptyTip( tip );
|
||||||
/* m_gridView->setEmptyTip( tip );
|
m_treeView->setEmptyTip( tip );
|
||||||
|
/* m_gridView->setEmptyTip( tip );
|
||||||
m_trackView->setEmptyTip( tip );*/
|
m_trackView->setEmptyTip( tip );*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -27,10 +27,12 @@ class QStackedWidget;
|
|||||||
|
|
||||||
class GridView;
|
class GridView;
|
||||||
class TrackView;
|
class TrackView;
|
||||||
|
class TreeView;
|
||||||
class ColumnView;
|
class ColumnView;
|
||||||
class TreeModel;
|
class TreeModel;
|
||||||
|
class ModeHeader;
|
||||||
class PlaylistModel;
|
class PlaylistModel;
|
||||||
class FlexibleHeader;
|
class FilterHeader;
|
||||||
|
|
||||||
class DLLEXPORT FlexibleTreeView : public QWidget, public Tomahawk::ViewPage
|
class DLLEXPORT FlexibleTreeView : public QWidget, public Tomahawk::ViewPage
|
||||||
{
|
{
|
||||||
@@ -56,13 +58,13 @@ public:
|
|||||||
void setTemporaryPage( bool b );
|
void setTemporaryPage( bool b );
|
||||||
|
|
||||||
ColumnView* columnView() const { return m_columnView; }
|
ColumnView* columnView() const { return m_columnView; }
|
||||||
GridView* gridView() const { return m_gridView; }
|
TreeView* treeView() const { return m_treeView; }
|
||||||
TrackView* trackView() const { return m_trackView; }
|
TrackView* trackView() const { return m_trackView; }
|
||||||
|
|
||||||
void setGuid( const QString& guid );
|
void setGuid( const QString& guid );
|
||||||
|
|
||||||
void setColumnView( ColumnView* view );
|
void setColumnView( ColumnView* view );
|
||||||
void setGridView( GridView* view );
|
void setTreeView( TreeView* view );
|
||||||
void setTrackView( TrackView* view );
|
void setTrackView( TrackView* view );
|
||||||
|
|
||||||
void setTreeModel( TreeModel* model );
|
void setTreeModel( TreeModel* model );
|
||||||
@@ -83,11 +85,12 @@ private slots:
|
|||||||
void onWidgetDestroyed( QWidget* widget );
|
void onWidgetDestroyed( QWidget* widget );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
FlexibleHeader* m_header;
|
FilterHeader* m_header;
|
||||||
|
ModeHeader* m_modeHeader;
|
||||||
QPixmap m_pixmap;
|
QPixmap m_pixmap;
|
||||||
|
|
||||||
ColumnView* m_columnView;
|
ColumnView* m_columnView;
|
||||||
GridView* m_gridView;
|
TreeView* m_treeView;
|
||||||
TrackView* m_trackView;
|
TrackView* m_trackView;
|
||||||
|
|
||||||
TreeModel* m_model;
|
TreeModel* m_model;
|
||||||
|
Reference in New Issue
Block a user