00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef QGSCOMPOSERATTRIBUTETABLE_H
00019 #define QGSCOMPOSERATTRIBUTETABLE_H
00020
00021 #include "qgscomposertable.h"
00022
00023 class QgsComposerMap;
00024 class QgsVectorLayer;
00025
00027 class QgsComposerAttributeTableCompare
00028 {
00029 public:
00030 QgsComposerAttributeTableCompare();
00031 bool operator()( const QgsAttributeMap& m1, const QgsAttributeMap& m2 );
00032 void setSortColumn( int col ) { mCurrentSortColumn = col; }
00033 void setAscending( bool asc ) { mAscending = asc; }
00034 private:
00035 int mCurrentSortColumn;
00036 bool mAscending;
00037 };
00038
00040 class CORE_EXPORT QgsComposerAttributeTable: public QgsComposerTable
00041 {
00042 Q_OBJECT
00043 public:
00044 QgsComposerAttributeTable( QgsComposition* composition );
00045 ~QgsComposerAttributeTable();
00046
00048 virtual void paint( QPainter* painter, const QStyleOptionGraphicsItem* itemStyle, QWidget* pWidget );
00049
00050 bool writeXML( QDomElement& elem, QDomDocument & doc ) const;
00051 bool readXML( const QDomElement& itemElem, const QDomDocument& doc );
00052
00053 void setVectorLayer( QgsVectorLayer* vl );
00054 const QgsVectorLayer* vectorLayer() const { return mVectorLayer; }
00055
00056 void setComposerMap( const QgsComposerMap* map );
00057 const QgsComposerMap* composerMap() const { return mComposerMap; }
00058
00059 void setMaximumNumberOfFeatures( int nr ) { mMaximumNumberOfFeatures = nr; }
00060 int maximumNumberOfFeatures() const { return mMaximumNumberOfFeatures; }
00061
00062 void setDisplayOnlyVisibleFeatures( bool b ) { mShowOnlyVisibleFeatures = b; }
00063 bool displayOnlyVisibleFeatures() const { return mShowOnlyVisibleFeatures; }
00064
00065 QSet<int> displayAttributes() const { return mDisplayAttributes; }
00066 void setDisplayAttributes( const QSet<int>& attr ) { mDisplayAttributes = attr;}
00067
00068 QMap<int, QString> fieldAliasMap() const { return mFieldAliasMap; }
00069 void setFieldAliasMap( const QMap<int, QString>& map ) { mFieldAliasMap = map; }
00070
00072 void setSceneRect( const QRectF& rectangle );
00073
00074 void setSortAttributes( const QList<QPair<int, bool> > att ) { mSortInformation = att; }
00075 QList<QPair<int, bool> > sortAttributes() const { return mSortInformation; }
00076
00077 protected:
00079 bool getFeatureAttributes( QList<QgsAttributeMap>& attributes );
00080 QMap<int, QString> getHeaderLabels() const;
00081
00082 private:
00084 QgsVectorLayer* mVectorLayer;
00086 const QgsComposerMap* mComposerMap;
00088 int mMaximumNumberOfFeatures;
00089
00091 bool mShowOnlyVisibleFeatures;
00092
00094 QSet<int> mDisplayAttributes;
00096 QMap<int, QString> mFieldAliasMap;
00097
00099 QList< QPair<int, bool> > mSortInformation;
00100
00102 void initializeAliasMap();
00104 QString attributeDisplayName( int attributeIndex, const QString& name ) const;
00105
00106 private slots:
00108 void removeLayer( QString layerId );
00109
00110 signals:
00112 void maximumNumerOfFeaturesChanged( int n );
00113 };
00114
00115 #endif // QGSCOMPOSERATTRIBUTETABLE_H