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:
Thomas Hartmann
2023-09-19 18:17:01 +02:00
parent ffe3670d90
commit f2343b417e
4 changed files with 10 additions and 3 deletions

View File

@@ -43,7 +43,7 @@ PopupDialog {
Connections { Connections {
target: root.backend target: root.backend
function onPopupTargetRemoved() { function onPopupShouldClose() {
root.close() root.close()
} }
} }

View File

@@ -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

View File

@@ -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;

View File

@@ -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*/)