// --------------------------------------------------------------------------------- void KReportTable::export_data_to_file() { Uuid const&id = _M_data_model->report().reportType().id(); //fetching the target file name from the most recent representation of the report type (instead of using the cached report type definition): QString filename = context()->reportManager()->load ( id ).exportDataFileName ( _M_data_model->report() ); filename = KFileDialog::getSaveFileName ( detail::url ( filename ), QString(), 0, i18n ( "Export Report Data to" ) ); if ( filename.isEmpty() ) {return;} QFile out ( filename ); QFileInfo out_info ( out ); if ( out_info.exists() ) { if ( KMessageBox::questionYesNo ( 0, i18n ( "The target file <b>'%1'</b> already exists. Do you really want to overwrite it?" ).arg ( filename ), i18n ( "File already exists - Don't Panik" ) ) == KMessageBox::No ) { return; } } if ( !out.open ( QIODevice::WriteOnly ) ) { KMessageBox::error ( 0, i18n ( "Unable to export Report Data to file <b>'%1'</b>." ).arg ( filename ), i18n ( "Report Export Error" ) ); return; } out.write ( _M_data_model->report().reportData().exportDataString().toAscii() ); out.close(); KDialog *dlg = new ReportExportedSuccessfullyDialog ( out_info, this ); int result = KMessageBox::createKMessageBox ( dlg , QMessageBox::Information , i18n ( "Report exported successfully to <b>'%1'</b>." ).arg ( filename ) , QStringList() , QString ( "" ) , 0 , KMessageBox::Notify ); if ( result == KDialog::User1 ) { Mail mail; mail.setSubject ( out_info.fileName() ); mail.addAttachement ( out_info.absoluteFilePath() ); MailInterface interface; interface.send ( mail ); } }