QGIS API Documentation  3.0.2-Girona (307d082)
qgslayoutitemattributetable.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgslayoutitemattributetable.h
3  ---------------------------
4  begin : November 2017
5  copyright : (C) 2017 by Nyall Dawson
6  email : nyall dot dawson at gmail dot com
7  ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 
18 #ifndef QGSLAYOUTITEMATTRIBUTETABLE_H
19 #define QGSLAYOUTITEMATTRIBUTETABLE_H
20 
21 #include "qgis_core.h"
22 #include "qgis_sip.h"
23 #include "qgis.h"
24 #include "qgslayouttable.h"
25 #include "qgsvectorlayerref.h"
26 
27 class QgsLayoutItemMap;
28 class QgsVectorLayer;
29 
36 {
37  Q_OBJECT
38 
39  public:
40 
45  {
46  LayerAttributes = 0,
48  RelationChildren
49  };
50 
57 
58  int type() const override;
59  QIcon icon() const override;
60  QString displayName() const override;
61 
65  static QgsLayoutItemAttributeTable *create( QgsLayout *layout ) SIP_FACTORY;
66 
71  void setSource( ContentSource source );
72 
77  ContentSource source() const { return mSource; }
78 
85  QgsVectorLayer *sourceLayer() const;
86 
94  void setVectorLayer( QgsVectorLayer *layer );
95 
104  QgsVectorLayer *vectorLayer() const { return mVectorLayer.get(); }
105 
112  void setRelationId( const QString &id );
113 
120  QString relationId() const { return mRelationId; }
121 
126  void resetColumns();
127 
137  void setMap( QgsLayoutItemMap *map );
138 
145  QgsLayoutItemMap *map() const { return mMap; }
146 
153  void setMaximumNumberOfFeatures( int features );
154 
159  int maximumNumberOfFeatures() const { return mMaximumNumberOfFeatures; }
160 
169  void setUniqueRowsOnly( bool uniqueOnly );
170 
176  bool uniqueRowsOnly() const { return mShowUniqueRowsOnly; }
177 
186  void setDisplayOnlyVisibleFeatures( bool visibleOnly );
187 
195  bool displayOnlyVisibleFeatures() const { return mShowOnlyVisibleFeatures; }
196 
203  void setFilterToAtlasFeature( bool filterToAtlas );
204 
211  bool filterToAtlasFeature() const { return mFilterToAtlasIntersection; }
212 
219  bool filterFeatures() const { return mFilterFeatures; }
220 
228  void setFilterFeatures( bool filter );
229 
237  QString featureFilter() const { return mFeatureFilter; }
238 
248  void setFeatureFilter( const QString &expression );
249 
258  void setDisplayedFields( const QStringList &fields, bool refresh = true );
259 
267  QVector< QPair<int, bool> > sortAttributes() const SIP_SKIP;
268 
275  void setWrapString( const QString &wrapString );
276 
282  QString wrapString() const { return mWrapString; }
283 
290  bool getTableContents( QgsLayoutTableContents &contents ) override SIP_SKIP;
291 
293  void finalizeRestoreFromXml() override;
294 
295  protected:
296 
297  bool writePropertiesToElement( QDomElement &elem, QDomDocument &doc, const QgsReadWriteContext &context ) const override;
298  bool readPropertiesFromElement( const QDomElement &itemElem, const QDomDocument &doc, const QgsReadWriteContext &context ) override;
299 
300  private:
301 
303  ContentSource mSource = LayerAttributes;
305  QgsVectorLayerRef mVectorLayer;
307  QString mRelationId;
308 
310  QgsVectorLayer *mCurrentAtlasLayer = nullptr;
311 
313  QgsLayoutItemMap *mMap = nullptr;
314  QString mMapUuid;
315 
317  int mMaximumNumberOfFeatures = 30;
318 
320  bool mShowUniqueRowsOnly = false;
321 
323  bool mShowOnlyVisibleFeatures = false;
324 
326  bool mFilterToAtlasIntersection = false;
327 
329  bool mFilterFeatures = false;
330 
332  QString mFeatureFilter;
333 
334  QString mWrapString;
335 
340  QList<int> fieldsToDisplay() const;
341 
347  void restoreFieldAliasMap( const QMap<int, QString> &map );
348 
353  QVariant replaceWrapChar( const QVariant &variant ) const;
354 
355  private slots:
357  void removeLayer( const QString &layerId );
358 
359  void atlasLayerChanged( QgsVectorLayer *layer );
360 
361 };
362 
363 #endif // QGSLAYOUTITEMATTRIBUTETABLE_H
The class is used as a container of context for various read/write operations on other objects...
QString relationId() const
Returns the relation id which the table displays child features from.
QgsExpressionContext createExpressionContext() const override
Creates an expression context relating to the objects&#39; current state.
virtual QIcon icon() const
Returns the item&#39;s icon.
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:46
A class to display a table in the print layout, and allow the table to span over multiple frames...
QString featureFilter() const
Returns the current expression used to filter features for the table.
bool writePropertiesToElement(QDomElement &elem, QDomDocument &doc, const QgsReadWriteContext &context) const override
Stores multiframe state within an XML DOM element.
bool filterFeatures() const
Returns true if a feature filter is active on the attribute table.
QString wrapString() const
Returns the string used to wrap the contents of the table cells by.
int maximumNumberOfFeatures() const
Returns the maximum number of features to be shown by the table.
bool filterToAtlasFeature() const
Returns true if the table is set to only show features which intersect the current atlas feature...
Layout graphical items for displaying a map.
#define SIP_SKIP
Definition: qgis_sip.h:119
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
bool displayOnlyVisibleFeatures() const
Returns true if the table is set to show only features visible on a corresponding map item...
A layout table subclass that displays attributes from a vector layer.
Table shows attributes from the current atlas feature.
#define SIP_FACTORY
Definition: qgis_sip.h:69
virtual void finalizeRestoreFromXml()
Called after all pending items have been restored from XML.
Base class for layouts, which can contain items such as maps, labels, scalebars, etc.
Definition: qgslayout.h:49
virtual bool getTableContents(QgsLayoutTableContents &contents)=0
Fetches the contents used for the cells in the table.
virtual QString displayName() const
Returns the multiframe display name.
QgsVectorLayer * vectorLayer() const
Returns the vector layer the attribute table is currently using.
bool uniqueRowsOnly() const
Returns true if the table is set to show only unique rows.
virtual int type() const =0
Returns unique multiframe type id.
ContentSource
Specifies the content source for the attribute table.
ContentSource source() const
Returns the source for attributes shown in the table body.
QgsLayoutItemMap * map() const
Returns the layout map whose extents are controlling the features shown in the table.
Represents a vector layer which manages a vector based data sets.
QVector< QgsLayoutTableRow > QgsLayoutTableContents
List of QgsLayoutTableRows, representing rows and column cell contents for a QgsLayoutTable.
bool readPropertiesFromElement(const QDomElement &itemElem, const QDomDocument &doc, const QgsReadWriteContext &context) override
Sets multiframe state from a DOM element.