19 #ifndef QGS_OFFLINE_EDITING_H
20 #define QGS_OFFLINE_EDITING_H
22 #include "qgis_core.h"
69 bool convertToOfflineProject(
const QString &offlineDataPath,
const QString &offlineDbFile,
const QStringList &layerIds,
bool onlySelected =
false, ContainerType containerType = SpatiaLite,
const QString &layerNameSuffix = QStringLiteral(
" (offline)" ) );
72 bool isOfflineProject()
const;
79 void synchronize(
bool useTransaction =
false );
118 void warning(
const QString &title,
const QString &message );
121 void initializeSpatialMetadata(
sqlite3 *sqlite_handle );
122 bool createOfflineDb(
const QString &offlineDbPath,
ContainerType containerType = SpatiaLite );
123 void createLoggingTables(
sqlite3 *db );
125 void convertToOfflineLayer(
QgsVectorLayer *layer,
sqlite3 *db,
const QString &offlineDbPath,
bool onlySelected,
ContainerType containerType = SpatiaLite,
const QString &layerNameSuffix = QStringLiteral(
" (offline)" ) );
141 void showWarning(
const QString &message );
144 int getOrCreateLayerId(
sqlite3 *db,
const QString &qgisLayerId );
145 int getCommitNo(
sqlite3 *db );
146 void increaseCommitNo(
sqlite3 *db );
152 int sqlExec(
sqlite3 *db,
const QString &sql );
153 int sqlQueryInt(
sqlite3 *db,
const QString &sql,
int defaultValue );
154 QString sqlQueryStr(
sqlite3 *db,
const QString &sql, QString &defaultValue );
155 QList<int> sqlQueryInts(
sqlite3 *db,
const QString &sql );
156 QString sqlEscape( QString value )
const;
158 QList<QgsField> sqlQueryAttributesAdded(
sqlite3 *db,
const QString &sql );
161 struct AttributeValueChange
167 typedef QList<AttributeValueChange> AttributeValueChanges;
168 AttributeValueChanges sqlQueryAttributeValueChanges(
sqlite3 *db,
const QString &sql );
170 struct GeometryChange
175 typedef QList<GeometryChange> GeometryChanges;
176 GeometryChanges sqlQueryGeometryChanges(
sqlite3 *db,
const QString &sql );
180 void committedAttributesAdded(
const QString &qgisLayerId,
const QList<QgsField> &addedAttributes );
181 void committedFeaturesAdded(
const QString &qgisLayerId,
const QgsFeatureList &addedFeatures );
182 void committedFeaturesRemoved(
const QString &qgisLayerId,
const QgsFeatureIds &deletedFeatureIds );
183 void committedAttributeValuesChanges(
const QString &qgisLayerId,
const QgsChangedAttributesMap &changedAttrsMap );
184 void committedGeometriesChanges(
const QString &qgisLayerId,
const QgsGeometryMap &changedGeometries );
185 void startListenFeatureChanges();
186 void stopListenFeatureChanges();
Base class for all map layer types.
void progressModeSet(QgsOfflineEditing::ProgressMode mode, long long maximum)
Emitted when the mode for the progress of the current operation is set.
void progressUpdated(long long progress)
Emitted with the progress of the current mode.
void layerProgressUpdated(int layer, int numLayers)
Emitted whenever a new layer is being processed.
void warning(const QString &title, const QString &message)
Emitted when a warning needs to be displayed.
void progressStopped()
Emitted when the processing of all layers has finished.
ContainerType
Type of offline database container file.
void progressStarted()
Emitted when the process has started.
Represents a vector layer which manages a vector based data sets.
Unique pointer for sqlite3 databases, which automatically closes the database when the pointer goes o...
QMap< QgsFeatureId, QgsGeometry > QgsGeometryMap
QMap< QgsFeatureId, QgsAttributeMap > QgsChangedAttributesMap
QList< QgsFeature > QgsFeatureList
QSet< QgsFeatureId > QgsFeatureIds
qint64 QgsFeatureId
64 bit feature ids negative numbers are used for uncommitted/newly added features