1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-10 08:04:25 +02:00

* When pressing prev/next in the MetadataEditor, walk through the passed-in PlaylistInterface.

This commit is contained in:
Christian Muehlhaeuser
2012-11-16 08:29:48 +01:00
parent 23afd7a8a4
commit 286ec6c47c
2 changed files with 21 additions and 23 deletions

View File

@@ -38,11 +38,12 @@
#include "utils/Closure.h"
MetadataEditor::MetadataEditor( const Tomahawk::result_ptr& result, QWidget* parent )
MetadataEditor::MetadataEditor( const Tomahawk::result_ptr& result, const Tomahawk::playlistinterface_ptr& interface, QWidget* parent )
: QDialog( parent )
, ui( new Ui::MetadataEditor )
, m_result( result )
, m_interface( 0 )
, m_interface( interface )
, m_index( 0 )
{
ui->setupUi( this );
setWindowTitle( QString( result->track() + tr( " - Properties" ) ) );
@@ -55,18 +56,6 @@ MetadataEditor::MetadataEditor( const Tomahawk::result_ptr& result, QWidget* par
connect( ui->forwardPushButton, SIGNAL( clicked() ), SLOT( loadNextResult() ) );
connect( ui->previousPushButton, SIGNAL( clicked() ), SLOT( loadPreviousResult() ) );
m_interface = Tomahawk::playlistinterface_ptr( new Tomahawk::AlbumPlaylistInterface(
result->album().data(),
Tomahawk::DatabaseMode,
result->collection() ) );
connect( m_interface.data(),
SIGNAL( tracksLoaded( Tomahawk::ModelMode,
const Tomahawk::collection_ptr& ) ),
SLOT( enablePushButtons() ) );
/* Initiate the interface */
m_interface->tracks();
loadResult( result );
}
@@ -145,22 +134,21 @@ MetadataEditor::loadResult( const Tomahawk::result_ptr& result )
setFileName( fi.fileName() );
setFileSize( TomahawkUtils::filesizeToString( fi.size() ) );
enablePushButtons();
m_index = m_interface->indexOfResult( result );
if ( m_index >= 0 )
enablePushButtons();
}
void
MetadataEditor::enablePushButtons()
{
if ( !m_interface->setCurrentTrack( m_result->albumpos() ) )
tDebug() << "Error setting current track for MetadataEditor.";
if ( m_interface->hasNextItem() )
if ( m_interface->itemAt( m_index + 1 ) )
ui->forwardPushButton->setEnabled( true );
else
ui->forwardPushButton->setEnabled( false );
if ( m_interface->hasPreviousItem() )
if ( m_interface->itemAt( m_index - 1 ) )
ui->previousPushButton->setEnabled( true );
else
ui->previousPushButton->setEnabled( false );
@@ -171,7 +159,11 @@ void
MetadataEditor::loadNextResult()
{
writeMetadata();
loadResult( m_interface->nextItem() );
m_index++;
if ( m_interface->itemAt( m_index )->numResults() )
loadResult( m_interface->itemAt( m_index )->results().first() );
}
@@ -179,7 +171,11 @@ void
MetadataEditor::loadPreviousResult()
{
writeMetadata();
loadResult( m_interface->previousItem() );
m_index--;
if ( m_interface->itemAt( m_index )->numResults() )
loadResult( m_interface->itemAt( m_index )->results().first() );
}

View File

@@ -35,7 +35,7 @@ class MetadataEditor : public QDialog
Q_OBJECT
public:
MetadataEditor( const Tomahawk::result_ptr& result, QWidget* parent = 0 );
MetadataEditor( const Tomahawk::result_ptr& result, const Tomahawk::playlistinterface_ptr& interface, QWidget* parent = 0 );
~MetadataEditor() {};
protected:
@@ -72,6 +72,8 @@ private:
Tomahawk::result_ptr m_result;
Tomahawk::playlistinterface_ptr m_interface;
QStringList m_editFiles;
int m_index;
};
#endif // METADATAEDITOR_H