mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-11 00:24:12 +02:00
* When pressing prev/next in the MetadataEditor, walk through the passed-in PlaylistInterface.
This commit is contained in:
@@ -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() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -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
|
||||||
|
Reference in New Issue
Block a user