19#ifndef QGSSQLCOMPOSERDIALOG_H
20#define QGSSQLCOMPOSERDIALOG_H
22#include "ui_qgssqlcomposerdialogbase.h"
76 virtual bool isValid(
const QString &sql, QString &errorReason, QString &warningMsg ) = 0;
88 Argument(
const QString &nameIn = QString(),
const QString &typeIn = QString() ) : name( nameIn ), type( typeIn ) {}
106 Function(
const QString &nameIn,
int args ) : name( nameIn ), minArgs( args ), maxArgs( args ) {}
108 Function(
const QString &nameIn,
int minArgs,
int maxArgsIn ) : name( nameIn ), minArgs( minArgs ), maxArgs( maxArgsIn ) {}
114 explicit QgsSQLComposerDialog( QWidget *parent =
nullptr, Qt::WindowFlags fl = QgsGuiUtils::ModalDialogFlags );
127 void setSql(
const QString &sql );
133 void setSubsetString(
const QString &subsetString )
override { setSql( subsetString ); }
136 void addTableNames(
const QStringList &list );
138 void addTableNames(
const QList<PairNameTitle> &listNameTitle );
140 void addColumnNames(
const QStringList &list,
const QString &tableName );
142 void addColumnNames(
const QList<PairNameType> &list,
const QString &tableName );
144 void addOperators(
const QStringList &list );
146 void addSpatialPredicates(
const QStringList &list );
148 void addSpatialPredicates(
const QList<Function> &list );
150 void addFunctions(
const QStringList &list );
152 void addFunctions(
const QList<Function> &list );
154 void addApis(
const QStringList &list );
157 void setSupportMultipleTables(
bool bMultipleTables,
const QString &mainTypename = QString() );
164 void setTableSelectedCallback( TableSelectedCallback *tableSelectedCallback );
170 void setSQLValidatorCallback( SQLValidatorCallback *sqlValidatorCallback );
173 bool eventFilter( QObject *obj, QEvent *event )
override;
176 void accept()
override;
178 void mTablesCombo_currentIndexChanged(
int );
179 void mColumnsCombo_currentIndexChanged(
int );
180 void mSpatialPredicatesCombo_currentIndexChanged(
int );
181 void mFunctionsCombo_currentIndexChanged(
int );
182 void mOperatorsCombo_currentIndexChanged(
int );
183 void mAddJoinButton_clicked();
184 void mRemoveJoinButton_clicked();
185 void mTableJoins_itemSelectionChanged();
188 void buildSQLFromFields();
189 void splitSQLIntoFields();
193 QStringList mApiList;
194 QSet<QString> mAlreadySelectedTables;
195 TableSelectedCallback *mTableSelectedCallback =
nullptr;
196 SQLValidatorCallback *mSQLValidatorCallback =
nullptr;
197 QObject *mFocusedObject =
nullptr;
198 bool mAlreadyModifyingFields =
false;
199 bool mDistinct =
false;
201 QMap<QString, QString> mapTableEntryTextToName;
202 QMap<QString, QString> mapColumnEntryTextToName;
203 QMap<QString, QString> mapSpatialPredicateEntryTextToName;
204 QMap<QString, QString> mapFunctionEntryTextToName;
205 QString lastSearchedText;
208 void loadTableColumns(
const QString &table );
209 void functionCurrentIndexChanged( QComboBox *combo,
210 const QMap<QString, QString> &mapEntryTextToName );
211 void getFunctionList(
const QList<Function> &list,
212 QStringList &listApi,
213 QStringList &listCombo,
214 QMap<QString, QString> &mapEntryTextToName );
Callback to do validation check on dialog validation.
virtual ~SQLValidatorCallback()=default
virtual bool isValid(const QString &sql, QString &errorReason, QString &warningMsg)=0
method should return true if the SQL is valid. Otherwise return false and set the errorReason
Callback to do actions on table selection.
virtual void tableSelected(const QString &name)=0
method called when a table is selected
virtual ~TableSelectedCallback()=default
QString subsetString() const override
Returns the subset string entered in the dialog.
QPair< QString, QString > PairNameType
pair (name, type)
QPair< QString, QString > PairNameTitle
pair (name, title)
void setSubsetString(const QString &subsetString) override
Sets a subset string into the dialog.
Interface for a dialog that can edit subset strings.
Represents a vector layer which manages a vector based data sets.
Argument(const QString &nameIn=QString(), const QString &typeIn=QString())
constructor
QString type
type, or empty if unknown
description of server functions
QString returnType
Returns type, or empty if unknown.
Function()=default
default constructor
Function(const QString &nameIn, int args)
constructor with name and fixed number of arguments
QList< Argument > argumentList
list of arguments. May be empty despite minArgs > 0
Function(const QString &nameIn, int minArgs, int maxArgsIn)
constructor with name and min,max number of arguments