summaryrefslogtreecommitdiffstats
path: root/redhat/applications/k3b/reload-for-verification.diff
blob: a942981818b4956aa62a04af4e63daa3fc210ff2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
--- libk3b/jobs/k3bverificationjob.cpp.sav	2008-05-27 10:24:20.000000000 +0200
+++ libk3b/jobs/k3bverificationjob.cpp	2009-06-11 17:58:58.000000000 +0200
@@ -154,6 +154,20 @@ void K3bVerificationJob::start()
   emit newTask( i18n("Checking medium") );
 
   d->mediumHasBeenReloaded = false;
+  connect( K3bDevice::sendCommand( K3bDevice::DeviceHandler::LOAD, d->device ),
+           SIGNAL(finished(K3bDevice::DeviceHandler*)),
+           this,
+           SLOT(slotMediaLoaded()) );
+}
+
+void K3bVerificationJob::slotMediaLoaded()
+{
+    // we always need to wait for the medium. Otherwise the diskinfo below
+    // may run before the drive is ready!
+    waitForMedia( d->device,
+                  K3bDevice::STATE_COMPLETE|K3bDevice::STATE_INCOMPLETE,
+                  K3bDevice::MEDIA_WRITABLE );
+
   connect( K3bDevice::sendCommand( K3bDevice::DeviceHandler::DISKINFO, d->device ),
            SIGNAL(finished(K3bDevice::DeviceHandler*)),
            this,
--- libk3b/jobs/k3bverificationjob.h.sav	2008-05-27 10:24:20.000000000 +0200
+++ libk3b/jobs/k3bverificationjob.h	2009-06-11 17:13:37.000000000 +0200
@@ -75,6 +75,7 @@ class K3bVerificationJob : public K3bJob
   void setGrownSessionSize( const K3b::Msf& );
 
  private slots:
+  void slotMediaLoaded();
   void slotMediaReloaded( bool success );
   void slotDiskInfoReady( K3bDevice::DeviceHandler* dh );
   void readTrack( int trackIndex );