![]() |
Mapper
0.9.0
API documentation
|
Describes a file format understood by this application. More...
#include <file_format.h>
Public Types | |
enum | FileType { MapFile = 0x01, OgrFile = 0x02, AllFiles = MapFile, EndOfFileTypes } |
File type enumeration. More... | |
enum | Feature { Feature::FileOpen = 0x01, Feature::FileSave = 0x02, Feature::FileSaveAs = 0x04, Feature::FileImport = 0x08, Feature::FileExport = 0x10, Feature::ReadingLossy = 0x100, Feature::WritingLossy = 0x200 } |
A type which handles OR-combinations of file types. More... | |
enum | ImportSupportAssumption { NotSupported = 0, Unknown = 1, FullySupported = 2 } |
A type which handles OR-combinations of format implementation features. More... | |
Public Member Functions | |
FileFormat (FileType file_type, const char *id, const QString &description, const QString &file_extension, Features features) | |
Creates a new file format with the given parameters. More... | |
FileFormat (const FileFormat &)=delete | |
FileFormat (FileFormat &&)=delete | |
virtual | ~FileFormat () |
Destroys the file format information. More... | |
FileFormat & | operator= (const FileFormat &)=delete |
FileFormat & | operator= (FileFormat &&)=delete |
void | addExtension (const QString &file_extension) |
Registers an alternative file name extension. More... | |
FileType | fileType () const |
Returns the type of file. More... | |
const char * | id () const |
Returns the internal ID of the file format. More... | |
const QString & | description () const |
Returns a short human-readable description of the file format. More... | |
const QString & | primaryExtension () const |
Returns the primary file name extension used by this file format. More... | |
const QStringList & | fileExtensions () const |
Returns all file name extension supported by this file format. More... | |
const QString & | filter () const |
Returns the filter that represents this format in file dialogs. More... | |
bool | supportsReading () const |
Returns true if this format supports reading a Map from a file. More... | |
bool | supportsWriting () const |
Returns true if this format supports writing a Map to a file. More... | |
bool | supportsFileOpen () const |
Returns true if this format is available for File > Open... More... | |
bool | supportsFileSave () const |
Returns true if this format is available for File > Save. More... | |
bool | supportsFileSaveAs () const |
Returns true if this format is available for File > Save as... More... | |
bool | supportsFileImport () const |
Returns true if this format is available for File > Import... More... | |
bool | supportsFileExport () const |
Returns true if this format is available for File > Export... More... | |
bool | isReadingLossy () const |
Returns true if an importer for this file format is potentially lossy. More... | |
bool | isWritingLossy () const |
Returns true if an exporter for this file format is potentially lossy. More... | |
virtual ImportSupportAssumption | understands (const char *buffer, int size) const |
Determines whether this FileFormat is capable of understanding a file which starts with the given byte sequence. More... | |
virtual std::unique_ptr< Importer > | makeImporter (const QString &path, Map *map, MapView *view) const |
Creates an Importer that will read a map file from the given stream. More... | |
virtual std::unique_ptr< Exporter > | makeExporter (const QString &path, const Map *map, const MapView *view) const |
Creates an Exporter that will save a map to the given path. More... | |
Describes a file format understood by this application.
Each file format has an ID (an internal, non-translated string); a description (translated); a file extension (non-translated); and methods to indicate their support for import or export. Formats are installed into a FormatRegistry, and can be looked up in a variety of ways.
A typical FileFormat subclass will look like this:
|
strong |
A type which handles OR-combinations of file types.
File format features.
Each feature shall use a distinct bit so that they may be OR-combined.
File type enumeration.
Each file type shall use a distinct bit so that they may be OR-combined.
Currently the program is only used for mapping, and "Map" is the only element. "Course" or "Event" are possible additions.
Enumerator | |
---|---|
MapFile | |
OgrFile | Geospatial vector data supported by OGR. |
AllFiles | All types which can be handled by an editor. |
EndOfFileTypes |
A type which handles OR-combinations of format implementation features.
A type which indicates the level of support for importing a file.
If a file format fully supports a file format, errors during import must be regard as fatal. If the level of support is Unknown, an import can be attempted, but an import failure allows no conclusion about whether the file format is actually unsupported or the file contains invalid data for a supported format.
Enumerator | |
---|---|
NotSupported | The FileFormat does not support the file. |
Unknown | The FileFormat support cannot be determine in advance. |
FullySupported | The FileFormat supports the file. |
OpenOrienteering::FileFormat::FileFormat | ( | FileFormat::FileType | file_type, |
const char * | id, | ||
const QString & | description, | ||
const QString & | file_extension, | ||
Features | features | ||
) |
Creates a new file format with the given parameters.
Don't use a leading dot on the file extension.
|
delete |
|
delete |
|
virtualdefault |
Destroys the file format information.
void OpenOrienteering::FileFormat::addExtension | ( | const QString & | file_extension | ) |
Registers an alternative file name extension.
It is used by the filter.
|
inline |
Returns a short human-readable description of the file format.
|
inline |
Returns all file name extension supported by this file format.
|
inline |
Returns the type of file.
|
inline |
Returns the filter that represents this format in file dialogs.
|
inline |
Returns the internal ID of the file format.
|
inline |
Returns true if an importer for this file format is potentially lossy.
When the importer is lossy, the created Map may not fully represent all features of the file.
|
inline |
Returns true if an exporter for this file format is potentially lossy.
When the exporter is lossy, the created file may not fully represent all features of the Map in the program.
|
virtual |
Creates an Exporter that will save a map to the given path.
The default implementation returns an unset unique_ptr.
Reimplemented in OpenOrienteering::OcdFileFormat, OpenOrienteering::OgrFileExportFormat, OpenOrienteering::OgrFileExportFormat, OpenOrienteering::XMLFileFormat, and OpenOrienteering::OCAD8FileFormat.
|
virtual |
Creates an Importer that will read a map file from the given stream.
The default implementation returns an unset unique_ptr.
Reimplemented in OpenOrienteering::OcdFileFormat, OpenOrienteering::OgrFileImportFormat, OpenOrienteering::OgrFileImportFormat, OpenOrienteering::XMLFileFormat, and OpenOrienteering::OCAD8FileFormat.
|
delete |
|
delete |
|
inline |
Returns the primary file name extension used by this file format.
This shall only be used for constructing new file names. Otherwise you will probably need to use fileExtensions().
|
inline |
Returns true if this format is available for File > Export...
|
inline |
Returns true if this format is available for File > Import...
|
inline |
Returns true if this format is available for File > Open...
|
inline |
Returns true if this format is available for File > Save.
|
inline |
Returns true if this format is available for File > Save as...
bool OpenOrienteering::FileFormat::supportsReading | ( | ) | const |
Returns true if this format supports reading a Map from a file.
bool OpenOrienteering::FileFormat::supportsWriting | ( | ) | const |
Returns true if this format supports writing a Map to a file.
|
virtual |
Determines whether this FileFormat is capable of understanding a file which starts with the given byte sequence.
Magic numbers and version information are commonly placed at the beginning of a file. This method is used by the application to pre-screen for a suitable Importer.
The default implementation returns Unknown for file formats which support import, and NotSupported otherwise.
Reimplemented in OpenOrienteering::OcdFileFormat, OpenOrienteering::XMLFileFormat, and OpenOrienteering::OCAD8FileFormat.