QString AMExporterGeneralAscii::exportScan(const AMScan *scan, const QString &destinationFolderPath, const AMExporterOption *option, int autoIndex) { setCurrentAutoIndex(autoIndex); setCurrentFilename(option->fileName()); setDestinationFolderPath(destinationFolderPath); // prepare scan and option setCurrentScan(scan); option_ = qobject_cast<const AMExporterOptionGeneralAscii*>(option); if(!option_) { AMErrorMon::report(AMErrorReport(this, AMErrorReport::Alert, -2, "Invalid options specified for the General Ascii Exporter. Please report this bug to the Acquaman developers.")); return QString(); } // prepare data sources if(!prepareDataSources()) return QString(); // prepare export file mainFileName_ = parseKeywordString( destinationFolderPath % "/" % option->fileName() ); qDebug() << "Wants to save as " << mainFileName_; if(!openFile(mainFileName_)) { AMErrorMon::report(AMErrorReport(this, AMErrorReport::Alert, -3, "Export failed: Could not open the file '" % mainFileName_ % "' for writing. Check that you have permission to save files there, and that a file with that name doesn't already exists.")); return QString(); } writeHeader(); writeMainTable(); writeSeparateSections(); if(option_->includeHigherDimensionSources() && !writeSeparateFiles(destinationFolderPath)) { file_->close(); return QString(); } file_->close(); return mainFileName_; }
void AMExportController::setDefaultDestinationFolderPath() { QDir exportDir; if(!AMUserSettings::remoteDataFolder.isEmpty()) exportDir.setCurrent(AMUserSettings::remoteDataFolder); else exportDir.setCurrent(AMUserSettings::userDataFolder); exportDir.cdUp(); if(!exportDir.entryList(QDir::AllDirs).contains("exportData")){ if(!exportDir.mkdir("exportData")){ AMErrorMon::alert(this, AMSCANACTION_CANT_CREATE_EXPORT_FOLDER, "Could not create the auto-export folder."); return; } } exportDir.cd("exportData"); setDestinationFolderPath(exportDir.absolutePath()); }