forked from qt-creator/qt-creator
QmlDesigner: Close the popup when model is detached
This happens when leaving the edit mode or the document is changed. Task-number: QDS-10707 Change-Id: I4b4e2511674d38c2d733db29070c01252c27c386 Reviewed-by: Aleksei German <aleksei.german@qt.io>
This commit is contained in:
@@ -43,7 +43,7 @@ PopupDialog {
|
|||||||
|
|
||||||
Connections {
|
Connections {
|
||||||
target: root.backend
|
target: root.backend
|
||||||
function onPopupTargetRemoved() {
|
function onPopupShouldClose() {
|
||||||
root.close()
|
root.close()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -493,7 +493,7 @@ void ConnectionModel::nodeAboutToBeRemoved(const ModelNode &removedNode)
|
|||||||
if (selectedSignal.isValid()) {
|
if (selectedSignal.isValid()) {
|
||||||
ModelNode targetNode = getTargetNodeForConnection(selectedSignal.parentModelNode());
|
ModelNode targetNode = getTargetNodeForConnection(selectedSignal.parentModelNode());
|
||||||
if (targetNode == removedNode) {
|
if (targetNode == removedNode) {
|
||||||
emit m_delegate->popupTargetRemoved();
|
emit m_delegate->popupShouldClose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2103,4 +2103,9 @@ ConnectionEditorStatements::ComparativeStatement ConditionListModel::toStatement
|
|||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void QmlDesigner::ConnectionModel::modelAboutToBeDetached()
|
||||||
|
{
|
||||||
|
emit m_delegate->popupShouldClose();
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace QmlDesigner
|
} // namespace QmlDesigner
|
||||||
|
@@ -72,6 +72,7 @@ public:
|
|||||||
void selectProperty(const SignalHandlerProperty &property);
|
void selectProperty(const SignalHandlerProperty &property);
|
||||||
|
|
||||||
void nodeAboutToBeRemoved(const ModelNode &removedNode);
|
void nodeAboutToBeRemoved(const ModelNode &removedNode);
|
||||||
|
void modelAboutToBeDetached();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void currentIndexChanged();
|
void currentIndexChanged();
|
||||||
@@ -298,7 +299,7 @@ signals:
|
|||||||
void hasConditionChanged();
|
void hasConditionChanged();
|
||||||
void hasElseChanged();
|
void hasElseChanged();
|
||||||
void sourceChanged();
|
void sourceChanged();
|
||||||
void popupTargetRemoved();
|
void popupShouldClose();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int currentRow() const;
|
int currentRow() const;
|
||||||
|
@@ -169,6 +169,7 @@ void ConnectionView::modelAboutToBeDetached(Model *model)
|
|||||||
bindingModel()->reset();
|
bindingModel()->reset();
|
||||||
dynamicPropertiesModel()->reset();
|
dynamicPropertiesModel()->reset();
|
||||||
connectionModel()->resetModel();
|
connectionModel()->resetModel();
|
||||||
|
connectionModel()->modelAboutToBeDetached();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConnectionView::nodeCreated(const ModelNode & /*createdNode*/)
|
void ConnectionView::nodeCreated(const ModelNode & /*createdNode*/)
|
||||||
|
Reference in New Issue
Block a user