diff options
author | Christian Kamm <christian.d.kamm@nokia.com> | 2011-10-07 14:04:06 +0200 |
---|---|---|
committer | Christian Kamm <christian.d.kamm@nokia.com> | 2011-10-10 09:36:12 +0200 |
commit | a7f78991c9317471ddc85f6556be971d019f3f59 (patch) | |
tree | 51e53891d62970c14efc59e986a2459cad6267ed /src/libs/qmljs/qmljscheck.cpp | |
parent | 737aaf02b4d221d8088513fef810e0f453a737be (diff) | |
download | qt-creator-a7f78991c9317471ddc85f6556be971d019f3f59.tar.gz |
QmlJS: Move commonly used functions to qmlutils.h.
Change-Id: I22376d96fe575bc00a55094c06af80e32a5587e6
Reviewed-on: http://codereview.qt-project.org/6238
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
Diffstat (limited to 'src/libs/qmljs/qmljscheck.cpp')
-rw-r--r-- | src/libs/qmljs/qmljscheck.cpp | 92 |
1 files changed, 3 insertions, 89 deletions
diff --git a/src/libs/qmljs/qmljscheck.cpp b/src/libs/qmljs/qmljscheck.cpp index d005978be2..528c49a056 100644 --- a/src/libs/qmljs/qmljscheck.cpp +++ b/src/libs/qmljs/qmljscheck.cpp @@ -34,6 +34,7 @@ #include "qmljsbind.h" #include "qmljscontext.h" #include "qmljsevaluate.h" +#include "qmljsutils.h" #include "parser/qmljsast_p.h" #include <QtCore/QDebug> @@ -44,93 +45,6 @@ using namespace QmlJS; using namespace QmlJS::AST; -QColor QmlJS::toQColor(const QString &qmlColorString) -{ - QColor color; - if (qmlColorString.size() == 9 && qmlColorString.at(0) == QLatin1Char('#')) { - bool ok; - const int alpha = qmlColorString.mid(1, 2).toInt(&ok, 16); - if (ok) { - QString name(qmlColorString.at(0)); - name.append(qmlColorString.right(6)); - if (QColor::isValidColor(name)) { - color.setNamedColor(name); - color.setAlpha(alpha); - } - } - } else { - if (QColor::isValidColor(qmlColorString)) - color.setNamedColor(qmlColorString); - } - return color; -} - -SourceLocation QmlJS::locationFromRange(const SourceLocation &start, - const SourceLocation &end) -{ - return SourceLocation(start.offset, - end.end() - start.begin(), - start.startLine, - start.startColumn); -} - -SourceLocation QmlJS::fullLocationForQualifiedId(AST::UiQualifiedId *qualifiedId) -{ - SourceLocation start = qualifiedId->identifierToken; - SourceLocation end = qualifiedId->identifierToken; - - for (UiQualifiedId *iter = qualifiedId; iter; iter = iter->next) { - if (iter->identifierToken.isValid()) - end = iter->identifierToken; - } - - return locationFromRange(start, end); -} - - -DiagnosticMessage QmlJS::errorMessage(const AST::SourceLocation &loc, const QString &message) -{ - return DiagnosticMessage(DiagnosticMessage::Error, loc, message); -} - -namespace { -class SharedData -{ -public: - SharedData() - { - validBuiltinPropertyNames.insert(QLatin1String("action")); - validBuiltinPropertyNames.insert(QLatin1String("bool")); - validBuiltinPropertyNames.insert(QLatin1String("color")); - validBuiltinPropertyNames.insert(QLatin1String("date")); - validBuiltinPropertyNames.insert(QLatin1String("double")); - validBuiltinPropertyNames.insert(QLatin1String("enumeration")); - validBuiltinPropertyNames.insert(QLatin1String("font")); - validBuiltinPropertyNames.insert(QLatin1String("int")); - validBuiltinPropertyNames.insert(QLatin1String("list")); - validBuiltinPropertyNames.insert(QLatin1String("point")); - validBuiltinPropertyNames.insert(QLatin1String("real")); - validBuiltinPropertyNames.insert(QLatin1String("rect")); - validBuiltinPropertyNames.insert(QLatin1String("size")); - validBuiltinPropertyNames.insert(QLatin1String("string")); - validBuiltinPropertyNames.insert(QLatin1String("time")); - validBuiltinPropertyNames.insert(QLatin1String("url")); - validBuiltinPropertyNames.insert(QLatin1String("var")); - validBuiltinPropertyNames.insert(QLatin1String("variant")); // obsolete in Qt 5 - validBuiltinPropertyNames.insert(QLatin1String("vector3d")); - validBuiltinPropertyNames.insert(QLatin1String("alias")); - } - - QSet<QString> validBuiltinPropertyNames; -}; -} // anonymous namespace -Q_GLOBAL_STATIC(SharedData, sharedData) - -bool QmlJS::isValidBuiltinPropertyType(const QString &name) -{ - return sharedData()->validBuiltinPropertyNames.contains(name); -} - namespace { class AssignmentCheck : public ValueVisitor @@ -666,7 +580,7 @@ void Check::endVisit(UiObjectInitializer *) void Check::checkProperty(UiQualifiedId *qualifiedId) { - const QString id = Bind::toString(qualifiedId); + const QString id = toString(qualifiedId); if (id.at(0).isLower()) { if (m_propertyStack.top().contains(id)) { error(fullLocationForQualifiedId(qualifiedId), @@ -723,7 +637,7 @@ void Check::visitQmlObject(Node *ast, UiQualifiedId *typeId, dynamic_cast<const QmlPrototypeReference *>(lastPrototype->prototype())) { error(typeErrorLocation, Check::tr("could not resolve the prototype %1 of %2").arg( - Bind::toString(ref->qmlTypeName()), lastPrototype->className())); + toString(ref->qmlTypeName()), lastPrototype->className())); } else { error(typeErrorLocation, Check::tr("could not resolve the prototype of %1").arg( |