QGIS API Documentation  2.5.0-Master
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
qgscomposerpicture.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgscomposerpicture.h
3  -------------------
4  begin : September 2005
5  copyright : (C) 2005 by Radim Blazek
6  email : radim.blazek@gmail.com
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 #ifndef QGSCOMPOSERPICTURE_H
18 #define QGSCOMPOSERPICTURE_H
19 
20 #include "qgscomposeritem.h"
21 #include <QFile>
22 #include <QImage>
23 #include <QSvgRenderer>
24 
25 class QgsComposerMap;
26 class QgsExpression;
27 
31 class CORE_EXPORT QgsComposerPicture: public QgsComposerItem
32 {
33  Q_OBJECT
34  public:
35 
39  {
40  Zoom,
42  Clip,
44  FrameToImageSize
45  };
46 
49  enum Mode
50  {
51  SVG,
54  };
55 
56  QgsComposerPicture( QgsComposition *composition );
58 
60  virtual int type() const { return ComposerPicture; }
61 
63  void paint( QPainter* painter, const QStyleOptionGraphicsItem* itemStyle, QWidget* pWidget );
64 
71  void setPictureFile( const QString& path );
72 
79  QString pictureFile() const;
80 
84  void setSceneRect( const QRectF& rectangle );
85 
90  bool writeXML( QDomElement& elem, QDomDocument & doc ) const;
91 
96  bool readXML( const QDomElement& itemElem, const QDomDocument& doc );
97 
101  Q_DECL_DEPRECATED double rotation() const { return mPictureRotation; }
102 
109  double pictureRotation() const { return mPictureRotation; }
110 
119  void setRotationMap( int composerMapId );
120 
128  int rotationMap() const;
129 
135  bool useRotationMap() const { return mRotationMap; }
136 
143  ResizeMode resizeMode() const { return mResizeMode; }
144 
151  void setPictureAnchor( QgsComposerItem::ItemPositionMode anchor );
152 
159  ItemPositionMode pictureAnchor() const { return mPictureAnchor; }
160 
170  Q_DECL_DEPRECATED bool usePictureExpression() const;
171 
180  Q_DECL_DEPRECATED QString pictureExpression() const;
181 
186  Q_DECL_DEPRECATED bool imageSizeConsideringRotation( double& width, double& height ) const;
187 
192  Q_DECL_DEPRECATED bool cornerPointOnRotatedAndScaledRect( double& x, double& y, double width, double height ) const;
193 
198  Q_DECL_DEPRECATED void sizeChangedByRotation( double& width, double& height );
199 
204  Mode mode() const { return mMode; }
205 
206  public slots:
211  virtual void setRotation( double r );
212 
219  virtual void setPictureRotation( double r );
220 
226  virtual void setResizeMode( ResizeMode mode );
227 
237  virtual void setUsePictureExpression( bool useExpression );
238 
247  virtual void setPictureExpression( QString expression );
248 
253  void refreshPicture();
254 
260  Q_DECL_DEPRECATED void updatePictureExpression() {};
261 
265  void recalculateSize();
266 
268 
269  signals:
271  void pictureRotationChanged( double newRotation );
272 
273  private:
274 
275  //default constructor is forbidden
278  QRectF boundedSVGRect( double deviceWidth, double deviceHeight );
280  QRectF boundedImageRect( double deviceWidth, double deviceHeight );
281 
283  QSizeF pictureSize();
284 
285  QImage mImage;
286  QSvgRenderer mSVG;
287  QFile mSourceFile;
289 
291 
300 
303 
305 
307  void loadPicture( const QFile &file );
308 
310  void init();
311 
315  QRect clippedImageRect( double &boundRectWidthMM, double &boundRectHeightMM, QSize imageRectPixels );
316 };
317 
318 #endif
Class for parsing and evaluation of expressions (formerly called "search strings").
Definition: qgsexpression.h:89
Q_DECL_DEPRECATED bool imageSizeConsideringRotation(double &width, double &height, double rotation) const
Calculates width and hight of the picture (in mm) such that it fits into the item frame with the give...
virtual bool writeXML(QDomElement &elem, QDomDocument &doc) const
Stores item state in DOM element.
virtual void setRotation(double r)
Sets the item rotation.
Q_DECL_DEPRECATED double rotation() const
Returns the rotation used for drawing the picture within the composer item.
Mode mode() const
Returns the current picture mode (image format).
A item that forms part of a map composition.
Q_DECL_DEPRECATED void updatePictureExpression()
Prepares the picture's source expression after it is altered or the compositions atlas coverage layer...
QgsComposerItem::ItemPositionMode mPictureAnchor
DataDefinedProperty
Data defined properties for different item types.
A composer class that displays svg files or raster format (jpg, png, ...)
ResizeMode resizeMode() const
Returns the resize mode used for drawing the picture within the composer item's frame.
ItemPositionMode pictureAnchor() const
Returns the picture's current anchor, which controls how it is placed within the picture item's frame...
virtual void refreshDataDefinedProperty(const QgsComposerObject::DataDefinedProperty property=QgsComposerObject::AllProperties)
Refreshes a data defined property for the item by reevaluating the property's value and redrawing the...
const QgsComposerMap * mRotationMap
Map that sets the rotation (or 0 if this picture uses map independent rotation)
double mPictureHeight
Height of the picture (in mm)
bool useRotationMap() const
True if the picture rotation is matched to a map item.
Graphics scene for map printing.
Object representing map window.
QString file
Definition: qgssvgcache.cpp:76
void init(const bool manageZValue)
Q_DECL_DEPRECATED bool cornerPointOnRotatedAndScaledRect(double &x, double &y, double width, double height, double rotation) const
Calculates corner point after rotation and scaling.
virtual bool readXML(const QDomElement &itemElem, const QDomDocument &doc)
Sets item state from DOM element.
virtual void setSceneRect(const QRectF &rectangle)
Sets this items bound in scene coordinates such that 1 item size units corresponds to 1 scene size un...
double mPictureWidth
Width of the picture (in mm)
double pictureRotation() const
Returns the rotation used for drawing the picture within the item's frame.
double mPictureRotation
Image rotation.
Q_DECL_DEPRECATED void sizeChangedByRotation(double &width, double &height, double rotation)
Calculates width / height of the bounding box of a rotated rectangle.
virtual int type() const
return correct graphics item type.