QGIS API Documentation  3.6.0-Noosa (5873452)
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 updatePanningWidget( QPoint pos );
100 
102  QgsPanningWidget *mPanningWidget = nullptr;
103 
106 
108  QgsMapCanvas *mMapCanvas = nullptr;
109 
111  QPixmap mPixmap;
112 
115 
117  QgsMapRendererQImageJob *mJob = nullptr;
118 };
119 
120 
121 #ifndef SIP_RUN
122 
124 // Widget that serves as rectangle showing current extent in overview
125 class QgsPanningWidget : public QWidget
126 {
127  Q_OBJECT
128 
129  QPolygon mPoly;
130 
131  public:
132  explicit QgsPanningWidget( QWidget *parent );
133 
134  void setPolygon( const QPolygon &p );
135 
136  void paintEvent( QPaintEvent *pe ) override;
137 
138 };
140 
141 #endif
142 
143 #endif
QPoint mPanningCursorOffset
position of cursor inside panning widget
A rectangle specified with double values.
Definition: qgsrectangle.h:41
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:46
A widget that displays an overview map.
Map canvas is a class for displaying all GIS data types on a canvas.
Definition: qgsmapcanvas.h:73
The QgsMapSettings class contains configuration for rendering of the map.
void enableAntiAliasing(bool flag)
QgsMapSettings mSettings
map settings used for rendering of the overview map
Enable anti-aliasing for map rendering.
QPixmap mPixmap
pixmap where the map is stored
Intermediate base class adding functionality that allows client to query the rendered image...