19#include "moc_qgslayoutitemattributetable.cpp" 
   76  return tr( 
"<Attribute table frame>" );
 
 
   81  if ( layer == mVectorLayer.
get() )
 
 
  119  QgsRelation relation = 
mLayout->project()->relationManager()->relation( mRelationId );
 
 
  141void QgsLayoutItemAttributeTable::atlasLayerChanged( 
QgsVectorLayer *layer )
 
  150  if ( mCurrentAtlasLayer )
 
  156  const bool mustRebuildColumns = 
static_cast< bool >( mCurrentAtlasLayer ) || 
mColumns.empty();
 
  157  mCurrentAtlasLayer = layer;
 
  159  if ( mustRebuildColumns )
 
  187  for ( 
const auto &field : sourceFields )
 
  189    QString currentAlias = 
source->attributeDisplayName( idx );
 
 
  198void QgsLayoutItemAttributeTable::disconnectCurrentMap()
 
  207  disconnect( mMap, &QObject::destroyed, 
this, &QgsLayoutItemAttributeTable::disconnectCurrentMap );
 
  213  return mUseConditionalStyling;
 
 
  235  disconnectCurrentMap();
 
 
  250  if ( features == mMaximumNumberOfFeatures )
 
  255  mMaximumNumberOfFeatures = features;
 
 
  262  if ( uniqueOnly == mShowUniqueRowsOnly )
 
  267  mShowUniqueRowsOnly = uniqueOnly;
 
 
  274  if ( visibleOnly == mShowOnlyVisibleFeatures )
 
  279  mShowOnlyVisibleFeatures = visibleOnly;
 
 
  286  if ( filterToAtlas == mFilterToAtlasIntersection )
 
  291  mFilterToAtlasIntersection = filterToAtlas;
 
 
  298  if ( filter == mFilterFeatures )
 
  303  mFilterFeatures = filter;
 
 
  310  if ( expression == mFeatureFilter )
 
  315  mFeatureFilter = expression;
 
 
  333  if ( !fields.isEmpty() )
 
  335    for ( 
const QString &field : fields )
 
  342      QString currentAlias = 
source->attributeDisplayName( attrIdx );
 
  353    for ( 
const QgsField &field : layerFields )
 
  355      QString currentAlias = 
source->attributeDisplayName( idx );
 
 
  370void QgsLayoutItemAttributeTable::restoreFieldAliasMap( 
const QMap<int, QString> &map )
 
  378  for ( 
int i = 0; i < 
mColumns.count(); i++ )
 
  380    int attrIdx = 
source->fields().lookupField( 
mColumns[i].attribute() );
 
  381    if ( 
map.contains( attrIdx ) )
 
  387      mColumns[i].setHeading( 
source->attributeDisplayName( attrIdx ) );
 
  413  std::unique_ptr<QgsExpression> filterExpression;
 
  414  bool activeFilter = 
false;
 
  415  if ( mFilterFeatures && !mFeatureFilter.isEmpty() )
 
  417    filterExpression = std::make_unique< QgsExpression >( mFeatureFilter );
 
  418    if ( !filterExpression->hasParserError() )
 
  425#ifdef HAVE_SERVER_PYTHON_PLUGINS 
  426  if ( 
mLayout->renderContext().featureFilterProvider() )
 
  430    if ( 
mLayout->renderContext().featureFilterProvider()->isFilterThreadSafe() )
 
  432      mLayout->renderContext().featureFilterProvider()->filterFeatures( layer->
id(), req );
 
  436      mLayout->renderContext().featureFilterProvider()->filterFeatures( layer, req );
 
  445  std::unique_ptr< QgsGeometryEngine > visibleMapEngine;
 
  446  if ( mMap && mShowOnlyVisibleFeatures )
 
  465    visibleMapEngine->prepareGeometry();
 
  469  std::unique_ptr< QgsGeometryEngine > atlasGeometryEngine;
 
  470  if ( mFilterToAtlasIntersection )
 
  472    atlasGeometry = 
mLayout->reportContext().currentGeometry( layer->
crs() );
 
  473    if ( !atlasGeometry.
isNull() )
 
  475      if ( selectionRect.
isNull() )
 
  485      atlasGeometryEngine->prepareGeometry();
 
  495    QgsRelation relation = 
mLayout->project()->relationManager()->relation( mRelationId );
 
  500  if ( !selectionRect.
isNull() )
 
  514    req.
addOrderBy( column.attribute(), column.sortOrder() == Qt::AscendingOrder );
 
  521  mConditionalStyles.clear();
 
  524  QVector< QVector< Cell > > tempContents;
 
  527  while ( fit.
nextFeature( f ) && counter < mMaximumNumberOfFeatures )
 
  531    if ( activeFilter && filterExpression )
 
  533      QVariant result = filterExpression->evaluate( &context );
 
  535      if ( !result.toBool() )
 
  542    if ( visibleMapEngine )
 
  552    if ( atlasGeometryEngine )
 
  565    if ( mUseConditionalStyling )
 
  576    QVector< Cell > currentRow;
 
  577#ifdef HAVE_SERVER_PYTHON_PLUGINS 
  580    currentRow.reserve( 
mColumns.count() );
 
  582    rowContents.reserve( 
mColumns.count() );
 
  592        if ( mUseConditionalStyling )
 
  596          styles.insert( 0, rowStyle );
 
  607          auto it = mLayerCache.constFind( column.attribute() );
 
  608          if ( it != mLayerCache.constEnd() )
 
  615            mLayerCache.insert( column.attribute(), cache );
 
  622        currentRow << Cell( v, style, f );
 
  628        auto expression = std::make_unique< QgsExpression >( column.attribute() );
 
  630        expression->prepare( &context );
 
  631        QVariant value = expression->evaluate( &context );
 
  633        currentRow << Cell( value, rowStyle, f );
 
  634        rowContents << value;
 
  638    if ( mShowUniqueRowsOnly )
 
  644    tempContents << currentRow;
 
  645    existingContents << rowContents;
 
  650  contents.reserve( tempContents.size() );
 
  651  mConditionalStyles.reserve( tempContents.size() );
 
  652  mFeatures.reserve( tempContents.size() );
 
  653  for ( 
auto it = tempContents.constBegin(); it != tempContents.constEnd(); ++it )
 
  656    QList< QgsConditionalStyle > rowStyles;
 
  657    row.reserve( it->size() );
 
  658    rowStyles.reserve( it->size() );
 
  660    for ( 
auto cellIt = it->constBegin(); cellIt != it->constEnd(); ++cellIt )
 
  662      row << cellIt->content;
 
  663      rowStyles << cellIt->style;
 
  664      if ( cellIt == it->constBegin() )
 
  665        mFeatures << cellIt->feature;
 
  668    mConditionalStyles << rowStyles;
 
 
  677  if ( row >= mConditionalStyles.size() )
 
  680  return mConditionalStyles.at( row ).at( column );
 
 
  691    const QFont styleFont = style.
font();
 
  692    if ( styleFont != QFont() )
 
  694      QFont newFont = format.
font();
 
  702      if ( !styleName.isEmpty() )
 
  703        newFont.setStyleName( styleName );
 
  705      newFont.setStrikeOut( styleFont.strikeOut() );
 
  706      newFont.setUnderline( styleFont.underline() );
 
  708      if ( styleName.isEmpty() )
 
  713        if ( styleFont.bold() )
 
  715        if ( styleFont.italic() )
 
 
  727  scope->setFeature( mFeatures.value( row ) );
 
  728  scope->setFields( scope->feature().fields() );
 
  729  return scope.release();
 
 
  747  if ( !mMap && !mMapUuid.isEmpty() && 
mLayout )
 
  749    mMap = qobject_cast< QgsLayoutItemMap *>( 
mLayout->itemByUuid( mMapUuid, 
true ) );
 
 
  766    mDataDefinedVectorLayer = 
nullptr;
 
  768    QString currentLayerIdentifier;
 
  770      currentLayerIdentifier = currentLayer->id();
 
  775      mDataDefinedVectorLayer = ddLayer;
 
 
  781QVariant QgsLayoutItemAttributeTable::replaceWrapChar( 
const QVariant &variant )
 const 
  784  if ( mWrapString.isEmpty() || !variant.toString().contains( mWrapString ) )
 
  787  QString replaced = variant.toString();
 
  788  replaced.replace( mWrapString, QLatin1String( 
"\n" ) );
 
  792#ifdef HAVE_SERVER_PYTHON_PLUGINS 
  799  if ( 
mLayout->renderContext().featureFilterProvider() )
 
  806      return allowedColumns;
 
  809    QHash<const QString, QSet<QString>> columnAttributesMap;
 
  810    QSet<QString> allowedAttributes;
 
  812    for ( 
const auto &
c : std::as_const( allowedColumns ) )
 
  814      if ( ! 
c.attribute().isEmpty() && ! columnAttributesMap.contains( 
c.attribute() ) )
 
  816        columnAttributesMap[ 
c.attribute() ] = QSet<QString>();
 
  819        for ( 
const auto &cref : constRefs )
 
  821          columnAttributesMap[ 
c.attribute() ].insert( cref->name() );
 
  822          allowedAttributes.insert( cref->name() );
 
  828    const QSet<QString> filteredAttributesSet( filteredAttributes.constBegin(), filteredAttributes.constEnd() );
 
  829    if ( filteredAttributesSet != allowedAttributes )
 
  831      const auto forbidden { allowedAttributes.subtract( filteredAttributesSet ) };
 
  832      allowedColumns.erase( std::remove_if( allowedColumns.begin(), allowedColumns.end(), [ &columnAttributesMap, &forbidden ]( 
QgsLayoutTableColumn & 
c ) -> 
bool 
  834        for ( const auto &f : std::as_const( forbidden ) )
 
  836          if ( columnAttributesMap[ c.attribute() ].contains( f ) )
 
  842      } ), allowedColumns.end() );
 
  847  return allowedColumns;
 
  856      return mLayout->reportContext().layer();
 
  859      if ( mDataDefinedVectorLayer )
 
  860        return mDataDefinedVectorLayer;
 
  862        return mVectorLayer.
get();
 
  866      QgsRelation relation = 
mLayout->project()->relationManager()->relation( mRelationId );
 
 
  873void QgsLayoutItemAttributeTable::removeLayer( 
const QString &layerId )
 
  877    if ( layerId == mVectorLayer->
id() )
 
  903  tableElem.setAttribute( QStringLiteral( 
"source" ), QString::number( 
static_cast< int >( mSource ) ) );
 
  904  tableElem.setAttribute( QStringLiteral( 
"relationId" ), mRelationId );
 
  905  tableElem.setAttribute( QStringLiteral( 
"showUniqueRowsOnly" ), mShowUniqueRowsOnly );
 
  906  tableElem.setAttribute( QStringLiteral( 
"showOnlyVisibleFeatures" ), mShowOnlyVisibleFeatures );
 
  907  tableElem.setAttribute( QStringLiteral( 
"filterToAtlasIntersection" ), mFilterToAtlasIntersection );
 
  908  tableElem.setAttribute( QStringLiteral( 
"maxFeatures" ), mMaximumNumberOfFeatures );
 
  909  tableElem.setAttribute( QStringLiteral( 
"filterFeatures" ), mFilterFeatures ? QStringLiteral( 
"true" ) : QStringLiteral( 
"false" ) );
 
  910  tableElem.setAttribute( QStringLiteral( 
"featureFilter" ), mFeatureFilter );
 
  911  tableElem.setAttribute( QStringLiteral( 
"wrapString" ), mWrapString );
 
  912  tableElem.setAttribute( QStringLiteral( 
"useConditionalStyling" ), mUseConditionalStyling );
 
  916    tableElem.setAttribute( QStringLiteral( 
"mapUuid" ), mMap->uuid() );
 
  921    tableElem.setAttribute( QStringLiteral( 
"vectorLayer" ), mVectorLayer.
layerId );
 
  922    tableElem.setAttribute( QStringLiteral( 
"vectorLayerName" ), mVectorLayer.
name );
 
  923    tableElem.setAttribute( QStringLiteral( 
"vectorLayerSource" ), mVectorLayer.
source );
 
  924    tableElem.setAttribute( QStringLiteral( 
"vectorLayerProvider" ), mVectorLayer.
provider );
 
 
  941  mRelationId = itemElem.attribute( QStringLiteral( 
"relationId" ), QString() );
 
  945    mCurrentAtlasLayer = 
mLayout->reportContext().layer();
 
  948  mShowUniqueRowsOnly = itemElem.attribute( QStringLiteral( 
"showUniqueRowsOnly" ), QStringLiteral( 
"0" ) ).toInt();
 
  949  mShowOnlyVisibleFeatures = itemElem.attribute( QStringLiteral( 
"showOnlyVisibleFeatures" ), QStringLiteral( 
"1" ) ).toInt();
 
  950  mFilterToAtlasIntersection = itemElem.attribute( QStringLiteral( 
"filterToAtlasIntersection" ), QStringLiteral( 
"0" ) ).toInt();
 
  951  mFilterFeatures = itemElem.attribute( QStringLiteral( 
"filterFeatures" ), QStringLiteral( 
"false" ) ) == QLatin1String( 
"true" );
 
  952  mFeatureFilter = itemElem.attribute( QStringLiteral( 
"featureFilter" ), QString() );
 
  953  mMaximumNumberOfFeatures = itemElem.attribute( QStringLiteral( 
"maxFeatures" ), QStringLiteral( 
"5" ) ).toInt();
 
  954  mWrapString = itemElem.attribute( QStringLiteral( 
"wrapString" ) );
 
  955  mUseConditionalStyling = itemElem.attribute( QStringLiteral( 
"useConditionalStyling" ), QStringLiteral( 
"0" ) ).toInt();
 
  958  mMapUuid = itemElem.attribute( QStringLiteral( 
"mapUuid" ) );
 
  968  QString layerId = itemElem.attribute( QStringLiteral( 
"vectorLayer" ) );
 
  969  QString layerName = itemElem.attribute( QStringLiteral( 
"vectorLayerName" ) );
 
  970  QString layerSource = itemElem.attribute( QStringLiteral( 
"vectorLayerSource" ) );
 
  971  QString layerProvider = itemElem.attribute( QStringLiteral( 
"vectorLayerProvider" ) );
 
  972  mVectorLayer = 
QgsVectorLayerRef( layerId, layerName, layerSource, layerProvider );
 
 
  996  if ( newLayer != prevLayer )
 
 1008      mCurrentAtlasLayer = newLayer;
 
 
@ ExactIntersect
Use exact geometry intersection (slower) instead of bounding boxes.
 
@ NoFlags
No flags are set.
 
@ Reverse
Reverse/inverse transform (from destination to source)
 
QString valueAsString(int key, const QgsExpressionContext &context, const QString &defaultString=QString(), bool *ok=nullptr) const
Calculates the current value of the property with the specified key and interprets it as a string.
 
static QIcon getThemeIcon(const QString &name, const QColor &fillColor=QColor(), const QColor &strokeColor=QColor())
Helper to get a theme icon.
 
static QgsFieldFormatterRegistry * fieldFormatterRegistry()
Gets the registry of available field formatters.
 
Holds conditional style information for a layer.
 
QgsConditionalStyles rowStyles() const
Returns a list of row styles associated with the layer.
 
QList< QgsConditionalStyle > fieldStyles(const QString &fieldName) const
Returns the conditional styles set for the field with matching fieldName.
 
Conditional styling for a rule.
 
static QgsConditionalStyle compressStyles(const QList< QgsConditionalStyle > &styles)
Compress a list of styles into a single style.
 
static QList< QgsConditionalStyle > matchingConditionalStyles(const QList< QgsConditionalStyle > &styles, const QVariant &value, QgsExpressionContext &context)
Find and return the matching styles for the value and feature.
 
QFont font() const
The font for the style.
 
bool isValid() const
isValid Check if this rule is valid.
 
Custom exception class for Coordinate Reference System related exceptions.
 
virtual QgsExpressionContext createExpressionContext() const =0
This method needs to be reimplemented in all classes which implement this interface and return an exp...
 
Single scope for storing variables and functions for use within a QgsExpressionContext.
 
void addVariable(const QgsExpressionContextScope::StaticVariable &variable)
Adds a variable into the context scope.
 
static QgsExpressionContextScope * layerScope(const QgsMapLayer *layer)
Creates a new scope which contains variables and functions relating to a QgsMapLayer.
 
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
 
QgsExpressionContextScope * lastScope()
Returns the last scope added to the context.
 
void appendScope(QgsExpressionContextScope *scope)
Appends a scope to the end of the context.
 
void setFeature(const QgsFeature &feature)
Convenience function for setting a feature for the context.
 
void setFields(const QgsFields &fields)
Convenience function for setting a fields for the context.
 
An expression node which takes its value from a feature's field.
 
Handles parsing and evaluation of expressions (formerly called "search strings").
 
QList< const T * > findNodes() const
Returns a list of all nodes of the given class which are used in this expression.
 
virtual QStringList layerAttributes(const QgsVectorLayer *layer, const QStringList &attributes) const =0
Returns the list of visible attribute names from a list of attributes names for the given layer.
 
Wrapper for iterator of features from vector data provider or vector layer.
 
bool nextFeature(QgsFeature &f)
Fetch next feature and stores in f, returns true on success.
 
Wraps a request for features to a vector layer (or directly its vector data provider).
 
QgsFeatureRequest & setFlags(Qgis::FeatureRequestFlags flags)
Sets flags that affect how features will be fetched.
 
QgsFeatureRequest & addOrderBy(const QString &expression, bool ascending=true)
Adds a new OrderByClause, appending it as the least important one.
 
QgsFeatureRequest & setFilterExpression(const QString &expression)
Set the filter expression.
 
QgsFeatureRequest & setExpressionContext(const QgsExpressionContext &context)
Sets the expression context used to evaluate filter expressions.
 
QgsFeatureRequest & setFilterFid(QgsFeatureId fid)
Sets the feature ID that should be fetched.
 
QgsFeatureRequest & setFilterRect(const QgsRectangle &rectangle)
Sets the rectangle from which features will be taken.
 
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
 
bool hasGeometry() const
Returns true if the feature has an associated geometry.
 
Encapsulate a field in an attribute table or data source.
 
QgsEditorWidgetSetup editorWidgetSetup() const
Gets the editor widget setup for the field.
 
Container of fields for a vector layer.
 
QgsField at(int i) const
Returns the field at particular index (must be in range 0..N-1).
 
Q_INVOKABLE int lookupField(const QString &fieldName) const
Looks up field's index from the field name.
 
static QString resolveFontStyleName(const QFont &font)
Attempts to resolve the style name corresponding to the specified font object.
 
static void setFontFamily(QFont &font, const QString &family)
Sets the family for a font object.
 
A geometry is the spatial representation of a feature.
 
static QgsGeometry fromQPolygonF(const QPolygonF &polygon)
Construct geometry from a QPolygonF.
 
Qgis::GeometryOperationResult transform(const QgsCoordinateTransform &ct, Qgis::TransformDirection direction=Qgis::TransformDirection::Forward, bool transformZ=false)
Transforms this geometry as described by the coordinate transform ct.
 
const QgsAbstractGeometry * constGet() const
Returns a non-modifiable (const) reference to the underlying abstract geometry primitive.
 
QgsRectangle boundingBox() const
Returns the bounding box of the geometry.
 
static QgsGeometryEngine * createGeometryEngine(const QgsAbstractGeometry *geometry, double precision=0.0, Qgis::GeosCreationFlags flags=Qgis::GeosCreationFlag::SkipEmptyInteriorRings)
Creates and returns a new geometry engine representing the specified geometry using precision on a gr...
 
A layout table subclass that displays attributes from a vector layer.
 
void resetColumns()
Resets the attribute table's columns to match the vector layer's fields.
 
QString wrapString() const
Returns the string used to wrap the contents of the table cells by.
 
bool readPropertiesFromElement(const QDomElement &itemElem, const QDomDocument &doc, const QgsReadWriteContext &context) override
Sets multiframe state from a DOM element.
 
ContentSource
Specifies the content source for the attribute table.
 
@ AtlasFeature
Table shows attributes from the current atlas feature.
 
@ RelationChildren
Table shows attributes from related child features.
 
@ LayerAttributes
Table shows attributes from features in a vector layer.
 
QgsVectorLayer * sourceLayer() const
Returns the source layer for the table, considering the table source mode.
 
void setDisplayedFields(const QStringList &fields, bool refresh=true)
Sets the attributes to display in the table.
 
void setUseConditionalStyling(bool enabled)
Sets whether the attribute table will be rendered using the conditional styling properties of the lin...
 
void setRelationId(const QString &id)
Sets the relation id from which to display child features.
 
void setMaximumNumberOfFeatures(int features)
Sets the maximum number of features shown by the table.
 
void setDisplayOnlyVisibleFeatures(bool visibleOnly)
Sets the attribute table to only show features which are visible in a map item.
 
