1 /***************************************************************************
2                           qgsrasterpyramidsoptionswidget.h
3                              -------------------
4     begin                : July 2012
5     copyright            : (C) 2012 by Etienne Tourigny
6     email                : etourigny dot dev 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 QGSRASTERPYRAMIDSOPTIONSWIDGET_H
19 #define QGSRASTERPYRAMIDSOPTIONSWIDGET_H
20 
21 #include "ui_qgsrasterpyramidsoptionswidgetbase.h"
22 #include "qgis_sip.h"
23 #include "qgis_gui.h"
24 
25 class QCheckBox;
26 
27 /**
28  * \ingroup gui
29  * \brief A widget to select format-specific raster saving options
30  */
31 class GUI_EXPORT QgsRasterPyramidsOptionsWidget: public QWidget, private Ui::QgsRasterPyramidsOptionsWidgetBase
32 {
33     Q_OBJECT
34 
35   public:
36 
37     //! Constructor for QgsRasterPyramidsOptionsWidget
38     QgsRasterPyramidsOptionsWidget( QWidget *parent SIP_TRANSFERTHIS = nullptr, const QString &provider = "gdal" );
39 
configOptions()40     QStringList configOptions() const { return mSaveOptionsWidget->options(); }
createOptionsWidget()41     QgsRasterFormatSaveOptionsWidget *createOptionsWidget() SIP_FACTORY { return mSaveOptionsWidget; }
overviewList()42     const QList<int> overviewList() const { return mOverviewList; }
pyramidsFormat()43     QgsRaster::RasterPyramidsFormat pyramidsFormat() const
44     { return static_cast< QgsRaster::RasterPyramidsFormat >( cbxPyramidsFormat->currentIndex() ); }
45     QString resamplingMethod() const;
setRasterLayer(QgsRasterLayer * rasterLayer)46     void setRasterLayer( QgsRasterLayer *rasterLayer ) { mSaveOptionsWidget->setRasterLayer( rasterLayer ); }
setRasterFileName(const QString & file)47     void setRasterFileName( const QString &file ) { mSaveOptionsWidget->setRasterFileName( file ); }
48 
49   public slots:
50 
51     void apply();
52     void checkAllLevels( bool checked );
53 
54   private slots:
55 
56     void cbxPyramidsLevelsCustom_toggled( bool toggled ) SIP_FORCE;
57     void cbxPyramidsFormat_currentIndexChanged( int index ) SIP_FORCE;
58     void setOverviewList() SIP_FORCE;
59     void updateUi() SIP_FORCE;
60 
61   signals:
62     void overviewListChanged();
63     void someValueChanged(); /* emitted when any other setting changes */
64 
65   private:
66 
67     // Must be in the same order as in the .ui file
68     typedef enum
69     {
70       GTIFF = 0,
71       INTERNAL = 1,
72       ERDAS = 2
73     } Format;
74 
75 
76     QString mProvider;
77     QList< int > mOverviewList;
78     QMap< int, QCheckBox * > mOverviewCheckBoxes;
79 };
80 
81 // clazy:excludeall=qstring-allocations
82 
83 #endif // QGSRASTERLAYERSAVEASDIALOG_H
84