Slicer
5.0
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
|
#include <Base/QTCore/qSlicerCoreIOManager.h>
Properties | |
QString | defaultSceneFileType |
Public Slots | |
void | setDefaultSceneFileType (QString) |
Signals | |
void | fileSaved (const qSlicerIO::IOProperties &savedFileParameters) |
void | newFileLoaded (const qSlicerIO::IOProperties &loadedFileParameters) |
Public Member Functions | |
Q_INVOKABLE void | addDefaultStorageNodes () |
Q_INVOKABLE QStringList | allReadableFileExtensions () const |
Q_INVOKABLE QStringList | allWritableFileExtensions () const |
Q_INVOKABLE QString | completeSlicerWritableFileNameSuffix (vtkMRMLStorableNode *node) const |
Q_INVOKABLE QString | defaultSceneFileType () const |
Defines the file format that should be offered by default when the scene is saved. More... | |
Q_INVOKABLE void | emitFileSaved (const QVariantMap &savedFileParameters) |
Q_INVOKABLE void | emitNewFileLoaded (const QVariantMap &loadedFileParameters) |
Q_INVOKABLE bool | examineFileInfoList (QFileInfoList &fileInfoList, QFileInfo &archetypeEntry, QString &readerDescription, qSlicerIO::IOProperties &ioProperties) const |
Q_INVOKABLE bool | exportNodes (const QList< qSlicerIO::IOProperties > ¶meterMaps, 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 |
qSlicerIOOptions * | fileOptions (const QString &fileDescription) const |
Return the file option associated with a file type. More... | |
Q_INVOKABLE qSlicerIO::IOFileType | fileType (const QString &file) const |
Return the file type associated with a file. More... | |
Q_INVOKABLE qSlicerIO::IOFileType | fileTypeFromDescription (const QString &fileDescription) const |
Q_INVOKABLE QList< qSlicerIO::IOFileType > | fileTypes (const QString &file) const |
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 &format=QString()) const |
Return the file type associated with an VTK object. More... | |
qSlicerIOOptions * | fileWriterOptions (vtkObject *object, const QString &extension) const |
Q_INVOKABLE bool | loadFile (const QString &fileName, vtkMRMLMessageCollection *userMessages=nullptr) |
virtual Q_INVOKABLE bool | loadNodes (const qSlicerIO::IOFileType &fileType, const qSlicerIO::IOProperties ¶meters, vtkCollection *loadedNodes=nullptr, vtkMRMLMessageCollection *userMessages=nullptr) |
virtual bool | loadNodes (const QList< qSlicerIO::IOProperties > &files, vtkCollection *loadedNodes=nullptr, vtkMRMLMessageCollection *userMessages=nullptr) |
vtkMRMLNode * | loadNodesAndGetFirst (qSlicerIO::IOFileType fileType, const qSlicerIO::IOProperties ¶meters, 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 ¶meters, 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) |
~qSlicerCoreIOManager () override | |
Static Public Member Functions | |
static Q_INVOKABLE vtkMRMLStorageNode * | createAndAddDefaultStorageNode (vtkMRMLStorableNode *node) |
Create and add default storage node. More... | |
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. More... | |
Protected Member Functions | |
qSlicerFileReader * | reader (const QString &ioDescription) const |
const QList< qSlicerFileReader * > & | readers () const |
Returns the list of registered readers. More... | |
QList< qSlicerFileReader * > | readers (const qSlicerIO::IOFileType &fileType) const |
Returns the list of registered readers or writers associated with fileType. More... | |
const QList< qSlicerFileWriter * > & | writers () const |
Returns the list of registered writers. More... | |
QList< qSlicerFileWriter * > | writers (const qSlicerIO::IOFileType &fileType) const |
Returns the list of registered writers for a given fileType. More... | |
Protected Attributes | |
QScopedPointer< qSlicerCoreIOManagerPrivate > | d_ptr |
Definition at line 49 of file qSlicerCoreIOManager.h.
|
readwrite |
Definition at line 51 of file qSlicerCoreIOManager.h.
qSlicerCoreIOManager::qSlicerCoreIOManager | ( | QObject * | parent = nullptr | ) |
|
override |
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).
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.
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.
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.
|
static |
Create and add default storage node.
Q_INVOKABLE QString qSlicerCoreIOManager::defaultSceneFileType | ( | ) | const |
Defines the file format that should be offered by default when the scene is saved.
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().
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().
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.
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.
parameterMaps | For each node to exported, a map of parameters that will get passed to qSlicerCoreIOManager::saveNodes. |
hardenTransforms | Whether to temporarily apply transform hardening before export. |
userMessages | If a valid pointer is passed, then error messages may be returned in it. |
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.
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.
Q_INVOKABLE QStringList qSlicerCoreIOManager::fileDescriptions | ( | const QString & | file | ) | const |
Return the file description associated with a file Usually the description is a short text of one or two words e.g. Volume, Model, ...
QStringList qSlicerCoreIOManager::fileDescriptionsByType | ( | const qSlicerIO::IOFileType | fileType | ) | const |
|
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
qSlicerIOOptions* qSlicerCoreIOManager::fileOptions | ( | const QString & | fileDescription | ) | const |
Return the file option associated with a file type.
|
signal |
This signal is emitted each time a file is saved using saveNodes() The savedFileParameters QVariant map contains the parameters passed to the writer.
Q_INVOKABLE qSlicerIO::IOFileType qSlicerCoreIOManager::fileType | ( | const QString & | file | ) | const |
Return the file type associated with a file.
Q_INVOKABLE qSlicerIO::IOFileType qSlicerCoreIOManager::fileTypeFromDescription | ( | const QString & | fileDescription | ) | const |
Q_INVOKABLE QList<qSlicerIO::IOFileType> qSlicerCoreIOManager::fileTypes | ( | const QString & | file | ) | const |
Q_INVOKABLE QStringList qSlicerCoreIOManager::fileWriterDescriptions | ( | const qSlicerIO::IOFileType & | fileType | ) | const |
Q_INVOKABLE QStringList qSlicerCoreIOManager::fileWriterExtensions | ( | vtkObject * | object | ) | const |
Q_INVOKABLE qSlicerIO::IOFileType qSlicerCoreIOManager::fileWriterFileType | ( | vtkObject * | object, |
const QString & | format = QString() |
||
) | const |
Return the file type associated with an VTK object.
qSlicerIOOptions* qSlicerCoreIOManager::fileWriterOptions | ( | vtkObject * | object, |
const QString & | extension | ||
) | const |
|
static |
Remove characters that are likely to cause problems in a filename.
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.
|
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.
Reimplemented in qSlicerIOManager.
|
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.
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.
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.
|
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.
|
protected |
|
protected |
Returns the list of registered readers.
|
protected |
Returns the list of registered readers or writers associated with fileType.
void qSlicerCoreIOManager::registerIO | ( | qSlicerIO * | io | ) |
Register the reader/writer io Note also that the IOManager takes ownership of io
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.
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.
|
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)").
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.
|
protected |
Returns the list of registered writers.
|
protected |
Returns the list of registered writers for a given fileType.
|
protected |
Definition at line 285 of file qSlicerCoreIOManager.h.