QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
Signals | Public Member Functions | List of all members
QgsVectorLayerFeatureCounter Class Reference

Counts the features in a QgsVectorLayer in task. More...

#include <qgsvectorlayerfeaturecounter.h>

Inheritance diagram for QgsVectorLayerFeatureCounter:
Inheritance graph
[legend]

Signals

void symbolsCounted ()
 Emitted when the symbols have been counted. More...
 
- Signals inherited from QgsTask
void begun ()
 Will be emitted by task to indicate its commencement. More...
 
void progressChanged (double progress)
 Will be emitted by task when its progress changes. More...
 
void statusChanged (int status)
 Will be emitted by task when its status changes. More...
 
void taskCompleted ()
 Will be emitted by task to indicate its successful completion. More...
 
void taskTerminated ()
 Will be emitted by task if it has terminated for any reason other then completion (e.g., when a task has been canceled or encountered an internal error). More...
 

Public Member Functions

 QgsVectorLayerFeatureCounter (QgsVectorLayer *layer, const QgsExpressionContext &context=QgsExpressionContext(), bool storeSymbolFids=false)
 Create a new feature counter for layer. More...
 
 ~QgsVectorLayerFeatureCounter () override
 
void cancel () override
 Notifies the task that it should terminate. More...
 
long long featureCount (const QString &legendKey) const
 Returns the feature count for a particular legendKey. More...
 
QgsFeatureIds featureIds (const QString &symbolkey) const
 Returns the feature Ids for a particular legendKey. More...
 
bool run () override
 Calculates the feature count and Ids per symbol. More...
 
QHash< QString, long long > symbolFeatureCountMap () const
 Returns the count for each symbol. More...
 
QHash< QString, QgsFeatureIdssymbolFeatureIdMap () const
 Returns the QgsFeatureIds for each symbol. More...
 
- Public Member Functions inherited from QgsTask
 QgsTask (const QString &description=QString(), QgsTask::Flags flags=AllFlags)
 Constructor for QgsTask. More...
 
 ~QgsTask () override
 
void addSubTask (QgsTask *subTask, const QgsTaskList &dependencies=QgsTaskList(), SubTaskDependency subTaskDependency=SubTaskIndependent)
 Adds a subtask to this task. More...
 
bool canCancel () const
 Returns true if the task can be canceled. More...
 
virtual void cancel ()
 Notifies the task that it should terminate. More...
 
QList< QgsMapLayer * > dependentLayers () const
 Returns the list of layers on which the task depends. More...
 
QString description () const
 Returns the task's description. More...
 
qint64 elapsedTime () const
 Returns the elapsed time since the task commenced, in milliseconds. More...
 
Flags flags () const
 Returns the flags associated with the task. More...
 
void hold ()
 Places the task on hold. More...
 
bool isActive () const
 Returns true if the task is active, ie it is not complete and has not been canceled. More...
 
double progress () const
 Returns the task's progress (between 0.0 and 100.0) More...
 
void setDependentLayers (const QList< QgsMapLayer * > &dependentLayers)
 Sets a list of layers on which the task depends. More...
 
void setDescription (const QString &description)
 Sets the task's description. More...
 
TaskStatus status () const
 Returns the current task status. More...
 
void unhold ()
 Releases the task from being held. More...
 
bool waitForFinished (int timeout=30000)
 Blocks the current thread until the task finishes or a maximum of timeout milliseconds. More...
 

Additional Inherited Members

- Public Types inherited from QgsTask
enum  Flag {
  CanCancel = 1 << 1 , CancelWithoutPrompt = 1 << 2 , Hidden = 1 << 3 , Silent = 1 << 4 ,
  AllFlags = CanCancel
}
 Task flags. More...
 
typedef QFlags< FlagFlags
 
enum  SubTaskDependency { SubTaskIndependent = 0 , ParentDependsOnSubTask }
 Controls how subtasks relate to their parent task. More...
 
enum  TaskStatus {
  Queued , OnHold , Running , Complete ,
  Terminated
}
 Status of tasks. More...
 
