File indexing completed on 2024-04-21 15:30:05

0001 /* This file is part of the KDE project
0002    Copyright (C) 2003-2005 Jarosław Staniek <staniek@kde.org>
0003    Copyright (C) 2005 Martin Ellis <martin.ellis@kdemail.net>
0004 
0005    This program is free software; you can redistribute it and/or
0006    modify it under the terms of the GNU Library General Public
0007    License as published by the Free Software Foundation; either
0008    version 2 of the License, or (at your option) any later version.
0009 
0010    This program is distributed in the hope that it will be useful,
0011    but WITHOUT ANY WARRANTY; without even the implied warranty of
0012    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0013    Library General Public License for more details.
0014 
0015    You should have received a copy of the GNU Library General Public License
0016    along with this program; see the file COPYING.  If not, write to
0017    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0018  * Boston, MA 02110-1301, USA.
0019 */
0020 
0021 #ifndef KDB_TOOLS_IDENTIFIER_H
0022 #define KDB_TOOLS_IDENTIFIER_H
0023 
0024 #include "KDbValidator.h"
0025 
0026 //! Validates input for identifier.
0027 class KDB_EXPORT KDbIdentifierValidator : public KDbValidator
0028 {
0029     Q_OBJECT
0030 public:
0031     explicit KDbIdentifierValidator(QObject * parent = nullptr);
0032 
0033     ~KDbIdentifierValidator() override;
0034 
0035     State validate(QString &input, int &pos) const override;
0036 
0037     //! @return true if upper-case letters in the input are replaced to lower-case.
0038     //! @c false by default.
0039     bool isLowerCaseForced() const;
0040 
0041     //! If @a set is true, upper-case letters in the input are replaced to lower-case.
0042     void setLowerCaseForced(bool set);
0043 
0044 protected:
0045     KDbValidator::Result internalCheck(const QString &valueName, const QVariant &value,
0046                                        QString *message, QString *details) override;
0047 
0048 private:
0049     class Private;
0050     Private* const d;
0051     Q_DISABLE_COPY(KDbIdentifierValidator)
0052 };
0053 
0054 #endif