[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Traverso-commit] traverso/src/traverso/songcanvas TimeLineView.cpp
From: |
Ben Levitt |
Subject: |
[Traverso-commit] traverso/src/traverso/songcanvas TimeLineView.cpp |
Date: |
Wed, 09 May 2007 22:35:30 +0000 |
CVSROOT: /sources/traverso
Module name: traverso
Changes by: Ben Levitt <benjie> 07/05/09 22:35:30
Modified files:
src/traverso/songcanvas: TimeLineView.cpp
Log message:
make marker dragging use on_first_input_event_x/y()
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/TimeLineView.cpp?cvsroot=traverso&r1=1.32&r2=1.33
Patches:
Index: TimeLineView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/TimeLineView.cpp,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -b -r1.32 -r1.33
--- TimeLineView.cpp 9 May 2007 20:11:47 -0000 1.32
+++ TimeLineView.cpp 9 May 2007 22:35:29 -0000 1.33
@@ -372,6 +372,40 @@
return 0;
}
+void TimeLineView::update_softselected_marker(QPoint pos)
+{
+ MarkerView* prevMarker = m_blinkingMarker;
+ if (m_markerViews.size()) {
+ m_blinkingMarker = m_markerViews.first();
+ }
+
+ if (! m_blinkingMarker) {
+ return;
+ }
+
+ foreach(MarkerView* markerView, m_markerViews) {
+
+ QPoint nodePos((int)markerView->pos().x(),
(int)markerView->pos().y());
+
+ int markerDist = (pos - nodePos).manhattanLength();
+ int blinkNodeDist = (pos - QPoint((int)m_blinkingMarker->x(),
(int)m_blinkingMarker->y())).manhattanLength();
+
+ if (markerDist < blinkNodeDist) {
+ m_blinkingMarker = markerView;
+ }
+ }
+
+
+ if (prevMarker && (prevMarker != m_blinkingMarker) ) {
+ prevMarker->set_active(false);
+ m_blinkingMarker->set_active(true);
+ }
+
+ if (!prevMarker && m_blinkingMarker) {
+ m_blinkingMarker->set_active(true);
+ }
+}
+
void TimeLineView::hoverEnterEvent ( QGraphicsSceneHoverEvent * event )
{
PENTER;
@@ -405,41 +439,14 @@
{
QPoint pos((int)event->pos().x(), (int)event->pos().y());
- MarkerView* prevMarker = m_blinkingMarker;
- if (m_markerViews.size()) {
- m_blinkingMarker = m_markerViews.first();
- }
-
- if (! m_blinkingMarker) {
- return;
- }
-
- foreach(MarkerView* markerView, m_markerViews) {
-
- QPoint nodePos((int)markerView->pos().x(),
(int)markerView->pos().y());
-
- int markerDist = (pos - nodePos).manhattanLength();
- int blinkNodeDist = (pos - QPoint((int)m_blinkingMarker->x(),
(int)m_blinkingMarker->y())).manhattanLength();
-
- if (markerDist < blinkNodeDist) {
- m_blinkingMarker = markerView;
- }
- }
-
-
- if (prevMarker && (prevMarker != m_blinkingMarker) ) {
- prevMarker->set_active(false);
- m_blinkingMarker->set_active(true);
- }
-
- if (!prevMarker && m_blinkingMarker) {
- m_blinkingMarker->set_active(true);
- }
+ update_softselected_marker(pos);
}
Command * TimeLineView::drag_marker()
{
+ update_softselected_marker(QPoint(cpointer().on_first_input_event_x(),
cpointer().on_first_input_event_y()));
+
if (m_blinkingMarker) {
return new DragMarker(m_blinkingMarker, m_sv->scalefactor,
tr("Drag Marker"));
}