Slicer 5.9
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
qSlicerCoreIOManager Class Reference

#include <Base/QTCore/qSlicerCoreIOManager.h>

Inheritance diagram for qSlicerCoreIOManager:
Collaboration diagram for qSlicerCoreIOManager:

Properties

int defaultMaximumFileNameLength
 
QString defaultSceneFileType
 

Public Member Functions

Q_INVOKABLE void addDefaultStorageNodes ()
 
Q_INVOKABLE QStringList allReadableFileExtensions () const
 
Q_INVOKABLE QStringList allWritableFileExtensions () const
 
Q_INVOKABLE QString completeSlicerWritableFileNameSuffix (vtkMRMLStorableNode *node) const
 
int defaultMaximumFileNameLength () const
 
Q_INVOKABLE bool exportNodes (const QList< qSlicerIO::IOProperties > &parameterMaps, bool hardenTransforms, vtkMRMLMessageCollection *userMessages=nullptr)
 
Q_INVOKABLE bool exportNodes (const QStringList &nodeIDs, const QStringList &fileNames, const qSlicerIO::IOProperties &commonParameterMap, bool hardenTransforms, vtkMRMLMessageCollection *userMessages=nullptr)
 
Q_INVOKABLE QString extractKnownExtension (const QString &fileName, vtkObject *object)
 
Q_INVOKABLE QStringList fileDescriptions (const QString &file) const
 
QStringList fileDescriptionsByType (const qSlicerIO::IOFileType fileType) const
 
qSlicerIOOptionsfileOptions (const QString &fileDescription) const
 Return the file read options for the best reader associated with a file type.
 
Q_INVOKABLE qSlicerIO::IOFileType fileType (const QString &file) const
 Return the most likely file type (SegmentationFile, TextFile, ...) for reading a file.
 
Q_INVOKABLE qSlicerIO::IOFileType fileTypeFromDescription (const QString &fileDescription) const
 Return the most likely file description (SegmentationFile, TextFile, ...) for reading a file.
 
Q_INVOKABLE QList< qSlicerIO::IOFileTypefileTypes (const QString &file) const
 Return all supported file types for reading a file.
 
Q_INVOKABLE QStringList fileWriterDescriptions (const qSlicerIO::IOFileType &fileType) const
 
Q_INVOKABLE QStringList fileWriterExtensions (vtkObject *object) const
 
Q_INVOKABLE qSlicerIO::IOFileType fileWriterFileType (vtkObject *object, const QString &extension=QString()) const
 Return the file type of the best file writer for the input VTK object.
 
qSlicerIOOptionsfileWriterOptions (vtkObject *object, const QString &extension) const
 Return the file write options of the best file writer for the input VTK object.
 
Q_INVOKABLE QString forceFileNameMaxLength (const QString &filename, int extensionLength, int maxLength=-1)
 
Q_INVOKABLE bool loadFile (const QString &fileName, vtkMRMLMessageCollection *userMessages=nullptr)
 
virtual bool loadNodes (const QList< qSlicerIO::IOProperties > &files, vtkCollection *loadedNodes=nullptr, vtkMRMLMessageCollection *userMessages=nullptr)
 
virtual Q_INVOKABLE bool loadNodes (const qSlicerIO::IOFileType &fileType, const qSlicerIO::IOProperties &parameters, vtkCollection *loadedNodes=nullptr, vtkMRMLMessageCollection *userMessages=nullptr)
 
vtkMRMLNodeloadNodesAndGetFirst (qSlicerIO::IOFileType fileType, const qSlicerIO::IOProperties &parameters, vtkMRMLMessageCollection *userMessages=nullptr)
 
Q_INVOKABLE bool loadScene (const QString &fileName, bool clear=true, vtkMRMLMessageCollection *userMessages=nullptr)
 
 qSlicerCoreIOManager (QObject *parent=nullptr)
 
void registerIO (qSlicerIO *io)
 
Q_INVOKABLE bool saveNodes (qSlicerIO::IOFileType fileType, const qSlicerIO::IOProperties &parameters, vtkMRMLMessageCollection *userMessages=nullptr, vtkMRMLScene *scene=nullptr)
 
