Quantum GIS API Documentation  1.7.5-Wroclaw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
qgscomposerlegenditem.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgscomposerlegenditem.h - description
3  ------------------------
4  begin : May 2010
5  copyright : (C) 2010 by Marco Hugentobler
6  email : marco dot hugentobler at sourcepole dot ch
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 QGSCOMPOSERLEGENDITEM_H
19 #define QGSCOMPOSERLEGENDITEM_H
20 
21 #include <QStandardItem>
22 class QDomDocument;
23 class QDomElement;
24 
26 class CORE_EXPORT QgsComposerLegendItem: public QStandardItem
27 {
28  public:
29 
31  QgsComposerLegendItem( const QString& text );
32  QgsComposerLegendItem( const QIcon& icon, const QString& text );
33  virtual ~QgsComposerLegendItem();
34 
35  enum ItemType
36  {
37  GroupItem = QStandardItem::UserType,
41  RasterSymbolItem
42  };
43 
44  virtual void writeXML( QDomElement& elem, QDomDocument& doc ) const = 0;
48  virtual void readXML( const QDomElement& itemElem, bool xServerAvailable = true ) = 0;
49 
50  virtual ItemType itemType() const = 0;
51  virtual QStandardItem* clone() const = 0;
52 
53  protected:
54  void writeXMLChildren( QDomElement& elem, QDomDocument& doc ) const;
55 };
56 
57 class QgsSymbol;
58 
60 {
61  public:
63  QgsComposerSymbolItem( const QString& text );
64  QgsComposerSymbolItem( const QIcon& icon, const QString& text );
65  virtual ~QgsComposerSymbolItem();
66 
67  virtual QStandardItem* clone() const;
68 
69  virtual void writeXML( QDomElement& elem, QDomDocument& doc ) const;
70  virtual void readXML( const QDomElement& itemElem, bool xServerAvailable = true );
71 
73  void setSymbol( QgsSymbol* s );
74  QgsSymbol* symbol() {return mSymbol;}
75 
76  void setLayerID( const QString& id ) { mLayerID = id; }
77  QString layerID() const { return mLayerID; }
78 
79  ItemType itemType() const { return SymbologyItem; }
80 
81  private:
83  QString mLayerID; //this is needed to read the symbol from XML
84 };
85 
86 class QgsSymbolV2;
87 
89 {
90  public:
92  QgsComposerSymbolV2Item( const QString& text );
93  QgsComposerSymbolV2Item( const QIcon& icon, const QString& text );
94  virtual ~QgsComposerSymbolV2Item();
95 
96  virtual QStandardItem* clone() const;
97 
98  virtual void writeXML( QDomElement& elem, QDomDocument& doc ) const;
99  virtual void readXML( const QDomElement& itemElem, bool xServerAvailable = true );
100 
102  void setSymbolV2( QgsSymbolV2* s );
103  QgsSymbolV2* symbolV2() {return mSymbolV2;}
104 
105  ItemType itemType() const { return SymbologyV2Item; }
106 
107  private:
109 };
110 
112 {
113  public:
115  QgsComposerRasterSymbolItem( const QString& text );
116  QgsComposerRasterSymbolItem( const QIcon& icon, const QString& text );
117  virtual ~QgsComposerRasterSymbolItem();
118 
119  virtual QStandardItem* clone() const;
120 
121  virtual void writeXML( QDomElement& elem, QDomDocument& doc ) const;
122  virtual void readXML( const QDomElement& itemElem, bool xServerAvailable = true );
123 
124  void setLayerID( const QString& id ) { mLayerID = id; }
125  QString layerID() const { return mLayerID; }
126  ItemType itemType() const { return RasterSymbolItem; }
127 
128  void setColor( const QColor& c ){ mColor = c; }
129  QColor color() const { return mColor; }
130 
131  private:
132  QString mLayerID;
133  QColor mColor;
134 };
135 
137 {
138  public:
140  QgsComposerLayerItem( const QString& text );
141  virtual ~QgsComposerLayerItem();
142  virtual QStandardItem* clone() const;
143 
144  virtual void writeXML( QDomElement& elem, QDomDocument& doc ) const;
145  virtual void readXML( const QDomElement& itemElem, bool xServerAvailable = true );
146 
147  ItemType itemType() const { return LayerItem; }
148 
149  void setLayerID( const QString& id ) { mLayerID = id; }
150  QString layerID() const { return mLayerID; }
151 
152  private:
153  QString mLayerID;
154 };
155 
157 {
158  public:
160  QgsComposerGroupItem( const QString& text );
161  virtual ~QgsComposerGroupItem();
162  virtual QStandardItem* clone() const;
163 
164  virtual void writeXML( QDomElement& elem, QDomDocument& doc ) const;
165  virtual void readXML( const QDomElement& itemElem, bool xServerAvailable = true );
166 
167  ItemType itemType() const { return GroupItem; }
168 };
169 
170 #endif // QGSCOMPOSERLEGENDITEM_H