21#include "identifier.h"
22#include "transliteration_table.h"
29 for (i=0; i<s.length(); i++) {
30 TQChar c = s.at(i).lower();
31 if (!(( int)c== '_' || ( int)c>= 'a' && ( int)c<= 'z' || i>0 && ( int)c>= '0' && ( int)c<= '9'))
34 return i>0 && i==s.length();
39 TQString fn( s.simplifyWhiteSpace() );
40 fn.replace( ' ', "_"); fn.replace( '$', "_");
41 fn.replace( '\\', "-"); fn.replace( '/', "-");
42 fn.replace( ':', "-"); fn.replace( '*', "-");
46inline TQString char2Identifier( const TQChar& c)
48 if (c.unicode() >= TRANSLITERATION_TABLE_SIZE)
49 return TQString(TQChar( '_'));
50 const char * const s = transliteration_table[c.unicode()];
51 return s ? TQString::fromLatin1(s) : TQString(TQChar( '_'));
58 TQString r, id = s.simplifyWhiteSpace();
61 r.reserve( id.length());
65 bool wasUnderscore = false;
67 if (( int)c>= '0' && ( int)c<= '9') {
71 add = char2Identifier(c);
73 wasUnderscore = add == "_";
76 for (uint i=1; i< id.length(); i++) {
77 add = char2Identifier( id.at(i));
78 if (wasUnderscore && add == "_")
80 wasUnderscore = add == "_";
90 return "<p>"+i18n( "Value of \"%1\" column must be an identifier.").arg(valueName)
91 + "</p><p>"+i18n( "\"%1\" is not a valid identifier.").arg(v.toString())+ "</p>";
96IdentifierValidator::IdentifierValidator(TQObject * parent, const char * name)
101IdentifierValidator::~IdentifierValidator()
108 for (i=0; i<input.length() && input.at(i)== ' '; i++)
111 if (i<input.length() && input.at(i)>= '0' && input.at(i)<= '9')
113 bool addspace = (input.right(1)== " ");
117 if((uint)pos>input.length())
119 return input.isEmpty() ? Valid : Acceptable;
122Validator::Result IdentifierValidator::internalCheck(
123 const TQString &valueName, const TQVariant& v,
124 TQString &message, TQString & )
127 return Validator::Ok;
129 return Validator::Error;
virtual State validate(TQString &input, int &pos) const
A validator extending TQValidator with offline-checking for value's validity.
KEXIUTILS_EXPORT TQString string2FileName(const TQString &s)
KEXIUTILS_EXPORT TQString identifierExpectedMessage(const TQString &valueName, const TQVariant &v)
KEXIUTILS_EXPORT TQString string2Identifier(const TQString &s)
KEXIUTILS_EXPORT bool isIdentifier(const TQString &s)
|