summaryrefslogtreecommitdiff
path: root/muse2/muse/arranger
diff options
context:
space:
mode:
authorTim E. Real <termtech@rogers.com>2010-11-06 08:04:38 +0000
committerTim E. Real <termtech@rogers.com>2010-11-06 08:04:38 +0000
commit3a459a08c7bac364ab4454adb5bcfded8d79c6a8 (patch)
tree1543f065052bf4101d3f01c48c6e333ed27e9f14 /muse2/muse/arranger
parent2428f541f4a60ade9dc402ac6bec1bb362b768b4 (diff)
The return of the 'stay open' popup menu! (WIP)
Diffstat (limited to 'muse2/muse/arranger')
-rw-r--r--muse2/muse/arranger/arranger.h6
-rw-r--r--muse2/muse/arranger/trackinfo.cpp41
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;
}