mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-05 05:37:29 +02:00
Dpointerize NetworkActivityWidget
This commit is contained in:
@@ -16,8 +16,7 @@
|
|||||||
* along with Tomahawk. If not, see <http://www.gnu.org/licenses/>.
|
* along with Tomahawk. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "NetworkActivityWidget.h"
|
#include "NetworkActivityWidget_p.h"
|
||||||
#include "ui_NetworkActivityWidget.h"
|
|
||||||
|
|
||||||
#include "Pipeline.h"
|
#include "Pipeline.h"
|
||||||
#include "audio/AudioEngine.h"
|
#include "audio/AudioEngine.h"
|
||||||
@@ -40,55 +39,56 @@ using namespace Tomahawk;
|
|||||||
|
|
||||||
NetworkActivityWidget::NetworkActivityWidget( QWidget* parent )
|
NetworkActivityWidget::NetworkActivityWidget( QWidget* parent )
|
||||||
: QWidget( parent )
|
: QWidget( parent )
|
||||||
, ui( new Ui::NetworkActivityWidget )
|
, d_ptr( new NetworkActivityWidgetPrivate ( this ) )
|
||||||
, m_sortedProxy( 0 )
|
|
||||||
{
|
{
|
||||||
ui->setupUi( this );
|
d_func()->ui->setupUi( this );
|
||||||
|
|
||||||
TomahawkUtils::unmarginLayout( layout() );
|
TomahawkUtils::unmarginLayout( layout() );
|
||||||
TomahawkUtils::unmarginLayout( ui->stackLeft->layout() );
|
TomahawkUtils::unmarginLayout( d_func()->ui->stackLeft->layout() );
|
||||||
TomahawkUtils::unmarginLayout( ui->horizontalLayout->layout() );
|
TomahawkUtils::unmarginLayout( d_func()->ui->verticalLayout_2->layout() );
|
||||||
TomahawkUtils::unmarginLayout( ui->breadCrumbLeft->layout() );
|
TomahawkUtils::unmarginLayout( d_func()->ui->horizontalLayout->layout() );
|
||||||
|
TomahawkUtils::unmarginLayout( d_func()->ui->breadCrumbLeft->layout() );
|
||||||
|
|
||||||
m_crumbModelLeft = new QStandardItemModel( this );
|
d_func()->crumbModelLeft = new QStandardItemModel( this );
|
||||||
m_sortedProxy = new QSortFilterProxyModel( this );
|
d_func()->sortedProxy = new QSortFilterProxyModel( this );
|
||||||
m_sortedProxy->setDynamicSortFilter( true );
|
d_func()->sortedProxy->setDynamicSortFilter( true );
|
||||||
m_sortedProxy->setFilterCaseSensitivity( Qt::CaseInsensitive );
|
d_func()->sortedProxy->setFilterCaseSensitivity( Qt::CaseInsensitive );
|
||||||
|
|
||||||
ui->breadCrumbLeft->setRootIcon( TomahawkUtils::defaultPixmap( TomahawkUtils::NetworkActivity, TomahawkUtils::Original ) );
|
d_func()->ui->breadCrumbLeft->setRootIcon( TomahawkUtils::defaultPixmap( TomahawkUtils::NetworkActivity, TomahawkUtils::Original ) );
|
||||||
connect( ui->breadCrumbLeft, SIGNAL( activateIndex( QModelIndex ) ), SLOT( leftCrumbIndexChanged( QModelIndex ) ) );
|
connect( d_func()->ui->breadCrumbLeft, SIGNAL( activateIndex( QModelIndex ) ), SLOT( leftCrumbIndexChanged( QModelIndex ) ) );
|
||||||
|
|
||||||
ui->tracksViewLeft->setHeaderHidden( true );
|
d_func()->ui->tracksViewLeft->setHeaderHidden( true );
|
||||||
ui->tracksViewLeft->setHorizontalScrollBarPolicy( Qt::ScrollBarAlwaysOff );
|
d_func()->ui->tracksViewLeft->setHorizontalScrollBarPolicy( Qt::ScrollBarAlwaysOff );
|
||||||
PlaylistChartItemDelegate* del = new PlaylistChartItemDelegate( ui->tracksViewLeft, ui->tracksViewLeft->proxyModel() );
|
PlaylistChartItemDelegate* del = new PlaylistChartItemDelegate( d_func()->ui->tracksViewLeft, d_func()->ui->tracksViewLeft->proxyModel() );
|
||||||
ui->tracksViewLeft->setItemDelegate( del );
|
d_func()->ui->tracksViewLeft->setItemDelegate( del );
|
||||||
ui->tracksViewLeft->setUniformRowHeights( false );
|
d_func()->ui->tracksViewLeft->setUniformRowHeights( false );
|
||||||
|
|
||||||
m_playlistInterface = ui->tracksViewLeft->playlistInterface();
|
d_func()->playlistInterface = d_func()->ui->tracksViewLeft->playlistInterface();
|
||||||
|
|
||||||
// Lets have a spinner until loaded
|
// Lets have a spinner until loaded
|
||||||
ui->breadCrumbLeft->setVisible( false );
|
d_func()->ui->breadCrumbLeft->setVisible( false );
|
||||||
m_spinner = new AnimatedSpinner( ui->tracksViewLeft );
|
d_func()->spinner = new AnimatedSpinner( d_func()->ui->tracksViewLeft );
|
||||||
m_spinner->fadeIn();
|
d_func()->spinner->fadeIn();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
NetworkActivityWidget::~NetworkActivityWidget()
|
NetworkActivityWidget::~NetworkActivityWidget()
|
||||||
{
|
{
|
||||||
|
delete d_ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Tomahawk::playlistinterface_ptr
|
Tomahawk::playlistinterface_ptr
|
||||||
NetworkActivityWidget::playlistInterface() const
|
NetworkActivityWidget::playlistInterface() const
|
||||||
{
|
{
|
||||||
return m_playlistInterface;
|
return d_func()->playlistInterface;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool
|
bool
|
||||||
NetworkActivityWidget::isBeingPlayed() const
|
NetworkActivityWidget::isBeingPlayed() const
|
||||||
{
|
{
|
||||||
if ( AudioEngine::instance()->currentTrackPlaylist() == ui->tracksViewLeft->playlistInterface() )
|
if ( AudioEngine::instance()->currentTrackPlaylist() == d_func()->ui->tracksViewLeft->playlistInterface() )
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
@@ -98,7 +98,7 @@ NetworkActivityWidget::isBeingPlayed() const
|
|||||||
bool
|
bool
|
||||||
NetworkActivityWidget::jumpToCurrentTrack()
|
NetworkActivityWidget::jumpToCurrentTrack()
|
||||||
{
|
{
|
||||||
if ( ui->tracksViewLeft->model() && ui->tracksViewLeft->jumpToCurrentTrack() )
|
if ( d_func()->ui->tracksViewLeft->model() && d_func()->ui->tracksViewLeft->jumpToCurrentTrack() )
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
@@ -116,11 +116,11 @@ NetworkActivityWidget::fetchData()
|
|||||||
void
|
void
|
||||||
NetworkActivityWidget::weeklyCharts( const QList<Tomahawk::track_ptr>& tracks )
|
NetworkActivityWidget::weeklyCharts( const QList<Tomahawk::track_ptr>& tracks )
|
||||||
{
|
{
|
||||||
m_weeklyChartsModel = new PlaylistModel( ui->tracksViewLeft );
|
d_func()->weeklyChartsModel = new PlaylistModel( d_func()->ui->tracksViewLeft );
|
||||||
m_weeklyChartsModel->startLoading();
|
d_func()->weeklyChartsModel->startLoading();
|
||||||
// Pipeline::instance()->resolve( tracks );
|
// Pipeline::instance()->resolve( tracks );
|
||||||
m_weeklyChartsModel->appendTracks( tracks );
|
d_func()->weeklyChartsModel->appendTracks( tracks );
|
||||||
m_weeklyChartsModel->finishLoading();
|
d_func()->weeklyChartsModel->finishLoading();
|
||||||
|
|
||||||
checkDone();
|
checkDone();
|
||||||
}
|
}
|
||||||
@@ -129,11 +129,11 @@ NetworkActivityWidget::weeklyCharts( const QList<Tomahawk::track_ptr>& tracks )
|
|||||||
void
|
void
|
||||||
NetworkActivityWidget::monthlyCharts( const QList<Tomahawk::track_ptr>& tracks )
|
NetworkActivityWidget::monthlyCharts( const QList<Tomahawk::track_ptr>& tracks )
|
||||||
{
|
{
|
||||||
m_monthlyChartsModel = new PlaylistModel( ui->tracksViewLeft );
|
d_func()->monthlyChartsModel = new PlaylistModel( d_func()->ui->tracksViewLeft );
|
||||||
m_monthlyChartsModel->startLoading();
|
d_func()->monthlyChartsModel->startLoading();
|
||||||
// Pipeline::instance()->resolve( tracks );
|
// Pipeline::instance()->resolve( tracks );
|
||||||
m_monthlyChartsModel->appendTracks( tracks );
|
d_func()->monthlyChartsModel->appendTracks( tracks );
|
||||||
m_monthlyChartsModel->finishLoading();
|
d_func()->monthlyChartsModel->finishLoading();
|
||||||
|
|
||||||
checkDone();
|
checkDone();
|
||||||
}
|
}
|
||||||
@@ -142,11 +142,11 @@ NetworkActivityWidget::monthlyCharts( const QList<Tomahawk::track_ptr>& tracks )
|
|||||||
void
|
void
|
||||||
NetworkActivityWidget::yearlyCharts( const QList<Tomahawk::track_ptr>& tracks )
|
NetworkActivityWidget::yearlyCharts( const QList<Tomahawk::track_ptr>& tracks )
|
||||||
{
|
{
|
||||||
m_yearlyChartsModel = new PlaylistModel( ui->tracksViewLeft );
|
d_func()->yearlyChartsModel = new PlaylistModel( d_func()->ui->tracksViewLeft );
|
||||||
m_yearlyChartsModel->startLoading();
|
d_func()->yearlyChartsModel->startLoading();
|
||||||
// Pipeline::instance()->resolve( tracks );
|
// Pipeline::instance()->resolve( tracks );
|
||||||
m_yearlyChartsModel->appendTracks( tracks );
|
d_func()->yearlyChartsModel->appendTracks( tracks );
|
||||||
m_yearlyChartsModel->finishLoading();
|
d_func()->yearlyChartsModel->finishLoading();
|
||||||
|
|
||||||
checkDone();
|
checkDone();
|
||||||
}
|
}
|
||||||
@@ -155,7 +155,7 @@ NetworkActivityWidget::yearlyCharts( const QList<Tomahawk::track_ptr>& tracks )
|
|||||||
void
|
void
|
||||||
NetworkActivityWidget::leftCrumbIndexChanged( const QModelIndex& index )
|
NetworkActivityWidget::leftCrumbIndexChanged( const QModelIndex& index )
|
||||||
{
|
{
|
||||||
QStandardItem* item = m_crumbModelLeft->itemFromIndex( m_sortedProxy->mapToSource( index ) );
|
QStandardItem* item = d_func()->crumbModelLeft->itemFromIndex( d_func()->sortedProxy->mapToSource( index ) );
|
||||||
if ( !item )
|
if ( !item )
|
||||||
return;
|
return;
|
||||||
if ( !item->data( Breadcrumb::ChartIdRole ).isValid() )
|
if ( !item->data( Breadcrumb::ChartIdRole ).isValid() )
|
||||||
@@ -164,21 +164,21 @@ NetworkActivityWidget::leftCrumbIndexChanged( const QModelIndex& index )
|
|||||||
const QString chartId = item->data( Breadcrumb::ChartIdRole ).toString();
|
const QString chartId = item->data( Breadcrumb::ChartIdRole ).toString();
|
||||||
if ( chartId == NETWORKCHARTS_WEEK_CHARTS )
|
if ( chartId == NETWORKCHARTS_WEEK_CHARTS )
|
||||||
{
|
{
|
||||||
ui->tracksViewLeft->proxyModel()->setStyle( PlayableProxyModel::Large );
|
d_func()->ui->tracksViewLeft->proxyModel()->setStyle( PlayableProxyModel::Large );
|
||||||
ui->tracksViewLeft->setPlaylistModel( m_weeklyChartsModel );
|
d_func()->ui->tracksViewLeft->setPlaylistModel( d_func()->weeklyChartsModel );
|
||||||
ui->tracksViewLeft->proxyModel()->sort( -1 );
|
d_func()->ui->tracksViewLeft->proxyModel()->sort( -1 );
|
||||||
}
|
}
|
||||||
else if ( chartId == NETWORKCHARTS_MONTH_CHARTS )
|
else if ( chartId == NETWORKCHARTS_MONTH_CHARTS )
|
||||||
{
|
{
|
||||||
ui->tracksViewLeft->proxyModel()->setStyle( PlayableProxyModel::Large );
|
d_func()->ui->tracksViewLeft->proxyModel()->setStyle( PlayableProxyModel::Large );
|
||||||
ui->tracksViewLeft->setPlaylistModel( m_monthlyChartsModel );
|
d_func()->ui->tracksViewLeft->setPlaylistModel( d_func()->monthlyChartsModel );
|
||||||
ui->tracksViewLeft->proxyModel()->sort( -1 );
|
d_func()->ui->tracksViewLeft->proxyModel()->sort( -1 );
|
||||||
}
|
}
|
||||||
else if ( chartId == NETWORKCHARTS_YEAR_CHARTS )
|
else if ( chartId == NETWORKCHARTS_YEAR_CHARTS )
|
||||||
{
|
{
|
||||||
ui->tracksViewLeft->proxyModel()->setStyle( PlayableProxyModel::Large );
|
d_func()->ui->tracksViewLeft->proxyModel()->setStyle( PlayableProxyModel::Large );
|
||||||
ui->tracksViewLeft->setPlaylistModel( m_yearlyChartsModel );
|
d_func()->ui->tracksViewLeft->setPlaylistModel( d_func()->yearlyChartsModel );
|
||||||
ui->tracksViewLeft->proxyModel()->sort( -1 );
|
d_func()->ui->tracksViewLeft->proxyModel()->sort( -1 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -214,12 +214,12 @@ NetworkActivityWidget::actualFetchData()
|
|||||||
void
|
void
|
||||||
NetworkActivityWidget::checkDone()
|
NetworkActivityWidget::checkDone()
|
||||||
{
|
{
|
||||||
if ( !m_weeklyChartsModel.isNull() && !m_yearlyChartsModel.isNull() && !m_monthlyChartsModel.isNull() )
|
if ( !d_func()->weeklyChartsModel.isNull() && !d_func()->yearlyChartsModel.isNull() && !d_func()->monthlyChartsModel.isNull() )
|
||||||
{
|
{
|
||||||
// All charts are loaded, do the remaining work UI work.
|
// All charts are loaded, do the remaining work UI work.
|
||||||
|
|
||||||
// Build up breadcrumb
|
// Build up breadcrumb
|
||||||
QStandardItem* rootItem = m_crumbModelLeft->invisibleRootItem();
|
QStandardItem* rootItem = d_func()->crumbModelLeft->invisibleRootItem();
|
||||||
QStandardItem* chartItem = new QStandardItem( tr( "Charts" ) );
|
QStandardItem* chartItem = new QStandardItem( tr( "Charts" ) );
|
||||||
rootItem->appendRow( chartItem );
|
rootItem->appendRow( chartItem );
|
||||||
QStandardItem* weekItem = new QStandardItem( tr( "Last Week" ) );
|
QStandardItem* weekItem = new QStandardItem( tr( "Last Week" ) );
|
||||||
@@ -231,11 +231,11 @@ NetworkActivityWidget::checkDone()
|
|||||||
QStandardItem* yearItem = new QStandardItem( tr( "Last Year" ) );
|
QStandardItem* yearItem = new QStandardItem( tr( "Last Year" ) );
|
||||||
yearItem->setData( NETWORKCHARTS_YEAR_CHARTS, Breadcrumb::ChartIdRole );
|
yearItem->setData( NETWORKCHARTS_YEAR_CHARTS, Breadcrumb::ChartIdRole );
|
||||||
chartItem->appendRow( yearItem );
|
chartItem->appendRow( yearItem );
|
||||||
m_sortedProxy->setSourceModel( m_crumbModelLeft );
|
d_func()->sortedProxy->setSourceModel( d_func()->crumbModelLeft );
|
||||||
m_sortedProxy->sort( 0, Qt::AscendingOrder );
|
d_func()->sortedProxy->sort( 0, Qt::AscendingOrder );
|
||||||
ui->breadCrumbLeft->setModel( m_sortedProxy );
|
d_func()->ui->breadCrumbLeft->setModel( d_func()->sortedProxy );
|
||||||
|
|
||||||
m_spinner->fadeOut();
|
d_func()->spinner->fadeOut();
|
||||||
ui->breadCrumbLeft->setVisible( true );
|
d_func()->ui->breadCrumbLeft->setVisible( true );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -22,6 +22,7 @@
|
|||||||
#include "ViewPage.h"
|
#include "ViewPage.h"
|
||||||
|
|
||||||
class AnimatedSpinner;
|
class AnimatedSpinner;
|
||||||
|
class NetworkActivityWidgetPrivate;
|
||||||
class PlaylistModel;
|
class PlaylistModel;
|
||||||
class QModelIndex;
|
class QModelIndex;
|
||||||
class QStandardItemModel;
|
class QStandardItemModel;
|
||||||
@@ -63,16 +64,8 @@ private:
|
|||||||
void actualFetchData();
|
void actualFetchData();
|
||||||
void checkDone();
|
void checkDone();
|
||||||
|
|
||||||
QSharedPointer<Ui::NetworkActivityWidget> ui;
|
Q_DECLARE_PRIVATE( NetworkActivityWidget )
|
||||||
Tomahawk::playlistinterface_ptr m_playlistInterface;
|
NetworkActivityWidgetPrivate* d_ptr;
|
||||||
AnimatedSpinner* m_spinner;
|
|
||||||
QStandardItemModel* m_crumbModelLeft;
|
|
||||||
QSortFilterProxyModel* m_sortedProxy;
|
|
||||||
|
|
||||||
QPointer<PlaylistModel> m_weeklyChartsModel;
|
|
||||||
QPointer<PlaylistModel> m_monthlyChartsModel;
|
|
||||||
QPointer<PlaylistModel> m_yearlyChartsModel;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // NETWORKACTIVITYWIDGET_H
|
#endif // NETWORKACTIVITYWIDGET_H
|
||||||
|
49
src/libtomahawk/widgets/NetworkActivityWidget_p.h
Normal file
49
src/libtomahawk/widgets/NetworkActivityWidget_p.h
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
/* === This file is part of Tomahawk Player - <http://tomahawk-player.org> ===
|
||||||
|
*
|
||||||
|
* Copyright 2013, Uwe L. Korn <uwelk@xhochy.com>
|
||||||
|
*
|
||||||
|
* Tomahawk is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* Tomahawk is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with Tomahawk. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef NETWORKACTIVITYWIDGET_P_H
|
||||||
|
#define NETWORKACTIVITYWIDGET_P_H
|
||||||
|
|
||||||
|
#include "NetworkActivityWidget.h"
|
||||||
|
#include "ui_NetworkActivityWidget.h"
|
||||||
|
|
||||||
|
class NetworkActivityWidgetPrivate
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
NetworkActivityWidgetPrivate( NetworkActivityWidget* q )
|
||||||
|
: q_ptr ( q )
|
||||||
|
, ui( new Ui::NetworkActivityWidget )
|
||||||
|
, sortedProxy( 0 )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
NetworkActivityWidget* q_ptr;
|
||||||
|
Q_DECLARE_PUBLIC ( NetworkActivityWidget )
|
||||||
|
|
||||||
|
private:
|
||||||
|
QSharedPointer<Ui::NetworkActivityWidget> ui;
|
||||||
|
Tomahawk::playlistinterface_ptr playlistInterface;
|
||||||
|
AnimatedSpinner* spinner;
|
||||||
|
QStandardItemModel* crumbModelLeft;
|
||||||
|
QSortFilterProxyModel* sortedProxy;
|
||||||
|
|
||||||
|
QPointer<PlaylistModel> weeklyChartsModel;
|
||||||
|
QPointer<PlaylistModel> monthlyChartsModel;
|
||||||
|
QPointer<PlaylistModel> yearlyChartsModel;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // NETWORKACTIVITYWIDGET_P_H
|
Reference in New Issue
Block a user