- Protected Slots inherited from QgsTask
void setProgress (double progress)
 Sets the task's current progress. More...
 
- Protected Member Functions inherited from QgsTask
virtual void finished (bool result)
 If the task is managed by a QgsTaskManager, this will be called after the task has finished (whether through successful completion or via early termination). More...
 
bool isCanceled () const
 Will return true if task should terminate ASAP. More...
 
virtual bool run ()=0
 Performs the task's operation. More...
 

Detailed Description

Counts the features in a QgsVectorLayer in task.

You should most likely not use this directly and instead call QgsVectorLayer::countSymbolFeatures() and connect to the signal QgsVectorLayer::symbolFeatureCountMapChanged().

Definition at line 32 of file qgsvectorlayerfeaturecounter.h.

Constructor & Destructor Documentation

◆ QgsVectorLayerFeatureCounter()

QgsVectorLayerFeatureCounter::QgsVectorLayerFeatureCounter ( QgsVectorLayer layer,
const QgsExpressionContext context = QgsExpressionContext(),
bool  storeSymbolFids = false 
)

Create a new feature counter for layer.

Parameters
layerTarget QgsVectorLayer to perform counting on.
contextSpecific QgsExpressionContext to use during the rendering step.
storeSymbolFidsIf true will store the feature ids (fids), otherwise will only count the number of features per symbol. Default false.

Definition at line 22 of file qgsvectorlayerfeaturecounter.cpp.

◆ ~QgsVectorLayerFeatureCounter()

QgsVectorLayerFeatureCounter::~QgsVectorLayerFeatureCounter ( )
overridedefault

Member Function Documentation

◆ cancel()

void QgsVectorLayerFeatureCounter::cancel ( )
overridevirtual

Notifies the task that it should terminate.

Calling this is not guaranteed to immediately end the task, rather it sets the isCanceled() flag which task subclasses can check and terminate their operations at an appropriate time. Any subtasks owned by this task will also be canceled. Derived classes must ensure that the base class implementation is called from any overridden version.

See also
isCanceled()

Reimplemented from QgsTask.

Definition at line 115 of file qgsvectorlayerfeaturecounter.cpp.

◆ featureCount()

long long QgsVectorLayerFeatureCounter::featureCount ( const QString &  legendKey) const

Returns the feature count for a particular legendKey.

If the key has not been found, -1 will be returned.

Definition at line 127 of file qgsvectorlayerfeaturecounter.cpp.

◆ featureIds()

QgsFeatureIds QgsVectorLayerFeatureCounter::featureIds ( const QString &  symbolkey) const

Returns the feature Ids for a particular legendKey.

If the key has not been found an empty QSet will be returned.

Since
QGIS 3.10

Definition at line 137 of file qgsvectorlayerfeaturecounter.cpp.

◆ run()

bool QgsVectorLayerFeatureCounter::run ( )
overridevirtual

Calculates the feature count and Ids per symbol.

Implements QgsTask.

Definition at line 38 of file qgsvectorlayerfeaturecounter.cpp.

◆ symbolFeatureCountMap()

QHash< QString, long long > QgsVectorLayerFeatureCounter::symbolFeatureCountMap ( ) const

Returns the count for each symbol.

Only valid after the symbolsCounted() signal has been emitted.

Note
Not available in Python bindings.

Definition at line 122 of file qgsvectorlayerfeaturecounter.cpp.

◆ symbolFeatureIdMap()

QHash< QString, QgsFeatureIds > QgsVectorLayerFeatureCounter::symbolFeatureIdMap ( ) const

Returns the QgsFeatureIds for each symbol.

Only valid after the symbolsCounted() signal has been emitted.

See also
symbolFeatureCountMap
Note
Not available in Python bindings.
Since
QGIS 3.10

Definition at line 132 of file qgsvectorlayerfeaturecounter.cpp.

◆ symbolsCounted

void QgsVectorLayerFeatureCounter::symbolsCounted ( )
signal

Emitted when the symbols have been counted.


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