/
qgspostgresprojectstorage.h
51 lines (34 loc) · 1.48 KB
/
qgspostgresprojectstorage.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#ifndef QGSPOSTGRESPROJECTSTORAGE_H
#define QGSPOSTGRESPROJECTSTORAGE_H
#include "qgsconfig.h"
#include "qgsprojectstorage.h"
#include "qgsdatasourceuri.h"
//! Stores information parsed from postgres project URI
typedef struct
{
bool valid;
QgsDataSourceUri connInfo; // using only the bits about connection info (server, port, username, password, service, ssl mode)
QString schemaName;
QString projectName;
} QgsPostgresProjectUri;
//! Implements storage of QGIS projects inside a PostgreSQL table
class QgsPostgresProjectStorage : public QgsProjectStorage
{
public:
QgsPostgresProjectStorage();
virtual QString type() override { return QStringLiteral( "postgresql" ); }
virtual QStringList listProjects( const QString &uri ) override;
virtual bool readProject( const QString &uri, QIODevice *device, QgsReadWriteContext &context ) override;
virtual bool writeProject( const QString &uri, QIODevice *device, QgsReadWriteContext &context ) override;
virtual bool removeProject( const QString &uri ) override;
virtual bool readProjectMetadata( const QString &uri, QgsProjectStorage::Metadata &metadata ) override;
#ifdef HAVE_GUI
// GUI support
virtual QString visibleName() override;
virtual QString showLoadGui() override;
virtual QString showSaveGui() override;
#endif
static QString encodeUri( const QgsPostgresProjectUri &postUri );
static QgsPostgresProjectUri decodeUri( const QString &uri );
};
#endif // QGSPOSTGRESPROJECTSTORAGE_H