diff options
author | Christian Kamm <christian.d.kamm@nokia.com> | 2011-09-09 10:55:11 +0200 |
---|---|---|
committer | Christian Kamm <christian.d.kamm@nokia.com> | 2011-09-12 10:45:53 +0200 |
commit | 903c6b60cdd6c67b4fa5935d25213625e5f22724 (patch) | |
tree | d6169a5a010a027cf7e26ac6deb16fd551b3fbbd /src/libs/qmljs/qmljsdocument.cpp | |
parent | 509eb894dda8c1542a379b3886f1d450c1f541e7 (diff) | |
download | qt-creator-903c6b60cdd6c67b4fa5935d25213625e5f22724.tar.gz |
QmlJS: Use mime types to distinguish qml and js files.
This allows adding patterns to the qml mime type in the options dialog.
Previously they were always parsed as js.
Change-Id: Ifa344fb6ab8cbcda02becef991cf6807615a1caa
Reviewed-on: http://codereview.qt-project.org/4515
Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
Diffstat (limited to 'src/libs/qmljs/qmljsdocument.cpp')
-rw-r--r-- | src/libs/qmljs/qmljsdocument.cpp | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/src/libs/qmljs/qmljsdocument.cpp b/src/libs/qmljs/qmljsdocument.cpp index 831e9fb160..7fb13796ed 100644 --- a/src/libs/qmljs/qmljsdocument.cpp +++ b/src/libs/qmljs/qmljsdocument.cpp @@ -83,23 +83,20 @@ using namespace QmlJS::AST; */ -Document::Document(const QString &fileName) +Document::Document(const QString &fileName, Language language) : _engine(0) , _pool(0) , _ast(0) , _bind(0) - , _isQmlDocument(false) + , _fileName(QDir::cleanPath(fileName)) , _editorRevision(0) + , _language(language) , _parsedCorrectly(false) - , _fileName(QDir::cleanPath(fileName)) { QFileInfo fileInfo(fileName); _path = QDir::cleanPath(fileInfo.absolutePath()); - // ### Should use mime type - if (fileInfo.suffix() == QLatin1String("qml") - || fileInfo.suffix() == QLatin1String("qmlproject")) { - _isQmlDocument = true; + if (language == QmlLanguage) { _componentName = fileInfo.baseName(); if (! _componentName.isEmpty()) { @@ -123,9 +120,9 @@ Document::~Document() delete _pool; } -Document::Ptr Document::create(const QString &fileName) +Document::Ptr Document::create(const QString &fileName, Language language) { - Document::Ptr doc(new Document(fileName)); + Document::Ptr doc(new Document(fileName, language)); doc->_ptr = doc; return doc; } @@ -137,12 +134,17 @@ Document::Ptr Document::ptr() const bool Document::isQmlDocument() const { - return _isQmlDocument; + return _language == QmlLanguage; } bool Document::isJSDocument() const { - return ! _isQmlDocument; + return _language == JavaScriptLanguage; +} + +Document::Language Document::language() const +{ + return _language; } AST::UiProgram *Document::qmlProgram() const @@ -422,9 +424,10 @@ void Snapshot::remove(const QString &fileName) } Document::Ptr Snapshot::documentFromSource(const QString &code, - const QString &fileName) const + const QString &fileName, + Document::Language language) const { - Document::Ptr newDoc = Document::create(fileName); + Document::Ptr newDoc = Document::create(fileName, language); if (Document::Ptr thisDocument = document(fileName)) { newDoc->_editorRevision = thisDocument->_editorRevision; |