QGIS API Documentation  3.4.3-Madeira (2f64a3c)
Classes | Public Member Functions | List of all members
QgsProjectStorage Class Referenceabstract

Abstract interface for project storage - to be implemented by various backends and registered in QgsProjectStorageRegistry. More...

#include <qgsprojectstorage.h>

Classes

class  Metadata
 Metadata associated with a project. More...
 

Public Member Functions

virtual ~QgsProjectStorage ()=default
 
virtual QStringList listProjects (const QString &uri)=0
 Returns list of all projects for given URI (specific to each storage backend) More...
 
virtual bool readProject (const QString &uri, QIODevice *device, QgsReadWriteContext &context)=0
 Reads project file content stored in the backend at the specified URI to the given device (could be e.g. More...
 
virtual bool readProjectStorageMetadata (const QString &uri, QgsProjectStorage::Metadata &metadata)
 Reads project metadata (e.g. More...
 
virtual bool removeProject (const QString &uri)=0
 Removes an existing project at the given URI. More...
 
virtual bool renameProject (const QString &uri, const QString &uriNew)
 Rename an existing project at the given URI to a different URI. More...
 
virtual QString showLoadGui ()
 Opens GUI to allow user to select a project to be loaded (GUI specific to this storage type). More...
 
virtual QString showSaveGui ()
 Opens GUI to allow user to select where a project should be saved (GUI specific to this storage type). More...
 
virtual QString type ()=0
 Unique identifier of the project storage type. More...
 
virtual QString visibleName ()
 Returns human-readable name of the storage. More...
 
virtual bool writeProject (const QString &uri, QIODevice *device, QgsReadWriteContext &context)=0
 Writes project file content stored in given device (could be e.g. More...
 

Detailed Description

Abstract interface for project storage - to be implemented by various backends and registered in QgsProjectStorageRegistry.

Since
QGIS 3.2

Definition at line 37 of file qgsprojectstorage.h.

Constructor & Destructor Documentation

◆ ~QgsProjectStorage()

virtual QgsProjectStorage::~QgsProjectStorage ( )
virtualdefault

Member Function Documentation

◆ listProjects()

virtual QStringList QgsProjectStorage::listProjects ( const QString &  uri)
pure virtual

Returns list of all projects for given URI (specific to each storage backend)

◆ readProject()

virtual bool QgsProjectStorage::readProject ( const QString &  uri,
QIODevice *  device,
QgsReadWriteContext context 
)
pure virtual

Reads project file content stored in the backend at the specified URI to the given device (could be e.g.

a temporary file or a memory buffer). The device is expected to be empty when passed to readProject() so that the method can write all data to it and then rewind it using seek(0) to make it ready for reading in QgsProject.

◆ readProjectStorageMetadata()

virtual bool QgsProjectStorage::readProjectStorageMetadata ( const QString &  uri,
QgsProjectStorage::Metadata metadata 
)
inlinevirtual

Reads project metadata (e.g.

last modified time) if this is supported by the storage implementation. Returns true if the metadata were read with success.

Definition at line 98 of file qgsprojectstorage.h.

◆ removeProject()

virtual bool QgsProjectStorage::removeProject ( const QString &  uri)
pure virtual

Removes an existing project at the given URI.

Returns true if the removal was successful.

◆ renameProject()

virtual bool QgsProjectStorage::renameProject ( const QString &  uri,
const QString &  uriNew 
)
inlinevirtual

Rename an existing project at the given URI to a different URI.

Returns true if renaming was successful.

Definition at line 92 of file qgsprojectstorage.h.

◆ showLoadGui()

virtual QString QgsProjectStorage::showLoadGui ( )
inlinevirtual

Opens GUI to allow user to select a project to be loaded (GUI specific to this storage type).

Returns project URI if user has picked a project or empty string if the GUI was canceled.

Definition at line 111 of file qgsprojectstorage.h.

◆ showSaveGui()

virtual QString QgsProjectStorage::showSaveGui ( )
inlinevirtual

Opens GUI to allow user to select where a project should be saved (GUI specific to this storage type).

Returns project URI if user has picked a destination or empty string if the GUI was canceled.

Definition at line 117 of file qgsprojectstorage.h.

◆ type()

virtual QString QgsProjectStorage::type ( )
pure virtual

Unique identifier of the project storage type.

If type() returns "memory", all project file names starting with "memory:" will have read/write redirected through that storage implementation.

◆ visibleName()

virtual QString QgsProjectStorage::visibleName ( )
inlinevirtual

Returns human-readable name of the storage.

Used as the menu item text in QGIS. Empty name indicates that the storage does not implement GUI support (showLoadGui() and showSaveGui()). The name may be translatable and ideally unique as well.

Definition at line 105 of file qgsprojectstorage.h.

◆ writeProject()

virtual bool QgsProjectStorage::writeProject ( const QString &  uri,
QIODevice *  device,
QgsReadWriteContext context 
)
pure virtual

Writes project file content stored in given device (could be e.g.

a temporary file or a memory buffer) using the backend to the specified URI. The device is expected to contain all project file data and having position at the start of the content when passed to writeProject() so that the method can read all data from it until it reaches its end.


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