Q_INVOKABLE bool saveScene (const QString &fileName, QImage screenShot, vtkMRMLMessageCollection *userMessages=nullptr)
 
Q_INVOKABLE QString stripKnownExtension (const QString &fileName, vtkObject *object)
 
qSlicerFileWriterwriter (vtkObject *object, const QString &extension=QString()) const
 Return best file writer for this object.
 
 ~qSlicerCoreIOManager () override
 

Static Public Member Functions

static Q_INVOKABLE QRegExp fileNameRegExp (const QString &extension=QString())
 
static Q_INVOKABLE QString forceFileNameValidCharacters (const QString &filename)
 Remove characters that are likely to cause problems in a filename.
 
QScopedPointer< qSlicerCoreIOManagerPrivate > d_ptr
 
Q_INVOKABLE int registeredFileReaderCount (const qSlicerIO::IOFileType &fileType) const
 
Q_INVOKABLE int registeredFileWriterCount (const qSlicerIO::IOFileType &fileType) const
 
Q_INVOKABLE void emitNewFileLoaded (const QVariantMap &loadedFileParameters)
 
Q_INVOKABLE void emitFileSaved (const QVariantMap &savedFileParameters)
 
Q_INVOKABLE QString defaultSceneFileType () const
 Defines the file format that should be offered by default when the scene is saved.
 
Q_INVOKABLE bool examineFileInfoList (QFileInfoList &fileInfoList, QFileInfo &archetypeEntry, QString &readerDescription, qSlicerIO::IOProperties &ioProperties) const
 
static Q_INVOKABLE vtkMRMLStorageNodecreateAndAddDefaultStorageNode (vtkMRMLStorableNode *node)
 }@
 
void setDefaultSceneFileType (QString)
 
void setDefaultMaximumFileNameLength (int)
 
void newFileLoaded (const qSlicerIO::IOProperties &loadedFileParameters)
 
void fileSaved (const qSlicerIO::IOProperties &savedFileParameters)
 
const QList< qSlicerFileReader * > & readers () const
 Returns the list of registered readers.
 
const QList< qSlicerFileWriter * > & writers () const
 Returns the list of registered writers.
 
QList< qSlicerFileWriter * > writers (const qSlicerIO::IOFileType &fileType) const
 Returns the list of registered writers for a given fileType.
 
QList< qSlicerFileReader * > readers (const qSlicerIO::IOFileType &fileType) const
 Returns the list of registered readers or writers associated with fileType.
 
qSlicerFileReaderreader (const QString &ioDescription) const
 

Detailed Description

Definition at line 49 of file qSlicerCoreIOManager.h.

Property Documentation

◆ defaultMaximumFileNameLength

int qSlicerCoreIOManager::defaultMaximumFileNameLength
readwrite

Definition at line 53 of file qSlicerCoreIOManager.h.

◆ defaultSceneFileType

QString qSlicerCoreIOManager::defaultSceneFileType
readwrite

Definition at line 52 of file qSlicerCoreIOManager.h.

Constructor & Destructor Documentation

◆ qSlicerCoreIOManager()

qSlicerCoreIOManager::qSlicerCoreIOManager ( QObject * parent = nullptr)

◆ ~qSlicerCoreIOManager()

qSlicerCoreIOManager::~qSlicerCoreIOManager ( )
override

Member Function Documentation

◆ addDefaultStorageNodes()

Q_INVOKABLE void qSlicerCoreIOManager::addDefaultStorageNodes ( )

Create default storage nodes for all storable nodes that are to be saved with the scene and do not have a storage node already File name is set based on node name, using use default file extension, with special characters in the node name percent-encoded. This method can be used to ensure a storage node exists before writing a storable node to file by calling storableNode->GetStorageNode()->WriteData(storableNode).

◆ allReadableFileExtensions()

Q_INVOKABLE QStringList qSlicerCoreIOManager::allReadableFileExtensions ( ) const

