forked from qt-creator/qt-creator
QmlDesigner: Close dialog if target is removed
If the target is removed also the connection is removed and we close the dialog. Change-Id: I361e89ef64484e39bc0068e103f542cbc9dcbf78 Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io> Reviewed-by: Aleksei German <aleksei.german@qt.io>
This commit is contained in:
@@ -7,7 +7,7 @@ import StudioTheme 1.0 as StudioTheme
|
|||||||
import HelperWidgets 2.0 as HelperWidgets
|
import HelperWidgets 2.0 as HelperWidgets
|
||||||
|
|
||||||
PopupDialog {
|
PopupDialog {
|
||||||
|
id: root
|
||||||
property alias backend: form.backend
|
property alias backend: form.backend
|
||||||
|
|
||||||
titleBar: Row {
|
titleBar: Row {
|
||||||
@@ -41,5 +41,13 @@ PopupDialog {
|
|||||||
|
|
||||||
ConnectionsDialogForm {
|
ConnectionsDialogForm {
|
||||||
id: form
|
id: form
|
||||||
|
|
||||||
|
Connections {
|
||||||
|
target: root.backend
|
||||||
|
onPopupTargetRemoved: {
|
||||||
|
root.close()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -487,6 +487,17 @@ void ConnectionModel::selectProperty(const SignalHandlerProperty &property)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ConnectionModel::nodeAboutToBeRemoved(const ModelNode &removedNode)
|
||||||
|
{
|
||||||
|
SignalHandlerProperty selectedSignal = signalHandlerPropertyForRow(currentIndex());
|
||||||
|
if (selectedSignal.isValid()) {
|
||||||
|
ModelNode targetNode = getTargetNodeForConnection(selectedSignal.parentModelNode());
|
||||||
|
if (targetNode == removedNode) {
|
||||||
|
emit m_delegate->popupTargetRemoved();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void ConnectionModel::handleException()
|
void ConnectionModel::handleException()
|
||||||
{
|
{
|
||||||
QMessageBox::warning(nullptr, tr("Error"), m_exceptionError);
|
QMessageBox::warning(nullptr, tr("Error"), m_exceptionError);
|
||||||
|
@@ -71,6 +71,8 @@ public:
|
|||||||
|
|
||||||
void selectProperty(const SignalHandlerProperty &property);
|
void selectProperty(const SignalHandlerProperty &property);
|
||||||
|
|
||||||
|
void nodeAboutToBeRemoved(const ModelNode &removedNode);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void currentIndexChanged();
|
void currentIndexChanged();
|
||||||
|
|
||||||
@@ -296,6 +298,7 @@ signals:
|
|||||||
void hasConditionChanged();
|
void hasConditionChanged();
|
||||||
void hasElseChanged();
|
void hasElseChanged();
|
||||||
void sourceChanged();
|
void sourceChanged();
|
||||||
|
void popupTargetRemoved();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int currentRow() const;
|
int currentRow() const;
|
||||||
|
@@ -176,6 +176,11 @@ void ConnectionView::nodeCreated(const ModelNode & /*createdNode*/)
|
|||||||
connectionModel()->resetModel();
|
connectionModel()->resetModel();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ConnectionView::nodeAboutToBeRemoved(const ModelNode &removedNode)
|
||||||
|
{
|
||||||
|
connectionModel()->nodeAboutToBeRemoved(removedNode);
|
||||||
|
}
|
||||||
|
|
||||||
void ConnectionView::nodeRemoved(const ModelNode & /*removedNode*/,
|
void ConnectionView::nodeRemoved(const ModelNode & /*removedNode*/,
|
||||||
const NodeAbstractProperty & /*parentProperty*/,
|
const NodeAbstractProperty & /*parentProperty*/,
|
||||||
AbstractView::PropertyChangeFlags /*propertyChange*/)
|
AbstractView::PropertyChangeFlags /*propertyChange*/)
|
||||||
|
@@ -39,6 +39,7 @@ public:
|
|||||||
void modelAboutToBeDetached(Model *model) override;
|
void modelAboutToBeDetached(Model *model) override;
|
||||||
|
|
||||||
void nodeCreated(const ModelNode &createdNode) override;
|
void nodeCreated(const ModelNode &createdNode) override;
|
||||||
|
void nodeAboutToBeRemoved(const ModelNode &removedNode) override;
|
||||||
void nodeRemoved(const ModelNode &removedNode, const NodeAbstractProperty &parentProperty, PropertyChangeFlags propertyChange) override;
|
void nodeRemoved(const ModelNode &removedNode, const NodeAbstractProperty &parentProperty, PropertyChangeFlags propertyChange) override;
|
||||||
void nodeReparented(const ModelNode &node, const NodeAbstractProperty &newPropertyParent,
|
void nodeReparented(const ModelNode &node, const NodeAbstractProperty &newPropertyParent,
|
||||||
const NodeAbstractProperty &oldPropertyParent, AbstractView::PropertyChangeFlags propertyChange) override;
|
const NodeAbstractProperty &oldPropertyParent, AbstractView::PropertyChangeFlags propertyChange) override;
|
||||||
|
Reference in New Issue
Block a user