diff options
Diffstat (limited to 'mandriva/2010.2/applications/k3b/verify-reload-fix.patch')
-rw-r--r-- | mandriva/2010.2/applications/k3b/verify-reload-fix.patch | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/mandriva/2010.2/applications/k3b/verify-reload-fix.patch b/mandriva/2010.2/applications/k3b/verify-reload-fix.patch new file mode 100644 index 000000000..acba642c5 --- /dev/null +++ b/mandriva/2010.2/applications/k3b/verify-reload-fix.patch @@ -0,0 +1,89 @@ +diff -ur k3b-1.0.4/ChangeLog k3b-1.0.4-verification-always-reload/ChangeLog +--- k3b-1.0.4/ChangeLog 2007-11-02 10:55:57.000000000 +0100 ++++ k3b-1.0.4-verification-always-reload/ChangeLog 2007-12-07 19:33:18.000000000 +0100 +@@ -4,9 +4,6 @@ + * Unmount medium before DVD formatting + * Silently (without introducing new strings for translation) allow the burning of files + bigger than 4 GB with appropriate versions of genisoimage or mkisofs. +- * Do only reload the medium before verification if necessary, i.e. if the newly written +- track cannot be read otherwise (many old drives depend on this). Hopefully this will +- at least work around the aweful "DMA disabled" bug for many users. + + 1.0.3 + ===== +diff -ur k3b-1.0.4/libk3b/jobs/k3bverificationjob.cpp k3b-1.0.4-verification-always-reload/libk3b/jobs/k3bverificationjob.cpp +--- k3b-1.0.4/libk3b/jobs/k3bverificationjob.cpp 2007-11-02 10:55:53.000000000 +0100 ++++ k3b-1.0.4-verification-always-reload/libk3b/jobs/k3bverificationjob.cpp 2007-07-21 21:53:53.000000000 +0200 +@@ -84,8 +84,6 @@ + K3bPipe pipe; + + bool readSuccessful; +- +- bool mediumHasBeenReloaded; + }; + + +@@ -151,13 +149,11 @@ + d->currentTrackIndex = 0; + d->alreadyReadSectors = 0; + +- emit newTask( i18n("Checking medium") ); ++ // first we need to reload and mount the device ++ emit newTask( i18n("Reloading the medium") ); + +- d->mediumHasBeenReloaded = false; +- connect( K3bDevice::sendCommand( K3bDevice::DeviceHandler::DISKINFO, d->device ), +- SIGNAL(finished(K3bDevice::DeviceHandler*)), +- this, +- SLOT(slotDiskInfoReady(K3bDevice::DeviceHandler*)) ); ++ connect( K3bDevice::reload( d->device ), SIGNAL(finished(bool)), ++ this, SLOT(slotMediaReloaded(bool)) ); + } + + +@@ -165,7 +165,6 @@ + K3bDevice::STATE_COMPLETE|K3bDevice::STATE_INCOMPLETE, + K3bDevice::MEDIA_WRITABLE ); + +- d->mediumHasBeenReloaded = true; + + emit newTask( i18n("Checking medium") ); + +@@ -191,6 +185,12 @@ + d->toc = dh->toc(); + d->totalSectors = 0; + ++ if ( d->toc.isEmpty() ) { ++ emit infoMessage( i18n( "No tracks to verify found." ), ERROR ); ++ jobFinished( false ); ++ return; ++ } ++ + // just to be sure check if we actually have all the tracks + int i = 0; + for( QValueList<K3bVerificationJobTrackEntry>::iterator it = d->tracks.begin(); +@@ -201,21 +201,9 @@ + (*it).trackNumber = d->toc.count(); + + if( (int)d->toc.count() < (*it).trackNumber ) { +- if ( d->mediumHasBeenReloaded ) { +- emit infoMessage( i18n("Internal Error: Verification job improperly initialized (%1)") +- .arg( "Specified track number not found on medium" ), ERROR ); +- jobFinished( false ); +- return; +- } +- else { +- // many drives need to reload the medium to return to a proper state +- emit newTask( i18n("Reloading the medium") ); +- connect( K3bDevice::reload( d->device ), +- SIGNAL(finished(bool)), +- this, +- SLOT(slotMediaReloaded(bool)) ); +- return; +- } ++ emit infoMessage( i18n("Internal Error: Verification job improperly initialized"), ERROR ); ++ jobFinished( false ); ++ return; + } + + d->totalSectors += trackLength( i ); |