QGIS API Documentation  3.37.0-Master (a5b4d9743e8)
qgsrasterminmaxwidget.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsrasterminmaxwidget.h
3  ---------------------------------
4  begin : July 2012
5  copyright : (C) 2012 by Radim Blazek
6  email : radim dot blazek at gmail dot com
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 QGSRASTERMINMAXWIDGET_H
19 #define QGSRASTERMINMAXWIDGET_H
20 
21 #include "ui_qgsrasterminmaxwidgetbase.h"
22 #include "qgis.h"
23 #include "qgsrectangle.h"
24 
25 #include "qgsraster.h"
26 #include "qgsrasterminmaxorigin.h"
27 #include "qgscontrastenhancement.h"
28 #include "qgis_gui.h"
29 
30 class QgsMapCanvas;
31 class QgsRasterLayer;
32 
37 class GUI_EXPORT QgsRasterMinMaxWidget: public QWidget, private Ui::QgsRasterMinMaxWidgetBase
38 {
39  Q_OBJECT
40  public:
41 
43  QgsRasterMinMaxWidget( QgsRasterLayer *layer, QWidget *parent SIP_TRANSFERTHIS = nullptr );
44 
51  void setExtent( const QgsRectangle &extent ) { mExtent = extent; }
52 
60  void setMapCanvas( QgsMapCanvas *canvas );
61 
66  QgsMapCanvas *mapCanvas();
67 
68  void setBands( const QList<int> &bands );
69 
74  QgsRectangle extent();
75 
77  int sampleSize() { return cboAccuracy->currentIndex() == 0 ? 250000 : 0; }
78 
80  void setFromMinMaxOrigin( const QgsRasterMinMaxOrigin & );
81 
83  QgsRasterMinMaxOrigin minMaxOrigin();
84 
86  void hideUpdatedExtent();
87 
89  void doComputations();
90 
92  void userHasSetManualMinMaxValues();
93 
95  bool isCollapsed() const { return mLoadMinMaxValuesGroupBox->isCollapsed(); }
96 
98  void setCollapsed( bool b ) { mLoadMinMaxValuesGroupBox->setCollapsed( b ); }
99 
100  signals:
101 
107 
109  void load( int bandNo, double min, double max );
110 
111  private slots:
112 
113  void mUserDefinedRadioButton_toggled( bool );
114  void mMinMaxRadioButton_toggled( bool b ) { if ( b ) emit widgetChanged(); }
115  void mStdDevRadioButton_toggled( bool b ) { if ( b ) emit widgetChanged(); }
116  void mCumulativeCutRadioButton_toggled( bool b ) { if ( b ) emit widgetChanged(); }
117  void mStatisticsExtentCombo_currentIndexChanged( int ) { emit widgetChanged(); }
118  void mCumulativeCutLowerDoubleSpinBox_valueChanged( double ) { emit widgetChanged(); }
119  void mCumulativeCutUpperDoubleSpinBox_valueChanged( double ) { emit widgetChanged(); }
120  void mStdDevSpinBox_valueChanged( double ) { emit widgetChanged(); }
121  void cboAccuracy_currentIndexChanged( int ) { emit widgetChanged(); }
122 
123  private:
124  QgsRasterLayer *mLayer = nullptr;
125  QList<int> mBands;
126  QgsRectangle mExtent;
127 
128  QgsMapCanvas *mCanvas = nullptr;
129 
130  bool mLastRectangleValid;
131  QgsRectangle mLastRectangle;
132  QgsRasterMinMaxOrigin mLastMinMaxOrigin;
133 
134  bool mBandsChanged;
135 };
136 
137 #endif // QGSRASTERMINMAXWIDGET_H
Map canvas is a class for displaying all GIS data types on a canvas.
Definition: qgsmapcanvas.h:93
Represents a raster layer.
This class describes the origin of min/max values.
void setExtent(const QgsRectangle &extent)
Sets the extent to use for minimum and maximum value calculation.
void setCollapsed(bool b)
Sets collapsed state of widget.
void load(int bandNo, double min, double max)
signal emitted when new min/max values are computed from statistics.
bool isCollapsed() const
Returns if the widget is collaped.
int sampleSize()
Returns the selected sample size.
void widgetChanged()
Emitted when something on the widget has changed.
A rectangle specified with double values.
Definition: qgsrectangle.h:42
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:53