QGIS API Documentation  master-3f58142
QgsOfflineEditing Class Reference

#include <qgsofflineediting.h>

List of all members.

Classes

struct  AttributeValueChange
struct  GeometryChange

Public Types

enum  ProgressMode {
  CopyFeatures = 0, ProcessFeatures, AddFields, AddFeatures,
  RemoveFeatures, UpdateFeatures, UpdateGeometries
}

Signals

void layerProgressUpdated (int layer, int numLayers)
 emit a signal that the next layer of numLayers has started processing
void progressModeSet (QgsOfflineEditing::ProgressMode mode, int maximum)
 emit a signal that sets the mode for the progress of the current operation
void progressStarted ()
 emit a signal that processing has started
void progressStopped ()
 emit a signal that processing of all layers has finished
void progressUpdated (int progress)
 emit a signal with the progress of the current mode

Public Member Functions

 QgsOfflineEditing ()
 ~QgsOfflineEditing ()
bool convertToOfflineProject (const QString &offlineDataPath, const QString &offlineDbFile, const QStringList &layerIds)
 convert current project for offline editing
bool isOfflineProject ()
 return true if current project is offline
void synchronize ()
 synchronize to remote layers

Private Types

typedef QList
< AttributeValueChange
AttributeValueChanges
typedef QList< GeometryChangeGeometryChanges

Private Slots

void committedAttributesAdded (const QString &qgisLayerId, const QList< QgsField > &addedAttributes)
void committedAttributeValuesChanges (const QString &qgisLayerId, const QgsChangedAttributesMap &changedAttrsMap)
void committedFeaturesAdded (const QString &qgisLayerId, const QgsFeatureList &addedFeatures)
void committedFeaturesRemoved (const QString &qgisLayerId, const QgsFeatureIds &deletedFeatureIds)
void committedGeometriesChanges (const QString &qgisLayerId, const QgsGeometryMap &changedGeometries)
void layerAdded (QgsMapLayer *layer)

Private Member Functions

void addFidLookup (sqlite3 *db, int layerId, QgsFeatureId offlineFid, QgsFeatureId remoteFid)
void applyAttributesAdded (QgsVectorLayer *remoteLayer, sqlite3 *db, int layerId, int commitNo)
void applyAttributeValueChanges (QgsVectorLayer *offlineLayer, QgsVectorLayer *remoteLayer, sqlite3 *db, int layerId, int commitNo)
void applyFeaturesAdded (QgsVectorLayer *offlineLayer, QgsVectorLayer *remoteLayer, sqlite3 *db, int layerId)
void applyFeaturesRemoved (QgsVectorLayer *remoteLayer, sqlite3 *db, int layerId)
void applyGeometryChanges (QgsVectorLayer *remoteLayer, sqlite3 *db, int layerId, int commitNo)
QMap< int, int > attributeLookup (QgsVectorLayer *offlineLayer, QgsVectorLayer *remoteLayer)
void copySymbology (const QgsVectorLayer *sourceLayer, QgsVectorLayer *targetLayer)
void copyVectorLayer (QgsVectorLayer *layer, sqlite3 *db, const QString &offlineDbPath)
void createLoggingTables (sqlite3 *db)
bool createSpatialiteDB (const QString &offlineDbPath)
int getCommitNo (sqlite3 *db)
int getOrCreateLayerId (sqlite3 *db, const QString &qgisLayerId)
void increaseCommitNo (sqlite3 *db)
void initializeSpatialMetadata (sqlite3 *sqlite_handle)
bool isAddedFeature (sqlite3 *db, int layerId, QgsFeatureId fid)
QgsFeatureId offlineFid (sqlite3 *db, int layerId, QgsFeatureId remoteFid)
sqlite3openLoggingDb ()
QgsFeatureId remoteFid (sqlite3 *db, int layerId, QgsFeatureId offlineFid)
void showWarning (const QString &message)
int sqlExec (sqlite3 *db, const QString &sql)
QList< QgsFieldsqlQueryAttributesAdded (sqlite3 *db, const QString &sql)
AttributeValueChanges sqlQueryAttributeValueChanges (sqlite3 *db, const QString &sql)
QgsFeatureIds sqlQueryFeaturesRemoved (sqlite3 *db, const QString &sql)
GeometryChanges sqlQueryGeometryChanges (sqlite3 *db, const QString &sql)
int sqlQueryInt (sqlite3 *db, const QString &sql, int defaultValue)
QList< int > sqlQueryInts (sqlite3 *db, const QString &sql)
void updateFidLookup (QgsVectorLayer *remoteLayer, sqlite3 *db, int layerId)

Detailed Description

Definition at line 32 of file qgsofflineediting.h.


Member Typedef Documentation

Definition at line 127 of file qgsofflineediting.h.

Definition at line 135 of file qgsofflineediting.h.


Member Enumeration Documentation

Enumerator:
CopyFeatures 
ProcessFeatures 
AddFields 
AddFeatures 
RemoveFeatures 
UpdateFeatures 
UpdateGeometries 

Definition at line 37 of file qgsofflineediting.h.


Constructor & Destructor Documentation


Member Function Documentation

void QgsOfflineEditing::addFidLookup ( sqlite3 db,
int  layerId,
QgsFeatureId  offlineFid,
QgsFeatureId  remoteFid 
) [private]

Definition at line 844 of file qgsofflineediting.cpp.

References sqlExec().

Referenced by copyVectorLayer(), and updateFidLookup().

