QGIS API Documentation  3.9.0-Master (3ff8ca5736)
qgsformannotation.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsformannotation.h
3  ------------------------
4  begin : February 9, 2010
5  copyright : (C) 2010 by Marco Hugentobler
6  email : marco dot hugentobler at hugis dot net
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 QGSFORMANNOTATION_H
19 #define QGSFORMANNOTATION_H
20 
21 #include "qgsannotation.h"
22 #include "qgis_sip.h"
23 #include "qgsfeature.h"
24 #include <QWidget>
25 #include "qgis_gui.h"
26 
33 class GUI_EXPORT QgsFormAnnotation: public QgsAnnotation
34 {
35  Q_OBJECT
36  public:
37 
41  QgsFormAnnotation( QObject *parent SIP_TRANSFERTHIS = nullptr );
42 
43  QgsFormAnnotation *clone() const override SIP_FACTORY;
44 
45  QSizeF minimumFrameSize() const override;
47  QSizeF preferredFrameSize() const;
48 
53  void setDesignerForm( const QString &uiFile );
54 
59  QString designerForm() const { return mDesignerForm; }
60 
61  void writeXml( QDomElement &elem, QDomDocument &doc, const QgsReadWriteContext &context ) const override;
62  void readXml( const QDomElement &itemElem, const QgsReadWriteContext &context ) override;
63 
64  void setAssociatedFeature( const QgsFeature &feature ) override;
65 
69  static QgsFormAnnotation *create() SIP_FACTORY { return new QgsFormAnnotation(); }
70 
71  protected:
72 
73  void renderAnnotation( QgsRenderContext &context, QSizeF size ) const override;
74 
75  private:
76 
77  std::unique_ptr<QWidget> mDesignerWidget;
78  QSize mMinimumSize;
80  QString mDesignerForm;
81 
82  QWidget *createDesignerWidget( const QString &filePath );
83 };
84 
85 #endif // QGSFORMANNOTATION_H
The class is used as a container of context for various read/write operations on other objects...
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:53
QString designerForm() const
Returns the path to the Qt Designer UI file to show in the annotation.
virtual void writeXml(QDomElement &elem, QDomDocument &doc, const QgsReadWriteContext &context) const =0
Writes the annotation state to a DOM element.
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
Definition: qgsfeature.h:55
Abstract base class for annotation items which are drawn over a map.
Definition: qgsannotation.h:49
virtual void renderAnnotation(QgsRenderContext &context, QSizeF size) const =0
Renders the annotation&#39;s contents to a target /a context at the specified /a size.
virtual void readXml(const QDomElement &itemElem, const QgsReadWriteContext &context)=0
Restores the annotation&#39;s state from a DOM element.
static QgsFormAnnotation * create()
Returns a new QgsFormAnnotation object.
#define SIP_FACTORY
Definition: qgis_sip.h:76
virtual QSizeF minimumFrameSize() const
Returns the minimum frame size for the annotation.
Contains information about the context of a rendering operation.
virtual QgsAnnotation * clone() const =0
Clones the annotation, returning a new copy of the annotation reflecting the annotation&#39;s current sta...
virtual void setAssociatedFeature(const QgsFeature &feature)
Sets the feature associated with the annotation.
An annotation item that embeds a designer form showing the feature attribute.