[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    extragear/multimedia/k3b/src/projects
From:       Sebastian Trueg <sebastian () trueg ! de>
Date:       2006-11-01 18:04:20
Message-ID: 1162404260.148823.28779.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 601018 by trueg:

* Fixed cancellation
* Show a passive popup if no metadata could be found.


 M  +12 -0     k3baudiotracktrmlookupdialog.cpp  
 M  +1 -0      k3baudiotracktrmlookupdialog.h  
 M  +8 -8      k3bmusicbrainzjob.cpp  
 M  +14 -0     k3bmusicbrainzjob.h  


--- trunk/extragear/multimedia/k3b/src/projects/k3baudiotracktrmlookupdialog.cpp #601017:601018
@@ -23,6 +23,7 @@
 #include <k3bbusywidget.h>
 #include <k3baudiotrack.h>
 #include <k3baudiofile.h>
+#include <k3bpassivepopup.h>
 
 #include <kmessagebox.h>
 #include <kinputdialog.h>
@@ -70,6 +71,8 @@
   connect( m_mbJob, SIGNAL(infoMessage(const QString&, int)), 
 	   this, SLOT(slotMbJobInfoMessage(const QString&, int)) );
   connect( m_mbJob, SIGNAL(finished(bool)), this, SLOT(slotMbJobFinished(bool)) );
+  connect( m_mbJob, SIGNAL(trackFinished(K3bAudioTrack*, bool)), 
+	   this, SLOT(slotTrackFinished(K3bAudioTrack*, bool)) );
 }
 
 
@@ -114,6 +117,15 @@
   m_mbJob->cancel();
 }
 
+
+void K3bAudioTrackTRMLookupDialog::slotTrackFinished( K3bAudioTrack* track, bool success )
+{
+  if( !success )
+    K3bPassivePopup::showPopup( i18n("Track %1 was not found in the MusicBrainz database.")
+				.arg( track->trackNumber()),
+				i18n("Audio Project") );
+}
+
 #include "k3baudiotracktrmlookupdialog.moc"
 
 #endif
--- trunk/extragear/multimedia/k3b/src/projects/k3baudiotracktrmlookupdialog.h #601017:601018
@@ -41,6 +41,7 @@
  private slots:
   void slotMbJobFinished( bool );
   void slotMbJobInfoMessage( const QString&, int );
+  void slotTrackFinished( K3bAudioTrack* track, bool success );
   void slotCancel();
 
  private:
--- trunk/extragear/multimedia/k3b/src/projects/k3bmusicbrainzjob.cpp #601017:601018
@@ -141,7 +141,8 @@
 
 // cannot use this as parent for the K3bSimpleJobHandler since this has not been constructed yet
 K3bMusicBrainzJob::K3bMusicBrainzJob( QWidget* parent, const char* name )
-  : K3bJob( new K3bSimpleJobHandler( 0 ), parent, name )
+  : K3bJob( new K3bSimpleJobHandler( 0 ), parent, name ),
+    m_canceled( false )
 {
   m_trmThread = new TRMThread();
   m_mbThread = new MusicBrainzThread();
@@ -169,6 +170,8 @@
 {
   jobStarted();
 
+  m_canceled = false;
+
   m_trmThread->track = m_tracks.first();
 
   emit infoMessage( i18n("Generating fingerprint for track %1.")
@@ -180,7 +183,9 @@
 
 void K3bMusicBrainzJob::cancel()
 {
+  m_canceled = true;
   m_trmJob->cancel();
+  m_mbJob->cancel();
 }
 
 
@@ -215,6 +220,8 @@
     jobFinished(false);
   }
   else {
+    emit trackFinished( m_tracks.current(), success );
+
     if( success ) {
       // found entries
       QStringList resultStrings, resultStringsUnique;
@@ -249,13 +256,6 @@
 	m_tracks.current()->setArtist( m_mbThread->artist(i) );
       }
     }
-    else {
-      // no entry found
-      // inform user
-      KMessageBox::error( dynamic_cast<QWidget*>(parent()),
-			  i18n("Track %1 was not found in the MusicBrainz database.")
-			  .arg( m_tracks.current()->trackNumber()) );
-    }
 
     // query next track
     if( m_tracks.next() ) {
--- trunk/extragear/multimedia/k3b/src/projects/k3bmusicbrainzjob.h #601017:601018
@@ -44,6 +44,18 @@
   K3bMusicBrainzJob( QWidget* parent = 0, const char* name = 0 );
   ~K3bMusicBrainzJob();
 
+  bool hasBeenCanceled() const { return m_canceled; }
+
+ signals:
+  /**
+   * Emitted for each track. This is signal can be used
+   * to display further information.
+   *
+   * \param track The track for which metadata was searched.
+   * \param success True if metadata was found
+   */
+  void trackFinished( K3bAudioTrack* track, bool success );
+
  public slots:
   void start();
   void cancel();
@@ -65,6 +77,8 @@
   K3bThreadJob* m_mbJob;
 
   QPtrList<K3bAudioTrack> m_tracks;
+
+  bool m_canceled;
 };
 
 
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic