// Copyright (C) 2016 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #include "testrewriterview.h" #include #include #include #include using namespace QmlDesigner; using namespace QmlDesigner::Internal; bool TestModelToTextMerger::isNodeScheduledForRemoval(const ModelNode &node) const { const QList actions = scheduledRewriteActions(); for (RewriteAction *action : actions) { if (RemoveNodeRewriteAction *removeAction = action->asRemoveNodeRewriteAction()) { if (removeAction->node() == node) return true; } } return false; } bool TestModelToTextMerger::isNodeScheduledForAddition(const ModelNode &node) const { const QList actions = scheduledRewriteActions(); for (RewriteAction *action : actions) { if (AddPropertyRewriteAction *addPropertyAction = action->asAddPropertyRewriteAction()) { const AbstractProperty property = addPropertyAction->property(); if (property.isNodeProperty() && property.toNodeProperty().modelNode() == node) return true; else if (property.isNodeListProperty() && property.toNodeListProperty().toModelNodeList().contains(node)) return true; } else if (ChangePropertyRewriteAction *changePropertyAction = action->asChangePropertyRewriteAction()) { const AbstractProperty property = changePropertyAction->property(); if (property.isNodeProperty() && property.toNodeProperty().modelNode() == node) return true; else if (property.isNodeListProperty() && property.toNodeListProperty().toModelNodeList().contains(node)) return true; } } return false; } VariantProperty TestModelToTextMerger::findAddedVariantProperty(const VariantProperty &property) const { const QList actions = scheduledRewriteActions(); for (RewriteAction *action : actions) { if (AddPropertyRewriteAction *addPropertyAction = action->asAddPropertyRewriteAction()) { const AbstractProperty candidate = addPropertyAction->property(); if (property.isVariantProperty() && property.toVariantProperty() == property) return property.toVariantProperty(); } } return VariantProperty(); } TestRewriterView::TestRewriterView(ExternalDependenciesInterface &externalDependencies, DifferenceHandling differenceHandling) : RewriterView(externalDependencies, differenceHandling) { //Unit tests do not like the semantic errors setCheckSemanticErrors(false); } bool TestRewriterView::isModificationGroupActive() const { return RewriterView::isModificationGroupActive(); } void TestRewriterView::setModificationGroupActive(bool active) { RewriterView::setModificationGroupActive(active); } void TestRewriterView::applyModificationGroupChanges() { RewriterView::applyModificationGroupChanges(); } Internal::TestModelToTextMerger *TestRewriterView::modelToTextMerger() const { return static_cast (RewriterView::modelToTextMerger()); } Internal::TextToModelMerger *TestRewriterView::textToModelMerger() const { return RewriterView::textToModelMerger(); }