diff options
author | Tim E. Real <termtech@rogers.com> | 2010-11-06 08:04:38 +0000 |
---|---|---|
committer | Tim E. Real <termtech@rogers.com> | 2010-11-06 08:04:38 +0000 |
commit | 3a459a08c7bac364ab4454adb5bcfded8d79c6a8 (patch) | |
tree | 1543f065052bf4101d3f01c48c6e333ed27e9f14 /muse2/muse/arranger | |
parent | 2428f541f4a60ade9dc402ac6bec1bb362b768b4 (diff) |
The return of the 'stay open' popup menu! (WIP)
Diffstat (limited to 'muse2/muse/arranger')
-rw-r--r-- | muse2/muse/arranger/arranger.h | 6 | ||||
-rw-r--r-- | muse2/muse/arranger/trackinfo.cpp | 41 |
2 files changed, 41 insertions, 6 deletions
diff --git a/muse2/muse/arranger/arranger.h b/muse2/muse/arranger/arranger.h index 37b4c55e..34aa5c68 100644 --- a/muse2/muse/arranger/arranger.h +++ b/muse2/muse/arranger/arranger.h @@ -41,6 +41,9 @@ class TLLayout; class WidgetStack; class AudioStrip; class SpinBox; +class QAction; +//class QModelIndex; + //--------------------------------------------------------- // TWhatsThis //--------------------------------------------------------- @@ -172,7 +175,8 @@ class Arranger : public QWidget { void verticalScrollSetYpos(unsigned); void inRoutesPressed(); void outRoutesPressed(); - void routingPopupMenuActivated(int /*id*/); + void routingPopupMenuActivated(QAction*); + //void routingPopupViewActivated(const QModelIndex&); signals: void redirectWheelEvent(QWheelEvent*); diff --git a/muse2/muse/arranger/trackinfo.cpp b/muse2/muse/arranger/trackinfo.cpp index 382ef1e0..b23cead8 100644 --- a/muse2/muse/arranger/trackinfo.cpp +++ b/muse2/muse/arranger/trackinfo.cpp @@ -9,7 +9,7 @@ #include <qcombobox.h> #include <qtoolbutton.h> #include <qlabel.h> -#include <q3popupmenu.h> +#include <QMenu> #include <qmessagebox.h> //#include <q3hbox.h> #include <qcheckbox.h> @@ -17,6 +17,7 @@ //#include <q3widgetstack.h> #include <qlineedit.h> #include <qtimer.h> +#include <QModelIndex> //Added by qt3to4: #include <QPixmap> #include <math.h> @@ -573,7 +574,8 @@ void Arranger::iInputPortChanged(const QString& s) // routingPopupMenuActivated //--------------------------------------------------------- -void Arranger::routingPopupMenuActivated(int n) +//void Arranger::routingPopupMenuActivated(int n) +void Arranger::routingPopupMenuActivated(QAction* act) { //if(gRoutingPopupMenuMaster != this || !track || !track->isMidiTrack()) if(!midiTrackInfo || gRoutingPopupMenuMaster != midiTrackInfo || !selected || !selected->isMidiTrack()) @@ -585,10 +587,34 @@ void Arranger::routingPopupMenuActivated(int n) // muse->routingPopupMenuActivated(selected, i + MIDI_CHANNELS * (n - MIDI_PORTS * MIDI_CHANNELS)); // p3.3.50 //} //else { - muse->routingPopupMenuActivated(selected, n); + ///muse->routingPopupMenuActivated(selected, n); + muse->routingPopupMenuActivated(selected, act->data().toInt()); //} } +#if 0 +//--------------------------------------------------------- +// routingPopupViewActivated +//--------------------------------------------------------- + +void Arranger::routingPopupViewActivated(const QModelIndex& mdi) +{ + //if(gRoutingPopupMenuMaster != this || !track || !track->isMidiTrack()) + if(!midiTrackInfo || gRoutingPopupMenuMaster != midiTrackInfo || !selected || !selected->isMidiTrack()) + return; + //if (n > 999) { + //if (n >= MIDI_PORTS * MIDI_CHANNELS) { // p3.3.50 + // for (int i = 0; i < MIDI_CHANNELS; i++) + //muse->routingPopupMenuActivated(selected, i + MIDI_CHANNELS * (n-1000)); + // muse->routingPopupMenuActivated(selected, i + MIDI_CHANNELS * (n - MIDI_PORTS * MIDI_CHANNELS)); // p3.3.50 + //} + //else { +/// muse->routingPopupMenuActivated(selected, n); + muse->routingPopupMenuActivated(selected, mdi.data().toInt()); + //} +} +#endif + //--------------------------------------------------------- // inRoutesPressed //--------------------------------------------------------- @@ -605,16 +631,21 @@ void Arranger::inRoutesPressed() //song->chooseMidiRoutes(iR, (MidiTrack*)track, false); PopupMenu* pup = muse->prepareRoutingPopupMenu(selected, false); + //PopupView* pup = muse->prepareRoutingPopupView(selected, false); if(!pup) return; //pup->disconnect(); //gRoutingPopupMenuMaster = this; gRoutingPopupMenuMaster = midiTrackInfo; - connect(pup, SIGNAL(activated(int)), SLOT(routingPopupMenuActivated(int))); + //connect(pup, SIGNAL(activated(int)), SLOT(routingPopupMenuActivated(int))); + connect(pup, SIGNAL(triggered(QAction*)), SLOT(routingPopupMenuActivated(QAction*))); + //connect(pup, SIGNAL(activated(const QModelIndex&)), SLOT(routingPopupViewActivated(const QModelIndex&))); // Nope, can't clear menu and mm list in there, sub-menus stay open. Never mind for now... connect(pup, SIGNAL(aboutToHide()), muse, SLOT(routingPopupMenuAboutToHide())); - pup->popup(QCursor::pos(), 0); + //connect(pup, SIGNAL(aboutToHide()), muse, SLOT(routingPopupViewAboutToHide())); + pup->popup(QCursor::pos()); + //pup->setVisible(true); midiTrackInfo->iRButton->setDown(false); return; } |