summaryrefslogtreecommitdiff
path: root/muse2/muse/arranger
diff options
context:
space:
mode:
Diffstat (limited to 'muse2/muse/arranger')
-rw-r--r--muse2/muse/arranger/arranger.cpp4
-rw-r--r--muse2/muse/arranger/tlist.cpp39
-rw-r--r--muse2/muse/arranger/tlist.h1
3 files changed, 44 insertions, 0 deletions
diff --git a/muse2/muse/arranger/arranger.cpp b/muse2/muse/arranger/arranger.cpp
index d74bed78..e1205d6f 100644
--- a/muse2/muse/arranger/arranger.cpp
+++ b/muse2/muse/arranger/arranger.cpp
@@ -69,6 +69,7 @@ void Arranger::setHeaderToolTips()
header->setToolTip(COL_OPORT, tr("Midi output port or synth midi port"));
header->setToolTip(COL_TIMELOCK, tr("Time Lock"));
header->setToolTip(COL_AUTOMATION, tr("Automation parameter selection"));
+ header->setToolTip(COL_CLEF, tr("Notation clef"));
}
@@ -87,6 +88,7 @@ void Arranger::setHeaderWhatsThis()
header->setWhatsThis(COL_OCHANNEL, tr("Midi/drum track: Output channel number.\nAudio track: Channels.\nMid/right-click to change."));
header->setWhatsThis(COL_OPORT, tr("Midi/drum track: Output port.\nSynth track: Assigned midi port.\nLeft-click to change.\nRight-click to show GUI."));
header->setWhatsThis(COL_TIMELOCK, tr("Time lock"));
+ header->setToolTip(COL_CLEF, tr("Notation clef. Select this tracks notation clef."));
}
//---------------------------------------------------------
@@ -290,6 +292,7 @@ Arranger::Arranger(QMainWindow* parent, const char* name)
header->setColumnLabel(tr("Ch"), COL_OCHANNEL, 30);
header->setColumnLabel(tr("T"), COL_TIMELOCK, fm1.width('T')+fw);
header->setColumnLabel(tr("Automation"), COL_AUTOMATION, 75);
+ header->setColumnLabel(tr("Clef"), COL_CLEF, 75);
header->setResizeMode(COL_RECORD, QHeaderView::Fixed);
header->setResizeMode(COL_MUTE, QHeaderView::Fixed);
header->setResizeMode(COL_SOLO, QHeaderView::Fixed);
@@ -299,6 +302,7 @@ Arranger::Arranger(QMainWindow* parent, const char* name)
header->setResizeMode(COL_OCHANNEL, QHeaderView::Fixed);
header->setResizeMode(COL_TIMELOCK, QHeaderView::Fixed);
header->setResizeMode(COL_AUTOMATION, QHeaderView::Interactive);
+ header->setResizeMode(COL_CLEF, QHeaderView::Interactive);
setHeaderToolTips();
setHeaderWhatsThis();
diff --git a/muse2/muse/arranger/tlist.cpp b/muse2/muse/arranger/tlist.cpp
index 4b531607..427047c2 100644
--- a/muse2/muse/arranger/tlist.cpp
+++ b/muse2/muse/arranger/tlist.cpp
@@ -44,6 +44,7 @@
#include "midiedit/drummap.h"
#include "synth.h"
#include "config.h"
+#include "scoreedit.h"
#ifdef DSSI_SUPPORT
#include "dssihost.h"
@@ -356,6 +357,18 @@ void TList::paint(const QRect& r)
p.drawText(r, Qt::AlignVCenter|Qt::AlignLeft, s);
}
break;
+ case COL_CLEF:
+ if (track->isMidiTrack()) {
+ QString s = "no clef";
+ if (((MidiTrack*)track)->getClef() == ScoreEdit::trebleClef)
+ s="Treble Clef";
+ else if (((MidiTrack*)track)->getClef() == ScoreEdit::bassClef)
+ s="Bass Clef";
+ else if (((MidiTrack*)track)->getClef() == ScoreEdit::grandStaff)
+ s="Grand Staff";
+ p.drawText(r, Qt::AlignVCenter|Qt::AlignLeft, s);
+ }
+ break;
default:
break;
}
@@ -1054,6 +1067,32 @@ void TList::mousePressEvent(QMouseEvent* ev)
mode = START_DRAG;
switch (col) {
+ case COL_CLEF:
+ if (t->isMidiTrack()) {
+ QMenu* p = new QMenu;
+ p->addAction("Treble clef")->setData(0);
+ p->addAction("Bass clef")->setData(1);
+ p->addAction("Grand Staff")->setData(2);
+
+ // Show the menu
+ QAction* act = p->exec(ev->globalPos(), 0);
+ switch (act->data().toInt()) {
+ case 0:
+ ((MidiTrack*)t)->setClef(ScoreEdit::trebleClef);
+ break;
+ case 1:
+ ((MidiTrack*)t)->setClef(ScoreEdit::bassClef);
+ break;
+ case 2:
+ ((MidiTrack*)t)->setClef(ScoreEdit::grandStaff);
+ break;
+ default:
+ break;
+ }
+ delete p;
+ }
+
+ break;
case COL_AUTOMATION:
{
if (!t->isMidiTrack()) {
diff --git a/muse2/muse/arranger/tlist.h b/muse2/muse/arranger/tlist.h
index 8bebef95..7691b6cc 100644
--- a/muse2/muse/arranger/tlist.h
+++ b/muse2/muse/arranger/tlist.h
@@ -36,6 +36,7 @@ enum TrackColumn {
COL_OCHANNEL,
COL_TIMELOCK,
COL_AUTOMATION,
+ COL_CLEF,
COL_NONE = -1
};