From b44d7165c51b6312ca47de57f70c198d29c5fe5e Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Sun, 16 Feb 2020 01:05:41 +1100 Subject: [PATCH] nodeviewitem: toggle expanded state on double click --- app/widget/nodeview/nodeviewitem.cpp | 12 +++++++++++- app/widget/nodeview/nodeviewitem.h | 2 ++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app/widget/nodeview/nodeviewitem.cpp b/app/widget/nodeview/nodeviewitem.cpp index 3a9126ba7..f6e295178 100644 --- a/app/widget/nodeview/nodeviewitem.cpp +++ b/app/widget/nodeview/nodeviewitem.cpp @@ -125,6 +125,11 @@ void NodeViewItem::SetExpanded(bool e) setRect(new_rect); } +void NodeViewItem::ToggleExpanded() +{ + SetExpanded(!IsExpanded()); +} + QRectF NodeViewItem::GetParameterConnectorRect(int index) { if (node_ == nullptr) { @@ -468,7 +473,7 @@ void NodeViewItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) // Check if we clicked the Expand/Collapse icon if (expand_hitbox_.contains(event->pos())) { - SetExpanded(!IsExpanded()); + ToggleExpanded(); } if (standard_click_) { @@ -476,6 +481,11 @@ void NodeViewItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) } } +void NodeViewItem::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) +{ + ToggleExpanded(); +} + QVariant NodeViewItem::itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value) { if (change == ItemPositionHasChanged && node_) { diff --git a/app/widget/nodeview/nodeviewitem.h b/app/widget/nodeview/nodeviewitem.h index 1c0c629f7..7781401d4 100644 --- a/app/widget/nodeview/nodeviewitem.h +++ b/app/widget/nodeview/nodeviewitem.h @@ -62,6 +62,7 @@ public: * @brief Set expanded state */ void SetExpanded(bool e); + void ToggleExpanded(); /** * @brief Get the rectangle of a specific parameter connector @@ -81,6 +82,7 @@ protected: virtual void mousePressEvent(QGraphicsSceneMouseEvent *event) override; virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override; virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override; + virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) override; virtual QVariant itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value) override;