QmlDesigner: Move flow effects to submenu

Change-Id: I2afdcc5068501b7b29543228668b543b0b68a4d1
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
Thomas Hartmann
2020-04-15 19:25:06 +02:00
parent 14b86100b5
commit 49cfa2d050
3 changed files with 30 additions and 7 deletions

View File

@@ -41,6 +41,7 @@ const char anchorsCategory[] = "Anchors";
const char positionCategory[] = "Position"; const char positionCategory[] = "Position";
const char layoutCategory[] = "Layout"; const char layoutCategory[] = "Layout";
const char flowCategory[] = "Flow"; const char flowCategory[] = "Flow";
const char flowEffectCategory[] = "FlowEffect";
const char flowConnectionCategory[] = "FlowConnection"; const char flowConnectionCategory[] = "FlowConnection";
const char stackedContainerCategory[] = "StackedContainer"; const char stackedContainerCategory[] = "StackedContainer";
const char genericToolBarCategory[] = "GenericToolBar"; const char genericToolBarCategory[] = "GenericToolBar";
@@ -86,6 +87,7 @@ const char anchorsCategoryDisplayName[] = QT_TRANSLATE_NOOP("QmlDesignerContextM
const char positionCategoryDisplayName[] = QT_TRANSLATE_NOOP("QmlDesignerContextMenu", "Position"); const char positionCategoryDisplayName[] = QT_TRANSLATE_NOOP("QmlDesignerContextMenu", "Position");
const char layoutCategoryDisplayName[] = QT_TRANSLATE_NOOP("QmlDesignerContextMenu", "Layout"); const char layoutCategoryDisplayName[] = QT_TRANSLATE_NOOP("QmlDesignerContextMenu", "Layout");
const char flowCategoryDisplayName[] = QT_TRANSLATE_NOOP("QmlDesignerContextMenu", "Flow"); const char flowCategoryDisplayName[] = QT_TRANSLATE_NOOP("QmlDesignerContextMenu", "Flow");
const char flowEffectCategoryDisplayName[] = QT_TRANSLATE_NOOP("QmlDesignerContextMenu", "Flow Effects");
const char stackedContainerCategoryDisplayName[] = QT_TRANSLATE_NOOP("QmlDesignerContextMenu", "Stacked Container"); const char stackedContainerCategoryDisplayName[] = QT_TRANSLATE_NOOP("QmlDesignerContextMenu", "Stacked Container");
const char cutSelectionDisplayName[] = QT_TRANSLATE_NOOP("QmlDesignerContextMenu", "Cut"); const char cutSelectionDisplayName[] = QT_TRANSLATE_NOOP("QmlDesignerContextMenu", "Cut");

View File

@@ -346,6 +346,12 @@ bool isFlowItem(const SelectionContext &context)
&& QmlFlowItemNode::isValidQmlFlowItemNode(context.currentSingleSelectedNode()); && QmlFlowItemNode::isValidQmlFlowItemNode(context.currentSingleSelectedNode());
} }
bool isFlowTarget(const SelectionContext &context)
{
return context.singleNodeIsSelected()
&& QmlFlowTargetNode::isFlowEditorTarget(context.currentSingleSelectedNode());
}
bool isFlowTransitionItem(const SelectionContext &context) bool isFlowTransitionItem(const SelectionContext &context)
{ {
return context.singleNodeIsSelected() return context.singleNodeIsSelected()
@@ -362,9 +368,9 @@ bool isFlowActionItemItem(const SelectionContext &context)
|| QmlVisualNode::isFlowWildcard(selectedNode)); || QmlVisualNode::isFlowWildcard(selectedNode));
} }
bool isFlowItemOrTransition(const SelectionContext &context) bool isFlowTargetOrTransition(const SelectionContext &context)
{ {
return isFlowItem(context) || isFlowTransitionItem(context); return isFlowTarget(context) || isFlowTransitionItem(context);
} }
class FlowActionConnectAction : public ActionGroup class FlowActionConnectAction : public ActionGroup
@@ -853,15 +859,24 @@ void DesignerActionManager::createDefaultDesignerActions()
priorityLayoutCategory, priorityLayoutCategory,
&layoutOptionVisible)); &layoutOptionVisible));
//isFlowTransitionItem
addDesignerAction(new ActionGroup( addDesignerAction(new ActionGroup(
flowCategoryDisplayName, flowCategoryDisplayName,
flowCategory, flowCategory,
priorityFlowCategory, priorityFlowCategory,
&isFlowItemOrTransition, &isFlowTargetOrTransition,
&flowOptionVisible)); &flowOptionVisible));
auto effectMenu = new ActionGroup(
flowEffectCategoryDisplayName,
flowEffectCategory,
priorityFlowCategory,
&isFlowTransitionItem,
&flowOptionVisible);
effectMenu->setCategory(flowCategory);
addDesignerAction(effectMenu);
addDesignerAction(new ModelNodeFormEditorAction( addDesignerAction(new ModelNodeFormEditorAction(
createFlowActionAreaCommandId, createFlowActionAreaCommandId,
createFlowActionAreaDisplayName, createFlowActionAreaDisplayName,
@@ -1186,7 +1201,7 @@ void DesignerActionManager::addTransitionEffectAction(const TypeName &typeName)
QByteArray(ComponentCoreConstants::flowAssignEffectCommandId) + typeName, QByteArray(ComponentCoreConstants::flowAssignEffectCommandId) + typeName,
QLatin1String(ComponentCoreConstants::flowAssignEffectDisplayName) + typeName, QLatin1String(ComponentCoreConstants::flowAssignEffectDisplayName) + typeName,
{}, {},
ComponentCoreConstants::flowCategory, ComponentCoreConstants::flowEffectCategory,
{}, {},
typeName == "None" ? 100 : 140, typeName == "None" ? 100 : 140,
[typeName](const SelectionContext &context) [typeName](const SelectionContext &context)

View File

@@ -132,16 +132,22 @@ public:
bool isVisible(const SelectionContext &m_selectionState) const override { return m_visibility(m_selectionState); } bool isVisible(const SelectionContext &m_selectionState) const override { return m_visibility(m_selectionState); }
bool isEnabled(const SelectionContext &m_selectionState) const override { return m_enabled(m_selectionState); } bool isEnabled(const SelectionContext &m_selectionState) const override { return m_enabled(m_selectionState); }
QByteArray category() const override { return QByteArray(); } QByteArray category() const override { return m_category; }
QByteArray menuId() const override { return m_menuId; } QByteArray menuId() const override { return m_menuId; }
int priority() const override { return m_priority; } int priority() const override { return m_priority; }
Type type() const override { return ContextMenu; } Type type() const override { return ContextMenu; }
void setCategory(const QByteArray &catageoryId)
{
m_category = catageoryId;
}
private: private:
const QByteArray m_menuId; const QByteArray m_menuId;
const int m_priority; const int m_priority;
SelectionContextPredicate m_enabled; SelectionContextPredicate m_enabled;
SelectionContextPredicate m_visibility; SelectionContextPredicate m_visibility;
QByteArray m_category;
}; };
class SeperatorDesignerAction : public AbstractAction class SeperatorDesignerAction : public AbstractAction