QGIS API Documentation  2.4.0-Chugiak
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups 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 
89  void setHeaderHAlignment( const HeaderHAlignment alignment );
90 
96  HeaderHAlignment headerHAlignment() const { return mHeaderHAlignment; }
97 
103  void setContentFont( const QFont& f );
104 
110  QFont contentFont() const { return mContentFont; }
111 
118  void setShowGrid( bool show );
119 
126  bool showGrid() const { return mShowGrid; }
127 
134  void setGridStrokeWidth( double w );
135 
142  double gridStrokeWidth() const { return mGridStrokeWidth; }
143 
150  void setGridColor( const QColor& c ) { mGridColor = c; }
151 
158  QColor gridColor() const { return mGridColor; }
159 
166  virtual QMap<int, QString> headerLabels() const;
167 
168  //TODO - make this more generic for next API break, eg rename as getRowValues, use QStringList rather than
169  //QgsAttributeMap
170 
176  virtual bool getFeatureAttributes( QList<QgsAttributeMap>& attributeMaps ) { Q_UNUSED( attributeMaps ); return false; }
177 
183  QList<QgsComposerTableColumn*>* columns() { return &mColumns; }
184 
190  void setColumns( QList<QgsComposerTableColumn*> columns );
191 
192  public slots:
193 
200  virtual void refreshAttributes();
201 
209  virtual void adjustFrameToSize();
210 
211  protected:
214 
215  QFont mHeaderFont;
217 
219 
220  bool mShowGrid;
222  QColor mGridColor;
223 
224  QList<QgsAttributeMap> mAttributeMaps;
225  QMap<int, double> mMaxColumnWidthMap;
226 
227  QList<QgsComposerTableColumn*> mColumns;
228 
236  virtual bool calculateMaxColumnWidths( QMap<int, double>& maxWidthMap, const QList<QgsAttributeMap>& attributeMaps ) const;
237 
245  void adaptItemFrame( const QMap<int, double>& maxWidthMap, const QList<QgsAttributeMap>& attributeMaps );
246 
252  void drawHorizontalGridLines( QPainter* p, int nAttributes );
253 
262  void drawVerticalGridLines( QPainter* p, const QMap<int, double>& maxWidthMap );
263 
270  bool tableWriteXML( QDomElement& itemElem, QDomDocument& doc ) const;
271 
278  bool tableReadXML( const QDomElement& itemElem, const QDomDocument& doc );
279 };
280 
281 #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 readXML(const QDomElement &itemElem, const QDomDocument &doc)=0
sets state from Dom document
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
double mLineTextDistance
Distance between table lines and text.
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.
virtual bool writeXML(QDomElement &elem, QDomDocument &doc) const =0
stores state in Dom element