kexi
validator.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef KEXI_VALIDATOR_H
00021 #define KEXI_VALIDATOR_H
00022
00023 #include "kexiutils_export.h"
00024
00025 #include <qvalidator.h>
00026 #include <qvariant.h>
00027 #include <qstring.h>
00028
00029 #include <klocale.h>
00030
00031 namespace KexiUtils {
00032
00034
00045 class KEXIUTILS_EXPORT Validator : public QValidator
00046 {
00047 public:
00048 typedef enum Result { Error = 0, Ok = 1, Warning = 2 };
00049
00050 Validator(QObject * parent = 0, const char * name = 0);
00051 virtual ~Validator();
00052
00055 void setAcceptsEmptyValue( bool set ) { m_acceptsEmptyValue = set; }
00056
00059 bool acceptsEmptyValue() const { return m_acceptsEmptyValue; }
00060
00070 Result check(const QString &valueName, const QVariant& v, QString &message,
00071 QString &details);
00072
00074 virtual QValidator::State validate ( QString & input, int & pos ) const;
00075
00077 static const QString msgColumnNotEmpty() {
00078 return I18N_NOOP("\"%1\" value has to be entered.");
00079 }
00080
00082 void addChildValidator( Validator* v );
00083
00084 protected:
00085
00086 virtual Result internalCheck(const QString &valueName, const QVariant& v,
00087 QString &message, QString &details);
00088
00089 bool m_acceptsEmptyValue : 1;
00090
00091 friend class MultiValidator;
00092 };
00093
00095
00120 class KEXIUTILS_EXPORT MultiValidator : public Validator
00121 {
00122 public:
00125 MultiValidator(QObject * parent = 0, const char * name = 0);
00126
00130 MultiValidator(QValidator *validator, QObject * parent = 0, const char * name = 0);
00131
00135 void addSubvalidator( QValidator* validator, bool owned = true );
00136
00138 virtual QValidator::State validate ( QString & input, int & pos ) const;
00139
00143 virtual void fixup ( QString & input ) const;
00144
00145 private:
00146 virtual Validator::Result internalCheck(
00147 const QString &valueName, const QVariant& v,
00148 QString &message, QString &details);
00149
00150
00151 protected:
00152 QPtrList<QValidator> m_ownedSubValidators;
00153 QValueList<QValidator*> m_subValidators;
00154 };
00155
00156 }
00157
00158 #endif
|