1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-11 08:34:34 +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" #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 ) : QDialog( parent )
, ui( new Ui::MetadataEditor ) , ui( new Ui::MetadataEditor )
, m_result( result ) , m_result( result )
, m_interface( 0 ) , m_interface( interface )
, m_index( 0 )
{ {
ui->setupUi( this ); ui->setupUi( this );
setWindowTitle( QString( result->track() + tr( " - Properties" ) ) ); 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->forwardPushButton, SIGNAL( clicked() ), SLOT( loadNextResult() ) );
connect( ui->previousPushButton, SIGNAL( clicked() ), SLOT( loadPreviousResult() ) ); 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 ); loadResult( result );
} }
@@ -145,22 +134,21 @@ MetadataEditor::loadResult( const Tomahawk::result_ptr& result )
setFileName( fi.fileName() ); setFileName( fi.fileName() );
setFileSize( TomahawkUtils::filesizeToString( fi.size() ) ); setFileSize( TomahawkUtils::filesizeToString( fi.size() ) );
enablePushButtons(); m_index = m_interface->indexOfResult( result );
if ( m_index >= 0 )
enablePushButtons();
} }
void void
MetadataEditor::enablePushButtons() MetadataEditor::enablePushButtons()
{ {
if ( !m_interface->setCurrentTrack( m_result->albumpos() ) ) if ( m_interface->itemAt( m_index + 1 ) )
tDebug() << "Error setting current track for MetadataEditor.";
if ( m_interface->hasNextItem() )
ui->forwardPushButton->setEnabled( true ); ui->forwardPushButton->setEnabled( true );
else else
ui->forwardPushButton->setEnabled( false ); ui->forwardPushButton->setEnabled( false );
if ( m_interface->hasPreviousItem() ) if ( m_interface->itemAt( m_index - 1 ) )
ui->previousPushButton->setEnabled( true ); ui->previousPushButton->setEnabled( true );
else else
ui->previousPushButton->setEnabled( false ); ui->previousPushButton->setEnabled( false );
@@ -171,7 +159,11 @@ void
MetadataEditor::loadNextResult() MetadataEditor::loadNextResult()
{ {
writeMetadata(); 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() MetadataEditor::loadPreviousResult()
{ {
writeMetadata(); 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 Q_OBJECT
public: 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() {}; ~MetadataEditor() {};
protected: protected:
@@ -72,6 +72,8 @@ private:
Tomahawk::result_ptr m_result; Tomahawk::result_ptr m_result;
Tomahawk::playlistinterface_ptr m_interface; Tomahawk::playlistinterface_ptr m_interface;
QStringList m_editFiles; QStringList m_editFiles;
int m_index;
}; };
#endif // METADATAEDITOR_H #endif // METADATAEDITOR_H