From 739eac30eb73796f128426888fbdd512999286eb Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Fri, 16 Nov 2012 07:16:09 +0100 Subject: [PATCH] * Update result and file properly when MetadataEditor writes its data. --- .../filemetadata/MetadataEditor.cpp | 30 +++++++++++-------- src/libtomahawk/filemetadata/MetadataEditor.h | 4 +-- .../filemetadata/MetadataEditor.ui | 2 +- 3 files changed, 21 insertions(+), 15 deletions(-) diff --git a/src/libtomahawk/filemetadata/MetadataEditor.cpp b/src/libtomahawk/filemetadata/MetadataEditor.cpp index 7611a5737..13d5932c1 100644 --- a/src/libtomahawk/filemetadata/MetadataEditor.cpp +++ b/src/libtomahawk/filemetadata/MetadataEditor.cpp @@ -89,20 +89,21 @@ MetadataEditor::writeMetadata( bool closeDlg ) } Tomahawk::artist_ptr newArtist = Tomahawk::Artist::get( artist(), true ); - if ( artist() != m_result->artist()->name() ) + if ( newArtist != m_result->artist() ) { tag->setArtist( artist() ); m_result->setArtist( newArtist ); } - if ( album() != m_result->album()->name() ) + Tomahawk::album_ptr newAlbum = Tomahawk::Album::get( newArtist, album(), true ); + if ( newAlbum != m_result->album() ) { tag->setAlbum( album() ); - m_result->setAlbum( Tomahawk::Album::get( newArtist, album(), true ) ); + m_result->setAlbum( newAlbum ); } - tag->setTrack( discnumber() ); - m_result->setDiscNumber( discnumber() ); + tag->setTrack( albumPos() ); + m_result->setAlbumPos( albumPos() ); if ( year() != m_result->year() ) { @@ -113,9 +114,13 @@ MetadataEditor::writeMetadata( bool closeDlg ) f.save(); m_editFiles.append( fileName ); + m_result->doneEditing(); + tDebug() << Q_FUNC_INFO << m_result->toString(); + tDebug() << Q_FUNC_INFO << m_result->toQuery()->toString(); - if ( closeDlg ) { - ScanManager::instance()->runFileScan( m_editFiles ); + if ( closeDlg ) + { + ScanManager::instance()->runFileScan( m_editFiles, false ); close(); } } @@ -131,7 +136,7 @@ MetadataEditor::loadResult( const Tomahawk::result_ptr& result ) setTitle( result->track() ); setArtist( result->artist()->name() ); setAlbum( result->album()->name() ); - setDiscNumber( result->albumpos() ); + setAlbumPos( result->albumpos() ); setDuration( result->duration() ); setYear( result->year() ); setBitrate( result->bitrate() ); @@ -144,7 +149,8 @@ MetadataEditor::loadResult( const Tomahawk::result_ptr& result ) } -void MetadataEditor::enablePushButtons() +void +MetadataEditor::enablePushButtons() { if ( !m_interface->setCurrentTrack( m_result->albumpos() ) ) tDebug() << "Error setting current track for MetadataEditor."; @@ -199,16 +205,16 @@ MetadataEditor::setAlbum( const QString& album ) void -MetadataEditor::setDiscNumber( unsigned int num ) +MetadataEditor::setAlbumPos( unsigned int num ) { - ui->discNumberSpinBox->setValue( num ); + ui->albumPosSpinBox->setValue( num ); } void MetadataEditor::setDuration( unsigned int duration ) { - ui->durationLineEdit->setText( TomahawkUtils::timeToString( duration ) ); + ui->durationLineEdit->setText( TomahawkUtils::timeToString( duration ) ); } diff --git a/src/libtomahawk/filemetadata/MetadataEditor.h b/src/libtomahawk/filemetadata/MetadataEditor.h index 641ca0049..720f484d9 100644 --- a/src/libtomahawk/filemetadata/MetadataEditor.h +++ b/src/libtomahawk/filemetadata/MetadataEditor.h @@ -42,7 +42,7 @@ protected: QString title() const { return ui->titleLineEdit->text(); } QString artist() const { return ui->artistLineEdit->text(); } QString album() const { return ui->albumLineEdit->text(); } - int discnumber() const { return ui->discNumberSpinBox->value(); } + int albumPos() const { return ui->albumPosSpinBox->value(); } int year() const { return ui->yearSpinBox->value(); } int bitrate() const { return ui->bitrateSpinBox->value(); } void loadResult( const Tomahawk::result_ptr& result ); @@ -57,7 +57,7 @@ private slots: void setTitle( const QString& title ); void setArtist( const QString& artist ); void setAlbum( const QString& album ); - void setDiscNumber( unsigned int num ); + void setAlbumPos( unsigned int num ); void setDuration( unsigned int duration ); void setYear( int year ); void setBitrate( unsigned int num ); diff --git a/src/libtomahawk/filemetadata/MetadataEditor.ui b/src/libtomahawk/filemetadata/MetadataEditor.ui index 01a444796..bd8ee22f2 100644 --- a/src/libtomahawk/filemetadata/MetadataEditor.ui +++ b/src/libtomahawk/filemetadata/MetadataEditor.ui @@ -92,7 +92,7 @@ - + 0