@@ -182,12 +182,16 void LegendMarkerItem::mouseClicked() | |||||
182 |
|
182 | |||
183 | void LegendMarkerItem::mouseMoved(QPointF delta) |
|
183 | void LegendMarkerItem::mouseMoved(QPointF delta) | |
184 | { |
|
184 | { | |
185 |
m_marker->m_legend->d_ptr-> |
|
185 | qreal dx = m_marker->m_legend->d_ptr->offset().x() - delta.x(); | |
|
186 | qreal dy = m_marker->m_legend->d_ptr->offset().y() - delta.y(); | |||
|
187 | m_marker->m_legend->d_ptr->setOffset(dx, dy); | |||
186 | } |
|
188 | } | |
187 |
|
189 | |||
188 | void LegendMarkerItem::mouseReleased(QPointF delta) |
|
190 | void LegendMarkerItem::mouseReleased(QPointF delta) | |
189 | { |
|
191 | { | |
190 |
m_marker->m_legend->d_ptr-> |
|
192 | qreal dx = m_marker->m_legend->d_ptr->offset().x() - delta.x(); | |
|
193 | qreal dy = m_marker->m_legend->d_ptr->offset().y() - delta.y(); | |||
|
194 | m_marker->m_legend->d_ptr->setOffset(dx, dy); | |||
191 | } |
|
195 | } | |
192 |
|
196 | |||
193 | #include "moc_legendmarkeritem_p.cpp" |
|
197 | #include "moc_legendmarkeritem_p.cpp" |
@@ -24,7 +24,7 | |||||
24 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
24 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
25 |
|
25 | |||
26 | MouseEventHandler::MouseEventHandler() : |
|
26 | MouseEventHandler::MouseEventHandler() : | |
27 |
m_ |
|
27 | m_lastPos(0,0), | |
28 | m_state(Idle), |
|
28 | m_state(Idle), | |
29 | m_treshold(10) |
|
29 | m_treshold(10) | |
30 | { |
|
30 | { | |
@@ -41,26 +41,28 void MouseEventHandler::setMoveTreshold(qreal treshold) | |||||
41 |
|
41 | |||
42 | void MouseEventHandler::handleMousePressEvent(QGraphicsSceneMouseEvent* event) |
|
42 | void MouseEventHandler::handleMousePressEvent(QGraphicsSceneMouseEvent* event) | |
43 | { |
|
43 | { | |
44 |
m_ |
|
44 | m_lastPos = event->screenPos(); | |
45 | m_state = Pressed; |
|
45 | m_state = Pressed; | |
46 | event->accept(); |
|
46 | event->accept(); | |
47 | } |
|
47 | } | |
48 |
|
48 | |||
49 | void MouseEventHandler::handleMouseMoveEvent(QGraphicsSceneMouseEvent* event) |
|
49 | void MouseEventHandler::handleMouseMoveEvent(QGraphicsSceneMouseEvent* event) | |
50 | { |
|
50 | { | |
51 |
QPointF delta = event-> |
|
51 | QPointF delta = event->screenPos() - m_lastPos; | |
52 |
|
52 | |||
53 | switch (m_state) { |
|
53 | switch (m_state) { | |
54 | case Pressed: { |
|
54 | case Pressed: { | |
55 | // calculate treshold. If enough, change to move state and send out move deltas. |
|
55 | // calculate treshold. If enough, change to move state and send out move deltas. | |
56 | if (qAbs(delta.x()) > m_treshold || qAbs(delta.y()) > m_treshold) { |
|
56 | if (qAbs(delta.x()) > m_treshold || qAbs(delta.y()) > m_treshold) { | |
57 | m_state = Moved; |
|
57 | m_state = Moved; | |
|
58 | m_lastPos = event->screenPos(); | |||
58 | mouseMoved(delta); |
|
59 | mouseMoved(delta); | |
59 | } |
|
60 | } | |
60 | event->accept(); |
|
61 | event->accept(); | |
61 | break; |
|
62 | break; | |
62 | } |
|
63 | } | |
63 | case Moved: { |
|
64 | case Moved: { | |
|
65 | m_lastPos = event->screenPos(); | |||
64 | mouseMoved(delta); |
|
66 | mouseMoved(delta); | |
65 | event->accept(); |
|
67 | event->accept(); | |
66 | break; |
|
68 | break; | |
@@ -75,7 +77,8 void MouseEventHandler::handleMouseMoveEvent(QGraphicsSceneMouseEvent* event) | |||||
75 |
|
77 | |||
76 | void MouseEventHandler::handleMouseReleaseEvent(QGraphicsSceneMouseEvent* event) |
|
78 | void MouseEventHandler::handleMouseReleaseEvent(QGraphicsSceneMouseEvent* event) | |
77 | { |
|
79 | { | |
78 |
QPointF delta = event-> |
|
80 | QPointF delta = event->screenPos() - m_lastPos; | |
|
81 | m_lastPos = event->screenPos(); | |||
79 |
|
82 | |||
80 | switch (m_state) { |
|
83 | switch (m_state) { | |
81 | case Pressed: |
|
84 | case Pressed: |
@@ -79,7 +79,7 public: | |||||
79 | void handleMouseReleaseEvent(QGraphicsSceneMouseEvent* event); |
|
79 | void handleMouseReleaseEvent(QGraphicsSceneMouseEvent* event); | |
80 |
|
80 | |||
81 | private: |
|
81 | private: | |
82 |
QPointF m_ |
|
82 | QPointF m_lastPos; | |
83 | State m_state; |
|
83 | State m_state; | |
84 | qreal m_treshold; |
|
84 | qreal m_treshold; | |
85 | }; |
|
85 | }; |
General Comments 0
You need to be logged in to leave comments.
Login now