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 );