|
From: Tapio V. <aa...@us...> - 2011-01-20 15:01:36
|
Module: editor
Branch: master
Commit: 0215a8351d38f3c1df405f39102953078a67543a
Author: Tapio Vierros <tap...@gm...>
Date: Thu Jan 20 16:26:47 2011 +0200
Simplify seeking.
---
editorapp.cc | 2 +-
notegraphwidget.cc | 18 ++++++++++--------
notegraphwidget.hh | 3 ++-
3 files changed, 13 insertions(+), 10 deletions(-)
diff --git a/editorapp.cc b/editorapp.cc
index 8d496f2..c15ac3a 100644
--- a/editorapp.cc
+++ b/editorapp.cc
@@ -78,7 +78,7 @@ EditorApp::EditorApp(QWidget *parent): QMainWindow(parent), projectFileName(), h
connect(player, SIGNAL(tick(qint64)), this, SLOT(audioTick(qint64)));
connect(player, SIGNAL(stateChanged(Phonon::State,Phonon::State)), this, SLOT(playerStateChanged(Phonon::State,Phonon::State)));
connect(player, SIGNAL(metaDataChanged()), this, SLOT(metaDataChanged()));
- connect(noteGraph, SIGNAL(seek(qint64)), player, SLOT(seek(qint64)));
+ connect(noteGraph, SIGNAL(seeked(qint64)), player, SLOT(seek(qint64)));
}
void EditorApp::operationDone(const Operation &op)
diff --git a/notegraphwidget.cc b/notegraphwidget.cc
index a54ab59..ff914ea 100644
--- a/notegraphwidget.cc
+++ b/notegraphwidget.cc
@@ -201,6 +201,12 @@ void NoteGraphWidget::stopMusic()
m_seekHandle.killTimer(m_seekHandle.moveTimerId);
}
+void NoteGraphWidget::seek(int x)
+{
+ m_seekHandle.move(x - m_seekHandle.width()/2, 0);
+ emit seeked(1000 * px2s(x));
+}
+
void NoteGraphWidget::mousePressEvent(QMouseEvent *event)
{
NoteLabel *child = qobject_cast<NoteLabel*>(childAt(event->pos()));
@@ -216,7 +222,6 @@ void NoteGraphWidget::mousePressEvent(QMouseEvent *event)
} else {
// Seeking
m_seeking = true;
- m_panHotSpot = event->pos();
setCursor(QCursor(Qt::SizeHorCursor));
}
return;
@@ -301,8 +306,7 @@ void NoteGraphWidget::mouseDoubleClickEvent(QMouseEvent *event)
NoteLabel *child = qobject_cast<NoteLabel*>(childAt(event->pos()));
if (!child) {
// Double click empty space = seek there
- m_seekHandle.move(event->x() - m_seekHandle.width() / 2, 0);
- emit seek(1000 * px2s(event->x()));
+ seek(event->x());
return;
}
@@ -331,11 +335,9 @@ void NoteGraphWidget::mouseMoveEvent(QMouseEvent *event)
}
// Seeking
- if (m_seeking) {
- QPoint diff = event->pos() - m_panHotSpot;
- m_seekHandle.move(m_panHotSpot.x() + diff.x() - m_seekHandle.width()/2, 0);
- emit seek(1000 * px2s(event->pos().x()));
- }
+ if (m_seeking)
+ seek(event->x());
+
// Pan
else if (!m_panHotSpot.isNull()) {
setCursor(QCursor(Qt::ClosedHandCursor));
diff --git a/notegraphwidget.hh b/notegraphwidget.hh
index d8f861d..ab77485 100644
--- a/notegraphwidget.hh
+++ b/notegraphwidget.hh
@@ -39,6 +39,7 @@ public:
void updateMusicPos(qint64 time, bool smoothing);
void stopMusic();
+ void seek(int x);
void selectNote(NoteLabel *note);
NoteLabel* selectedNote() const { return m_selectedNote; }
@@ -57,7 +58,7 @@ signals:
void updateNoteInfo(NoteLabel*);
void analyzeProgress(int, int);
void operationDone(const Operation&);
- void seek(qint64 time);
+ void seeked(qint64 time);
protected:
void mousePressEvent(QMouseEvent *event);
|