void setFeatureFilter(const QString &expression)
Sets the expression used for filtering features in the table.
 
QgsExpressionContext createExpressionContext() const override
This method needs to be reimplemented in all classes which implement this interface and return an exp...
 
void finalizeRestoreFromXml() override
Called after all pending items have been restored from XML.
 
bool useConditionalStyling() const
Returns true if the attribute table will be rendered using the conditional styling properties of the ...
 
ContentSource source() const
Returns the source for attributes shown in the table body.
 
int type() const override
Returns unique multiframe type id.
 
QgsConditionalStyle conditionalCellStyle(int row, int column) const override
Returns the conditional style to use for the cell at row, column.
 
QgsExpressionContextScope * scopeForCell(int row, int column) const override
Creates a new QgsExpressionContextScope for the cell at row, column.
 
void refreshDataDefinedProperty(QgsLayoutObject::DataDefinedProperty property=QgsLayoutObject::DataDefinedProperty::AllProperties) override
Refreshes a data defined property for the multi frame by reevaluating the property's value and redraw...
 
void setFilterFeatures(bool filter)
Sets whether the feature filter is active for the attribute table.
 
QgsLayoutItemMap * map() const
Returns the layout map whose extents are controlling the features shown in the table.
 
void setUniqueRowsOnly(bool uniqueOnly)
Sets attribute table to only show unique rows.
 
QString relationId() const
Returns the relation id which the table displays child features from.
 
void setWrapString(const QString &wrapString)
Sets a string to wrap the contents of the table cells by.
 
QIcon icon() const override
Returns the item's icon.
 
void setMap(QgsLayoutItemMap *map)
Sets a layout map to use to limit the extent of features shown in the attribute table.
 
void setFilterToAtlasFeature(bool filterToAtlas)
Sets attribute table to only show features which intersect the current atlas feature.
 
QString displayName() const override
Returns the multiframe display name.
 
bool writePropertiesToElement(QDomElement &elem, QDomDocument &doc, const QgsReadWriteContext &context) const override
Stores multiframe state within an XML DOM element.
 
bool getTableContents(QgsLayoutTableContents &contents) override
Queries the attribute table's vector layer for attributes to show in the table.
 
QgsLayoutItemAttributeTable(QgsLayout *layout)
Constructor for QgsLayoutItemAttributeTable, attached to the specified layout.
 
QgsTextFormat textFormatForCell(int row, int column) const override
Returns the text format to use for the cell at the specified row and column.
 
static QgsLayoutItemAttributeTable * create(QgsLayout *layout)
Returns a new QgsLayoutItemAttributeTable for the specified parent layout.
 
void setVectorLayer(QgsVectorLayer *layer)
Sets the vector layer from which to display feature attributes.
 
void setSource(ContentSource source)
Sets the source for attributes to show in table body.
 
Layout graphical items for displaying a map.
 
void extentChanged()
Emitted when the map's extent changes.
 
void mapRotationChanged(double newRotation)
Emitted when the map's rotation changes.
 
@ LayoutAttributeTable
Attribute table.
 
virtual void finalizeRestoreFromXml()
Called after all pending items have been restored from XML.
 
virtual void refreshDataDefinedProperty(QgsLayoutObject::DataDefinedProperty property=QgsLayoutObject::DataDefinedProperty::AllProperties)
Refreshes a data defined property for the multi frame by reevaluating the property's value and redraw...
 
QgsPropertyCollection mDataDefinedProperties
 
const QgsLayout * layout() const
Returns the layout the object is attached to.
 
void changed()
Emitted when the object's properties change.
 
QPointer< QgsLayout > mLayout
 
DataDefinedProperty
Data defined properties for different item types.
 
@ AttributeTableSourceLayer
Attribute table source layer.
 
@ AllProperties
All properties for item.
 
QgsFeatureFilterProvider * featureFilterProvider() const
Returns the (possibly nullptr) feature filter provider.
 
void layerChanged(QgsVectorLayer *layer)
Emitted when the context's layer is changed.
 
Stores properties of a column for a QgsLayoutTable.
 
void setAttribute(const QString &attribute)
Sets the attribute name or expression used for the column's values.
 
void setHeading(const QString &heading)
Sets the heading for a column, which is the value displayed in the column's header cell.
 
Displays a table in the print layout, and allows the table to span over multiple frames.
 
