Quantum GIS API Documentation  1.7.5-Wroclaw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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 "qgsfeature.h"
23 #include <QSet>
24 
25 
26 
28 class CORE_EXPORT QgsComposerTable: public QgsComposerItem
29 {
30  public:
31  QgsComposerTable( QgsComposition* composition );
32  virtual ~QgsComposerTable();
33 
35  virtual int type() const { return ComposerTable; }
36 
38  virtual void paint( QPainter* painter, const QStyleOptionGraphicsItem* itemStyle, QWidget* pWidget );
39 
40  virtual bool writeXML( QDomElement& elem, QDomDocument & doc ) const = 0;
41  virtual bool readXML( const QDomElement& itemElem, const QDomDocument& doc ) = 0;
42 
43  void setLineTextDistance( double d ) { mLineTextDistance = d; }
44  double lineTextDistance() const { return mLineTextDistance; }
45 
46  void setHeaderFont( const QFont& f ) { mHeaderFont = f;}
47  QFont headerFont() const { return mHeaderFont; }
48 
49  void setContentFont( const QFont& f ) { mContentFont = f; }
50  QFont contentFont() const { return mContentFont; }
51 
52  void setShowGrid( bool show ) { mShowGrid = show;}
53  bool showGrid() const { return mShowGrid; }
54 
55  void setGridStrokeWidth( double w ) { mGridStrokeWidth = w; }
56  double gridStrokeWidth() const { return mGridStrokeWidth; }
57 
58  void setGridColor( const QColor& c ) { mGridColor = c; }
59  QColor gridColor() const { return mGridColor; }
60 
63  void adjustFrameToSize();
64 
65  protected:
68 
69  QFont mHeaderFont;
70  QFont mContentFont;
71 
72  bool mShowGrid;
74  QColor mGridColor;
75 
77  virtual bool getFeatureAttributes( QList<QgsAttributeMap>& attributes ) {return false;} //= 0;
78  virtual QMap<int, QString> getHeaderLabels() const { return QMap<int, QString>(); } //= 0;
80  virtual bool calculateMaxColumnWidths( QMap<int, double>& maxWidthMap, const QList<QgsAttributeMap>& attributeList ) const;
82  void adaptItemFrame( const QMap<int, double>& maxWidthMap, const QList<QgsAttributeMap>& attributeList );
83  void drawHorizontalGridLines( QPainter* p, int nAttributes );
84  void drawVerticalGridLines( QPainter* p, const QMap<int, double>& maxWidthMap );
85 
86  bool tableWriteXML( QDomElement& itemElem, QDomDocument& doc ) const;
87  bool tableReadXML( const QDomElement& itemElem, const QDomDocument& doc );
88 };
89 
90 #endif // QGSCOMPOSERTABLE_H