summaryrefslogtreecommitdiff
path: root/src/libs/qmljs/qmljsdocument.cpp
diff options
context:
space:
mode:
authorChristian Kamm <christian.d.kamm@nokia.com>2011-09-09 10:55:11 +0200
committerChristian Kamm <christian.d.kamm@nokia.com>2011-09-12 10:45:53 +0200
commit903c6b60cdd6c67b4fa5935d25213625e5f22724 (patch)
treed6169a5a010a027cf7e26ac6deb16fd551b3fbbd /src/libs/qmljs/qmljsdocument.cpp
parent509eb894dda8c1542a379b3886f1d450c1f541e7 (diff)
downloadqt-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.cpp29
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;