Return a string list of all the readable file extensions for all registered types of storage nodes. Includes the leading dot.

◆ allWritableFileExtensions()

Q_INVOKABLE QStringList qSlicerCoreIOManager::allWritableFileExtensions ( ) const

Return a string list of all the writable file extensions for all registered types of storage nodes. Includes the leading dot.

◆ completeSlicerWritableFileNameSuffix()

Q_INVOKABLE QString qSlicerCoreIOManager::completeSlicerWritableFileNameSuffix ( vtkMRMLStorableNode * node) const

Returns a full extension for this storable node that is recognised by Slicer IO. Consults the storage node for a list of known suffixes, if no match is found and the .* extension exists, return the Qt completeSuffix string. If .* is not in the complete list of known suffixes, returns an empty suffix. Always includes the leading dot.

◆ createAndAddDefaultStorageNode()

static Q_INVOKABLE vtkMRMLStorageNode * qSlicerCoreIOManager::createAndAddDefaultStorageNode ( vtkMRMLStorableNode * node)
static

}@

Create and add default storage node

◆ defaultMaximumFileNameLength()

int qSlicerCoreIOManager::defaultMaximumFileNameLength ( ) const

Default maximum length for a filename. It is used when maximum filename length is enforced by calling forceFileNameMaxLength() without providing a specific maximum length value.

See also
forceFileNameMaxLength(), setDefaultMaximumFileNameLength()

◆ defaultSceneFileType()

Q_INVOKABLE QString qSlicerCoreIOManager::defaultSceneFileType ( ) const

Defines the file format that should be offered by default when the scene is saved.

◆ emitFileSaved()

Q_INVOKABLE void qSlicerCoreIOManager::emitFileSaved ( const QVariantMap & savedFileParameters)

This function should be used from python scripted module willing to interface with the qSlicerCoreIOManager. It will emit the signal fileSaved().

See also
fileSaved()

◆ emitNewFileLoaded()

Q_INVOKABLE void qSlicerCoreIOManager::emitNewFileLoaded ( const QVariantMap & loadedFileParameters)

This function should be used from python scripted module willing to interface with the qSlicerCoreIOManager. It will emit the signal newFileLoaded().

See also
newFileLoaded()

◆ examineFileInfoList()

Q_INVOKABLE bool qSlicerCoreIOManager::examineFileInfoList ( QFileInfoList & fileInfoList,
QFileInfo & archetypeEntry,
QString & readerDescription,
qSlicerIO::IOProperties & ioProperties ) const

Iterates through readers looking at the fileInfoList to see if there is an entry that can serve as an archetype for loading multiple fileInfos. If so, the reader removes the recognized fileInfos from the list and sets the ioProperties so that the corresponding loader will read these files. The archetypeEntry will contain the fileInfo for the archetype and the method returns true. If no pattern is recognized the method returns false. The specific motivating use case is when the file list contains a set of related files, such as a list of image files that are recognized as a volume. But other cases could also make sense, such as when a file format has a set or related files such as textures or material files for a surface model.

See also
qSlicerDataDialog
qSlicerFileReader

◆ exportNodes() [1/2]

Q_INVOKABLE bool qSlicerCoreIOManager::exportNodes ( const QList< qSlicerIO::IOProperties > & parameterMaps,
bool hardenTransforms,
vtkMRMLMessageCollection * userMessages = nullptr )

Export nodes using the registered writers. Return true on success, false otherwise. Unlike saveNodes(), this function creates a temporary scene while saving, in order to to avoid modifying storage nodes in the current scene. The list parameterMaps should consist of maps that each specify a "nodeID" (ID of a node in the main scene), a "fileName" (an absolute file path), a "fileFormat" (e.g. "NRRD (.nrrd)"), and any other options that the associated writer may end up using.

Parameters
parameterMapsFor each node to exported, a map of parameters that will get passed to qSlicerCoreIOManager::saveNodes.
hardenTransformsWhether to temporarily apply transform hardening before export.
userMessagesIf a valid pointer is passed, then error messages may be returned in it.
See also
qSlicerNodeWriter, qSlicerIO::IOProperties, qSlicerIO::IOFileType, vtkMRMLStorageNode, saveNodes().

