18 #ifndef QGSLAYOUTTABLE_H
19 #define QGSLAYOUTTABLE_H
21 #include "qgis_core.h"
87 QColor cellBackgroundColor = QColor( 255, 255, 255, 255 );
95 bool writeXml( QDomElement &styleElem, QDomDocument &doc )
const;
102 bool readXml(
const QDomElement &styleElem );
185 void setCellMargin(
double margin );
197 void setEmptyTableBehavior( EmptyTableMode mode );
213 void setEmptyTableMessage(
const QString &message );
229 void setShowEmptyRows(
bool showEmpty );
243 Q_DECL_DEPRECATED
void setHeaderFont(
const QFont &font )
SIP_DEPRECATED;
260 Q_DECL_DEPRECATED
void setHeaderFontColor( const QColor &color )
SIP_DEPRECATED;
291 void setHeaderHAlignment( HeaderHAlignment alignment );
304 void setHeaderMode( HeaderMode mode );
319 Q_DECL_DEPRECATED
void setContentFont(
const QFont &font )
SIP_DEPRECATED;
336 Q_DECL_DEPRECATED
void setContentFontColor( const QColor &color )
SIP_DEPRECATED;
370 void setShowGrid(
bool showGrid );
378 bool showGrid()
const {
return mShowGrid; }
386 void setGridStrokeWidth(
double width );
402 void setGridColor(
const QColor &color );
420 void setHorizontalGrid(
bool horizontalGrid );
439 void setVerticalGrid(
bool verticalGrid );
455 void setBackgroundColor(
const QColor &color );
469 void setWrapBehavior( WrapBehavior behavior );
524 virtual QMap<int, QString> headerLabels() const
SIP_SKIP;
552 QSizeF fixedFrameSize(
int frameIndex = -1 )
const override;
553 QSizeF minFrameSize(
int frameIndex = -1 )
const override;
555 bool writePropertiesToElement( QDomElement &elem, QDomDocument &doc,
const QgsReadWriteContext &context )
const override;
556 bool readPropertiesFromElement(
const QDomElement &itemElem,
const QDomDocument &doc,
const QgsReadWriteContext &context )
override;
557 QSizeF totalSize()
const override;
562 void refresh()
override;
569 virtual void refreshAttributes();
571 void recalculateFrameSizes()
override;
575 double mCellMargin = 1.0;
584 bool mShowEmptyRows =
false;
597 bool mShowGrid =
true;
600 double mGridStrokeWidth = 0.5;
603 QColor mGridColor = Qt::black;
606 bool mHorizontalGrid =
true;
609 bool mVerticalGrid =
true;
612 QColor mBackgroundColor = Qt::white;
638 virtual bool calculateMaxColumnWidths();
643 virtual bool calculateMaxRowHeights();
658 double totalHeight();
672 int rowsVisible(
QgsRenderContext &context,
double frameHeight,
int firstRow,
bool includeHeader,
bool includeEmptyRows )
const;
684 int rowsVisible(
QgsRenderContext &context,
int frameIndex,
int firstRow,
bool includeEmptyRows )
const;
692 QPair<int, int> rowRange(
QgsRenderContext &context,
int frameIndex )
const;
720 void drawVerticalGridLines(
QgsLayoutItemRenderContext &context,
const QMap<int, double> &maxWidthMap,
int firstRow,
int lastRow,
bool hasHeader,
bool mergeCells =
false ) const
SIP_SKIP;
725 void recalculateTableSize();
741 virtual
QgsTextFormat textFormatForCell(
int row,
int column ) const;
749 virtual
QgsTextFormat textFormatForHeader(
int column ) const;
757 virtual Qt::Alignment horizontalAlignmentForCell(
int row,
int column ) const;
765 virtual Qt::Alignment verticalAlignmentForCell(
int row,
int column ) const;
780 QColor backgroundColor(
int row,
int column ) const;
782 friend class TestQgsLayoutTable;
783 friend class TestQgsLayoutManualTable;
QgsCompositionConverter class converts a QGIS 2.x composition to a QGIS 3.x layout.
Conditional styling for a rule.
Single scope for storing variables and functions for use within a QgsExpressionContext.
Contains settings and helpers relating to a render of a QgsLayoutItem.
Abstract base class for layout items with the ability to distribute the content to several frames (Qg...
Stores properties of a column for a QgsLayoutTable.
Styling option for a layout table cell.
QgsLayoutTableStyle()=default
Constructor for QgsLayoutTableStyle.
A class to display a table in the print layout, and allow the table to span over multiple frames.
HeaderMode headerMode() const
Returns the display mode for headers in the table.
QColor backgroundColor() const
Returns the color used for the background of the table.
EmptyTableMode emptyTableBehavior() const
Returns the behavior mode for empty tables.
QgsLayoutTableColumns & columns()
Returns a reference to the list of QgsLayoutTableColumns shown in the table.
QMap< int, double > mMaxColumnWidthMap
Map of maximum width for each column.
bool horizontalGrid() const
Returns whether the grid's horizontal lines are drawn in the table.
double cellMargin() const
Returns the margin distance between cell borders and their contents in mm.
QString emptyTableMessage() const
Returns the message for empty tables with no content rows.
QString mEmptyTableMessage
String to show in empty tables.
bool showEmptyRows() const
Returns whether empty rows are drawn in the table.
bool verticalGrid() const
Returns whether the grid's vertical lines are drawn in the table.
CellStyleGroup
Row or column groups for cell styling.
@ FirstRow
Style first row only.
@ EvenColumns
Style even numbered columns.
@ EvenRows
Style even numbered rows.
@ HeaderRow
Style header row.
@ OddColumns
Style odd numbered columns.
@ FirstColumn
Style first column only.
@ LastColumn
Style last column only.
@ OddRows
Style odd numbered rows.
QgsTextFormat mHeaderTextFormat
QColor gridColor() const
Returns the color used for grid lines in the table.
HeaderMode
Controls where headers are shown in the table.
@ AllFrames
Headers shown on all frames.
QgsLayoutTableColumns mColumns
Columns to show in table.
QgsTextFormat mContentTextFormat
QgsLayoutTableSortColumns & sortColumns()
Returns a reference to the list of QgsLayoutTableSortColumns shown in the table.
WrapBehavior wrapBehavior() const
Returns the wrap behavior for the table, which controls how text within cells is automatically wrappe...
QgsLayoutTableContents mTableContents
Contents to show in table.
double gridStrokeWidth() const
Returns the width of grid lines in the table in mm.
QgsLayoutTableSortColumns mSortColumns
Columns to sort the table.
WrapBehavior
Controls how long strings in the table are handled.
HeaderHAlignment
Controls how headers are horizontally aligned in a table.
@ HeaderLeft
Align headers left.
@ HeaderCenter
Align headers to center.
@ FollowColumn
Header uses the same alignment as the column.
EmptyTableMode
Controls how empty tables are displayed.
@ HideTable
Hides entire table if empty.
QMap< int, double > mMaxRowHeightMap
Map of maximum height for each row.
QMap< CellStyleGroup, QgsLayoutTableStyle * > mCellStyles
Base class for layouts, which can contain items such as maps, labels, scalebars, etc.
The class is used as a container of context for various read/write operations on other objects.
Contains information about the context of a rendering operation.
Container for all settings relating to text rendering.
QVector< QgsLayoutTableColumn > QgsLayoutTableColumns
List of column definitions for a QgsLayoutTable.
QVector< QgsLayoutTableColumn > QgsLayoutTableSortColumns
List of column definitions for sorting 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.