QGIS API Documentation  2.18.21-Las Palmas (9fba24a)
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 
27 class CORE_EXPORT QgsComposerFrame: public QgsComposerItem
28 {
29  Q_OBJECT
30 
31  public:
32  QgsComposerFrame( QgsComposition* c, QgsComposerMultiFrame* mf, qreal x, qreal y, qreal width, qreal height );
33 
35 
41  void setContentSection( const QRectF& section ) { mSection = section; }
42 
46  QgsComposerMultiFrame* multiFrame() const { return mMultiFrame; }
47 
48  //Overridden to allow multiframe to set display name
49  virtual QString displayName() const override;
50 
51  //Overridden to handle fixed frame sizes set by multi frame
52  void setSceneRect( const QRectF& rectangle ) override;
53 
54  void paint( QPainter* painter, const QStyleOptionGraphicsItem* itemStyle, QWidget* pWidget ) override;
55  void beginItemCommand( const QString& text ) override;
56  void endItemCommand() override;
57  bool writeXML( QDomElement& elem, QDomDocument & doc ) const override;
58  bool readXML( const QDomElement& itemElem, const QDomDocument& doc ) override;
59  int type() const override { return ComposerFrame; }
60 
67  QRectF extent() const { return mSection; }
68 
74  bool hidePageIfEmpty() const { return mHidePageIfEmpty; }
75 
81  void setHidePageIfEmpty( const bool hidePageIfEmpty );
82 
88  bool hideBackgroundIfEmpty() const { return mHideBackgroundIfEmpty; }
89 
95  void setHideBackgroundIfEmpty( const bool hideBackgroundIfEmpty );
96 
102  bool isEmpty() const;
103 
104  virtual QgsExpressionContext* createExpressionContext() const override;
105 
106  private:
107  QgsComposerFrame(); //forbidden
108  QgsComposerMultiFrame* mMultiFrame;
109  QRectF mSection;
110 
112  bool mHidePageIfEmpty;
114  bool mHideBackgroundIfEmpty;
115 
116 };
117 
118 #endif // QGSCOMPOSERFRAME_H
virtual QString displayName() const
Get item display name.
virtual void beginItemCommand(const QString &text)
A item that forms part of a map composition.
virtual bool writeXML(QDomElement &elem, QDomDocument &doc) const
Stores item state in DOM element.
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)
QRectF extent() const
Returns the visible portion of the multi frame's content which is shown in this frame.
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.
Graphics scene for map printing.
Frame item for a composer multiframe item.
bool hidePageIfEmpty() const
Returns whether the page should be hidden (ie, not included in composer exports) if this frame is emp...
virtual void endItemCommand()
bool hideBackgroundIfEmpty() const
Returns whether the background and frame border should be hidden if this frame is empty...
virtual bool readXML(const QDomElement &itemElem, const QDomDocument &doc)
Sets item state from DOM element.
QgsComposerMultiFrame * multiFrame() const
Returns the parent multiframe for the frame.
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...
void setContentSection(const QRectF &section)
Sets the visible part of the multiframe's content which is visible within this frame (relative to the...