◆ exportNodes() [2/2]

Q_INVOKABLE bool qSlicerCoreIOManager::exportNodes ( const QStringList & nodeIDs,
const QStringList & fileNames,
const qSlicerIO::IOProperties & commonParameterMap,
bool hardenTransforms,
vtkMRMLMessageCollection * userMessages = nullptr )

Export nodes using the registered writers with an API that is usable from Python. It only allows exporting all nodes with the same parameters. Return true on success, false otherwise.

See also
exportNodes().

◆ extractKnownExtension()

Q_INVOKABLE QString qSlicerCoreIOManager::extractKnownExtension ( const QString & fileName,
vtkObject * object )

If fileName ends with an extension that is associated with object, then return that extension. Otherwise return an empty string. If there are multiple candidates (such as for "something.seg.nrrd" both ".nrrd" and ".seg.nrrd" extensions match) then the longest is returned.

◆ fileDescriptions()

Q_INVOKABLE QStringList qSlicerCoreIOManager::fileDescriptions ( const QString & file) const

Return the file description ("Volume", "Transform", etc.) associated with a file Usually the description is a short text of one or two words e.g. Volume, Model, ...

◆ fileDescriptionsByType()

QStringList qSlicerCoreIOManager::fileDescriptionsByType ( const qSlicerIO::IOFileType fileType) const

Returns descriptions for a file type available across all readers. Usually there is only one reader for a file type.

◆ fileNameRegExp()

static Q_INVOKABLE QRegExp qSlicerCoreIOManager::fileNameRegExp ( const QString & extension = QString())
static

Generate a regular expression that can ensure a filename has a valid extension. Example of supported extensions: "", "*", ".*", ".jpg", ".png" ".tar.gz"... An empty extension or "*" means any filename (or directory) is valid

◆ fileOptions()

qSlicerIOOptions * qSlicerCoreIOManager::fileOptions ( const QString & fileDescription) const

Return the file read options for the best reader associated with a file type.

◆ fileSaved

void qSlicerCoreIOManager::fileSaved ( const qSlicerIO::IOProperties & savedFileParameters)
signal

This signal is emitted each time a file is saved using saveNodes() The savedFileParameters QVariant map contains the parameters passed to the writer.

See also
saveNodes()

◆ fileType()

Q_INVOKABLE qSlicerIO::IOFileType qSlicerCoreIOManager::fileType ( const QString & file) const

Return the most likely file type (SegmentationFile, TextFile, ...) for reading a file.

◆ fileTypeFromDescription()

Q_INVOKABLE qSlicerIO::IOFileType qSlicerCoreIOManager::fileTypeFromDescription ( const QString & fileDescription) const

Return the most likely file description (SegmentationFile, TextFile, ...) for reading a file.

◆ fileTypes()

Q_INVOKABLE QList< qSlicerIO::IOFileType > qSlicerCoreIOManager::fileTypes ( const QString & file) const

Return all supported file types for reading a file.

◆ fileWriterDescriptions()

Q_INVOKABLE QStringList qSlicerCoreIOManager::fileWriterDescriptions ( const qSlicerIO::IOFileType & fileType) const

◆ fileWriterExtensions()

Q_INVOKABLE QStringList qSlicerCoreIOManager::fileWriterExtensions ( vtkObject * object) const

◆ fileWriterFileType()

Q_INVOKABLE qSlicerIO::IOFileType qSlicerCoreIOManager::fileWriterFileType ( vtkObject * object,
const QString & extension = QString() ) const

Return the file type of the best file writer for the input VTK object.

◆ fileWriterOptions()

qSlicerIOOptions * qSlicerCoreIOManager::fileWriterOptions ( vtkObject * object,
const QString & extension ) const

Return the file write options of the best file writer for the input VTK object.

◆ forceFileNameMaxLength()

Q_INVOKABLE QString qSlicerCoreIOManager::forceFileNameMaxLength ( const QString & filename,
int extensionLength,
int maxLength = -1 )

