summaryrefslogtreecommitdiff
path: root/muse2/muse/arranger
diff options
context:
space:
mode:
authorRobert Jonsson <spamatica@gmail.com>2011-03-05 20:32:44 +0000
committerRobert Jonsson <spamatica@gmail.com>2011-03-05 20:32:44 +0000
commit03b22522651de83a45494a2745f05b7a19ecb3d7 (patch)
treecba211d87226e907aaf73b509246c310b4741920 /muse2/muse/arranger
parent1f615170b3519ca56951fbdd7cd86ef5f35817cc (diff)
tweaks here and tweaks there
Diffstat (limited to 'muse2/muse/arranger')
-rw-r--r--muse2/muse/arranger/arranger.cpp37
-rw-r--r--muse2/muse/arranger/arranger.h1
-rw-r--r--muse2/muse/arranger/pcanvas.cpp5
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);