QGIS API Documentation  2.7.0-Master
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
qgscomposertable.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgscomposertable.h
3  ------------------
4  begin : January 2010
5  copyright : (C) 2010 by Marco Hugentobler
6  email : marco at hugis dot net
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 QGSCOMPOSERTABLE_H
19 #define QGSCOMPOSERTABLE_H
20 
21 #include "qgscomposeritem.h"
22 #include "qgscomposition.h"
23 #include "qgsfeature.h"
24 #include <QSet>
25 #include <QObject>
26 
28 
30 class CORE_EXPORT QgsComposerTable: public QgsComposerItem
31 {
32  Q_OBJECT
33 
34  public:
35 
39  {
43  HeaderRight
44  };
45 
46  QgsComposerTable( QgsComposition* composition );
47  virtual ~QgsComposerTable();
48 
50  virtual int type() const { return ComposerTable; }
51 
53  virtual void paint( QPainter* painter, const QStyleOptionGraphicsItem* itemStyle, QWidget* pWidget );
54 
55  virtual bool writeXML( QDomElement& elem, QDomDocument & doc ) const = 0;
56  virtual bool readXML( const QDomElement& itemElem, const QDomDocument& doc ) = 0;
57 
62  void setLineTextDistance( double d );
63 
68  double lineTextDistance() const { return mLineTextDistance; }
69 
75  void setHeaderFont( const QFont& f );
76 
82  QFont headerFont() const { return mHeaderFont; }
83 
91  void setHeaderFontColor( const QColor& color );
92 
100  QColor headerFontColor() const { return mHeaderFontColor; }
101 
107  void setHeaderHAlignment( const HeaderHAlignment alignment );
108 
114  HeaderHAlignment headerHAlignment() const { return mHeaderHAlignment; }
115 
121  void setContentFont( const QFont& f );
122 
128  QFont contentFont() const { return mContentFont; }
129 
137  void setContentFontColor( const QColor& color );
138 
146  QColor contentFontColor() const { return mContentFontColor; }
147 
154  void setShowGrid( bool show );
155 
162  bool showGrid() const { return mShowGrid; }
163 
170  void setGridStrokeWidth( double w );
171 
178  double gridStrokeWidth() const { return mGridStrokeWidth; }
179 
186  void setGridColor( const QColor& c ) { mGridColor = c; }
187 
194  QColor gridColor() const { return mGridColor; }
195 
202  virtual QMap<int, QString> headerLabels() const;
203 
204  //TODO - make this more generic for next API break, eg rename as getRowValues, use QStringList rather than
205  //QgsAttributeMap
206 
212  virtual bool getFeatureAttributes( QList<QgsAttributeMap>& attributeMaps ) { Q_UNUSED( attributeMaps ); return false; }
213 
219  QList<QgsComposerTableColumn*>* columns() { return &mColumns; }
220 
226  void setColumns( QList<QgsComposerTableColumn*> columns );
227 
228  public slots:
229 
236  virtual void refreshAttributes();
237 
245  virtual void adjustFrameToSize();
246 
247  protected:
250 
251  QFont mHeaderFont;
255 
257 
258  bool mShowGrid;
260  QColor mGridColor;
261 
262  QList<QgsAttributeMap> mAttributeMaps;
263  QMap<int, double> mMaxColumnWidthMap;
264 
265  QList<QgsComposerTableColumn*> mColumns;
266 
274  virtual bool calculateMaxColumnWidths( QMap<int, double>& maxWidthMap, const QList<QgsAttributeMap>& attributeMaps ) const;
275 
283  void adaptItemFrame( const QMap<int, double>& maxWidthMap, const QList<QgsAttributeMap>& attributeMaps );
284 
290  void drawHorizontalGridLines( QPainter* p, int nAttributes );
291 
300  void drawVerticalGridLines( QPainter* p, const QMap<int, double>& maxWidthMap );
301 
308  bool tableWriteXML( QDomElement& itemElem, QDomDocument& doc ) const;
309 
316  bool tableReadXML( const QDomElement& itemElem, const QDomDocument& doc );
317 };
318 
319 #endif // QGSCOMPOSERTABLE_H
QColor gridColor() const
Returns the color used for grid lines in the table.
virtual int type() const
return correct graphics item type.
virtual bool writeXML(QDomElement &elem, QDomDocument &doc) const
Stores item state in DOM element.
QColor headerFontColor() const
Returns the color used to draw header text in the table.
A item that forms part of a map composition.
HeaderHAlignment mHeaderHAlignment
QList< QgsComposerTableColumn * > * columns()
Returns a pointer to the list of QgsComposerTableColumns shown in the table.
void setGridColor(const QColor &c)
Sets color used for grid lines in the table.
A class to display feature attributes in the print composer.
QFont headerFont() const
Returns the font used to draw header text in the table.
bool showGrid() const
Returns whether grid lines are drawn in the table.
Stores properties of a column in a QgsComposerTable.
Graphics scene for map printing.
virtual bool getFeatureAttributes(QList< QgsAttributeMap > &attributeMaps)
Fetches the text used for the rows of the table.
QList< QgsComposerTableColumn * > mColumns
HeaderHAlignment headerHAlignment() const
Returns the horizontal alignment for table headers.
QFont contentFont() const
Returns the font used to draw text in table body cells.
QList< QgsAttributeMap > mAttributeMaps
virtual bool readXML(const QDomElement &itemElem, const QDomDocument &doc)
Sets item state from DOM element.
double mLineTextDistance
Distance between table lines and text.
QColor contentFontColor() const
Returns the color used to draw text in table body cells.
QMap< int, double > mMaxColumnWidthMap
double gridStrokeWidth() const
Returns the width of grid lines in the table.
double lineTextDistance() const
Returns the margin distance between cell borders and their contents.