diff options
author | Marco Bubke <marco.bubke@digia.com> | 2013-08-19 13:07:56 +0200 |
---|---|---|
committer | Marco Bubke <marco.bubke@digia.com> | 2013-08-19 14:01:31 +0200 |
commit | df75ec5e96d6506bf5044ab913318c8bbbdae85b (patch) | |
tree | 79f1e75640b740974d68aed42479194681abdd3c /src | |
parent | 5ee0ab93e6e1ed6c0f4205b42cd0bbb9b755ebac (diff) | |
download | qt-creator-df75ec5e96d6506bf5044ab913318c8bbbdae85b.tar.gz |
QmlDesigner: Disable States for ApplicationWindow
Change-Id: Ia86ee67cdb0ab25f5ba00877997ae6b74fe4687a
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Diffstat (limited to 'src')
5 files changed, 20 insertions, 1 deletions
diff --git a/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp b/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp index cfc7c92923..73f6463777 100644 --- a/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp +++ b/src/plugins/qmldesigner/components/stateseditor/stateseditorview.cpp @@ -76,7 +76,7 @@ void StatesEditorView::propertiesAboutToBeRemoved(const QList<AbstractProperty> void StatesEditorView::rootNodeTypeChanged(const QString &/*type*/, int /*majorVersion*/, int /*minorVersion*/) { - + checkForApplicationWindow(); } void StatesEditorView::instancePropertyChange(const QList<QPair<ModelNode, PropertyName> > &/*propertyList*/) @@ -245,6 +245,12 @@ void StatesEditorView::duplicateCurrentState() setCurrentState(newState); } +void StatesEditorView::checkForApplicationWindow() +{ + if (m_statesEditorWidget) + m_statesEditorWidget->showAddNewStatesButton(!rootModelNode().metaInfo().isSubclassOf("QtQuick.Controls.ApplicationWindow", -1, -1)); +} + void StatesEditorView::setCurrentState(const QmlModelState &state) { if (!model() && !state.isValid()) @@ -310,6 +316,8 @@ void StatesEditorView::modelAttached(Model *model) if (m_statesEditorWidget) m_statesEditorWidget->setNodeInstanceView(nodeInstanceView()); + checkForApplicationWindow(); + resetModel(); } diff --git a/src/plugins/qmldesigner/components/stateseditor/stateseditorview.h b/src/plugins/qmldesigner/components/stateseditor/stateseditorview.h index c6410505e9..aa2088703a 100644 --- a/src/plugins/qmldesigner/components/stateseditor/stateseditorview.h +++ b/src/plugins/qmldesigner/components/stateseditor/stateseditorview.h @@ -112,6 +112,7 @@ private: void resetModel(); void addState(); void duplicateCurrentState(); + void checkForApplicationWindow(); private: QWeakPointer<StatesEditorModel> m_statesEditorModel; diff --git a/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.cpp b/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.cpp index c885392462..1a56263d18 100644 --- a/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.cpp +++ b/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.cpp @@ -67,6 +67,11 @@ void StatesEditorWidget::setNodeInstanceView(NodeInstanceView *nodeInstanceView) m_imageProvider->setNodeInstanceView(nodeInstanceView); } +void StatesEditorWidget::showAddNewStatesButton(bool showAddNewStatesButton) +{ + m_declarativeView->rootContext()->setContextProperty("canAddNewStates", showAddNewStatesButton); +} + StatesEditorWidget::StatesEditorWidget(StatesEditorView *statesEditorView, StatesEditorModel *statesEditorModel): QWidget(), m_declarativeView(new QDeclarativeView(this)), @@ -94,6 +99,8 @@ StatesEditorWidget::StatesEditorWidget(StatesEditorView *statesEditorView, State highlightColor.setHsvF(highlightColor.hsvHueF(),0.1 + highlightColor.saturationF()*2.0, highlightColor.valueF()); m_declarativeView->rootContext()->setContextProperty(QLatin1String("highlightColor"), highlightColor); + m_declarativeView->rootContext()->setContextProperty("canAddNewStates", true); + // Work around ASSERT in the internal QGraphicsScene that happens when // the scene is created + items set dirty in one event loop run (BAUHAUS-459) //QApplication::processEvents(); diff --git a/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.h b/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.h index 8973b9c4a6..0d0e542588 100644 --- a/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.h +++ b/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.h @@ -62,6 +62,8 @@ public: void setCurrentStateInternalId(int internalId); void setNodeInstanceView(NodeInstanceView *nodeInstanceView); + void showAddNewStatesButton(bool showAddNewStatesButton); + private: QWeakPointer<QDeclarativeView> m_declarativeView; QWeakPointer<StatesEditorView> m_statesEditorView; diff --git a/src/plugins/qmldesigner/components/stateseditor/stateslist.qml b/src/plugins/qmldesigner/components/stateseditor/stateslist.qml index 6a9ec04ee3..01abea5281 100644 --- a/src/plugins/qmldesigner/components/stateseditor/stateslist.qml +++ b/src/plugins/qmldesigner/components/stateseditor/stateslist.qml @@ -85,6 +85,7 @@ Rectangle { id: newStateBoxLoader; width:132 height:listViewRow.height + visible: canAddNewStates Loader { sourceComponent: addState; // make it square |