QMap< int, int > QgsOfflineEditing::attributeLookup ( QgsVectorLayer offlineLayer,
QgsVectorLayer remoteLayer 
) [private]
void QgsOfflineEditing::committedAttributesAdded ( const QString &  qgisLayerId,
const QList< QgsField > &  addedAttributes 
) [private, slot]
void QgsOfflineEditing::committedAttributeValuesChanges ( const QString &  qgisLayerId,
const QgsChangedAttributesMap changedAttrsMap 
) [private, slot]
void QgsOfflineEditing::committedFeaturesRemoved ( const QString &  qgisLayerId,
const QgsFeatureIds deletedFeatureIds 
) [private, slot]

Definition at line 1105 of file qgsofflineediting.cpp.

References getOrCreateLayerId(), isAddedFeature(), openLoggingDb(), and sqlExec().

Referenced by layerAdded().

void QgsOfflineEditing::committedGeometriesChanges ( const QString &  qgisLayerId,
const QgsGeometryMap changedGeometries 
) [private, slot]
bool QgsOfflineEditing::convertToOfflineProject ( const QString &  offlineDataPath,
const QString &  offlineDbFile,
const QStringList &  layerIds 
)

convert current project for offline editing

convert current project to offline project returns offline project file path

Parameters:
offlineDataPathpath to offline db file
offlineDbFileoffline db file name
layerIdslist of layer names to convert

Definition at line 64 of file qgsofflineediting.cpp.

References copyVectorLayer(), createLoggingTables(), createSpatialiteDB(), QgsMapLayerRegistry::instance(), QgsProject::instance(), layerProgressUpdated(), QgsMapLayerRegistry::mapLayer(), progressStarted(), progressStopped(), PROJECT_ENTRY_KEY_OFFLINE_DB_PATH, PROJECT_ENTRY_SCOPE_OFFLINE, showWarning(), QgsProject::title(), tr, and QgsProject::writeEntry().

void QgsOfflineEditing::copySymbology ( const QgsVectorLayer sourceLayer,
QgsVectorLayer targetLayer 
) [private]

Definition at line 342 of file qgsofflineediting.cpp.

References sqlExec().

Referenced by convertToOfflineProject().

bool QgsOfflineEditing::createSpatialiteDB ( const QString &  offlineDbPath) [private]

Definition at line 293 of file qgsofflineediting.cpp.

References initializeSpatialMetadata(), showWarning(), and tr.

Referenced by convertToOfflineProject().

void QgsOfflineEditing::initializeSpatialMetadata ( sqlite3 sqlite_handle) [private]

Definition at line 248 of file qgsofflineediting.cpp.

References showWarning(), and tr.

Referenced by createSpatialiteDB().

bool QgsOfflineEditing::isAddedFeature ( sqlite3 db,
int  layerId,
QgsFeatureId  fid 
) [private]
void QgsOfflineEditing::layerProgressUpdated ( int  layer,
int  numLayers 
) [signal]

emit a signal that the next layer of numLayers has started processing

Parameters:
layercurrent layer index
numLayerstotal number of layers

Referenced by convertToOfflineProject(), and synchronize().

QgsFeatureId QgsOfflineEditing::offlineFid ( sqlite3 db,
int  layerId,
QgsFeatureId  remoteFid 
) [private]

Definition at line 856 of file qgsofflineediting.cpp.

References sqlQueryInt().

Referenced by updateFidLookup().

void QgsOfflineEditing::progressModeSet ( QgsOfflineEditing::ProgressMode  mode,
int  maximum 
) [signal]

emit a signal that sets the mode for the progress of the current operation

Parameters:
modeprogress mode
maximumtotal number of entities to process in the current operation

Referenced by applyAttributesAdded(), applyAttributeValueChanges(), applyFeaturesAdded(), applyFeaturesRemoved(), applyGeometryChanges(), copyVectorLayer(), and updateFidLookup().

emit a signal that processing has started

Referenced by convertToOfflineProject(), and synchronize().

emit a signal that processing of all layers has finished

Referenced by convertToOfflineProject(), and synchronize().

void QgsOfflineEditing::progressUpdated ( int  progress) [signal]

emit a signal with the progress of the current mode

Parameters:
progresscurrent index of processed entities

Referenced by applyAttributesAdded(), applyAttributeValueChanges(), applyFeaturesAdded(), applyFeaturesRemoved(), applyGeometryChanges(), copyVectorLayer(), and updateFidLookup().

QgsFeatureId QgsOfflineEditing::remoteFid ( sqlite3 db,
int  layerId,
QgsFeatureId  offlineFid 
) [private]
QList< QgsField > QgsOfflineEditing::sqlQueryAttributesAdded ( sqlite3 db,
const QString &  sql 
) [private]

Definition at line 922 of file qgsofflineediting.cpp.

References showWarning().

Referenced by applyAttributesAdded().

QgsFeatureIds QgsOfflineEditing::sqlQueryFeaturesRemoved ( sqlite3 db,
const QString &  sql 
) [private]

Definition at line 951 of file qgsofflineediting.cpp.

References showWarning().

Referenced by applyFeaturesRemoved().

int QgsOfflineEditing::sqlQueryInt ( sqlite3 db,
const QString &  sql,
int  defaultValue 
) [private]
QList< int > QgsOfflineEditing::sqlQueryInts ( sqlite3 db,
const QString &  sql 
) [private]

Definition at line 899 of file qgsofflineediting.cpp.

References showWarning().

Referenced by applyFeaturesAdded(), committedFeaturesAdded(), and updateFidLookup().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines