QGIS API Documentation  3.21.0-Master (909859188c)
qgsmapoverviewcanvas.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsmapoverviewcanvas.h
3  Map canvas subclassed for overview
4  -------------------
5  begin : 09/14/2005
6  copyright : (C) 2005 by Martin Dobias
7  email : won.der at centrum.sk
8  ***************************************************************************/
9 
10 /***************************************************************************
11  * *
12  * This program is free software; you can redistribute it and/or modify *
13  * it under the terms of the GNU General Public License as published by *
14  * the Free Software Foundation; either version 2 of the License, or *
15  * (at your option) any later version. *
16  * *
17  ***************************************************************************/
18 
19 #ifndef QGSMAPOVERVIEWCANVAS_H
20 #define QGSMAPOVERVIEWCANVAS_H
21 
22 #include <QWidget>
23 #include <QPixmap>
24 
25 class QMouseEvent;
26 class QgsMapCanvas;
27 class QgsPanningWidget; // defined in .cpp
28 class QgsRectangle;
29 
31 #include "qgsmapsettings.h"
32 #include "qgis_gui.h"
33 
38 class GUI_EXPORT QgsMapOverviewCanvas : public QWidget
39 {
40  Q_OBJECT
41 
42  public:
43  QgsMapOverviewCanvas( QWidget *parent SIP_TRANSFERTHIS = nullptr, QgsMapCanvas *mapCanvas = nullptr );
44 
46  void refresh();
47 
49  void setBackgroundColor( const QColor &color );
50 
52  void setLayers( const QList<QgsMapLayer *> &layers );
53 
55  QList<QgsMapLayer *> layers() const;
56 
57  void enableAntiAliasing( bool flag ) { mSettings.setFlag( QgsMapSettings::Antialiasing, flag ); }
58 
59  void updateFullExtent();
60 
61  protected slots:
62  void mapRenderingFinished();
63 
67  void layerRepaintRequested( bool deferred = false );
68 
69  protected:
70 
72  void drawExtentRect();
73 
75  void destinationCrsChanged();
76 
78  void transformContextChanged();
79 
81  void paintEvent( QPaintEvent *pe ) override;
82 
84  void showEvent( QShowEvent *e ) override;
85 
87  void resizeEvent( QResizeEvent *e ) override;
88 
90  void mouseMoveEvent( QMouseEvent *e ) override;
91 
93  void mousePressEvent( QMouseEvent *e ) override;
94 
96  void mouseReleaseEvent( QMouseEvent *e ) override;
97 
99  void wheelEvent( QWheelEvent *e ) override;
100 
102  void updatePanningWidget( QPoint pos );
103 
105  QgsPanningWidget *mPanningWidget = nullptr;
106 
109 
111  QgsMapCanvas *mMapCanvas = nullptr;
112 
114  QPixmap mPixmap;
115 
118 
120  QgsMapRendererQImageJob *mJob = nullptr;
121 };
122 
123 
124 #ifndef SIP_RUN
125 
127 // Widget that serves as rectangle showing current extent in overview
128 class QgsPanningWidget : public QWidget
129 {
130  Q_OBJECT
131 
132  QPolygon mPoly;
133 
134  public:
135  explicit QgsPanningWidget( QWidget *parent );
136 
137  void setPolygon( const QPolygon &p );
138 
139  void paintEvent( QPaintEvent *pe ) override;
140 
141 };
143 
144 #endif
145 
146 #endif
Map canvas is a class for displaying all GIS data types on a canvas.
Definition: qgsmapcanvas.h:87
A widget that displays an overview map.
QPoint mPanningCursorOffset
position of cursor inside panning widget
QPixmap mPixmap
pixmap where the map is stored
void enableAntiAliasing(bool flag)
QgsMapSettings mSettings
map settings used for rendering of the overview map
Intermediate base class adding functionality that allows client to query the rendered image.
The QgsMapSettings class contains configuration for rendering of the map.
@ Antialiasing
Enable anti-aliasing for map rendering.
A rectangle specified with double values.
Definition: qgsrectangle.h:42
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:53