QGIS API Documentation 3.99.0-Master (d270888f95f)
Loading...
Searching...
No Matches
qgslayouttablecolumn.cpp
Go to the documentation of this file.
1/***************************************************************************
2 QgsLayoutTableColumn.cpp
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
19
20#include <memory>
21
22#include "qgis.h"
23
24#include <QString>
25
26using namespace Qt::StringLiterals;
27
29 : mHeading( heading )
30{}
31
32bool QgsLayoutTableColumn::writeXml( QDomElement &columnElem, QDomDocument &doc ) const
33{
34 //background color
35 QDomElement bgColorElem = doc.createElement( u"backgroundColor"_s );
36 bgColorElem.setAttribute( u"red"_s, QString::number( mBackgroundColor.red() ) );
37 bgColorElem.setAttribute( u"green"_s, QString::number( mBackgroundColor.green() ) );
38 bgColorElem.setAttribute( u"blue"_s, QString::number( mBackgroundColor.blue() ) );
39 bgColorElem.setAttribute( u"alpha"_s, QString::number( mBackgroundColor.alpha() ) );
40 columnElem.appendChild( bgColorElem );
41
42 columnElem.setAttribute( u"hAlignment"_s, mHAlignment );
43 columnElem.setAttribute( u"vAlignment"_s, mVAlignment );
44
45 columnElem.setAttribute( u"heading"_s, mHeading );
46 columnElem.setAttribute( u"attribute"_s, mAttribute );
47
48 columnElem.setAttribute( u"sortByRank"_s, QString::number( mSortByRank ) );
49 columnElem.setAttribute( u"sortOrder"_s, QString::number( mSortOrder ) );
50
51 columnElem.setAttribute( u"width"_s, QString::number( mWidth ) );
52
53 return true;
54}
55
56bool QgsLayoutTableColumn::readXml( const QDomElement &columnElem )
57{
58 mHAlignment = static_cast< Qt::AlignmentFlag >( columnElem.attribute( u"hAlignment"_s, QString::number( Qt::AlignLeft ) ).toInt() );
59 mVAlignment = static_cast< Qt::AlignmentFlag >( columnElem.attribute( u"vAlignment"_s, QString::number( Qt::AlignVCenter ) ).toInt() );
60 mHeading = columnElem.attribute( u"heading"_s, QString() );
61 mAttribute = columnElem.attribute( u"attribute"_s, QString() );
62 mSortByRank = columnElem.attribute( u"sortByRank"_s, u"0"_s ).toInt();
63 mSortOrder = static_cast< Qt::SortOrder >( columnElem.attribute( u"sortOrder"_s, QString::number( Qt::AscendingOrder ) ).toInt() );
64 mWidth = columnElem.attribute( u"width"_s, u"0.0"_s ).toDouble();
65
66 const QDomNodeList bgColorList = columnElem.elementsByTagName( u"backgroundColor"_s );
67 if ( !bgColorList.isEmpty() )
68 {
69 const QDomElement bgColorElem = bgColorList.at( 0 ).toElement();
70 bool redOk, greenOk, blueOk, alphaOk;
71 int bgRed, bgGreen, bgBlue, bgAlpha;
72 bgRed = bgColorElem.attribute( u"red"_s ).toDouble( &redOk );
73 bgGreen = bgColorElem.attribute( u"green"_s ).toDouble( &greenOk );
74 bgBlue = bgColorElem.attribute( u"blue"_s ).toDouble( &blueOk );
75 bgAlpha = bgColorElem.attribute( u"alpha"_s ).toDouble( &alphaOk );
76 if ( redOk && greenOk && blueOk && alphaOk )
77 {
78 mBackgroundColor = QColor( bgRed, bgGreen, bgBlue, bgAlpha );
79 }
80 }
81
82 return true;
83}
bool readXml(const QDomElement &columnElem)
Reads the column's properties from xml.
QString heading() const
Returns the heading for a column, which is the value displayed in the column's header cell.
bool writeXml(QDomElement &columnElem, QDomDocument &doc) const
Writes the column's properties to xml for storage.
QgsLayoutTableColumn(const QString &heading=QString())
Constructor for QgsLayoutTableColumn.