diff -u k3b-1.70.0/debian/changelog k3b-1.70.0/debian/changelog --- k3b-1.70.0/debian/changelog +++ k3b-1.70.0/debian/changelog @@ -1,3 +1,9 @@ +k3b (1.70.0-svn100202~yuuki1) lucid; urgency=low + + * Svn build 1084166 + + -- Yann Gilson Tue, 02 Feb 2010 17:28:04 +0100 + k3b (1.70.0-svn100130~yuuki1) lucid; urgency=low * Svn build 1082566 only in patch2: unchanged: --- k3b-1.70.0.orig/src/main.cpp +++ k3b-1.70.0/src/main.cpp @@ -19,7 +19,7 @@ #include #include #include -#include +#include #include #include only in patch2: unchanged: --- k3b-1.70.0.orig/src/k3bwelcomewidget.cpp +++ k3b-1.70.0/src/k3bwelcomewidget.cpp @@ -344,7 +344,7 @@ setWidget( main ); setFrameStyle( QFrame::NoFrame ); - connect( main, SIGNAL(dropped(const KUrl::List&)), m_mainWindow, SLOT(addUrls(const KUrl::List&)) ); + connect( main, SIGNAL(dropped(const KUrl::List&)), m_mainWindow, SLOT(addUrls(const KUrl::List&)), Qt::QueuedConnection ); connect( KGlobalSettings::self(), SIGNAL(appearanceChanged()), main, SLOT(update()) ); } only in patch2: unchanged: --- k3b-1.70.0.orig/src/k3bdebuggingoutputdialog.cpp +++ k3b-1.70.0/src/k3bdebuggingoutputdialog.cpp @@ -28,7 +28,7 @@ #include #include -#include +#include #include #include #include only in patch2: unchanged: --- k3b-1.70.0.orig/src/k3binteractiondialog.cpp +++ k3b-1.70.0/src/k3binteractiondialog.cpp @@ -46,7 +46,7 @@ #include #include #include -#include +#include K3b::InteractionDialog::InteractionDialog( QWidget* parent, only in patch2: unchanged: --- k3b-1.70.0.orig/src/projects/k3baudiotrackaddingdialog.cpp +++ k3b-1.70.0/src/projects/k3baudiotrackaddingdialog.cpp @@ -1,6 +1,7 @@ /* * * Copyright (C) 2006-2009 Sebastian Trueg + * Copyright (C) 2010 Michal Malek * * This file is part of the K3b project. * Copyright (C) 1998-2009 Sebastian Trueg @@ -33,7 +34,6 @@ #include #include #include -#include @@ -68,8 +68,6 @@ m_analyserJob = new K3b::AudioFileAnalyzerJob( this, this ); connect( m_analyserJob, SIGNAL(finished(bool)), this, SLOT(slotAnalysingFinished(bool)) ); - - QTimer::singleShot( 0, this, SLOT(slotAddUrls()) ); } @@ -112,9 +110,9 @@ { K3b::AudioTrackAddingDialog* dlg = new K3b::AudioTrackAddingDialog( urls, doc, afterTrack, parentTrack, afterSource, parent ); - dlg->setModal( false ); dlg->setAttribute( Qt::WA_DeleteOnClose ); - dlg->show(); + QMetaObject::invokeMethod( dlg, "exec", Qt::QueuedConnection ); + QMetaObject::invokeMethod( dlg, "slotAddUrls", Qt::QueuedConnection ); } } @@ -140,7 +138,7 @@ // no need to analyse -> raw audio data m_doc->importCueFile( url.toLocalFile(), m_trackAfter, 0 ); m_urls.erase( m_urls.begin() ); - QTimer::singleShot( 0, this, SLOT(slotAddUrls()) ); + QMetaObject::invokeMethod( this, "slotAddUrls", Qt::QueuedConnection ); return; } else { @@ -188,7 +186,7 @@ // invalid file, next url if( !valid ) { m_urls.erase( m_urls.begin() ); - QTimer::singleShot( 0, this, SLOT(slotAddUrls()) ); + QMetaObject::invokeMethod( this, "slotAddUrls", Qt::QueuedConnection ); } } @@ -242,7 +240,7 @@ } } - QTimer::singleShot( 0, this, SLOT(slotAddUrls()) ); + QMetaObject::invokeMethod( this, "slotAddUrls", Qt::QueuedConnection ); } only in patch2: unchanged: --- k3b-1.70.0.orig/src/projects/k3bdataurladdingdialog.h +++ k3b-1.70.0/src/projects/k3bdataurladdingdialog.h @@ -44,7 +44,7 @@ ~DataUrlAddingDialog(); /** - * shows modeless DataUrlAddingDialog and returns + * shows DataUrlAddingDialog in non-blocking fashion * (doesn't wait till dialog is closed) */ static void addUrls( const KUrl::List& urls, DirItem* dir, @@ -57,6 +57,8 @@ QWidget* parent = 0 ); private Q_SLOTS: + void slotStartAddUrls(); + void slotStartCopyMoveItems(); void slotAddUrls(); void slotCopyMoveItems(); void slotCancel(); @@ -64,9 +66,9 @@ void updateProgress(); private: - DataUrlAddingDialog( DataDoc* doc, QWidget* parent = 0 ); - static void copyMoveItems( const QList& items, DirItem* dir, - QWidget* parent, bool copy ); + DataUrlAddingDialog( const KUrl::List& urls, DirItem* dir, QWidget* parent = 0 ); + DataUrlAddingDialog( const QList& items, DirItem* dir, bool copy, QWidget* parent = 0 ); + void init(); bool getNewName( const QString& oldName, DirItem* dir, QString& newName ); bool addHiddenFiles(); bool addSystemFiles(); @@ -82,6 +84,7 @@ QList< QPair > m_items; QList m_dirSizeQueue; + DataDoc* m_doc; bool m_bExistingItemsReplaceAll; bool m_bExistingItemsIgnoreAll; bool m_bFolderLinksFollowAll; only in patch2: unchanged: --- k3b-1.70.0.orig/src/projects/k3bdataurladdingdialog.cpp +++ k3b-1.70.0/src/projects/k3bdataurladdingdialog.cpp @@ -1,6 +1,7 @@ /* * * Copyright (C) 2005-2008 Sebastian Trueg + * Copyright (C) 2010 Michal Malek * * This file is part of the K3b project. * Copyright (C) 1998-2008 Sebastian Trueg @@ -39,7 +40,6 @@ #include #include #include -#include #include #include @@ -48,14 +48,15 @@ #include #include #include -#include +#include #include #include -K3b::DataUrlAddingDialog::DataUrlAddingDialog( K3b::DataDoc* doc, QWidget* parent ) +K3b::DataUrlAddingDialog::DataUrlAddingDialog( const KUrl::List& urls, DirItem* dir, QWidget* parent ) : KDialog( parent), + m_doc( dir->doc() ), m_bExistingItemsReplaceAll(false), m_bExistingItemsIgnoreAll(false), m_bFolderLinksFollowAll(false), @@ -67,21 +68,60 @@ m_filesHandled(0), m_lastProgress(0) { + init(); + + m_urls = urls; + for( KUrl::List::ConstIterator it = urls.begin(); it != urls.end(); ++it ) + m_urlQueue.append( qMakePair( K3b::convertToLocalUrl(*it), dir ) ); +} + + +K3b::DataUrlAddingDialog::DataUrlAddingDialog( const QList& items, DirItem* dir, bool copy, QWidget* parent ) + : KDialog( parent), + m_doc( dir->doc() ), + m_bExistingItemsReplaceAll(false), + m_bExistingItemsIgnoreAll(false), + m_bFolderLinksFollowAll(false), + m_bFolderLinksAddAll(false), + m_iAddHiddenFiles(0), + m_iAddSystemFiles(0), + m_bCanceled(false), + m_totalFiles(0), + m_filesHandled(0), + m_lastProgress(0) +{ + init(); + + m_infoLabel->setText( i18n("Moving files to project \"%1\"...", dir->doc()->URL().fileName()) ); + m_copyItems = copy; + + for( QList::const_iterator it = items.begin(); it != items.end(); ++it ) { + m_items.append( qMakePair( *it, dir ) ); + ++m_totalFiles; + if( (*it)->isDir() ) { + m_totalFiles += static_cast( *it )->numFiles(); + m_totalFiles += static_cast( *it )->numDirs(); + } + } +} + + +void K3b::DataUrlAddingDialog::init() +{ m_encodingConverter = new K3b::EncodingConverter(); QWidget* page = new QWidget(); setMainWidget(page); setButtons(Cancel); setDefaultButton(Cancel); - setCaption(i18n("Adding files to project '%1'",doc->URL().fileName())); - setModal( false ); + setCaption(i18n("Adding files to project '%1'",m_doc->URL().fileName())); setAttribute( Qt::WA_DeleteOnClose ); QGridLayout* grid = new QGridLayout( page ); grid->setMargin( 0 ); m_counterLabel = new QLabel( page ); m_infoLabel = new KSqueezedTextLabel( i18n("Adding files to project '%1'" - ,doc->URL().fileName()) + "...", page ); + ,m_doc->URL().fileName()) + "...", page ); m_progressWidget = new QProgressBar( page ); grid->addWidget( m_counterLabel, 0, 1 ); @@ -115,41 +155,9 @@ K3b::DirItem* dir, QWidget* parent ) { - if( urls.isEmpty() ) - return; - - // - // A common mistake by beginners is to try to burn an iso image - // with a data project. Let's warn them - // - if( urls.count() == 1 ) { - K3b::Iso9660 isoF( urls.first().toLocalFile() ); - if( isoF.open() ) { - if( KMessageBox::warningYesNo( parent, - i18n("

