18 #ifndef QGSLAYOUTTABLE_H 19 #define QGSLAYOUTTABLE_H 21 #include "qgis_core.h" 77 QColor cellBackgroundColor = QColor( 255, 255, 255, 255 );
85 bool writeXml( QDomElement &styleElem, QDomDocument &doc )
const;
92 bool readXml(
const QDomElement &styleElem );
175 void setCellMargin(
double margin );
203 void setEmptyTableMessage(
const QString &message );
219 void setShowEmptyRows(
bool showEmpty );
232 void setHeaderFont(
const QFont &font );
247 void setHeaderFontColor(
const QColor &color );
288 void setContentFont(
const QFont &font );
303 void setContentFontColor(
const QColor &color );
320 void setShowGrid(
bool showGrid );
336 void setGridStrokeWidth(
double width );
352 void setGridColor(
const QColor &color );
370 void setHorizontalGrid(
bool horizontalGrid );
389 void setVerticalGrid(
bool verticalGrid );
405 void setBackgroundColor(
const QColor &color );
459 virtual QMap<int, QString> headerLabels()
const SIP_SKIP;
474 QSizeF
minFrameSize(
int frameIndex = -1 )
const override;
490 virtual void refreshAttributes();
496 double mCellMargin = 1.0;
505 bool mShowEmptyRows =
false;
511 QColor mHeaderFontColor = Qt::black;
523 QColor mContentFontColor = Qt::black;
526 bool mShowGrid =
true;
529 double mGridStrokeWidth = 0.5;
532 QColor mGridColor = Qt::black;
535 bool mHorizontalGrid =
true;
538 bool mVerticalGrid =
true;
541 QColor mBackgroundColor = Qt::white;
564 virtual bool calculateMaxColumnWidths();
569 virtual bool calculateMaxRowHeights();
584 double totalHeight();
597 int rowsVisible(
double frameHeight,
int firstRow,
bool includeHeader,
bool includeEmptyRows )
const;
608 int rowsVisible(
int frameIndex,
int firstRow,
bool includeEmptyRows )
const;
615 QPair<int, int> rowRange(
int frameIndex )
const;
626 void drawHorizontalGridLines( QPainter *painter,
int firstRow,
int lastRow,
bool drawHeaderLines )
const;
643 void drawVerticalGridLines( QPainter *painter,
const QMap<int, double> &maxWidthMap,
int firstRow,
int lastRow,
bool hasHeader,
bool mergeCells =
false ) const SIP_SKIP;
648 void recalculateTableSize();
665 bool textRequiresWrapping( const QString &text,
double columnWidth, const QFont &font ) const;
667 QString wrappedText( const QString &value,
double columnWidth, const QFont &font ) const;
675 QColor backgroundColor(
int row,
int column ) const;
677 friend class TestQgsLayoutTable;
681 #endif // QGSLAYOUTTABLE_H EmptyTableMode
Controls how empty tables are displayed.
The class is used as a container of context for various read/write operations on other objects...
QMap< int, double > mMaxRowHeightMap
Map of maximum height for each row.
virtual QSizeF totalSize() const =0
Returns the total size of the multiframe's content, in layout units.
void refresh() override
Refreshes the multiframe, causing a recalculation of any property overrides.
QString emptyTableMessage() const
Returns the message for empty tables with no content rows.
QMap< CellStyleGroup, QgsLayoutTableStyle *> mCellStyles
Style odd numbered columns.
virtual QSizeF minFrameSize(int frameIndex=-1) const
Returns the minimum size for a frames, if desired.
QColor contentFontColor() const
Returns the color used to draw text in table body cells.
WrapBehavior
Controls how long strings in the table are handled.
bool horizontalGrid() const
Returns whether the grid's horizontal lines are drawn in the table.
Header uses the same alignment as the column.
QColor gridColor() const
Returns the color used for grid lines in the table.
A class to display a table in the print layout, and allow the table to span over multiple frames...
virtual bool writePropertiesToElement(QDomElement &element, QDomDocument &document, const QgsReadWriteContext &context) const
Stores multiframe state within an XML DOM element.
Styling option for a composer table cell.
QVector< QgsLayoutTableColumn *> QgsLayoutTableColumns
List of column definitions for a QgsLayoutTable.
Style even numbered columns.
QString mEmptyTableMessage
String to show in empty tables.
double gridStrokeWidth() const
Returns the width of grid lines in the table in mm.
bool showEmptyRows() const
Returns whether empty rows are drawn in the table.
QFont contentFont() const
Returns the font used to draw text in table body cells.
Stores properties of a column for a QgsLayoutTable.
Abstract base class for layout items with the ability to distribute the content to several frames (Qg...
EmptyTableMode emptyTableBehavior() const
Returns the behavior mode for empty tables.
QFont mHeaderFont
Header font.
WrapBehavior wrapBehavior() const
Returns the wrap behavior for the table, which controls how text within cells is automatically wrappe...
Base class for layouts, which can contain items such as maps, labels, scalebars, etc.
QColor headerFontColor() const
Returns the color used to draw header text in the table.
virtual void recalculateFrameSizes()
Recalculates the portion of the multiframe item which is shown in each of its component frames...
QFont mContentFont
Table contents font.
Contains settings and helpers relating to a render of a QgsLayoutItem.
virtual bool readPropertiesFromElement(const QDomElement &element, const QDomDocument &document, const QgsReadWriteContext &context)
Sets multiframe state from a DOM element.
double cellMargin() const
Returns the margin distance between cell borders and their contents in mm.
QgsCompositionConverter class converts a QGIS 2.x composition to a QGIS 3.x layout.
bool verticalGrid() const
Returns whether the grid's vertical lines are drawn in the table.
bool showGrid() const
Returns whether grid lines are drawn in the table.
QgsLayoutTableColumns mColumns
Columns to show in table.
virtual void render(QgsLayoutItemRenderContext &context, const QRectF &renderExtent, int frameIndex)=0
Renders a portion of the multiframe's content into a render context.
virtual QSizeF fixedFrameSize(int frameIndex=-1) const
Returns the fixed size for a frame, if desired.
QgsLayoutTableContents & contents()
Returns the current contents of the table.
HeaderHAlignment headerHAlignment() const
Returns the horizontal alignment for table headers.
Headers shown on all frames.
QgsLayoutTableContents mTableContents
Contents to show in table.
QFont headerFont() const
Returns the font used to draw header text in the table.
QColor backgroundColor() const
Returns the color used for the background of the table.
HeaderMode headerMode() const
Returns the display mode for headers in the table.
QMap< int, double > mMaxColumnWidthMap
Map of maximum width for each column.
HeaderMode
Controls where headers are shown in the table.
HeaderHAlignment
Controls how headers are horizontally aligned in a table.
Style even numbered rows.
QgsLayoutTableColumns & columns()
Returns a reference to the list of QgsLayoutTableColumns shown in the table.
CellStyleGroup
Row or column groups for cell styling.
QVector< QgsLayoutTableRow > QgsLayoutTableContents
List of QgsLayoutTableRows, representing rows and column cell contents for a QgsLayoutTable.
Hides entire table if empty.
QVector< QVariant > QgsLayoutTableRow
List of QVariants, representing a the contents of a single row in a QgsComposerTable.