|
From: Tapio V. <aa...@us...> - 2011-01-10 21:25:23
|
Module: editor
Branch: master
Commit: 6d06ce68253be1dabdcb2d8bb393e22c37bfded6
Author: Tapio Vierros <tap...@gm...>
Date: Mon Jan 10 23:24:52 2011 +0200
Hack some keyboard controls.
---
notegraphwidget.cc | 38 +++++++++++++++++++++++++++++++-------
1 files changed, 31 insertions(+), 7 deletions(-)
diff --git a/notegraphwidget.cc b/notegraphwidget.cc
index d817b87..9d5168e 100644
--- a/notegraphwidget.cc
+++ b/notegraphwidget.cc
@@ -281,16 +281,40 @@ void NoteGraphWidget::mouseMoveEvent(QMouseEvent *event)
void NoteGraphWidget::keyPressEvent(QKeyEvent *event)
{
- switch (event->key()) {
- case Qt::Key_Delete:
- if (m_selectedNote) {
+ switch (event->key()) {
+ case Qt::Key_Left: // Select note on the left
+ if (m_selectedNote && m_notes.size() > 1 && m_selectedNote != m_notes.front()) {
+ for (NoteLabels::reverse_iterator it = m_notes.rbegin(); it != m_notes.rend(); ++it) {
+ if (m_selectedNote == *it) { selectNote(*(++it)); break; }
+ }
+ }
+ break;
+ case Qt::Key_Right: // Select note on the right
+ if (m_selectedNote && m_notes.size() > 1 && m_selectedNote != m_notes.back()) {
+ for (NoteLabels::iterator it = m_notes.begin(); it != m_notes.end(); ++it) {
+ if (m_selectedNote == *it) { selectNote(*(++it)); break; }
+ }
+ }
+ break;
+ case Qt::Key_Up: // Move note up
+ if (m_selectedNote) {
+ m_selectedNote->move(m_selectedNote->x(), m_selectedNote->y() - noteYStep);
+ }
+ break;
+ case Qt::Key_Down: // Move note down
+ if (m_selectedNote) {
+ m_selectedNote->move(m_selectedNote->x(), m_selectedNote->y() + noteYStep);
+ }
+ break;
+ case Qt::Key_Delete: // Delete selected note
+ if (m_selectedNote) {
m_selectedNote->close();
m_selectedNote = NULL;
updateNotes();
- }
- break;
- default:
- QWidget::keyPressEvent(event);
+ }
+ break;
+ default:
+ QWidget::keyPressEvent(event);
}
}
|