QGIS/src/gui/qgsexpressionbuilderdialog.h
Nyall Dawson 4da1ce8404 Drop redundant virtual keywords on overrides
Run clang-tidy modernize-use-override to remove all the redundant
virtual keywords from overridden methods, and add some missing
overrides.

Another benefit is that this has also added the overrides
on destructors, which will cause a build failure if a base
class is missing a virtual destructor.
2017-12-16 08:49:36 +10:00

121 lines
4.1 KiB
C++

/***************************************************************************
qgisexpressionbuilderdialog.h - A generic expression string builder dialog.
--------------------------------------
Date : 29-May-2011
Copyright : (C) 2011 by Nathan Woodrow
Email : woodrow.nathan at gmail dot com
***************************************************************************
* *
* 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 QGSEXPRESSIONBUILDERDIALOG_H
#define QGSEXPRESSIONBUILDERDIALOG_H
#include <QDialog>
#include "ui_qgsexpressionbuilderdialogbase.h"
#include "qgshelp.h"
#include "qgis_gui.h"
/**
* \ingroup gui
* A generic dialog for building expression strings
* @remarks This class also shows an example on how to use QgsExpressionBuilderWidget
*/
class GUI_EXPORT QgsExpressionBuilderDialog : public QDialog, private Ui::QgsExpressionBuilderDialogBase
{
Q_OBJECT
Q_PROPERTY( bool allowEvalErrors READ allowEvalErrors WRITE setAllowEvalErrors NOTIFY allowEvalErrorsChanged )
public:
QgsExpressionBuilderDialog( QgsVectorLayer *layer,
const QString &startText = QString(),
QWidget *parent SIP_TRANSFERTHIS = nullptr,
const QString &key = "generic",
const QgsExpressionContext &context = QgsExpressionContext() );
//! The builder widget that is used by the dialog
QgsExpressionBuilderWidget *expressionBuilder();
void setExpressionText( const QString &text );
QString expressionText();
/**
* Returns the expression context for the dialog. The context is used for the expression
* preview result and for populating the list of available functions and variables.
* \see setExpressionContext
* \since QGIS 2.12
*/
QgsExpressionContext expressionContext() const;
/**
* Sets the expression context for the dialog. The context is used for the expression
* preview result and for populating the list of available functions and variables.
* \param context expression context
* \see expressionContext
* \since QGIS 2.12
*/
void setExpressionContext( const QgsExpressionContext &context );
//! Sets geometry calculator used in distance/area calculations.
void setGeomCalculator( const QgsDistanceArea &da );
/**
* Allow accepting invalid expressions. This can be useful when we are not able to
* provide an expression context of which we are sure it's completely populated.
*
* \since QGIS 3.0
*/
bool allowEvalErrors() const;
/**
* Allow accepting expressions with evaluation errors. This can be useful when we are not able to
* provide an expression context of which we are sure it's completely populated.
*
* \since QGIS 3.0
*/
void setAllowEvalErrors( bool allowEvalErrors );
signals:
/**
* Allow accepting expressions with evaluation errors. This can be useful when we are not able to
* provide an expression context of which we are sure it's completely populated.
*
* \since QGIS 3.0
*/
void allowEvalErrorsChanged();
protected:
/**
* Is called when the dialog get accepted or rejected
* Used to save geometry
*
* \param r result value (unused)
*/
void done( int r ) override;
void accept() override;
private:
QString mRecentKey;
bool mAllowEvalErrors = false;
private slots:
void showHelp();
void syncOkButtonEnabledState();
};
// clazy:excludeall=qstring-allocations
#endif