mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-19 12:21:52 +02:00
Moved NewReleasesWidget into a separate viewpage plugin.
This commit is contained in:
@@ -139,7 +139,6 @@ set( libGuiSources
|
||||
widgets/HeaderLabel.cpp
|
||||
widgets/HistoryWidget.cpp
|
||||
widgets/ImageButton.cpp
|
||||
widgets/NewReleasesWidget.cpp
|
||||
widgets/OverlayButton.cpp
|
||||
widgets/OverlayWidget.cpp
|
||||
widgets/PlayableCover.cpp
|
||||
@@ -372,7 +371,6 @@ ENDIF(LIBLASTFM_FOUND)
|
||||
|
||||
set( libUI ${libUI}
|
||||
widgets/HeaderWidget.ui
|
||||
widgets/NewReleasesWidget.ui
|
||||
viewpages/SearchViewPage.ui
|
||||
viewpages/SourceViewPage.ui
|
||||
viewpages/ArtistViewPage.ui
|
||||
|
@@ -50,7 +50,6 @@
|
||||
#include "viewpages/AlbumViewPage.h"
|
||||
#include "viewpages/TrackViewPage.h"
|
||||
|
||||
#include "widgets/NewReleasesWidget.h"
|
||||
#include "widgets/AnimatedSplitter.h"
|
||||
|
||||
#include "utils/Logger.h"
|
||||
@@ -76,7 +75,6 @@ ViewManager::ViewManager( QObject* parent )
|
||||
: QObject( parent )
|
||||
, m_widget( new QWidget() )
|
||||
, m_queue( 0 )
|
||||
, m_newReleasesWidget( 0 )
|
||||
, m_inboxWidget( 0 )
|
||||
, m_currentPage( 0 )
|
||||
{
|
||||
@@ -104,7 +102,6 @@ ViewManager::ViewManager( QObject* parent )
|
||||
|
||||
ViewManager::~ViewManager()
|
||||
{
|
||||
delete m_newReleasesWidget;
|
||||
delete m_inboxWidget;
|
||||
delete m_widget;
|
||||
}
|
||||
@@ -350,19 +347,6 @@ ViewManager::playlistInterfaceChanged( Tomahawk::playlistinterface_ptr interface
|
||||
}
|
||||
|
||||
|
||||
Tomahawk::ViewPage*
|
||||
ViewManager::showNewReleasesPage()
|
||||
{
|
||||
if ( !m_newReleasesWidget )
|
||||
{
|
||||
m_newReleasesWidget = new NewReleasesWidget();
|
||||
m_newReleasesWidget->fetchData();
|
||||
}
|
||||
|
||||
return show( m_newReleasesWidget );
|
||||
}
|
||||
|
||||
|
||||
Tomahawk::ViewPage*
|
||||
ViewManager::showQueuePage()
|
||||
{
|
||||
@@ -659,13 +643,6 @@ ViewManager::showCurrentTrack()
|
||||
}
|
||||
|
||||
|
||||
Tomahawk::ViewPage*
|
||||
ViewManager::newReleasesWidget() const
|
||||
{
|
||||
return m_newReleasesWidget;
|
||||
}
|
||||
|
||||
|
||||
Tomahawk::ViewPage*
|
||||
ViewManager::inboxWidget() const
|
||||
{
|
||||
|
@@ -52,7 +52,6 @@ class TreeModel;
|
||||
class TrackView;
|
||||
class SourceInfoWidget;
|
||||
class TrackInfoWidget;
|
||||
class NewReleasesWidget;
|
||||
class QPushButton;
|
||||
class InboxModel;
|
||||
|
||||
@@ -82,9 +81,7 @@ public:
|
||||
|
||||
Tomahawk::ViewPage* show( Tomahawk::ViewPage* page );
|
||||
|
||||
Tomahawk::ViewPage* newReleasesWidget() const;
|
||||
Tomahawk::ViewPage* inboxWidget() const;
|
||||
|
||||
Tomahawk::ViewPage* dynamicPageWidget( const QString& pageName ) const;
|
||||
|
||||
InboxModel* inboxModel();
|
||||
@@ -120,7 +117,6 @@ signals:
|
||||
void viewPageAdded( const QString& pageName, Tomahawk::ViewPage* page, int sortValue );
|
||||
|
||||
public slots:
|
||||
Tomahawk::ViewPage* showNewReleasesPage();
|
||||
Tomahawk::ViewPage* showInboxPage();
|
||||
Tomahawk::ViewPage* showQueuePage();
|
||||
|
||||
@@ -162,7 +158,6 @@ private:
|
||||
AnimatedSplitter* m_splitter;
|
||||
|
||||
QueueView* m_queue;
|
||||
NewReleasesWidget* m_newReleasesWidget;
|
||||
Tomahawk::ViewPage* m_inboxWidget;
|
||||
InboxModel* m_inboxModel;
|
||||
|
||||
|
@@ -312,17 +312,6 @@ SourcesModel::appendGroups()
|
||||
InboxItem* inbox = new InboxItem( this, m_browse );
|
||||
inbox->setSortValue( 4 );
|
||||
|
||||
// super collection
|
||||
/* GenericPageItem* sc = new GenericPageItem( this, m_browse, tr( "SuperCollection" ), ImageRegistry::instance()->icon( RESPATH "images/supercollection.svg" ),
|
||||
boost::bind( &ViewManager::showSuperCollection, ViewManager::instance() ),
|
||||
boost::bind( &ViewManager::superCollectionView, ViewManager::instance() ) );
|
||||
sc->setSortValue( 5 );*/
|
||||
|
||||
GenericPageItem* newReleases = new GenericPageItem( this, m_browse, tr( "New Releases" ), ImageRegistry::instance()->icon( RESPATH "images/new-releases.svg" ),
|
||||
boost::bind( &ViewManager::showNewReleasesPage, ViewManager::instance() ),
|
||||
boost::bind( &ViewManager::newReleasesWidget, ViewManager::instance() ) );
|
||||
newReleases->setSortValue( 7 );
|
||||
|
||||
m_collectionsGroup = new GroupItem( this, m_rootItem, tr( "Friends" ), 4 );
|
||||
m_cloudGroup = new GroupItem( this, m_rootItem, tr( "Cloud Collections" ), 5 );
|
||||
|
||||
|
@@ -1,4 +1,3 @@
|
||||
|
||||
file(GLOB SUBDIRECTORIES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*")
|
||||
foreach(SUBDIRECTORY ${SUBDIRECTORIES})
|
||||
if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}" AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/CMakeLists.txt")
|
||||
|
@@ -25,17 +25,14 @@
|
||||
#include "ViewManager.h"
|
||||
#include "SourceList.h"
|
||||
#include "TomahawkSettings.h"
|
||||
#include "RecentPlaylistsModel.h"
|
||||
#include "ChartDataLoader.h"
|
||||
#include "Pipeline.h"
|
||||
|
||||
#include "audio/AudioEngine.h"
|
||||
#include "playlist/dynamic/GeneratorInterface.h"
|
||||
#include "playlist/PlaylistModel.h"
|
||||
#include "playlist/TreeProxyModel.h"
|
||||
#include "utils/TomahawkUtilsGui.h"
|
||||
#include "utils/Logger.h"
|
||||
#include "Pipeline.h"
|
||||
#include "utils/AnimatedSpinner.h"
|
||||
#include "widgets/ChartDataLoader.h"
|
||||
|
||||
#include <QPainter>
|
||||
#include <QStandardItemModel>
|
||||
#include <QStandardItem>
|
||||
@@ -46,6 +43,7 @@
|
||||
#define HISTORY_RESOLVING_TIMEOUT 2500
|
||||
|
||||
using namespace Tomahawk;
|
||||
using namespace Tomahawk::Widgets;
|
||||
|
||||
static QString s_newReleasesIdentifier = QString( "NewReleasesWidget" );
|
||||
|
||||
@@ -85,6 +83,8 @@ NewReleasesWidget::NewReleasesWidget( QWidget* parent )
|
||||
ui->breadCrumbLeft->setVisible( false );
|
||||
m_spinner = new AnimatedSpinner( ui->albumsView );
|
||||
m_spinner->fadeIn();
|
||||
|
||||
fetchData();
|
||||
}
|
||||
|
||||
|
||||
@@ -169,7 +169,7 @@ NewReleasesWidget::infoSystemInfo( Tomahawk::InfoSystem::InfoRequestData request
|
||||
|
||||
case InfoSystem::InfoNewRelease:
|
||||
{
|
||||
if( !returnedData.contains("type") )
|
||||
if ( !returnedData.contains("type") )
|
||||
break;
|
||||
const QString type = returnedData["type"].toString();
|
||||
if( !returnedData.contains(type) )
|
||||
@@ -378,3 +378,16 @@ NewReleasesWidget::newReleasesLoaded( ChartDataLoader* loader, const QList< albu
|
||||
m_workers.remove( loader );
|
||||
loader->deleteLater();
|
||||
}
|
||||
|
||||
|
||||
NewReleasesPage::NewReleasesPage( QWidget* parent )
|
||||
{
|
||||
Q_UNUSED( parent )
|
||||
}
|
||||
|
||||
|
||||
NewReleasesPage::~NewReleasesPage()
|
||||
{
|
||||
}
|
||||
|
||||
Q_EXPORT_PLUGIN2( ViewPagePlugin, NewReleasesPage )
|
@@ -1,7 +1,7 @@
|
||||
/* === This file is part of Tomahawk Player - <http://tomahawk-player.org> ===
|
||||
*
|
||||
* Copyright 2012, Casey Link <unnamedrambler@gmail.com>
|
||||
* Copyright 2010-2011, Christian Muehlhaeuser <muesli@tomahawk-player.org>
|
||||
* Copyright 2010-2014, Christian Muehlhaeuser <muesli@tomahawk-player.org>
|
||||
* Copyright 2011, Leo Franchi <lfranchi@kde.org>
|
||||
* Copyright 2011, Jeff Mitchell <jeff@tomahawk-player.org>
|
||||
*
|
||||
@@ -19,28 +19,19 @@
|
||||
* along with Tomahawk. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef NEWRELEASESWIDGET_H
|
||||
#define NEWRELEASESWIDGET_H
|
||||
#ifndef TOMAHAWK_NEWRELEASESWIDGET_H
|
||||
#define TOMAHAWK_NEWRELEASESWIDGET_H
|
||||
|
||||
#include "PlaylistInterface.h"
|
||||
#include "infosystem/InfoSystem.h"
|
||||
#include "ViewPage.h"
|
||||
|
||||
#include "DllMacro.h"
|
||||
|
||||
#include <QWidget>
|
||||
#include <QListWidgetItem>
|
||||
#include <QStyledItemDelegate>
|
||||
#include "../ViewPageDllMacro.h"
|
||||
#include "ViewPagePlugin.h"
|
||||
#include "ViewPageLazyLoader.h"
|
||||
|
||||
class AnimatedSpinner;
|
||||
class PlayableModel;
|
||||
class QSortFilterProxyModel;
|
||||
class QStandardItemModel;
|
||||
class QStandardItem;
|
||||
class TreeModel;
|
||||
class PlaylistModel;
|
||||
class TreeProxyModel;
|
||||
class AlbumModel;
|
||||
class PlayableModel;
|
||||
class AnimatedSpinner;
|
||||
|
||||
namespace Ui
|
||||
{
|
||||
class NewReleasesWidget;
|
||||
@@ -49,15 +40,18 @@ namespace Ui
|
||||
namespace Tomahawk
|
||||
{
|
||||
class ChartDataLoader;
|
||||
class ChartsPlaylistInterface;
|
||||
class ChartDataLoader;
|
||||
}
|
||||
|
||||
namespace Tomahawk
|
||||
{
|
||||
namespace Widgets
|
||||
{
|
||||
|
||||
/**
|
||||
* \class
|
||||
* \brief The tomahawk page that shows music charts.
|
||||
* \brief The tomahawk page that shows new releases.
|
||||
*/
|
||||
class DLLEXPORT NewReleasesWidget : public QWidget, public Tomahawk::ViewPage
|
||||
class DLLEXPORT NewReleasesWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
@@ -65,14 +59,8 @@ public:
|
||||
NewReleasesWidget( QWidget* parent = 0 );
|
||||
~NewReleasesWidget();
|
||||
|
||||
virtual QWidget* widget() { return this; }
|
||||
virtual Tomahawk::playlistinterface_ptr playlistInterface() const;
|
||||
|
||||
virtual QString title() const { return tr( "New Releases" ); }
|
||||
virtual QString description() const { return QString(); }
|
||||
|
||||
Tomahawk::playlistinterface_ptr playlistInterface() const;
|
||||
virtual bool isBeingPlayed() const;
|
||||
|
||||
virtual bool jumpToCurrentTrack();
|
||||
|
||||
protected:
|
||||
@@ -92,11 +80,9 @@ private slots:
|
||||
void newReleasesLoaded( Tomahawk::ChartDataLoader*, const QList< Tomahawk::album_ptr >& );
|
||||
|
||||
private:
|
||||
void setLeftViewArtists( TreeModel* artistModel );
|
||||
void setLeftViewAlbums( PlayableModel* albumModel );
|
||||
void setLeftViewTracks( PlaylistModel* trackModel );
|
||||
|
||||
|
||||
QStandardItem* parseNode( QStandardItem* parentItem, const QString &label, const QVariant &data );
|
||||
Ui::NewReleasesWidget *ui;
|
||||
Tomahawk::playlistinterface_ptr m_playlistInterface;
|
||||
@@ -116,7 +102,31 @@ private:
|
||||
QSet< QString > m_queuedFetches;
|
||||
AnimatedSpinner* m_spinner;
|
||||
bool m_loading;
|
||||
friend class Tomahawk::ChartsPlaylistInterface;
|
||||
};
|
||||
|
||||
#endif // NEWRELEASESWIDGET_H
|
||||
const QString NEWRELEASES_VIEWPAGE_NAME = "newreleases";
|
||||
|
||||
class TOMAHAWK_VIEWPAGE_EXPORT NewReleasesPage : public Tomahawk::ViewPageLazyLoader< NewReleasesWidget >
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_INTERFACES( Tomahawk::ViewPagePlugin )
|
||||
Q_PLUGIN_METADATA( IID "org.tomahawk-player.Player.ViewPagePlugin" )
|
||||
|
||||
public:
|
||||
NewReleasesPage( QWidget* parent = 0 );
|
||||
virtual ~NewReleasesPage();
|
||||
|
||||
const QString defaultName() Q_DECL_OVERRIDE { return NEWRELEASES_VIEWPAGE_NAME; }
|
||||
QString title() const Q_DECL_OVERRIDE { return tr( "New Releases" ); }
|
||||
QString description() const Q_DECL_OVERRIDE { return QString(); }
|
||||
|
||||
const QString pixmapPath() const Q_DECL_OVERRIDE { return ( RESPATH "images/new-releases.svg" ); }
|
||||
|
||||
int sortValue() Q_DECL_OVERRIDE { return 5; }
|
||||
};
|
||||
|
||||
|
||||
} // Widgets
|
||||
} // Tomahawk
|
||||
|
||||
#endif // TOMAHAWK_NEWRELEASESWIDGET_H
|
Reference in New Issue
Block a user