Clamp the length of a filename to a maximum number of characters. The length of the filename extension must also be specified so that it is not included in the shortened section. If the extension is not known then extractKnownExtension() method can be used to get the extension. If maxLength is not specified, the default maximum length (defaultMaximumFileNameLength) is used.

See also
extractKnownExtension(), defaultMaximumFileNameLength()

◆ forceFileNameValidCharacters()

static Q_INVOKABLE QString qSlicerCoreIOManager::forceFileNameValidCharacters ( const QString & filename)
static

Remove characters that are likely to cause problems in a filename.

◆ loadFile()

Q_INVOKABLE bool qSlicerCoreIOManager::loadFile ( const QString & fileName,
vtkMRMLMessageCollection * userMessages = nullptr )

Convenient function to load a file. All the options (e.g. filetype) are chosen by default. If a valid pointer is passed to userMessages additional error or warning information may be returned in it.

◆ loadNodes() [1/2]

virtual bool qSlicerCoreIOManager::loadNodes ( const QList< qSlicerIO::IOProperties > & files,
vtkCollection * loadedNodes = nullptr,
vtkMRMLMessageCollection * userMessages = nullptr )
virtual

Utility function that loads a bunch of files. The "fileType" attribute should in the parameter map for each node to load. If a valid pointer is passed to userMessages additional error or warning information may be returned in it.

Reimplemented in qSlicerIOManager.

◆ loadNodes() [2/2]

virtual Q_INVOKABLE bool qSlicerCoreIOManager::loadNodes ( const qSlicerIO::IOFileType & fileType,
const qSlicerIO::IOProperties & parameters,
vtkCollection * loadedNodes = nullptr,
vtkMRMLMessageCollection * userMessages = nullptr )
virtual

Load a list of nodes corresponding to fileType. A given fileType corresponds to a specific reader qSlicerIO. A map of QVariant allows to specify which parameters should be passed to the reader. The function return 0 if it fails. The map associated with most of the fileType should contains either fileName (QString or QStringList) or fileNames (QStringList). More specific parameters could also be set. For example, the volume reader qSlicerVolumesIO could also be called with the following parameters: LabelMap (bool), Center (bool) If a valid pointer is passed to userMessages additional error or warning information may be returned in it.

Note
Make also sure the case of parameter name is respected
See also
qSlicerIO::IOProperties, qSlicerIO::IOFileType, saveNodes()

Reimplemented in qSlicerIOManager.

◆ loadNodesAndGetFirst()

vtkMRMLNode * qSlicerCoreIOManager::loadNodesAndGetFirst ( qSlicerIO::IOFileType fileType,
const qSlicerIO::IOProperties & parameters,
vtkMRMLMessageCollection * userMessages = nullptr )

Load a list of node corresponding to fileType and return the first loaded node. This function is provided for convenience and is equivalent to call loadNodes with a vtkCollection parameter and retrieve the first element. If a valid pointer is passed to userMessages additional error or warning information may be returned in it.

◆ loadScene()

Q_INVOKABLE bool qSlicerCoreIOManager::loadScene ( const QString & fileName,
bool clear = true,
vtkMRMLMessageCollection * userMessages = nullptr )

Load/import a scene corresponding to fileName This function is provided for convenience and is equivalent to call loadNodes function with QString("SceneFile"). If a valid pointer is passed to userMessages additional error or warning information may be returned in it.

◆ newFileLoaded

void qSlicerCoreIOManager::newFileLoaded ( const qSlicerIO::IOProperties & loadedFileParameters)
signal

This signal is emitted each time a file is loaded using loadNodes() The loadedFileParameters QVariant map contains the parameters passed to the reader and also the fileType and nodeIDs keys respectively associated with a QString and a QStringList.

See also
loadNodes(const qSlicerIO::IOFileType&, const qSlicerIO::IOProperties&, vtkCollection*)

◆ reader()

qSlicerFileReader * qSlicerCoreIOManager::reader ( const QString & ioDescription) const
protected

◆ readers() [1/2]

