OSDN Git Service

9446384ec87d7a1e2e92432d6442a097ee279c7d
[qt-creator-jp/qt-creator-jp.git] / tests / auto / qml / qmldesigner / coretests / testrewriterview.cpp
1 /**************************************************************************
2 **
3 ** This file is part of Qt Creator
4 **
5 ** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
6 **
7 ** Contact: Nokia Corporation (qt-info@nokia.com)
8 **
9 ** No Commercial Usage
10 **
11 ** This file contains pre-release code and may not be distributed.
12 ** You may use this file in accordance with the terms and conditions
13 ** contained in the Technology Preview License Agreement accompanying
14 ** this package.
15 **
16 ** GNU Lesser General Public License Usage
17 **
18 ** Alternatively, this file may be used under the terms of the GNU Lesser
19 ** General Public License version 2.1 as published by the Free Software
20 ** Foundation and appearing in the file LICENSE.LGPL included in the
21 ** packaging of this file.  Please review the following information to
22 ** ensure the GNU Lesser General Public License version 2.1 requirements
23 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24 **
25 ** In addition, as a special exception, Nokia gives you certain additional
26 ** rights.  These rights are described in the Nokia Qt LGPL Exception
27 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28 **
29 ** If you have questions regarding the use of this file, please contact
30 ** Nokia at qt-info@nokia.com.
31 **
32 **************************************************************************/
33
34 #include "testrewriterview.h"
35 #include <QObject>
36 #include <nodeproperty.h>
37
38 using namespace QmlDesigner;
39 using namespace QmlDesigner::Internal;
40
41 bool TestModelToTextMerger::isNodeScheduledForRemoval(const ModelNode &node) const
42 {
43     foreach (RewriteAction *action, scheduledRewriteActions()) {
44         if (RemoveNodeRewriteAction *removeAction = action->asRemoveNodeRewriteAction()) {
45             if (removeAction->node() == node)
46                 return true;
47         }
48     }
49
50     return false;
51 }
52
53 bool TestModelToTextMerger::isNodeScheduledForAddition(const ModelNode &node) const
54 {
55     foreach (RewriteAction *action, scheduledRewriteActions()) {
56         if (AddPropertyRewriteAction *addPropertyAction = action->asAddPropertyRewriteAction()) {
57             const AbstractProperty property = addPropertyAction->property();
58             if (property.isNodeProperty() && property.toNodeProperty().modelNode() == node)
59                 return true;
60             else if (property.isNodeListProperty() && property.toNodeListProperty().toModelNodeList().contains(node))
61                 return true;
62         } else if (ChangePropertyRewriteAction *changePropertyAction = action->asChangePropertyRewriteAction()) {
63             const AbstractProperty property = changePropertyAction->property();
64             if (property.isNodeProperty() && property.toNodeProperty().modelNode() == node)
65                 return true;
66             else if (property.isNodeListProperty() && property.toNodeListProperty().toModelNodeList().contains(node))
67                 return true;
68         }
69
70     }
71
72     return false;
73 }
74
75 VariantProperty TestModelToTextMerger::findAddedVariantProperty(const VariantProperty &property) const
76 {
77     foreach (RewriteAction *action, scheduledRewriteActions()) {
78         if (AddPropertyRewriteAction *addPropertyAction = action->asAddPropertyRewriteAction()) {
79             const AbstractProperty candidate = addPropertyAction->property();
80
81             if (property.isVariantProperty() && property.toVariantProperty() == property)
82                 return property.toVariantProperty();
83         }
84     }
85
86     return VariantProperty();
87 }
88
89 TestRewriterView::TestRewriterView(QObject *parent,
90                                    DifferenceHandling differenceHandling)
91     : RewriterView(differenceHandling, parent)
92 {
93 }
94
95 bool TestRewriterView::isModificationGroupActive() const
96 {
97     return RewriterView::isModificationGroupActive();
98 }
99
100 void TestRewriterView::setModificationGroupActive(bool active)
101 {
102     RewriterView::setModificationGroupActive(active);
103 }
104
105 void TestRewriterView::applyModificationGroupChanges()
106 {
107     RewriterView::applyModificationGroupChanges();
108 }
109
110 Internal::TestModelToTextMerger *TestRewriterView::modelToTextMerger() const
111 {
112     return static_cast<Internal::TestModelToTextMerger*> (RewriterView::modelToTextMerger());
113 }
114
115 Internal::TextToModelMerger *TestRewriterView::textToModelMerger() const
116 {
117     return RewriterView::textToModelMerger();
118 }