traverso-commit
[Top][All Lists]
Advanced

[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"));
        }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]