Version: 0.11.15cvs (using KDE 3.3.2 Level "a" , SUSE 9.2 UNSUPPORTED) Compiler: gcc version 3.3.4 (pre 3.3.5 20040809) OS: Linux (i686) release 2.6.8-24.11-default After copying my KDE settings from my previous computer to the new one, I started K3b and tried to burn a CD. Instead of the usual output in the burn window K3b just gave me an "IO error" without any additional information in the debug window. It was only by accident, that I discovered that the temp directory which was set for K3b pointed to a directory which didn't exist on the new system. After changing it to a correct path, CD burning worked fine. Please have K3b check whether the temp directory exists, before starting to burn. At the moment, it only seems to do that when closing the configuration dialog. As an alternative, have K3b output more verbose/better information on what went wrong. This type of error could even be solved by non-technical users, so a more verbose error message wouldn't hurt. Thanks.
I have been able to reproduce the bug on 0.12.4a as well.
SVN commit 519980 by trueg: check image directory and create it if necessary. BUG: 100312 M +18 -1 k3bprojectburndialog.cpp --- trunk/extragear/multimedia/k3b/src/projects/k3bprojectburndialog.cpp #519979:519980 @@ -169,7 +169,7 @@ saveSettings(); // check if enough space in tempdir if not on-the-fly - if( m_tempDirSelectionWidget ) + if( m_tempDirSelectionWidget ) { if( (!doc()->onTheFly() || doc()->onlyCreateImages()) && doc()->size()/1024 > m_tempDirSelectionWidget->freeTempSpace() ) { if( KMessageBox::warningContinueCancel( this, i18n("There seems to be not enough free space in temporary directory. " @@ -177,6 +177,23 @@ return; } + // check if the temp dir exists + if( !m_checkOnTheFly->isChecked() || m_checkOnlyCreateImage->isChecked() ) { + QString tempDir = m_tempDirSelectionWidget->tempDirectory(); + if( !QFile::exists( tempDir ) ) { + if( KMessageBox::warningYesNo( this, i18n("Image folder '%1' does not exist. Do you want K3b to create it?").arg( tempDir ) ) + == KMessageBox::Yes ) { + if( !KStandardDirs::makeDir( tempDir ) ) { + KMessageBox::error( this, i18n("Failed to create folder '%1'.").arg( tempDir ) ); + return; + } + } + else + return; + } + } + } + K3bJobProgressDialog* dlg = 0; if( m_checkOnlyCreateImage && m_checkOnlyCreateImage->isChecked() ) dlg = new K3bJobProgressDialog( parentWidget() );