Move QObject declaration to header

This commit is contained in:
Nyall Dawson 2019-11-08 10:15:25 +10:00
parent 986aa713ef
commit 9a2e015158
3 changed files with 71 additions and 56 deletions

View File

@ -17,6 +17,9 @@
#include <qgsrelationeditorwidget.h> #include <qgsrelationeditorwidget.h>
%End %End
class QgsRelationEditorWidget : QgsCollapsibleGroupBox class QgsRelationEditorWidget : QgsCollapsibleGroupBox
{ {

View File

@ -30,24 +30,14 @@
#include "qgslogger.h" #include "qgslogger.h"
#include "qgsvectorlayerutils.h" #include "qgsvectorlayerutils.h"
#include "qgsmapcanvas.h" #include "qgsmapcanvas.h"
#include "qgsvectorlayerselectionmanager.h"
#include <QHBoxLayout> #include <QHBoxLayout>
#include <QLabel> #include <QLabel>
#include <QMessageBox> #include <QMessageBox>
/// @cond PRIVATE /// @cond PRIVATE
///
/** QgsFilteredSelectionManager::QgsFilteredSelectionManager( QgsVectorLayer *layer, const QgsFeatureRequest &request, QObject *parent )
* This class is used to filter the current vector layer selection to features matching the given request.
* Relation editor widget use it in order to get selected feature for the current relation.
*/
class QgsFilteredSelectionManager : public QgsVectorLayerSelectionManager
{
Q_OBJECT
public:
QgsFilteredSelectionManager( QgsVectorLayer *layer, const QgsFeatureRequest &request, QObject *parent = nullptr )
: QgsVectorLayerSelectionManager( layer, parent ) : QgsVectorLayerSelectionManager( layer, parent )
, mRequest( request ) , mRequest( request )
{ {
@ -58,20 +48,17 @@ class QgsFilteredSelectionManager : public QgsVectorLayerSelectionManager
connect( layer, &QgsVectorLayer::selectionChanged, this, &QgsFilteredSelectionManager::onSelectionChanged ); connect( layer, &QgsVectorLayer::selectionChanged, this, &QgsFilteredSelectionManager::onSelectionChanged );
} }
const QgsFeatureIds &selectedFeatureIds() const override const QgsFeatureIds &QgsFilteredSelectionManager::selectedFeatureIds() const
{ {
return mSelectedFeatureIds; return mSelectedFeatureIds;
} }
int QgsFilteredSelectionManager::selectedFeatureCount()
int selectedFeatureCount() override
{ {
return mSelectedFeatureIds.count(); return mSelectedFeatureIds.count();
} }
private slots: void QgsFilteredSelectionManager::onSelectionChanged( const QgsFeatureIds &selected, const QgsFeatureIds &deselected, bool clearAndSelect )
void onSelectionChanged( const QgsFeatureIds &selected, const QgsFeatureIds &deselected, bool clearAndSelect ) override
{ {
QgsFeatureIds lselected = selected; QgsFeatureIds lselected = selected;
if ( clearAndSelect ) if ( clearAndSelect )
@ -93,12 +80,6 @@ class QgsFilteredSelectionManager : public QgsVectorLayerSelectionManager
emit selectionChanged( lselected, deselected, clearAndSelect ); emit selectionChanged( lselected, deselected, clearAndSelect );
} }
private:
QgsFeatureRequest mRequest;
QgsFeatureIds mSelectedFeatureIds;
};
/// @endcond /// @endcond
QgsRelationEditorWidget::QgsRelationEditorWidget( QWidget *parent ) QgsRelationEditorWidget::QgsRelationEditorWidget( QWidget *parent )

View File

@ -25,10 +25,10 @@
#include "qgscollapsiblegroupbox.h" #include "qgscollapsiblegroupbox.h"
#include "qgsdualview.h" #include "qgsdualview.h"
#include "qgsrelation.h" #include "qgsrelation.h"
#include "qgsvectorlayerselectionmanager.h"
#include "qgis_gui.h" #include "qgis_gui.h"
class QgsFeature; class QgsFeature;
class QgsVectorLayerSelectionManager;
class QgsVectorLayer; class QgsVectorLayer;
class QgsVectorLayerTools; class QgsVectorLayerTools;
@ -41,6 +41,37 @@ class QgsVectorLayerTools;
% End % End
#endif #endif
/// @cond PRIVATE
#ifndef SIP_RUN
/**
* This class is used to filter the current vector layer selection to features matching the given request.
* Relation editor widget use it in order to get selected feature for the current relation.
*/
class QgsFilteredSelectionManager : public QgsVectorLayerSelectionManager
{
Q_OBJECT
public:
QgsFilteredSelectionManager( QgsVectorLayer *layer, const QgsFeatureRequest &request, QObject *parent = nullptr );
const QgsFeatureIds &selectedFeatureIds() const override;
int selectedFeatureCount() override;
private slots:
void onSelectionChanged( const QgsFeatureIds &selected, const QgsFeatureIds &deselected, bool clearAndSelect ) override;
private:
QgsFeatureRequest mRequest;
QgsFeatureIds mSelectedFeatureIds;
};
#endif
/// @endcond
/** /**
* \ingroup gui * \ingroup gui
* \class QgsRelationEditorWidget * \class QgsRelationEditorWidget