CC_FILE_ERROR FileIOFilter::SaveToFile( ccHObject* entities, const QString& filename, SaveParameters& parameters, Shared filter) { if (!entities || filename.isEmpty() || !filter) return CC_FERR_BAD_ARGUMENT; //if the file name has no extension, we had a default one! QString completeFileName(filename); if (QFileInfo(filename).suffix().isEmpty()) completeFileName += QString(".%1").arg(filter->getDefaultExtension()); CC_FILE_ERROR result = CC_FERR_NO_ERROR; try { result = filter->saveToFile(entities, completeFileName, parameters); } catch(...) { ccLog::Warning(QString("[I/O] CC has caught an unhandled exception while saving file '%1'").arg(filename)); result = CC_FERR_CONSOLE_ERROR; } if (result == CC_FERR_NO_ERROR) { ccLog::Print(QString("[I/O] File '%1' saved successfully").arg(filename)); } else { DisplayErrorMessage(result,"saving",filename); } return result; }
FileNameOptionStorage::FileNameOptionStorage(const FileNameOption &settings) : MyBase(settings), info_(this), filetype_(settings.filetype_), bRead_(settings.bRead_), bWrite_(settings.bWrite_), bLibrary_(settings.bLibrary_) { if (settings.defaultBasename_ != NULL) { if (isRequired()) { setDefaultValue(completeFileName(settings.defaultBasename_, filetype_, false)); } else { setDefaultValueIfSet(completeFileName(settings.defaultBasename_, filetype_, false)); } } }
PHYSFS_File *openReadHandle(const char *filename, FileSystem::FileType type, const char **foundExt) { char found[512]; if (!completeFileName(filename, type, found, sizeof(found), foundExt)) throw Exception(Exception::NoFileError, "%s", filename); PHYSFS_File *handle = PHYSFS_openRead(found); if (!handle) throw Exception(Exception::PHYSFSError, "PhysFS: %s", PHYSFS_getLastError()); return handle; }
CC_FILE_ERROR FileIOFilter::SaveToFile(ccHObject* entities, const char* filename, CC_FILE_TYPES fType) { if (!entities || !filename || fType == UNKNOWN_FILE) return CC_FERR_BAD_ARGUMENT; FileIOFilter* fio = CreateFilter(fType); if (!fio) return CC_FERR_WRONG_FILE_TYPE; //if the file name has no extension, we had a default one! QString completeFileName(filename); if (QFileInfo(filename).suffix().isEmpty()) completeFileName += QString(".%1").arg(CC_FILE_TYPE_DEFAULT_EXTENSION[fType]); CC_FILE_ERROR result = fio->saveToFile(entities, qPrintable(completeFileName)); delete fio; fio = 0; return result; }
CC_FILE_ERROR FileIOFilter::SaveToFile(ccHObject* entities, const char* filename, CC_FILE_TYPES fType) { if (!entities || !filename || fType == UNKNOWN_FILE) return CC_FERR_BAD_ARGUMENT; FileIOFilter* fio = NULL; switch (fType) { case BIN: fio = new BinFilter(); break; case ASCII: fio = new AsciiFilter(); break; case OBJ: fio = new ObjFilter(); break; case PLY: fio = new PlyFilter(); break; case PN: fio = new PNFilter(); break; case PV: fio = new PVFilter(); break; case MA: fio = new MAFilter(); break; case DM_ASCII: fio = new DepthMapFileFilter(); break; case VTK: fio = new VTKFilter(); break; case STL: fio = new STLFilter(); break; case PCD: fio = new PCDFilter(); break; #ifdef CC_X3D_SUPPORT case X3D: fio = new X3DFilter(); break; #endif #ifdef CC_E57_SUPPORT case E57: fio = new E57Filter(); break; #endif #ifdef CC_PDMS_SUPPORT case PDMS: fio = new PDMSFilter(); break; #endif #ifdef CC_LAS_SUPPORT case LAS: fio = new LASFilter(); break; #endif case POV: //TODO //fio = new PovFilter(); break; case SOI: case ICM: case BUNDLER: case UNKNOWN_FILE: case FILE_TYPES_COUNT: //nothing to do break; } if (!fio) return CC_FERR_WRONG_FILE_TYPE; //if the file name has no extension, we had a default one! QString completeFileName(filename); if (QFileInfo(filename).suffix().isEmpty()) completeFileName += QString(".%1").arg(CC_FILE_TYPE_DEFAULT_EXTENSION[fType]); CC_FILE_ERROR result = fio->saveToFile(entities, qPrintable(completeFileName)); delete fio; fio=0; return result; }
void FileNameOptionStorage::convertValue(const std::string &value) { bool bInput = isInputFile() || isInputOutputFile(); addValue(completeFileName(value, filetype_, bInput)); }