diff options
author | Robert Jonsson <spamatica@gmail.com> | 2011-03-05 20:32:44 +0000 |
---|---|---|
committer | Robert Jonsson <spamatica@gmail.com> | 2011-03-05 20:32:44 +0000 |
commit | 03b22522651de83a45494a2745f05b7a19ecb3d7 (patch) | |
tree | cba211d87226e907aaf73b509246c310b4741920 /muse2/muse/arranger | |
parent | 1f615170b3519ca56951fbdd7cd86ef5f35817cc (diff) |
tweaks here and tweaks there
Diffstat (limited to 'muse2/muse/arranger')
-rw-r--r-- | muse2/muse/arranger/arranger.cpp | 37 | ||||
-rw-r--r-- | muse2/muse/arranger/arranger.h | 1 | ||||
-rw-r--r-- | muse2/muse/arranger/pcanvas.cpp | 5 |
3 files changed, 42 insertions, 1 deletions
diff --git a/muse2/muse/arranger/arranger.cpp b/muse2/muse/arranger/arranger.cpp index 06f8b472..495c4cb8 100644 --- a/muse2/muse/arranger/arranger.cpp +++ b/muse2/muse/arranger/arranger.cpp @@ -52,6 +52,7 @@ #include "gconfig.h" #include "mixer/astrip.h" #include "spinbox.h" +#include "shortcuts.h" //--------------------------------------------------------- // Arranger::setHeaderToolTips @@ -1065,3 +1066,39 @@ int WidgetStack::minimumHeight() const return minimumSizeHint().height(); } */ + +void Arranger::keyPressEvent(QKeyEvent* event) +{ + int key = event->key(); + if (((QInputEvent*)event)->modifiers() & Qt::ShiftModifier) + key += Qt::SHIFT; + if (((QInputEvent*)event)->modifiers() & Qt::AltModifier) + key += Qt::ALT; + if (((QInputEvent*)event)->modifiers() & Qt::ControlModifier) + key+= Qt::CTRL; + + if (key == shortcuts[SHRT_ZOOM_IN].key) { + int mag = hscroll->mag(); + int zoomlvl = ScrollScale::getQuickZoomLevel(mag); + if (zoomlvl < 23) + zoomlvl++; + + int newmag = ScrollScale::convertQuickZoomLevelToMag(zoomlvl); + + hscroll->setMag(newmag); + return; + } + else if (key == shortcuts[SHRT_ZOOM_OUT].key) { + int mag = hscroll->mag(); + int zoomlvl = ScrollScale::getQuickZoomLevel(mag); + if (zoomlvl > 1) + zoomlvl--; + + int newmag = ScrollScale::convertQuickZoomLevelToMag(zoomlvl); + + hscroll->setMag(newmag); + return; + } + + QWidget::keyPressEvent(event); +} diff --git a/muse2/muse/arranger/arranger.h b/muse2/muse/arranger/arranger.h index 7ef79463..0143afd5 100644 --- a/muse2/muse/arranger/arranger.h +++ b/muse2/muse/arranger/arranger.h @@ -137,6 +137,7 @@ class Arranger : public QWidget { protected: virtual void wheelEvent(QWheelEvent* e); + virtual void keyPressEvent(QKeyEvent* event); public slots: void dclickPart(Track*); diff --git a/muse2/muse/arranger/pcanvas.cpp b/muse2/muse/arranger/pcanvas.cpp index 43045987..0317d99e 100644 --- a/muse2/muse/arranger/pcanvas.cpp +++ b/muse2/muse/arranger/pcanvas.cpp @@ -1203,7 +1203,6 @@ void PartCanvas::keyPress(QKeyEvent* event) emit selectTrackBelow(); return; } - // // Shortcuts that require selected parts from here // @@ -2880,6 +2879,8 @@ void PartCanvas::drawCanvas(QPainter& p, const QRect& rect) break; Track* track = *it; th = track->height(); + if (!th) + continue; ///if (/*config.canvasShowGrid ||*/ !track->isMidiTrack()) { if (config.canvasShowGrid && (track->isMidiTrack() || track->type() == Track::WAVE)) // Tim. { @@ -2925,6 +2926,8 @@ void PartCanvas::drawTopItem(QPainter& p, const QRect& rect) break; Track* track = *it; th = track->height(); + if (!th) + continue; if (!track->isMidiTrack()) { // draw automation QRect r = rect & QRect(x, yy, w, track->height()); drawAutomation(p, r, (AudioTrack*)track); |