QGIS API Documentation  3.26.3-Buenos Aires (65e4edfdad)
qgsattributetableview.h
Go to the documentation of this file.
1 /***************************************************************************
2  QgsAttributeTableView.h
3  --------------------------------------
4  Date : Feb 2009
5  Copyright : (C) 2009 Vita Cizek
6  Email : weetya (at) gmail.com
7  ***************************************************************************
8  * *
9  * This program is free software; you can redistribute it and/or modify *
10  * it under the terms of the GNU General Public License as published by *
11  * the Free Software Foundation; either version 2 of the License, or *
12  * (at your option) any later version. *
13  * *
14  ***************************************************************************/
15 
16 #ifndef QGSATTRIBUTETABLEVIEW_H
17 #define QGSATTRIBUTETABLEVIEW_H
18 
19 #include <QAction>
20 #include "qgsfeatureid.h"
21 #include "qgstableview.h"
22 
23 #include "qgis_gui.h"
25 
31 class QgsMapCanvas;
32 class QgsVectorLayer;
34 class QMenu;
35 class QProgressDialog;
37 class QgsFeature;
38 
48 class GUI_EXPORT QgsAttributeTableView : public QgsTableView
49 {
50  Q_OBJECT
51 
52  public:
53 
55  QgsAttributeTableView( QWidget *parent SIP_TRANSFERTHIS = nullptr );
56 
57 #ifdef __clang__
58 #pragma clang diagnostic push
59 #pragma clang diagnostic ignored "-Woverloaded-virtual"
60 #endif
61  virtual void setModel( QgsAttributeTableFilterModel *filterModel );
62 #ifdef __clang__
63 #pragma clang diagnostic pop
64 #endif
65 
70  void setFeatureSelectionManager( QgsIFeatureSelectionManager *featureSelectionManager );
71 
82  bool eventFilter( QObject *object, QEvent *event ) override;
83 
89  void setAttributeTableConfig( const QgsAttributeTableConfig &config );
90 
96  QList<QgsFeatureId> selectedFeaturesIds() const;
97 
105  void scrollToFeature( const QgsFeatureId &fid, int column = -1 );
106 
107  protected:
108 
115  void mousePressEvent( QMouseEvent *event ) override;
116 
123  void mouseReleaseEvent( QMouseEvent *event ) override;
124 
131  void mouseMoveEvent( QMouseEvent *event ) override;
132 
139  void keyPressEvent( QKeyEvent *event ) override;
140 
148  void contextMenuEvent( QContextMenuEvent *event ) override;
149 
154  void closeEvent( QCloseEvent *event ) override;
155 
156  signals:
157 
166  void willShowContextMenu( QMenu *menu, const QModelIndex &atIndex );
167 
174  void columnResized( int column, int width );
175 
176  void finished();
177 
178  public slots:
179  void repaintRequested( const QModelIndexList &indexes );
180  void repaintRequested();
181  void selectAll() override;
182  virtual void selectRow( int row );
183  virtual void _q_selectRow( int row );
184 
185  private slots:
186  void modelDeleted();
187  void showHorizontalSortIndicator();
188  void actionTriggered();
189  void columnSizeChanged( int index, int oldWidth, int newWidth );
190  void onActionColumnItemPainted( const QModelIndex &index );
191  void recreateActionWidgets();
192 
193  private:
194  void updateActionImage( QWidget *widget );
195  QWidget *createActionWidget( QgsFeatureId fid );
196 
197  void selectRow( int row, bool anchor );
198  QgsAttributeTableFilterModel *mFilterModel = nullptr;
199  QgsFeatureSelectionModel *mFeatureSelectionModel = nullptr;
200  QgsIFeatureSelectionManager *mOwnedFeatureSelectionManager = nullptr;
201  QgsIFeatureSelectionManager *mFeatureSelectionManager = nullptr;
202  QgsAttributeTableDelegate *mTableDelegate = nullptr;
203  QMenu *mActionPopup = nullptr;
204  int mRowSectionAnchor = 0;
205  QItemSelectionModel::SelectionFlag mCtrlDragSelectionFlag = QItemSelectionModel::Select;
206  QMap< QModelIndex, QWidget * > mActionWidgets;
207  QgsAttributeTableConfig mConfig;
208  QString mSortExpression;
209 };
210 
211 #endif
QgsVectorLayerCache
This class caches features of a given QgsVectorLayer.
Definition: qgsvectorlayercache.h:46
QgsFeatureSelectionModel
Definition: qgsfeatureselectionmodel.h:31
QgsMapCanvas
Map canvas is a class for displaying all GIS data types on a canvas.
Definition: qgsmapcanvas.h:89
qgsfeatureid.h
QgsAttributeTableConfig
This is a container for configuration of the attribute table. The configuration is specific for one v...
Definition: qgsattributetableconfig.h:36
QgsAttributeTableModel
A model backed by a QgsVectorLayerCache which is able to provide feature/attribute information to a Q...
Definition: qgsattributetablemodel.h:49
QgsTableView
A QTableView subclass with QGIS specific tweaks and improvements.
Definition: qgstableview.h:35
QgsAttributeTableFilterModel
Definition: qgsattributetablefiltermodel.h:36
QgsAttributeTableDelegate
A delegate item class for QgsAttributeTable (see Qt documentation for QItemDelegate).
Definition: qgsattributetabledelegate.h:35
QgsVectorLayer
Represents a vector layer which manages a vector based data sets.
Definition: qgsvectorlayer.h:391
qgsattributetableconfig.h
QgsFeature
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Definition: qgsfeature.h:55
QgsIFeatureSelectionManager
Is an interface class to abstract feature selection handling.
Definition: qgsifeatureselectionmanager.h:31
QgsAttributeTableView
Provides a table view of features of a QgsVectorLayer.
Definition: qgsattributetableview.h:48
SIP_TRANSFERTHIS
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:53
qgstableview.h
QgsFeatureId
qint64 QgsFeatureId
64 bit feature ids negative numbers are used for uncommitted/newly added features
Definition: qgsfeatureid.h:28