const QList< qSlicerFileReader * > & qSlicerCoreIOManager::readers ( ) const
protected

Returns the list of registered readers.

◆ readers() [2/2]

QList< qSlicerFileReader * > qSlicerCoreIOManager::readers ( const qSlicerIO::IOFileType & fileType) const
protected

Returns the list of registered readers or writers associated with fileType.

◆ registeredFileReaderCount()

Q_INVOKABLE int qSlicerCoreIOManager::registeredFileReaderCount ( const qSlicerIO::IOFileType & fileType) const

Return the number of registered qSlicerIO associated with fileType.

registerIO() qSlicerScriptedLoadableModule::registerIO() qSlicerScriptedLoadableModule::readers() qSlicerScriptedLoadableModule::writers()

◆ registeredFileWriterCount()

Q_INVOKABLE int qSlicerCoreIOManager::registeredFileWriterCount ( const qSlicerIO::IOFileType & fileType) const

◆ registerIO()

void qSlicerCoreIOManager::registerIO ( qSlicerIO * io)

Register the reader/writer io Note also that the IOManager takes ownership of io

◆ saveNodes()

Q_INVOKABLE bool qSlicerCoreIOManager::saveNodes ( qSlicerIO::IOFileType fileType,
const qSlicerIO::IOProperties & parameters,
vtkMRMLMessageCollection * userMessages = nullptr,
vtkMRMLScene * scene = nullptr )

Save nodes (or scene) using the registered writers. Return true on success, false otherwise. Attributes are typically: For all: QString fileName (or QStringList fileNames) For nodes: QString nodeID, bool useCompression If a valid pointer is passed to userMessages additional error or warning information may be returned in it. If a valid pointer is passed to scene, writers will be told to use that scene instead of the current scene.

See also
qSlicerNodeWriter, qSlicerIO::IOProperties, qSlicerIO::IOFileType, loadNodes(), exportNodes()

◆ saveScene()

Q_INVOKABLE bool qSlicerCoreIOManager::saveScene ( const QString & fileName,
QImage screenShot,
vtkMRMLMessageCollection * userMessages = nullptr )

Save a scene corresponding to fileName This function is provided for convenience and is equivalent to call saveNodes function with QString("SceneFile") with the fileName and screenShot set as properties. If a valid pointer is passed to userMessages additional error or warning information may be returned in it.

◆ setDefaultMaximumFileNameLength

void qSlicerCoreIOManager::setDefaultMaximumFileNameLength ( int )
slot

Default maximum length for a filename.

See also
forceFileNameMaxLength()

◆ setDefaultSceneFileType

void qSlicerCoreIOManager::setDefaultSceneFileType ( QString )
slot

Defines the file format that should be offered by default when the scene is saved. Valid options are defined in qSlicerSceneWriter (for example, "MRML Scene (.mrml)" or "Medical Reality Bundle (.mrb)").

◆ stripKnownExtension()

Q_INVOKABLE QString qSlicerCoreIOManager::stripKnownExtension ( const QString & fileName,
vtkObject * object )

If fileName ends with an extension that is associated with object, then return a stripped version of fileName, where that extension has been chopped off. If the extension is duplicated in the tail of fileName, then all duplicates are stripped away.

◆ writer()

qSlicerFileWriter * qSlicerCoreIOManager::writer ( vtkObject * object,
const QString & extension = QString() ) const

Return best file writer for this object.

◆ writers() [1/2]

const QList< qSlicerFileWriter * > & qSlicerCoreIOManager::writers ( ) const
protected

Returns the list of registered writers.

◆ writers() [2/2]

QList< qSlicerFileWriter * > qSlicerCoreIOManager::writers ( const qSlicerIO::IOFileType & fileType) const
protected

Returns the list of registered writers for a given fileType.

Member Data Documentation

◆ d_ptr

QScopedPointer<qSlicerCoreIOManagerPrivate> qSlicerCoreIOManager::d_ptr
protected

Definition at line 324 of file qSlicerCoreIOManager.h.


The documentation for this class was generated from the following file: