QGIS API Documentation  2.14.0-Essen
qgscomposerframe.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgscomposerframe.h
3  ------------------------------------------------------------
4  begin : July 2012
5  copyright : (C) 2012 by Marco Hugentobler
6  email : marco dot hugentobler at sourcepole dot ch
7  ***************************************************************************
8  * *
9  * This program is free software; you can redistribute it and/or modify *
10  * it under the terms of the GNU General Public License as published by *
11  * the Free Software Foundation; either version 2 of the License, or *
12  * (at your option) any later version. *
13  * *
14  ***************************************************************************/
15 
16 #ifndef QGSCOMPOSERFRAME_H
17 #define QGSCOMPOSERFRAME_H
18 
19 #include "qgscomposeritem.h"
20 
21 class QgsComposition;
23 
25 class CORE_EXPORT QgsComposerFrame: public QgsComposerItem
26 {
27  Q_OBJECT
28 
29  public:
30  QgsComposerFrame( QgsComposition* c, QgsComposerMultiFrame* mf, qreal x, qreal y, qreal width, qreal height );
31 
33 
39  void setContentSection( const QRectF& section ) { mSection = section; }
40 
44  QgsComposerMultiFrame* multiFrame() const { return mMultiFrame; }
45 
46  //Overridden to allow multiframe to set display name
47  virtual QString displayName() const override;
48 
49  //Overridden to handle fixed frame sizes set by multi frame
50  void setSceneRect( const QRectF& rectangle ) override;
51 
52  void paint( QPainter* painter, const QStyleOptionGraphicsItem* itemStyle, QWidget* pWidget ) override;
53  void beginItemCommand( const QString& text ) override;
54  void endItemCommand() override;
55  bool writeXML( QDomElement& elem, QDomDocument & doc ) const override;
56  bool readXML( const QDomElement& itemElem, const QDomDocument& doc ) override;
57  int type() const override { return ComposerFrame; }
58 
65  QRectF extent() const { return mSection; }
66 
72  bool hidePageIfEmpty() const { return mHidePageIfEmpty; }
73 
79  void setHidePageIfEmpty( const bool hidePageIfEmpty );
80 
86  bool hideBackgroundIfEmpty() const { return mHideBackgroundIfEmpty; }
87 
93  void setHideBackgroundIfEmpty( const bool hideBackgroundIfEmpty );
94 
100  bool isEmpty() const;
101 
102  virtual QgsExpressionContext* createExpressionContext() const override;
103 
104  private:
105  QgsComposerFrame(); //forbidden
106  QgsComposerMultiFrame* mMultiFrame;
107  QRectF mSection;
108 
110  bool mHidePageIfEmpty;
112  bool mHideBackgroundIfEmpty;
113 
114 };
115 
116 #endif // QGSCOMPOSERFRAME_H
virtual bool writeXML(QDomElement &elem, QDomDocument &doc) const
Stores item state in DOM element.
virtual void beginItemCommand(const QString &text)
A item that forms part of a map composition.
virtual QgsExpressionContext * createExpressionContext() const override
Creates an expression context relating to the item's current state.
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
Abstract base class for composer items with the ability to distribute the content to several frames (...
int type() const override
Return correct graphics item type.
bool hideBackgroundIfEmpty() const
Returns whether the background and frame border should be hidden if this frame is empty...
Graphics scene for map printing.
Frame item for a composer multiframe item.
virtual QString displayName() const
Get item display name.
QRectF extent() const
Returns the visible portion of the multi frame's content which is shown in this frame.
virtual void endItemCommand()
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...
bool hidePageIfEmpty() const
Returns whether the page should be hidden (ie, not included in composer exports) if this frame is emp...
void setContentSection(const QRectF &section)
Sets the visible part of the multiframe's content which is visible within this frame (relative to the...
QgsComposerMultiFrame * multiFrame() const
Returns the parent multiframe for the frame.