void DesignDocumentController::copySelected()
{
- QScopedPointer<Model> model(Model::create("Qt/Rectangle"));
+ QScopedPointer<Model> model(Model::create("QtQuick.Rectangle", 1, 0));
model->setMetaInfo(m_d->model->metaInfo());
model->setFileUrl(m_d->model->fileUrl());
model->changeImports(m_d->model->imports(), QList<Import>());
foreach (ModelNode node, view.rootModelNode().allDirectSubModelNodes()) {
node.destroy();
}
- view.changeRootNodeType("Qt/Rectangle", 4, 7);
+ view.changeRootNodeType("QtQuick.Rectangle", 1, 0);
view.rootModelNode().setId("designer__Selection");
foreach (const ModelNode &selectedNode, selectedNodes) {
QScopedPointer<Model> outputModel(Model::create("QtQuick.Rectangle", 1, 0));
outputModel->setMetaInfo(model()->metaInfo());
QPlainTextEdit textEdit;
- textEdit.setPlainText("import Qt 4.7; Item {}");
+
+ QString imports;
+ foreach (const Import &import, model()->imports()) {
+ if (import.isFileImport())
+ imports += QLatin1String("import ") + QLatin1String("\"") + import.file() + QLatin1String("\"")+ QLatin1String(";\n");
+ else
+ imports += QLatin1String("import ") + import.url() + QLatin1String(" ") + import.version() + QLatin1String(";\n");
+ }
+
+ textEdit.setPlainText(imports + QLatin1String("Item {\n}\n"));
NotIndentingTextEditModifier modifier(&textEdit);
QScopedPointer<RewriterView> rewriterView(new RewriterView(RewriterView::Amend, 0));
+ rewriterView->setCheckSemanticErrors(false);
rewriterView->setTextModifier(&modifier);
outputModel->attachView(rewriterView.data());
NotIndentingTextEditModifier modifier(&textEdit);
QScopedPointer<RewriterView> rewriterView(new RewriterView(RewriterView::Amend, 0));
+ rewriterView->setCheckSemanticErrors(false);
rewriterView->setTextModifier(&modifier);
inputModel->attachView(rewriterView.data());
QmlJS::LookupContext *lookupContext() const;
QmlJS::Document *document() const;
+ bool checkSemanticErrors() const
+ { return m_checkErrors; }
+
+ void setCheckSemanticErrors(bool b)
+ { m_checkErrors = b; }
+
signals:
void errorsChanged(const QList<RewriterView::Error> &errors);
RewriterTransaction m_removeDefaultPropertyTransaction;
QString m_rewritingErrorMessage;
QString lastCorrectQmlSource;
+ bool m_checkErrors;
};
} //QmlDesigner
void ModelMerger::replaceModel(const ModelNode &modelNode)
{
- try {
- RewriterTransaction transaction(view()->beginRewriterTransaction());
-
view()->model()->changeImports(modelNode.model()->imports(), QList<Import>());
view()->model()->setFileUrl(modelNode.model()->fileUrl());
+ try {
+ RewriterTransaction transaction(view()->beginRewriterTransaction());
+
ModelNode rootNode(view()->rootModelNode());
foreach (const QString &propertyName, rootNode.propertyNames())
m_modelToTextMerger(new Internal::ModelToTextMerger(this)),
m_textToModelMerger(new Internal::TextToModelMerger(this)),
m_textModifier(0),
- transactionLevel(0)
+ transactionLevel(0),
+ m_checkErrors(true)
{
}
errors.append(RewriterView::Error(diagnosticMessage, QUrl::fromLocalFile(doc->fileName())));
}
- Check check(doc, snapshot, m_lookupContext->context());
- check.setOptions(check.options() & ~Check::ErrCheckTypeErrors);
- foreach (const QmlJS::DiagnosticMessage &diagnosticMessage, check())
- if (diagnosticMessage.isError())
- errors.append(RewriterView::Error(diagnosticMessage, QUrl::fromLocalFile(doc->fileName())));
-
- if (!errors.isEmpty()) {
- m_rewriterView->setErrors(errors);
- setActive(false);
- return false;
+ if (view()->checkSemanticErrors()) {
+ Check check(doc, snapshot, m_lookupContext->context());
+ check.setOptions(check.options() & ~Check::ErrCheckTypeErrors);
+ foreach (const QmlJS::DiagnosticMessage &diagnosticMessage, check())
+ if (diagnosticMessage.isError())
+ errors.append(RewriterView::Error(diagnosticMessage, QUrl::fromLocalFile(doc->fileName())));
+
+ if (!errors.isEmpty()) {
+ m_rewriterView->setErrors(errors);
+ setActive(false);
+ return false;
+ }
}
setupImports(doc, differenceHandler);