void WatermarkDialog::savePixmap( const KURL& source, const QPixmap& pixmap ) { QString ext = QFileInfo( source.fileName() ).extension(false); KTempFile tmpFile; pixmap.save( tmpFile.name(), KImageIO::type( source.fileName() ) ); KURL dest = m_uploadWidget->path(); KURL destFile = dest; destFile.addPath( source.fileName() ); int count = 0; while ( KIO::NetAccess::exists( destFile, false, this ) ) { destFile = dest; QString fileName = source.fileName(); fileName = QString( "%1-%2.%3" ).arg( QFileInfo( fileName ).baseName() ).arg( count++ ).arg( ext ); destFile.addPath( fileName ); } KIO::NetAccess::upload( tmpFile.name(), destFile, this ); tmpFile.unlink(); QString err; if ( !m_interface->addImage( destFile, err ) ) { KMessageBox::error( this, QString( "Unable to add file %1 to database. Error was %2" ).arg( destFile.url() ).arg( err ) ); } }