virtual void refreshAttributes()
Refreshes the contents shown in the table by querying for new data.
 
void recalculateTableSize()
Recalculates and updates the size of the table and all table frames.
 
virtual QgsExpressionContextScope * scopeForCell(int row, int column) const
Creates a new QgsExpressionContextScope for the cell at row, column.
 
bool contentsContainsRow(const QgsLayoutTableContents &contents, const QgsLayoutTableRow &row) const
Checks whether a table contents contains a given row.
 
QgsLayoutTableColumns mColumns
Columns to show in table.
 
QgsTextFormat mContentTextFormat
 
bool writePropertiesToElement(QDomElement &elem, QDomDocument &doc, const QgsReadWriteContext &context) const override
Stores multiframe state within an XML DOM element.
 
QgsLayoutTableSortColumns mSortColumns
Columns to sort the table.
 
bool readPropertiesFromElement(const QDomElement &itemElem, const QDomDocument &doc, const QgsReadWriteContext &context) override
Sets multiframe state from a DOM element.
 
QgsLayoutTableContents & contents()
Returns the current contents of the table.
 
static QgsMapLayer * mapLayerFromString(const QString &string, QgsProject *project)
Resolves a string into a map layer from a given project.
 
Base class for layouts, which can contain items such as maps, labels, scalebars, etc.
 
QgsLayoutRenderContext & renderContext()
Returns a reference to the layout's render context, which stores information relating to the current ...
 
QgsCoordinateReferenceSystem crs
 
void layerModified()
Emitted when modifications has been done on layer.
 
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
 
void layerWillBeRemoved(const QString &layerId)
Emitted when a layer is about to be removed from the registry.
 
A container for the context for various read/write operations on objects.
 
A rectangle specified with double values.
 
QgsRectangle intersect(const QgsRectangle &rect) const
Returns the intersection with the given rectangle.
 
Represents a relationship between two vector layers.
 
QgsVectorLayer * referencingLayer
 
QgsFeatureRequest getRelatedFeaturesRequest(const QgsFeature &feature) const
Creates a request to return all the features on the referencing (child) layer which have a foreign ke...
 
Container for all settings relating to text rendering.
 
void setFont(const QFont &font)
Sets the font used for rendering text.
 
void setForcedItalic(bool forced)
Sets whether the format is set to force an italic style.
 
void setForcedBold(bool forced)
Sets whether the format is set to force a bold style.
 
QFont font() const
Returns the font used for rendering text.
 
static bool isNull(const QVariant &variant, bool silenceNullWarnings=false)
Returns true if the specified variant should be considered a NULL value.
 
Represents a vector layer which manages a vector based dataset.
 
QgsFeatureIterator getFeatures(const QgsFeatureRequest &request=QgsFeatureRequest()) const FINAL
Queries the layer for features specified in request.
 
QgsConditionalLayerStyles * conditionalStyles() const
Returns the conditional styles that are set for this layer.
 
QVector< QgsLayoutTableColumn > QgsLayoutTableColumns
List of column definitions for a QgsLayoutTable.
 
QVector< QgsLayoutTableRow > QgsLayoutTableContents
List of QgsLayoutTableRows, representing rows and column cell contents for a QgsLayoutTable.
 
QVector< QVariant > QgsLayoutTableRow
List of QVariants, representing a the contents of a single row in a QgsLayoutTable.
 
As part of the API refactoring and improvements which landed in the Processing API was substantially reworked from the x version This was done in order to allow much of the underlying Processing framework to be ported into c
 
#define Q_NOWARN_DEPRECATED_POP
 
#define Q_NOWARN_DEPRECATED_PUSH
 
_LayerRef< QgsVectorLayer > QgsVectorLayerRef
 
Single variable definition for use within a QgsExpressionContextScope.
 
TYPE * resolveWeakly(const QgsProject *project, MatchType matchType=MatchType::All)
Resolves the map layer by attempting to find a matching layer in a project using a weak match.
 
QString source
Weak reference to layer public source.
 
QString name
Weak reference to layer name.
 
TYPE * get() const
Returns a pointer to the layer, or nullptr if the reference has not yet been matched to a layer.
 
QString provider
Weak reference to layer provider.
 
void setLayer(TYPE *l)
Sets the reference to point to a specified layer.
 
QString layerId
Original layer ID.