From 4303307cc65893980f350edac5a69e977170c14c Mon Sep 17 00:00:00 2001
From: "Tim E. Real" <termtech@rogers.com>
Date: Sat, 18 Dec 2010 20:51:39 +0000
Subject: Fixed transport shortcuts not working in some windows or situations.

---
 muse2/ChangeLog                  |  4 ++++
 muse2/muse/app.cpp               | 16 ++++++++++++++++
 muse2/muse/arranger/pcanvas.cpp  |  1 +
 muse2/muse/master/master.cpp     |  1 +
 muse2/muse/master/masteredit.cpp |  2 ++
 muse2/muse/waveedit/waveedit.cpp |  2 ++
 muse2/muse/waveedit/waveview.cpp |  2 ++
 7 files changed, 28 insertions(+)

(limited to 'muse2')

diff --git a/muse2/ChangeLog b/muse2/ChangeLog
index 700eeeb3..e6c14612 100644
--- a/muse2/ChangeLog
+++ b/muse2/ChangeLog
@@ -1,3 +1,7 @@
+18.12.2010:
+        - Fixed transport shortcuts not working in some windows or situations. (Tim)
+          Added event->ignore to PartCanvas::keyPress. Added setFocusPolicy() to WaveView, Master.
+          Added (canvas or view)->setFocus() to WaveEdit, MasterEdit. Test OK.
 17.12.2010:
         - Fixed crash with song loaded then File->New. Marker view had non-existent items from cleared marker list. (Tim)
         - Some memory leak cleanups. Delete midiInstruments and midiDevices. (Tim)
diff --git a/muse2/muse/app.cpp b/muse2/muse/app.cpp
index 5ea7c00d..f339fabf 100644
--- a/muse2/muse/app.cpp
+++ b/muse2/muse/app.cpp
@@ -3554,8 +3554,11 @@ class MuseApplication : public QApplication {
             }
 
       bool notify(QObject* receiver, QEvent* event) {
+            //if (event->type() == QEvent::KeyPress)
+            //  printf("notify key press before app::notify accepted:%d\n", event->isAccepted());  
             bool flag = QApplication::notify(receiver, event);
             if (event->type() == QEvent::KeyPress) {
+              //printf("notify key press after app::notify accepted:%d\n", event->isAccepted());   
                   QKeyEvent* ke = (QKeyEvent*)event;
                   ///globalKeyState = ke->stateAfter();
                   globalKeyState = ke->modifiers();
@@ -5155,6 +5158,19 @@ void MusE::updateConfiguration()
       //menuSettings->setAccel(shortcuts[SHRT_CONFIG_AUDIO_PORTS].key, menu_ids[CMD_CONFIG_AUDIO_PORTS]);
       //menu_help->setAccel(menu_ids[CMD_START_WHATSTHIS], shortcuts[SHRT_START_WHATSTHIS].key);
       
+      // Just in case, but no, app kb handler takes care of these.
+      /*
+      loopAction->setShortcut(shortcuts[].key);
+      punchinAction->setShortcut(shortcuts[].key);
+      punchoutAction->setShortcut(shortcuts[].key);
+      startAction->setShortcut(shortcuts[].key);
+      rewindAction->setShortcut(shortcuts[].key);
+      forwardAction->setShortcut(shortcuts[].key);
+      stopAction->setShortcut(shortcuts[].key);
+      playAction->setShortcut(shortcuts[].key);
+      recordAction->setShortcut(shortcuts[].key);
+      panicAction->setShortcut(shortcuts[].key);
+      */
       }
 
 //---------------------------------------------------------
diff --git a/muse2/muse/arranger/pcanvas.cpp b/muse2/muse/arranger/pcanvas.cpp
index 2e3944bd..1d7cfd54 100644
--- a/muse2/muse/arranger/pcanvas.cpp
+++ b/muse2/muse/arranger/pcanvas.cpp
@@ -1138,6 +1138,7 @@ void PartCanvas::keyPress(QKeyEvent* event)
       //
       if (!curItem) {
           if (items.size()==0) {
+              event->ignore();  // give global accelerators a chance
               return;
           }
           for (iCItem i = items.begin(); i != items.end(); ++i) {
diff --git a/muse2/muse/master/master.cpp b/muse2/muse/master/master.cpp
index aaf73398..4a33a8c4 100644
--- a/muse2/muse/master/master.cpp
+++ b/muse2/muse/master/master.cpp
@@ -38,6 +38,7 @@ Master::Master(MidiEditor* e, QWidget* parent, int xmag, int ymag)
       pos[0]  = 0;
       pos[1]  = 0;
       pos[2]  = 0;
+      setFocusPolicy(Qt::StrongFocus);  // Tim.
       setMouseTracking(true);
       connect(song, SIGNAL(posChanged(int, unsigned, bool)), this, SLOT(setPos(int, unsigned, bool)));
       connect(song, SIGNAL(songChanged(int)), this, SLOT(redraw()));
diff --git a/muse2/muse/master/masteredit.cpp b/muse2/muse/master/masteredit.cpp
index eae0f207..2b91ae90 100644
--- a/muse2/muse/master/masteredit.cpp
+++ b/muse2/muse/master/masteredit.cpp
@@ -192,6 +192,8 @@ MasterEdit::MasterEdit()
       mainGrid->addWidget(vscroll, 0, 2, 10, 1);
 //      mainGrid->addWidget(corner,  9, 2, AlignBottom | AlignRight);
 
+      canvas->setFocus(); // Tim.
+
       connect(tools2, SIGNAL(toolChanged(int)), canvas, SLOT(setTool(int)));
       connect(vscroll, SIGNAL(scrollChanged(int)),   canvas, SLOT(setYPos(int)));
       connect(vscroll, SIGNAL(scaleChanged(int)), canvas, SLOT(setYMag(int)));
diff --git a/muse2/muse/waveedit/waveedit.cpp b/muse2/muse/waveedit/waveedit.cpp
index cbe4e7a8..a6251503 100644
--- a/muse2/muse/waveedit/waveedit.cpp
+++ b/muse2/muse/waveedit/waveedit.cpp
@@ -212,6 +212,8 @@ WaveEdit::WaveEdit(PartList* pl)
       mainGrid->addWidget(hscroll, 3, 0);
       mainGrid->addWidget(corner,  3, 1, Qt::AlignBottom | Qt::AlignRight);
 
+      view->setFocus();  // Tim.
+      
       connect(hscroll, SIGNAL(scrollChanged(int)), view, SLOT(setXPos(int)));
       connect(hscroll, SIGNAL(scaleChanged(int)),  view, SLOT(setXMag(int)));
       setWindowTitle(view->getCaption());
diff --git a/muse2/muse/waveedit/waveview.cpp b/muse2/muse/waveedit/waveview.cpp
index cf22a4d0..668d8bea 100644
--- a/muse2/muse/waveedit/waveview.cpp
+++ b/muse2/muse/waveedit/waveview.cpp
@@ -44,6 +44,8 @@ WaveView::WaveView(MidiEditor* pr, QWidget* parent, int xscale, int yscale)
       selectionStop  = 0;
       lastGainvalue = 100;
 
+      setFocusPolicy(Qt::StrongFocus); // Tim.
+      
       setMouseTracking(true);
       setBg(QColor(192, 208, 255));
 
-- 
cgit v1.2.3