/************************************************************************
 * This file has been generated automatically from                      *
 *                                                                      *
 * src/gui/attributetable/qgsifeatureselectionmanager.h                 *
 *                                                                      *
 * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 ************************************************************************/




class QgsIFeatureSelectionManager : QObject
{
%Docstring(signature="appended")
Is an interface class to abstract feature selection handling.

e.g. :py:class:`QgsVectorLayer` implements this interface to manage its
selections.
%End

%TypeHeaderCode
#include "qgsifeatureselectionmanager.h"
%End
  public:
    QgsIFeatureSelectionManager( QObject *parent /TransferThis/ );
    virtual int selectedFeatureCount() = 0;
%Docstring
Returns the number of features that are selected in this layer.
%End

    virtual void select( const QgsFeatureIds &ids ) = 0;
%Docstring
Select features by feature ``ids``.
%End

    virtual void deselect( const QgsFeatureIds &ids ) = 0;
%Docstring
Deselect features by feature ``ids``.
%End

    virtual void setSelectedFeatures( const QgsFeatureIds &ids ) = 0;
%Docstring
Change selection to the new set of features. Dismisses the current
selection. Will emit the
:py:func:`~QgsIFeatureSelectionManager.selectionChanged` signal with the
clearAndSelect flag set.

:param ids: The ids which will be the new selection

.. seealso:: :py:func:`selectedFeatureIds`
%End

    virtual const QgsFeatureIds &selectedFeatureIds() const = 0;
%Docstring
Returns reference to identifiers of selected features

:return: A list of selected :py:class:`QgsFeatureId`

.. seealso:: :py:func:`setSelectedFeatures`
%End

  signals:

    void selectionChanged( const QgsFeatureIds &selected, const QgsFeatureIds &deselected, bool clearAndSelect );
%Docstring
Emitted when selection was changed.

:param selected: Newly selected feature ids
:param deselected: Ids of all features which have previously been
                   selected but are not any more
:param clearAndSelect: In case this is set to ``True``, the old
                       selection was dismissed and the new selection
                       corresponds to selected
%End
};

/************************************************************************
 * This file has been generated automatically from                      *
 *                                                                      *
 * src/gui/attributetable/qgsifeatureselectionmanager.h                 *
 *                                                                      *
 * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 ************************************************************************/