The file you are about to add to the project is an ISO9660 image. As such " - "it can be burned to a medium directly since it already contains a file " - "system.
" - "Are you sure you want to add this file to the project?"), - i18n("Adding image file to project"), - KGuiItem(i18n("Add the file to the project")), - KGuiItem(i18n("Burn the image directly")) ) == KMessageBox::No ) { - k3bappcore->k3bMainWindow()->slotWriteImage( urls.first() ); - return; - } - } - } - - K3b::DataUrlAddingDialog* dlg = new K3b::DataUrlAddingDialog( dir->doc(), parent ); - dlg->m_urls = urls; - for( KUrl::List::ConstIterator it = urls.begin(); it != urls.end(); ++it ) - dlg->m_urlQueue.append( qMakePair( K3b::convertToLocalUrl(*it), dir ) ); - - dlg->slotAddUrls(); - if( !dlg->m_urlQueue.isEmpty() ) { - dlg->m_dirSizeJob->setUrls( urls ); - dlg->m_dirSizeJob->setFollowSymlinks( dir->doc()->isoOptions().followSymbolicLinks() ); - dlg->m_dirSizeJob->start(); - dlg->show(); + if( !urls.isEmpty() ) { + K3b::DataUrlAddingDialog* dlg = new K3b::DataUrlAddingDialog( urls, dir, parent ); + QMetaObject::invokeMethod( dlg, "slotStartAddUrls", Qt::QueuedConnection ); } } @@ -158,7 +166,10 @@ K3b::DirItem* dir, QWidget* parent ) { - copyMoveItems( items, dir, parent, false ); + if( !items.isEmpty() ) { + DataUrlAddingDialog* dlg = new DataUrlAddingDialog( items, dir, false, parent ); + QMetaObject::invokeMethod( dlg, "slotStartCopyMoveItems", Qt::QueuedConnection ); + } } @@ -166,35 +177,53 @@ K3b::DirItem* dir, QWidget* parent ) { - copyMoveItems( items, dir, parent, true ); + if( !items.isEmpty() ) { + DataUrlAddingDialog* dlg = new DataUrlAddingDialog( items, dir, true, parent ); + QMetaObject::invokeMethod( dlg, "slotStartCopyMoveItems", Qt::QueuedConnection ); + } } -void K3b::DataUrlAddingDialog::copyMoveItems( const QList& items, - K3b::DirItem* dir, - QWidget* parent, - bool copy ) +void K3b::DataUrlAddingDialog::slotStartAddUrls() { - if( items.isEmpty() ) - return; - - K3b::DataUrlAddingDialog* dlg = new K3b::DataUrlAddingDialog( dir->doc(), parent ); - dlg->m_infoLabel->setText( i18n("Moving files to project \"%1\"...", dir->doc()->URL().fileName()) ); - dlg->m_copyItems = copy; - - for( QList::const_iterator it = items.begin(); it != items.end(); ++it ) { - dlg->m_items.append( qMakePair( *it, dir ) ); - ++dlg->m_totalFiles; - if( (*it)->isDir() ) { - dlg->m_totalFiles += static_cast( *it )->numFiles(); - dlg->m_totalFiles += static_cast( *it )->numDirs(); + // + // A common mistake by beginners is to try to burn an iso image + // with a data project. Let's warn them + // + if( m_urls.count() == 1 ) { + K3b::Iso9660 isoF( m_urls.first().toLocalFile() ); + if( isoF.open() ) { + if( KMessageBox::warningYesNo( parentWidget(), + i18n("

The file you are about to add to the project is an ISO9660 image. As such " + "it can be burned to a medium directly since it already contains a file " + "system.
" + "Are you sure you want to add this file to the project?"), + i18n("Adding image file to project"), + KGuiItem(i18n("Add the file to the project"),"list-add"), + KGuiItem(i18n("Burn the image directly"),"tools-media-optical-burn") ) == KMessageBox::No ) { + k3bappcore->k3bMainWindow()->slotWriteImage( m_urls.first() ); + reject(); + return; + } } } - dlg->slotCopyMoveItems(); - if( !dlg->m_items.isEmpty() ) { - dlg->m_progressWidget->setMaximum( dlg->m_totalFiles ); - dlg->show(); + slotAddUrls(); + if( !m_urlQueue.isEmpty() ) { + m_dirSizeJob->setUrls( m_urls ); + m_dirSizeJob->setFollowSymlinks( m_doc->isoOptions().followSymbolicLinks() ); + m_dirSizeJob->start(); + exec(); + } +} + + +void K3b::DataUrlAddingDialog::slotStartCopyMoveItems() +{ + slotCopyMoveItems(); + if( !m_items.isEmpty() ) { + m_progressWidget->setMaximum( m_totalFiles ); + exec(); } } @@ -517,7 +546,7 @@ } else { updateProgress(); - QTimer::singleShot( 0, this, SLOT(slotAddUrls()) ); + QMetaObject::invokeMethod( this, "slotAddUrls", Qt::QueuedConnection ); } } @@ -670,7 +699,7 @@ } else { updateProgress(); - QTimer::singleShot( 0, this, SLOT(slotCopyMoveItems()) ); + QMetaObject::invokeMethod( this, "slotCopyMoveItems", Qt::QueuedConnection ); } } only in patch2: unchanged: --- k3b-1.70.0.orig/src/projects/k3bdataviewimpl.cpp +++ k3b-1.70.0/src/projects/k3bdataviewimpl.cpp @@ -85,7 +85,7 @@ if (!item) item = m_doc->root(); - DataUrlAddingDialog::addUrls( urls, item ); + DataUrlAddingDialog::addUrls( urls, item, m_view ); } only in patch2: unchanged: --- k3b-1.70.0.orig/src/projects/k3bprojectburndialog.cpp +++ k3b-1.70.0/src/projects/k3bprojectburndialog.cpp @@ -47,7 +47,7 @@ #include #include #include -#include +#include #include #include #include only in patch2: unchanged: --- k3b-1.70.0.orig/src/projects/k3baudiotrackaddingdialog.h +++ k3b-1.70.0/src/projects/k3baudiotrackaddingdialog.h @@ -44,7 +44,7 @@ ~AudioTrackAddingDialog(); /** - * shows modeless AudioTrackAddingDialog and returns + * shows AudioTrackAddingDialog in non-blocking fashion * (doesn't wait till dialog is closed) */ static void addUrls( const KUrl::List& urls, only in patch2: unchanged: --- k3b-1.70.0.orig/src/misc/k3bmediacopydialog.cpp +++ k3b-1.70.0/src/misc/k3bmediacopydialog.cpp @@ -36,7 +36,7 @@ #include #include -#include +#include #include #include #include only in patch2: unchanged: --- k3b-1.70.0.orig/libk3b/projects/videocd/k3bvcddoc.cpp +++ k3b-1.70.0/libk3b/projects/videocd/k3bvcddoc.cpp @@ -32,7 +32,7 @@ #include #include #include -#include +#include #if 0 only in patch2: unchanged: --- k3b-1.70.0.orig/libk3b/tools/k3bmultichoicedialog.h +++ k3b-1.70.0/libk3b/tools/k3bmultichoicedialog.h @@ -16,7 +16,7 @@ #define _K3B_MULTI_CHOICE_DIALOG_H_ #include -#include +#include #include "k3b_export.h" #include