mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-25 00:58:06 -05:00
98 lines
3.1 KiB
Plaintext
98 lines
3.1 KiB
Plaintext
/** \ingroup MapComposer
|
|
* A legend that can be placed onto a map composition
|
|
*/
|
|
class QgsComposerLegend: QObject, QgsComposerItem
|
|
{
|
|
%TypeHeaderCode
|
|
#include <qgscomposerlegend.h>
|
|
%End
|
|
|
|
public:
|
|
QgsComposerLegend( QgsComposition* composition /TransferThis/);
|
|
~QgsComposerLegend();
|
|
|
|
/** \brief Reimplementation of QCanvasItem::paint*/
|
|
void paint( QPainter* painter, const QStyleOptionGraphicsItem* itemStyle, QWidget* pWidget );
|
|
|
|
/**Paints the legend and calculates its size. If painter is 0, only size is calculated*/
|
|
QSizeF paintAndDetermineSize( QPainter* painter );
|
|
|
|
/**Sets item box to the whole content*/
|
|
void adjustBoxSize();
|
|
|
|
/**Returns pointer to the legend model*/
|
|
QgsLegendModel* model();
|
|
|
|
//setters and getters
|
|
void setTitle( const QString& t );
|
|
QString title() const;
|
|
|
|
QFont titleFont() const;
|
|
void setTitleFont( const QFont& f );
|
|
|
|
QFont layerFont() const;
|
|
void setLayerFont( const QFont& f );
|
|
|
|
QFont itemFont() const;
|
|
void setItemFont( const QFont& f );
|
|
|
|
double boxSpace() const;
|
|
void setBoxSpace( double s );
|
|
|
|
double layerSpace() const;
|
|
void setLayerSpace( double s );
|
|
|
|
double symbolSpace() const;
|
|
void setSymbolSpace( double s );
|
|
|
|
double iconLabelSpace() const;
|
|
void setIconLabelSpace( double s );
|
|
|
|
double symbolWidth() const;
|
|
void setSymbolWidth( double w );
|
|
|
|
double symbolHeight() const;
|
|
void setSymbolHeight( double h );
|
|
|
|
/**Updates the model and all legend entries*/
|
|
void updateLegend();
|
|
|
|
/** stores state in Dom node
|
|
* @param elem is Dom element corresponding to 'Composer' tag
|
|
* @param temp write template file
|
|
*/
|
|
bool writeXML( QDomElement& elem, QDomDocument & doc ) const;
|
|
|
|
/** sets state from Dom document
|
|
* @param itemElem is Dom node corresponding to item tag
|
|
*/
|
|
bool readXML( const QDomElement& itemElem, const QDomDocument& doc );
|
|
|
|
public slots:
|
|
/**Data changed*/
|
|
void synchronizeWithModel();
|
|
|
|
protected:
|
|
|
|
|
|
private:
|
|
QgsComposerLegend(); //forbidden
|
|
|
|
/**Draws child items of a layer item
|
|
@param layerItem parent model item (layer)
|
|
@param currentYCoord in/out: current y position of legend item
|
|
@param maxXCoord in/out: maximum x-coordinate of the whole legend
|
|
*/
|
|
void drawLayerChildItems( QPainter* p, QStandardItem* layerItem, double& currentYCoord, double& maxXCoord );
|
|
|
|
/**Draws a symbol at the current y position and returns the new x position. Returns real symbol height, because for points,
|
|
it is possible that it differs from mSymbolHeight*/
|
|
void drawSymbol( QPainter* p, QgsSymbol* s, double currentYCoord, double& currentXPosition, double& symbolHeight ) const;
|
|
void drawPointSymbol( QPainter*, QgsSymbol* s, double currentYCoord, double& currentXPosition, double& symbolHeight ) const;
|
|
void drawLineSymbol( QPainter*, QgsSymbol* s, double currentYCoord, double& currentXPosition ) const;
|
|
void drawPolygonSymbol( QPainter* p, QgsSymbol* s, double currentYCoord, double& currentXPosition ) const;
|
|
|
|
/**Helper function that lists ids of layers contained in map canvas*/
|
|
QStringList layerIdList() const;
|
|
};
|