From: <j-...@us...> - 2008-07-08 00:00:35
|
Revision: 2298 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=2298&view=rev Author: j-b-m Date: 2008-07-07 16:12:19 -0700 (Mon, 07 Jul 2008) Log Message: ----------- change cursor on timeline ruler for better feedback Modified Paths: -------------- branches/KDE4/src/customruler.cpp Modified: branches/KDE4/src/customruler.cpp =================================================================== --- branches/KDE4/src/customruler.cpp 2008-07-07 22:46:29 UTC (rev 2297) +++ branches/KDE4/src/customruler.cpp 2008-07-07 23:12:19 UTC (rev 2298) @@ -22,6 +22,7 @@ #include <KDebug> #include <KIcon> +#include <KCursor> #include <KGlobalSettings> #include "customruler.h" @@ -93,6 +94,7 @@ connect(delGuide, SIGNAL(triggered()), m_view, SLOT(slotDeleteGuide())); QAction *editGuide = m_contextMenu->addAction(KIcon("document-new"), i18n("Edit Guide")); connect(editGuide, SIGNAL(triggered()), m_view, SLOT(slotEditGuide())); + setMouseTracking(true); } // virtual @@ -115,19 +117,29 @@ // virtual void CustomRuler::mouseMoveEvent(QMouseEvent * event) { - int pos = (int)((event->x() + offset()) / pixelPerMark() / FRAME_SIZE); - if (pos < 0) pos = 0; - if (m_moveCursor == RULER_CURSOR) { - m_view->setCursorPos(pos); - return; - } else if (m_moveCursor == RULER_START) m_zoneStart = pos; - else if (m_moveCursor == RULER_END) m_zoneEnd = pos; - else if (m_moveCursor == RULER_MIDDLE) { - int move = pos - (m_zoneStart + (m_zoneEnd - m_zoneStart) / 2); - m_zoneStart += move; - m_zoneEnd += move; + if (event->buttons() == Qt::LeftButton) { + int pos = (int)((event->x() + offset()) / pixelPerMark() / FRAME_SIZE); + if (pos < 0) pos = 0; + if (m_moveCursor == RULER_CURSOR) { + m_view->setCursorPos(pos); + return; + } else if (m_moveCursor == RULER_START) m_zoneStart = pos; + else if (m_moveCursor == RULER_END) m_zoneEnd = pos; + else if (m_moveCursor == RULER_MIDDLE) { + int move = pos - (m_zoneStart + (m_zoneEnd - m_zoneStart) / 2); + m_zoneStart += move; + m_zoneEnd += move; + } + update(); } - update(); + else { + int pos = (int)((event->x() + offset())); + if (event->y() <= 10) setCursor(Qt::ArrowCursor); + else if (qAbs(pos - m_zoneStart * pixelPerMark() * FRAME_SIZE) < 4) setCursor(KCursor("left_side", Qt::SizeHorCursor)); + else if (qAbs(pos - m_zoneEnd * pixelPerMark() * FRAME_SIZE) < 4) setCursor(KCursor("right_side", Qt::SizeHorCursor)); + else if (qAbs(pos - (m_zoneStart + (m_zoneEnd - m_zoneStart) / 2) * pixelPerMark() * FRAME_SIZE) < 4) setCursor(Qt::SizeHorCursor); + else setCursor(Qt::ArrowCursor); + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |