summaryrefslogtreecommitdiff
path: root/muse2/muse/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'muse2/muse/widgets')
-rw-r--r--muse2/muse/widgets/canvas.cpp11
-rw-r--r--muse2/muse/widgets/configmidifilebase.ui25
-rw-r--r--muse2/muse/widgets/genset.cpp13
-rw-r--r--muse2/muse/widgets/genset.h1
-rw-r--r--muse2/muse/widgets/gensetbase.ui71
-rw-r--r--muse2/muse/widgets/mtrackinfo.cpp25
-rw-r--r--muse2/muse/widgets/musewidgetsplug.cpp13
7 files changed, 117 insertions, 42 deletions
diff --git a/muse2/muse/widgets/canvas.cpp b/muse2/muse/widgets/canvas.cpp
index 41c5f4a4..9a1935a3 100644
--- a/muse2/muse/widgets/canvas.cpp
+++ b/muse2/muse/widgets/canvas.cpp
@@ -750,11 +750,6 @@ void Canvas::viewMousePressEvent(QMouseEvent* event)
switch (_tool) {
case PointerTool:
if (curItem) {
- if (curItem->part() != curPart) {
- curPart = curItem->part();
- curPartId = curPart->sn();
- curPartChanged();
- }
itemPressed(curItem);
// Changed by T356. Alt is default reserved for moving the whole window in KDE. Changed to Shift-Alt.
// Hmm, nope, shift-alt is also reserved sometimes. Must find a way to bypass,
@@ -1226,6 +1221,12 @@ void Canvas::viewMouseReleaseEvent(QMouseEvent* event)
case DRAG_MOVE_START:
case DRAG_COPY_START:
case DRAG_CLONE_START:
+ if (curItem->part() != curPart) {
+ curPart = curItem->part();
+ curPartId = curPart->sn();
+ curPartChanged();
+ }
+
if (!ctrl)
deselectAll();
diff --git a/muse2/muse/widgets/configmidifilebase.ui b/muse2/muse/widgets/configmidifilebase.ui
index ca64f2d8..3eb7063e 100644
--- a/muse2/muse/widgets/configmidifilebase.ui
+++ b/muse2/muse/widgets/configmidifilebase.ui
@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>548</width>
- <height>353</height>
+ <width>546</width>
+ <height>367</height>
</rect>
</property>
<property name="windowTitle">
@@ -42,6 +42,27 @@
</property>
</widget>
</item>
+ <item row="1" column="0">
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QRadioButton" name="newDrumsCheckbox">
+ <property name="text">
+ <string>Use new-style drum tracks</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="oldDrumsCheckbox">
+ <property name="text">
+ <string>Use old-style drum tracks</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
</layout>
</widget>
</item>
diff --git a/muse2/muse/widgets/genset.cpp b/muse2/muse/widgets/genset.cpp
index ec2c8637..df7dea78 100644
--- a/muse2/muse/widgets/genset.cpp
+++ b/muse2/muse/widgets/genset.cpp
@@ -65,6 +65,13 @@ GlobalSettingsConfig::GlobalSettingsConfig(QWidget* parent)
startSongGroup->addButton(startLastButton, 0);
startSongGroup->addButton(startEmptyButton, 1);
startSongGroup->addButton(startSongButton, 2);
+
+ recDrumGroup = new QButtonGroup(this);
+ recDrumGroup->addButton(recordAllButton, MusECore::REC_ALL);
+ recDrumGroup->addButton(dontRecHiddenButton, MusECore::DONT_REC_HIDDEN);
+ recDrumGroup->addButton(dontRecMutedButton, MusECore::DONT_REC_MUTED);
+ recDrumGroup->addButton(dontRecBothButton, MusECore::DONT_REC_MUTED_OR_HIDDEN);
+
for (unsigned i = 0; i < sizeof(rtcResolutions)/sizeof(*rtcResolutions); ++i) {
if (rtcResolutions[i] == MusEGlobal::config.rtcTicks) {
rtcResolutionSelect->setCurrentIndex(i);
@@ -124,6 +131,8 @@ Shorter periods are desirable.</string>
startSongEntry->setText(MusEGlobal::config.startSong);
startSongGroup->button(MusEGlobal::config.startMode)->setChecked(true);
+ recDrumGroup->button(MusEGlobal::config.newDrumRecordCondition)->setChecked(true);
+
showTransport->setChecked(MusEGlobal::config.transportVisible);
showBigtime->setChecked(MusEGlobal::config.bigTimeVisible);
//showMixer->setChecked(MusEGlobal::config.mixerVisible);
@@ -269,6 +278,8 @@ void GlobalSettingsConfig::updateSettings()
startSongEntry->setText(MusEGlobal::config.startSong);
startSongGroup->button(MusEGlobal::config.startMode)->setChecked(true);
+ recDrumGroup->button(MusEGlobal::config.newDrumRecordCondition)->setChecked(true);
+
showTransport->setChecked(MusEGlobal::config.transportVisible);
showBigtime->setChecked(MusEGlobal::config.bigTimeVisible);
//showMixer->setChecked(MusEGlobal::config.mixerVisible);
@@ -366,6 +377,8 @@ void GlobalSettingsConfig::apply()
MusEGlobal::config.startSong = startSongEntry->text();
MusEGlobal::config.startMode = startSongGroup->checkedId();
+ MusEGlobal::config.newDrumRecordCondition = MusECore::newDrumRecordCondition_t(recDrumGroup->checkedId());
+
int das = dummyAudioSize->currentIndex();
MusEGlobal::config.dummyAudioBufSize = dummyAudioBufSizes[das];
MusEGlobal::config.dummyAudioSampleRate = dummyAudioRate->value();
diff --git a/muse2/muse/widgets/genset.h b/muse2/muse/widgets/genset.h
index b076a27f..53f5c2c1 100644
--- a/muse2/muse/widgets/genset.h
+++ b/muse2/muse/widgets/genset.h
@@ -62,6 +62,7 @@ class GlobalSettingsConfig : public QDialog, public Ui::GlobalSettingsDialogBase
protected:
void showEvent(QShowEvent*);
QButtonGroup *startSongGroup;
+ QButtonGroup *recDrumGroup;
std::list<MdiSettings*> mdisettings;
public:
diff --git a/muse2/muse/widgets/gensetbase.ui b/muse2/muse/widgets/gensetbase.ui
index 124ee72a..1abc3cd1 100644
--- a/muse2/muse/widgets/gensetbase.ui
+++ b/muse2/muse/widgets/gensetbase.ui
@@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>556</width>
- <height>527</height>
+ <height>552</height>
</rect>
</property>
<property name="windowTitle">
@@ -1024,13 +1024,7 @@ Adjusts responsiveness of audio controls and
<attribute name="title">
<string>Midi</string>
</attribute>
- <layout class="QVBoxLayout">
- <property name="spacing">
- <number>6</number>
- </property>
- <property name="margin">
- <number>11</number>
- </property>
+ <layout class="QVBoxLayout" name="verticalLayout_7">
<item>
<widget class="QGroupBox" name="GroupBox2">
<property name="title">
@@ -1208,22 +1202,59 @@ Adjusts responsiveness of audio controls and
</item>
</widget>
</item>
- <item row="3" column="1">
- <spacer name="verticalSpacer_3">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox_3">
+ <property name="title">
+ <string>Record new style drum tracks</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_5">
+ <item>
+ <widget class="QRadioButton" name="recordAllButton">
+ <property name="text">
+ <string>Record all instruments</string>
</property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>40</height>
- </size>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="dontRecHiddenButton">
+ <property name="text">
+ <string>Don't record hidden instruments</string>
</property>
- </spacer>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="dontRecMutedButton">
+ <property name="text">
+ <string>Don't record muted instruments</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="dontRecBothButton">
+ <property name="text">
+ <string>Don't record hidden or muted instruments</string>
+ </property>
+ </widget>
</item>
</layout>
</widget>
</item>
+ <item>
+ <spacer name="verticalSpacer_3">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>191</width>
+ <height>166</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
</layout>
</widget>
<widget class="QWidget" name="tab3">
@@ -1513,8 +1544,8 @@ left button behave like the middle button in such areas.</string>
<rect>
<x>0</x>
<y>0</y>
- <width>512</width>
- <height>378</height>
+ <width>96</width>
+ <height>26</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_3">
diff --git a/muse2/muse/widgets/mtrackinfo.cpp b/muse2/muse/widgets/mtrackinfo.cpp
index a01fbd5f..f9d0e5a9 100644
--- a/muse2/muse/widgets/mtrackinfo.cpp
+++ b/muse2/muse/widgets/mtrackinfo.cpp
@@ -226,6 +226,7 @@ void MidiTrackInfo::heartBeat()
{
case MusECore::Track::MIDI:
case MusECore::Track::DRUM:
+ case MusECore::Track::NEW_DRUM:
{
MusECore::MidiTrack* track = (MusECore::MidiTrack*)selected;
@@ -354,7 +355,7 @@ void MidiTrackInfo::heartBeat()
else
{
MusECore::MidiInstrument* instr = mp->instrument();
- QString name = instr->getPatchName(outChannel, nprogram, MusEGlobal::song->mtype(), track->type() == MusECore::Track::DRUM);
+ QString name = instr->getPatchName(outChannel, nprogram, MusEGlobal::song->mtype(), track->isDrumTrack());
if(name.isEmpty())
{
const QString n("???");
@@ -400,7 +401,7 @@ void MidiTrackInfo::heartBeat()
//else
//{
MusECore::MidiInstrument* instr = mp->instrument();
- QString name = instr->getPatchName(outChannel, program, MusEGlobal::song->mtype(), track->type() == MusECore::Track::DRUM);
+ QString name = instr->getPatchName(outChannel, program, MusEGlobal::song->mtype(), track->isDrumTrack());
if(iPatch->text() != name)
iPatch->setText(name);
@@ -577,8 +578,12 @@ void MidiTrackInfo::setLabelText()
//pal.setColor(trackNameLabel->backgroundRole(), QColor(0, 160, 255)); // Med blue
if(track->type() == MusECore::Track::DRUM)
c = MusEGlobal::config.drumTrackLabelBg;
- else
+ else if (track->type() == MusECore::Track::MIDI)
c = MusEGlobal::config.midiTrackLabelBg;
+ else if (track->type() == MusECore::Track::NEW_DRUM)
+ c = MusEGlobal::config.newDrumTrackLabelBg;
+ else
+ printf("THIS SHOULD NEVER HAPPEN: track is not a MIDI track in MidiTrackInfo::setLabelText()!\n");
QLinearGradient gradient(trackNameLabel->geometry().topLeft(), trackNameLabel->geometry().bottomLeft());
//gradient.setColorAt(0, c.darker());
@@ -775,7 +780,7 @@ void MidiTrackInfo::iProgHBankChanged()
MusEGlobal::audio->msgPlayMidiEvent(&ev);
MusECore::MidiInstrument* instr = mp->instrument();
- iPatch->setText(instr->getPatchName(channel, program, MusEGlobal::song->mtype(), track->type() == MusECore::Track::DRUM));
+ iPatch->setText(instr->getPatchName(channel, program, MusEGlobal::song->mtype(), track->isDrumTrack()));
// updateTrackInfo();
}
@@ -853,7 +858,7 @@ void MidiTrackInfo::iProgLBankChanged()
MusEGlobal::audio->msgPlayMidiEvent(&ev);
MusECore::MidiInstrument* instr = mp->instrument();
- iPatch->setText(instr->getPatchName(channel, program, MusEGlobal::song->mtype(), track->type() == MusECore::Track::DRUM));
+ iPatch->setText(instr->getPatchName(channel, program, MusEGlobal::song->mtype(), track->isDrumTrack()));
// updateTrackInfo();
}
@@ -931,7 +936,7 @@ void MidiTrackInfo::iProgramChanged()
MusEGlobal::audio->msgPlayMidiEvent(&ev);
MusECore::MidiInstrument* instr = mp->instrument();
- iPatch->setText(instr->getPatchName(channel, program, MusEGlobal::song->mtype(), track->type() == MusECore::Track::DRUM));
+ iPatch->setText(instr->getPatchName(channel, program, MusEGlobal::song->mtype(), track->isDrumTrack()));
}
// updateTrackInfo();
@@ -1099,8 +1104,8 @@ void MidiTrackInfo::instrPopup()
//QMenu* pup = new QMenu;
PopupMenu* pup = new PopupMenu(true);
- instr->populatePatchPopup(pup, channel, MusEGlobal::song->mtype(), track->type() == MusECore::Track::DRUM);
- //populatePatchPopup(instr, pup, channel, MusEGlobal::song->mtype(), track->type() == MusECore::Track::DRUM);
+ instr->populatePatchPopup(pup, channel, MusEGlobal::song->mtype(), track->isDrumTrack());
+ //populatePatchPopup(instr, pup, channel, MusEGlobal::song->mtype(), track->isDrumTrack());
if(pup->actions().count() == 0)
{
@@ -1429,7 +1434,7 @@ void MidiTrackInfo::updateTrackInfo(int flags)
else
{
MusECore::MidiInstrument* instr = mp->instrument();
- iPatch->setText(instr->getPatchName(outChannel, nprogram, MusEGlobal::song->mtype(), track->type() == MusECore::Track::DRUM));
+ iPatch->setText(instr->getPatchName(outChannel, nprogram, MusEGlobal::song->mtype(), track->isDrumTrack()));
}
}
else
@@ -1445,7 +1450,7 @@ void MidiTrackInfo::updateTrackInfo(int flags)
//else
//{
MusECore::MidiInstrument* instr = mp->instrument();
- iPatch->setText(instr->getPatchName(outChannel, program, MusEGlobal::song->mtype(), track->type() == MusECore::Track::DRUM));
+ iPatch->setText(instr->getPatchName(outChannel, program, MusEGlobal::song->mtype(), track->isDrumTrack()));
int hb = ((program >> 16) & 0xff) + 1;
if (hb == 0x100)
diff --git a/muse2/muse/widgets/musewidgetsplug.cpp b/muse2/muse/widgets/musewidgetsplug.cpp
index 8fc29d45..5267436f 100644
--- a/muse2/muse/widgets/musewidgetsplug.cpp
+++ b/muse2/muse/widgets/musewidgetsplug.cpp
@@ -131,6 +131,7 @@ MusEGlobal::GlobalConfigValues config = {
QColor(0, 160, 255), // midiTrackLabelBg; // Med blue
QColor(0, 160, 255), // drumTrackLabelBg; // Med blue
+ QColor(0, 160, 255), // newDrumTrackLabelBg; // Med blue
Qt::magenta, // waveTrackLabelBg;
Qt::green, // outputTrackLabelBg;
Qt::red, // inputTrackLabelBg;
@@ -140,6 +141,7 @@ MusEGlobal::GlobalConfigValues config = {
QColor(220, 220, 220), // midiTrackBg;
QColor(220, 220, 220), // drumTrackBg;
+ QColor(220, 220, 220), // newDrumTrackBg;
QColor(220, 220, 220), // waveTrackBg;
QColor(189, 220, 193), // outputTrackBg;
QColor(189, 220, 193), // inputTrackBg;
@@ -166,6 +168,7 @@ MusEGlobal::GlobalConfigValues config = {
false, // midi export file 2 byte timesigs instead of 4
true, // optimize midi export file note offs
true, // Split imported tracks into multiple parts.
+ true, // importMidiNewStyleDrum
1, // startMode
QString(""), // start song path
384, // gui division
@@ -177,13 +180,13 @@ MusEGlobal::GlobalConfigValues config = {
QString("Mixer A"),
QRect(0, 0, 300, 500), // Mixer1
true, true, true, true,
- true, true, true, true
+ true, true, true, true, true
},
{
QString("Mixer B"),
QRect(200, 200, 300, 500), // Mixer2
true, true, true, true,
- true, true, true, true
+ true, true, true, true, true
},
true, // TransportVisible;
false, // BigTimeVisible;
@@ -207,17 +210,17 @@ MusEGlobal::GlobalConfigValues config = {
true, // showDidYouKnow
false, // vstInPlace Enable VST in-place processing
44100, // Dummy audio preferred sample rate
- 512 // Dummy audio buffer size
+ 512, // Dummy audio buffer size
QString("./"), // projectBaseFolder
true, // projectStoreInFolder
true, // useProjectSaveDialog
64, // minControlProcessPeriod
false, // popupsDefaultStayOpen
false, // leftMouseButtonCanDecrease
- false, // rangeMarkerWithoutMMBCheckBox
+ false, // rangeMarkerWithoutMMB
+ MusECore::DONT_REC_MUTED_OR_HIDDEN,
true, // addHiddenTracks
true // unhideTracks
-
};
//---------------------------------------------------------