QGIS/src/app/qgsrastercalcdialog.h

106 lines
3.9 KiB
C
Raw Normal View History

/***************************************************************************
qgsrastercalcdialog.h - description
---------------------
begin : September 28th, 2010
copyright : (C) 2010 by Marco Hugentobler
email : marco dot hugentobler at sourcepole dot ch
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef QGSRASTERCALCDIALOG_H
#define QGSRASTERCALCDIALOG_H
#include "ui_qgsrastercalcdialogbase.h"
#include "qgsrastercalculator.h"
#include "qgshelp.h"
2017-01-04 12:05:04 +01:00
#include "qgis_app.h"
//! A dialog to enter a raster calculation expression
class APP_EXPORT QgsRasterCalcDialog: public QDialog, private Ui::QgsRasterCalcDialogBase
{
Q_OBJECT
public:
QgsRasterCalcDialog( QWidget *parent = nullptr, Qt::WindowFlags f = nullptr );
~QgsRasterCalcDialog() override;
QString formulaString() const;
QString outputFile() const;
QString outputFormat() const;
QgsCoordinateReferenceSystem outputCrs() const;
bool addLayerToProject() const;
//! Bounding box for output raster
QgsRectangle outputRectangle() const;
//! Number of pixels in x-direction
int numberOfColumns() const;
//! Number of pixels in y-direction
int numberOfRows() const;
QVector<QgsRasterCalculatorEntry> rasterEntries() const;
private slots:
2017-10-09 08:48:23 +10:00
void mOutputLayerPushButton_clicked();
void mRasterBandsListWidget_itemDoubleClicked( QListWidgetItem *item );
void mButtonBox_accepted();
void mCurrentLayerExtentButton_clicked();
void mExpressionTextEdit_textChanged();
void mOutputLayerLineEdit_textChanged( const QString &text );
2017-07-02 21:17:54 +02:00
//! Enables OK button if calculator expression is valid and output file path exists
void setAcceptButtonState();
void showHelp();
//calculator buttons
2017-10-09 08:48:23 +10:00
void mPlusPushButton_clicked();
void mMinusPushButton_clicked();
void mMultiplyPushButton_clicked();
void mDividePushButton_clicked();
void mSqrtButton_clicked();
void mCosButton_clicked();
void mSinButton_clicked();
void mASinButton_clicked();
void mExpButton_clicked();
void mLnButton_clicked();
void mLogButton_clicked();
void mNotEqualButton_clicked();
void mTanButton_clicked();
void mACosButton_clicked();
void mATanButton_clicked();
void mOpenBracketPushButton_clicked();
void mCloseBracketPushButton_clicked();
void mLessButton_clicked();
void mGreaterButton_clicked();
void mEqualButton_clicked();
void mLesserEqualButton_clicked();
void mGreaterEqualButton_clicked();
void mAndButton_clicked();
void mOrButton_clicked();
private:
//insert available GDAL drivers that support the create() option
void insertAvailableOutputFormats();
//! Accesses the available raster layers/bands from the layer registry
void insertAvailableRasterBands();
//! Returns true if raster calculator expression has valid syntax
bool expressionValid() const;
//! Returns true if output file directory exists
bool filePathValid() const;
2017-03-03 08:42:00 +01:00
static QString quoteBandEntry( const QString &layerName );
2013-07-31 13:42:46 +02:00
//! Stores relation between driver name and extension
QMap<QString, QString> mDriverExtensionMap;
QList<QgsRasterCalculatorEntry> mAvailableRasterBands;
};
#endif // QGSRASTERCALCDIALOG_H