QGIS API Documentation
2.2.0-Valmiera
|
Handler for missing layers within project. More...
#include <qgsprojectbadlayerguihandler.h>
Public Member Functions | |
QgsProjectBadLayerGuiHandler () | |
virtual void | handleBadLayers (QList< QDomNode > layers, QDomDocument projectDom) |
implementation of the handler | |
Public Member Functions inherited from QgsProjectBadLayerHandler | |
virtual | ~QgsProjectBadLayerHandler () |
Static Public Attributes | |
static bool | mIgnore = false |
Flag to store the Ignore button press of MessageBox used by QgsLegend. |
Protected Types | |
enum | DataType { IS_VECTOR, IS_RASTER, IS_BOGUS } |
file data representation More... | |
enum | ProviderType { IS_FILE, IS_DATABASE, IS_URL, IS_Unknown } |
the three flavors for data More... |
Protected Member Functions | |
DataType | dataType (QDomNode &layerNode) |
returns data type associated with the given QgsProject file Dom node | |
QString | dataSource (QDomNode &layerNode) |
return the data source for the given layer | |
ProviderType | providerType (QDomNode &layerNode) |
return the physical storage type associated with the given layer | |
void | setDataSource (QDomNode &layerNode, QString const &dataSource) |
set the datasource element to the new value | |
bool | findMissingFile (QString const &fileFilters, QDomNode &layerNode) |
this is used to locate files that have moved or otherwise are missing | |
bool | findLayer (QString const &fileFilters, QDomNode const &constLayerNode) |
find relocated data source for the given layer | |
void | findLayers (QString const &fileFilters, QList< QDomNode > const &layerNodes) |
find relocated data sources for given layers |
Handler for missing layers within project.
Gives user a chance to select path to the missing layers.
Definition at line 27 of file qgsprojectbadlayerguihandler.h.
|
protected |
file data representation
Definition at line 43 of file qgsprojectbadlayerguihandler.h.
|
protected |
the three flavors for data
Definition at line 46 of file qgsprojectbadlayerguihandler.h.
QgsProjectBadLayerGuiHandler::QgsProjectBadLayerGuiHandler | ( | ) |
Definition at line 28 of file qgsprojectbadlayerguihandler.cpp.
|
protected |
return the data source for the given layer
The QDomNode is a QgsProject Dom node corresponding to a map layer state.
Essentially dumps datasource tag.
Definition at line 114 of file qgsprojectbadlayerguihandler.cpp.
References QgsDebugMsg.
Referenced by findMissingFile(), and providerType().
|
protected |
returns data type associated with the given QgsProject file Dom node
The Dom node should represent the state associated with a specific layer.
Definition at line 84 of file qgsprojectbadlayerguihandler.cpp.
References IS_BOGUS, IS_RASTER, IS_VECTOR, and QgsDebugMsg.
Referenced by findMissingFile(), and providerType().
|
protected |
find relocated data source for the given layer
This QDom object represents a QgsProject node that maps to a specific layer.
fileFilters | file filters to use |
constLayerNode | QDom node containing layer project information |
XXX Only implemented for file based layers. It will need to be extended for XXX other data source types such as databases.
Definition at line 258 of file qgsprojectbadlayerguihandler.cpp.
References findMissingFile(), IS_DATABASE, IS_FILE, IS_Unknown, IS_URL, providerType(), and QgsDebugMsg.
Referenced by findLayers().
|
protected |
find relocated data sources for given layers
These QDom objects represent QgsProject nodes that map to specific layers.
Definition at line 290 of file qgsprojectbadlayerguihandler.cpp.
References findLayer().
Referenced by handleBadLayers().
|
protected |
this is used to locate files that have moved or otherwise are missing
Definition at line 190 of file qgsprojectbadlayerguihandler.cpp.
References dataSource(), dataType(), QgsProject::instance(), IS_RASTER, IS_VECTOR, QgisGui::openFilesRememberingFilter(), QgsDebugMsg, QgsProject::read(), setDataSource(), and tr.
Referenced by findLayer().
|
virtual |
implementation of the handler
Implements QgsProjectBadLayerHandler.
Definition at line 34 of file qgsprojectbadlayerguihandler.cpp.
References QgsProviderRegistry::fileVectorFilters(), findLayers(), QgsProviderRegistry::instance(), mIgnore, QgsDebugMsg, and tr.
|
protected |
return the physical storage type associated with the given layer
The QDomNode is a QgsProject Dom node corresponding to a map layer state.
If the provider tag is "ogr", then it's a file type.
However, if the layer is a raster, then there won't be a provider tag. It will always have an associated file.
If the layer doesn't fall into either of the previous two categories, then it's either a database or URL. If the datasource tag has "url=", then it's URL based and if it has "dbname=">, then the layer data is in a database.
Definition at line 132 of file qgsprojectbadlayerguihandler.cpp.
References dataSource(), dataType(), IS_DATABASE, IS_FILE, IS_RASTER, IS_Unknown, IS_URL, IS_VECTOR, and QgsDebugMsg.
Referenced by findLayer().
|
protected |
set the datasource element to the new value
Definition at line 174 of file qgsprojectbadlayerguihandler.cpp.
References QgsDebugMsg.
Referenced by findMissingFile().
|
static |
Flag to store the Ignore button press of MessageBox used by QgsLegend.
Definition at line 38 of file qgsprojectbadlayerguihandler.h.
Referenced by handleBadLayers().