Annotation of /trunk/k3b/patches/k3b-1.0.4-eject.patch
Parent Directory | Revision Log
Revision 595 -
(hide annotations)
(download)
Mon May 19 18:26:18 2008 UTC (16 years, 4 months ago) by niro
File size: 3382 byte(s)
Mon May 19 18:26:18 2008 UTC (16 years, 4 months ago) by niro
File size: 3382 byte(s)
-fixed ejects and disk reloads
1 | niro | 595 | diff -ur k3b-1.0.4/ChangeLog k3b-1.0.4-verification-always-reload/ChangeLog |
2 | --- k3b-1.0.4/ChangeLog 2007-11-02 10:55:57.000000000 +0100 | ||
3 | +++ k3b-1.0.4-verification-always-reload/ChangeLog 2007-12-07 19:33:18.000000000 +0100 | ||
4 | @@ -4,9 +4,6 @@ | ||
5 | * Unmount medium before DVD formatting | ||
6 | * Silently (without introducing new strings for translation) allow the burning of files | ||
7 | bigger than 4 GB with appropriate versions of genisoimage or mkisofs. | ||
8 | - * Do only reload the medium before verification if necessary, i.e. if the newly written | ||
9 | - track cannot be read otherwise (many old drives depend on this). Hopefully this will | ||
10 | - at least work around the aweful "DMA disabled" bug for many users. | ||
11 | |||
12 | 1.0.3 | ||
13 | ===== | ||
14 | diff -ur k3b-1.0.4/libk3b/jobs/k3bverificationjob.cpp k3b-1.0.4-verification-always-reload/libk3b/jobs/k3bverificationjob.cpp | ||
15 | --- k3b-1.0.4/libk3b/jobs/k3bverificationjob.cpp 2007-11-02 10:55:53.000000000 +0100 | ||
16 | +++ k3b-1.0.4-verification-always-reload/libk3b/jobs/k3bverificationjob.cpp 2007-07-21 21:53:53.000000000 +0200 | ||
17 | @@ -84,8 +84,6 @@ | ||
18 | K3bPipe pipe; | ||
19 | |||
20 | bool readSuccessful; | ||
21 | - | ||
22 | - bool mediumHasBeenReloaded; | ||
23 | }; | ||
24 | |||
25 | |||
26 | @@ -151,13 +149,11 @@ | ||
27 | d->currentTrackIndex = 0; | ||
28 | d->alreadyReadSectors = 0; | ||
29 | |||
30 | - emit newTask( i18n("Checking medium") ); | ||
31 | + // first we need to reload and mount the device | ||
32 | + emit newTask( i18n("Reloading the medium") ); | ||
33 | |||
34 | - d->mediumHasBeenReloaded = false; | ||
35 | - connect( K3bDevice::sendCommand( K3bDevice::DeviceHandler::DISKINFO, d->device ), | ||
36 | - SIGNAL(finished(K3bDevice::DeviceHandler*)), | ||
37 | - this, | ||
38 | - SLOT(slotDiskInfoReady(K3bDevice::DeviceHandler*)) ); | ||
39 | + connect( K3bDevice::reload( d->device ), SIGNAL(finished(bool)), | ||
40 | + this, SLOT(slotMediaReloaded(bool)) ); | ||
41 | } | ||
42 | |||
43 | |||
44 | @@ -169,8 +165,6 @@ | ||
45 | K3bDevice::MEDIA_WRITABLE, | ||
46 | i18n("Unable to Close the Tray") ); | ||
47 | |||
48 | - d->mediumHasBeenReloaded = true; | ||
49 | - | ||
50 | emit newTask( i18n("Checking medium") ); | ||
51 | |||
52 | connect( K3bDevice::sendCommand( K3bDevice::DeviceHandler::DISKINFO, d->device ), | ||
53 | @@ -191,6 +185,12 @@ | ||
54 | d->toc = dh->toc(); | ||
55 | d->totalSectors = 0; | ||
56 | |||
57 | + if ( d->toc.isEmpty() ) { | ||
58 | + emit infoMessage( i18n( "No tracks to verify found." ), ERROR ); | ||
59 | + jobFinished( false ); | ||
60 | + return; | ||
61 | + } | ||
62 | + | ||
63 | // just to be sure check if we actually have all the tracks | ||
64 | int i = 0; | ||
65 | for( QValueList<K3bVerificationJobTrackEntry>::iterator it = d->tracks.begin(); | ||
66 | @@ -201,21 +201,9 @@ | ||
67 | (*it).trackNumber = d->toc.count(); | ||
68 | |||
69 | if( (int)d->toc.count() < (*it).trackNumber ) { | ||
70 | - if ( d->mediumHasBeenReloaded ) { | ||
71 | - emit infoMessage( i18n("Internal Error: Verification job improperly initialized (%1)") | ||
72 | - .arg( "Specified track number not found on medium" ), ERROR ); | ||
73 | - jobFinished( false ); | ||
74 | - return; | ||
75 | - } | ||
76 | - else { | ||
77 | - // many drives need to reload the medium to return to a proper state | ||
78 | - emit newTask( i18n("Reloading the medium") ); | ||
79 | - connect( K3bDevice::reload( d->device ), | ||
80 | - SIGNAL(finished(bool)), | ||
81 | - this, | ||
82 | - SLOT(slotMediaReloaded(bool)) ); | ||
83 | - return; | ||
84 | - } | ||
85 | + emit infoMessage( i18n("Internal Error: Verification job improperly initialized"), ERROR ); | ||
86 | + jobFinished( false ); | ||
87 | + return; | ||
88 | } | ||
89 | |||
90 | d->totalSectors += trackLength( i ); |