aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner/components/curveeditor/detail/selectableitem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/qmldesigner/components/curveeditor/detail/selectableitem.cpp')
-rw-r--r--src/plugins/qmldesigner/components/curveeditor/detail/selectableitem.cpp73
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.