diff options
Diffstat (limited to 'src/plugins/qmldesigner/components/curveeditor/detail/selectableitem.cpp')
-rw-r--r-- | src/plugins/qmldesigner/components/curveeditor/detail/selectableitem.cpp | 73 |
1 files changed, 64 insertions, 9 deletions
diff --git a/src/plugins/qmldesigner/components/curveeditor/detail/selectableitem.cpp b/src/plugins/qmldesigner/components/curveeditor/detail/selectableitem.cpp index 66459c4fde..f6d569def0 100644 --- a/src/plugins/qmldesigner/components/curveeditor/detail/selectableitem.cpp +++ b/src/plugins/qmldesigner/components/curveeditor/detail/selectableitem.cpp @@ -28,8 +28,59 @@ namespace DesignTools { -SelectableItem::SelectableItem(QGraphicsItem *parent) +CurveEditorItem::CurveEditorItem(QGraphicsItem *parent) : QGraphicsObject(parent) + , m_locked(false) + , m_pinned(false) + , m_underMouse(false) +{ + setAcceptHoverEvents(true); +} + +void CurveEditorItem::lockedCallback() {} +void CurveEditorItem::pinnedCallback() {} +void CurveEditorItem::underMouseCallback() {} + +bool CurveEditorItem::locked() const +{ + return m_locked; +} + +bool CurveEditorItem::pinned() const +{ + return m_pinned; +} + +bool CurveEditorItem::isUnderMouse() const +{ + return m_underMouse; +} + +void CurveEditorItem::setLocked(bool locked) +{ + m_locked = locked; + lockedCallback(); + update(); +} + +void CurveEditorItem::setPinned(bool pinned) +{ + m_pinned = pinned; + pinnedCallback(); + update(); +} + +void CurveEditorItem::setIsUnderMouse(bool under) +{ + if (under != m_underMouse) { + m_underMouse = under; + underMouseCallback(); + update(); + } +} + +SelectableItem::SelectableItem(QGraphicsItem *parent) + : CurveEditorItem(parent) , m_active(false) , m_selected(false) , m_locked(false) @@ -44,11 +95,11 @@ SelectableItem::SelectableItem(QGraphicsItem *parent) SelectableItem::~SelectableItem() {} -void SelectableItem::setLocked(bool locked) +void SelectableItem::lockedCallback() { - setPreselected(SelectionMode::Clear); - applyPreselection(); - m_locked = locked; + m_preSelected = SelectionMode::Undefined; + m_selected = false; + selectionCallback(); } bool SelectableItem::activated() const @@ -76,14 +127,14 @@ bool SelectableItem::selected() const return false; } -bool SelectableItem::locked() const +void SelectableItem::setActivated(bool active) { - return m_locked; + m_active = active; } -void SelectableItem::setActivated(bool active) +void SelectableItem::setSelected(bool selected) { - m_active = active; + m_selected = selected; } void SelectableItem::setPreselected(SelectionMode mode) @@ -101,6 +152,8 @@ void SelectableItem::applyPreselection() m_preSelected = SelectionMode::Undefined; } +void SelectableItem::activationCallback() {} + void SelectableItem::selectionCallback() {} void SelectableItem::mousePressEvent(QGraphicsSceneMouseEvent *event) @@ -110,6 +163,7 @@ void SelectableItem::mousePressEvent(QGraphicsSceneMouseEvent *event) m_active = true; QGraphicsObject::mousePressEvent(event); + activationCallback(); } void SelectableItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) @@ -130,6 +184,7 @@ void SelectableItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) m_active = false; QGraphicsObject::mouseReleaseEvent(event); + activationCallback(); } } // End namespace DesignTools. |