aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Hartmann <thomas.hartmann@qt.io>2020-05-07 21:10:53 +0200
committerThomas Hartmann <thomas.hartmann@qt.io>2020-05-07 19:13:14 +0000
commita41bb573e8f0e9e6d32b37ef57ae136ee640d0c7 (patch)
tree8800a8102f630a86e70961f852f6ba4261f23d12
parent149453941a2ba82575457bbed65562b8c6a946ef (diff)
QmlDesigner: Add action for selecting effect
Change-Id: I7b89eb688fb7b9a9cd1ad21afcdf67c1662fd110 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
-rw-r--r--src/plugins/qmldesigner/components/componentcore/componentcore_constants.h2
-rw-r--r--src/plugins/qmldesigner/components/componentcore/designeractionmanager.cpp20
-rw-r--r--src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp16
-rw-r--r--src/plugins/qmldesigner/components/componentcore/modelnodeoperations.h1
4 files changed, 39 insertions, 0 deletions
diff --git a/src/plugins/qmldesigner/components/componentcore/componentcore_constants.h b/src/plugins/qmldesigner/components/componentcore/componentcore_constants.h
index aff4b3fc25..e76b5c1ff7 100644
--- a/src/plugins/qmldesigner/components/componentcore/componentcore_constants.h
+++ b/src/plugins/qmldesigner/components/componentcore/componentcore_constants.h
@@ -60,6 +60,7 @@ const char anchorsResetCommandId[] = "AnchorsReset";
const char removePositionerCommandId[] = "RemovePositioner";
const char createFlowActionAreaCommandId[] = "CreateFlowActionArea";
const char setFlowStartCommandId[] = "SetFlowStart";
+const char selectFlowEffectCommandId[] = "SelectFlowEffect";
const char layoutRowPositionerCommandId[] = "LayoutRowPositioner";
const char layoutColumnPositionerCommandId[] = "LayoutColumnPositioner";
const char layoutGridPositionerCommandId[] = "LayoutGridPositioner";
@@ -83,6 +84,7 @@ const char addToGroupItemCommandId[] = "AddToGroupItem";
const char selectionCategoryDisplayName[] = QT_TRANSLATE_NOOP("QmlDesignerContextMenu", "Selection");
const char flowConnectionCategoryDisplayName[] = QT_TRANSLATE_NOOP("QmlDesignerContextMenu", "Connect");
+const char selectEffectDisplayName[] = QT_TRANSLATE_NOOP("QmlDesignerContextMenu", "Select Effect");
const char stackCategoryDisplayName[] = QT_TRANSLATE_NOOP("QmlDesignerContextMenu", "Stack (z)");
const char editCategoryDisplayName[] = QT_TRANSLATE_NOOP("QmlDesignerContextMenu", "Edit");
const char anchorsCategoryDisplayName[] = QT_TRANSLATE_NOOP("QmlDesignerContextMenu", "Anchors");
diff --git a/src/plugins/qmldesigner/components/componentcore/designeractionmanager.cpp b/src/plugins/qmldesigner/components/componentcore/designeractionmanager.cpp
index 5e7badef6f..61e21d5af1 100644
--- a/src/plugins/qmldesigner/components/componentcore/designeractionmanager.cpp
+++ b/src/plugins/qmldesigner/components/componentcore/designeractionmanager.cpp
@@ -358,6 +358,16 @@ bool isFlowTransitionItem(const SelectionContext &context)
&& QmlFlowItemNode::isFlowTransition(context.currentSingleSelectedNode());
}
+bool isFlowTransitionItemWithEffect(const SelectionContext &context)
+{
+ if (!isFlowTransitionItem(context))
+ return false;
+
+ ModelNode node = context.currentSingleSelectedNode();
+
+ return node.hasNodeProperty("effect");
+}
+
bool isFlowActionItemItem(const SelectionContext &context)
{
const ModelNode selectedNode = context.currentSingleSelectedNode();
@@ -933,6 +943,16 @@ void DesignerActionManager::createDefaultDesignerActions()
for (const TypeName &typeName : types)
addTransitionEffectAction(typeName);
+ addDesignerAction(new ModelNodeContextMenuAction(
+ selectFlowEffectCommandId,
+ selectEffectDisplayName,
+ {},
+ flowCategory,
+ {},
+ priorityFlowCategory,
+ &selectFlowEffect,
+ &isFlowTransitionItemWithEffect));
+
addDesignerAction(new ActionGroup(
stackedContainerCategoryDisplayName,
stackedContainerCategory,
diff --git a/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp b/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp
index 35cc0e8ab1..00e2ac028a 100644
--- a/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp
+++ b/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp
@@ -1201,6 +1201,22 @@ void addToGroupItem(const SelectionContext &selectionContext)
}
}
+void selectFlowEffect(const SelectionContext &selectionContext)
+{
+ if (!selectionContext.singleNodeIsSelected())
+ return;
+
+ ModelNode node = selectionContext.currentSingleSelectedNode();
+ QmlVisualNode transition(node);
+
+ QTC_ASSERT(transition.isValid(), return);
+ QTC_ASSERT(transition.isFlowTransition(), return);
+
+ if (node.hasNodeProperty("effect")) {
+ selectionContext.view()->setSelectedModelNode(node.nodeProperty("effect").modelNode());
+ }
+}
+
} // namespace Mode
} //QmlDesigner
diff --git a/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.h b/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.h
index ea0b87e198..220afe9d4e 100644
--- a/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.h
+++ b/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.h
@@ -79,6 +79,7 @@ void addTransition(const SelectionContext &selectionState);
void addFlowEffect(const SelectionContext &selectionState, const TypeName &typeName);
void setFlowStartItem(const SelectionContext &selectionContext);
void addToGroupItem(const SelectionContext &selectionContext);
+void selectFlowEffect(const SelectionContext &selectionContext);
} // namespace ModelNodeOperationso
} //QmlDesigner