From c836582af5661f1ca0e7d93c2674c947462faeb0 Mon Sep 17 00:00:00 2001 From: Florian Jung Date: Sun, 25 Dec 2011 19:13:12 +0000 Subject: added config option for switching between "prefer old/new drumtracks" and "only show new/old drumtracks". defaults to "prefer new" --- muse2/muse/arranger/arrangerview.cpp | 2 +- muse2/muse/conf.cpp | 3 ++ muse2/muse/gconfig.cpp | 3 +- muse2/muse/gconfig.h | 8 ++++ muse2/muse/helper.cpp | 46 ++++++++++++++++------- muse2/muse/helper.h | 2 +- muse2/muse/widgets/genset.cpp | 26 +++++++++++++ muse2/muse/widgets/gensetbase.ui | 67 ++++++++++++++++++++++++++-------- muse2/muse/widgets/musewidgetsplug.cpp | 3 +- 9 files changed, 128 insertions(+), 32 deletions(-) diff --git a/muse2/muse/arranger/arrangerview.cpp b/muse2/muse/arranger/arrangerview.cpp index 1bb45863..7b8abb63 100644 --- a/muse2/muse/arranger/arrangerview.cpp +++ b/muse2/muse/arranger/arrangerview.cpp @@ -641,7 +641,7 @@ void ArrangerView::clearScoreMenuMappers() void ArrangerView::populateAddTrack() { - QActionGroup *grp = MusEGui::populateAddTrack(addTrack, true); + QActionGroup *grp = MusEGui::populateAddTrack(addTrack, true, true); connect(addTrack, SIGNAL(triggered(QAction *)), SLOT(addNewTrack(QAction *))); trackMidiAction = grp->actions()[0]; diff --git a/muse2/muse/conf.cpp b/muse2/muse/conf.cpp index 5376734c..e9ec1396 100644 --- a/muse2/muse/conf.cpp +++ b/muse2/muse/conf.cpp @@ -969,6 +969,8 @@ void readConfiguration(Xml& xml, bool readOnlySequencer, bool doReadGlobalConfig MusEGlobal::config.rangeMarkerWithoutMMB = xml.parseInt(); else if (tag == "addHiddenTracks") MusEGlobal::config.addHiddenTracks = xml.parseInt(); + else if (tag == "drumTrackPreference") + MusEGlobal::config.drumTrackPreference = (MusEGlobal::drumTrackPreference_t) xml.parseInt(); else if (tag == "unhideTracks") MusEGlobal::config.unhideTracks = xml.parseInt(); @@ -1312,6 +1314,7 @@ void MusE::writeGlobalConfiguration(int level, MusECore::Xml& xml) const xml.intTag(level, "unhideTracks", MusEGlobal::config.unhideTracks); xml.intTag(level, "addHiddenTracks", MusEGlobal::config.addHiddenTracks); + xml.intTag(level, "drumTrackPreference", MusEGlobal::config.drumTrackPreference); xml.intTag(level, "waveTracksVisible", MusECore::WaveTrack::visible()); xml.intTag(level, "auxTracksVisible", MusECore::AudioAux::visible()); diff --git a/muse2/muse/gconfig.cpp b/muse2/muse/gconfig.cpp index 843c2278..68ac6315 100644 --- a/muse2/muse/gconfig.cpp +++ b/muse2/muse/gconfig.cpp @@ -192,7 +192,8 @@ GlobalConfigValues config = { false, // rangeMarkerWithoutMMB MusECore::DONT_REC_MUTED_OR_HIDDEN, true, // addHiddenTracks - true // unhideTracks + true, // unhideTracks + MusEGlobal::PREFER_NEW // drumTrackPreference }; //GlobalConfigValues globalConfig = config; diff --git a/muse2/muse/gconfig.h b/muse2/muse/gconfig.h index f611687f..4ba9efea 100644 --- a/muse2/muse/gconfig.h +++ b/muse2/muse/gconfig.h @@ -47,6 +47,13 @@ enum newDrumRecordCondition_t namespace MusEGlobal { +enum drumTrackPreference_t +{ + PREFER_OLD = 0, + PREFER_NEW = 1, + ONLY_OLD = 2, + ONLY_NEW = 3 +}; //--------------------------------------------------------- // MixerConfig //--------------------------------------------------------- @@ -180,6 +187,7 @@ struct GlobalConfigValues { MusECore::newDrumRecordCondition_t newDrumRecordCondition; bool addHiddenTracks; bool unhideTracks; + drumTrackPreference_t drumTrackPreference; }; diff --git a/muse2/muse/helper.cpp b/muse2/muse/helper.cpp index a0d85133..05cecc08 100644 --- a/muse2/muse/helper.cpp +++ b/muse2/muse/helper.cpp @@ -238,7 +238,7 @@ QMenu* populateAddSynth(QWidget* parent) // this is also used in "mixer" //--------------------------------------------------------- -QActionGroup* populateAddTrack(QMenu* addTrack, bool populateAll) +QActionGroup* populateAddTrack(QMenu* addTrack, bool populateAll, bool evenIgnoreDrumPreference) { QActionGroup* grp = new QActionGroup(addTrack); if (MusEGlobal::config.addHiddenTracks) @@ -249,18 +249,38 @@ QActionGroup* populateAddTrack(QMenu* addTrack, bool populateAll) qApp->translate("@default", QT_TRANSLATE_NOOP("@default", "Add Midi Track"))); midi->setData(MusECore::Track::MIDI); grp->addAction(midi); - } - if (populateAll || MusECore::MidiTrack::visible()) { - QAction* drum = addTrack->addAction(QIcon(*addtrack_drumtrackIcon), - qApp->translate("@default", QT_TRANSLATE_NOOP("@default", "Add Drum Track"))); - drum->setData(MusECore::Track::DRUM); - grp->addAction(drum); - } - if (populateAll || MusECore::MidiTrack::visible()) { - QAction* newdrum = addTrack->addAction(QIcon(*addtrack_drumtrackIcon), - qApp->translate("@default", QT_TRANSLATE_NOOP("@default", "Add New Style Drum Track"))); - newdrum->setData(MusECore::Track::NEW_DRUM); - grp->addAction(newdrum); + + + if (!evenIgnoreDrumPreference && (MusEGlobal::config.drumTrackPreference==MusEGlobal::PREFER_OLD || MusEGlobal::config.drumTrackPreference==MusEGlobal::ONLY_OLD)) + { + QAction* drum = addTrack->addAction(QIcon(*addtrack_drumtrackIcon), + qApp->translate("@default", QT_TRANSLATE_NOOP("@default", "Add Drum Track"))); + drum->setData(MusECore::Track::DRUM); + grp->addAction(drum); + } + + if (!evenIgnoreDrumPreference && (MusEGlobal::config.drumTrackPreference==MusEGlobal::PREFER_NEW || MusEGlobal::config.drumTrackPreference==MusEGlobal::ONLY_NEW)) + { + QAction* newdrum = addTrack->addAction(QIcon(*addtrack_drumtrackIcon), + qApp->translate("@default", QT_TRANSLATE_NOOP("@default", "Add Drum Track"))); + newdrum->setData(MusECore::Track::NEW_DRUM); + grp->addAction(newdrum); + } + + if (evenIgnoreDrumPreference || MusEGlobal::config.drumTrackPreference==MusEGlobal::PREFER_NEW) + { + QAction* drum = addTrack->addAction(QIcon(*addtrack_drumtrackIcon), + qApp->translate("@default", QT_TRANSLATE_NOOP("@default", "Add Old Style Drum Track"))); + drum->setData(MusECore::Track::DRUM); + grp->addAction(drum); + } + if (evenIgnoreDrumPreference || MusEGlobal::config.drumTrackPreference==MusEGlobal::PREFER_OLD) + { + QAction* newdrum = addTrack->addAction(QIcon(*addtrack_drumtrackIcon), + qApp->translate("@default", QT_TRANSLATE_NOOP("@default", "Add New Style Drum Track"))); + newdrum->setData(MusECore::Track::NEW_DRUM); + grp->addAction(newdrum); + } } if (populateAll || MusECore::WaveTrack::visible()) { QAction* wave = addTrack->addAction(QIcon(*addtrack_wavetrackIcon), diff --git a/muse2/muse/helper.h b/muse2/muse/helper.h index ad531fae..8ef39346 100644 --- a/muse2/muse/helper.h +++ b/muse2/muse/helper.h @@ -53,7 +53,7 @@ QSet parts_at_tick(unsigned tick, const QSet& tracks); namespace MusEGui { QMenu* populateAddSynth(QWidget* parent); -QActionGroup* populateAddTrack(QMenu* addTrack, bool populateAll=false); +QActionGroup* populateAddTrack(QMenu* addTrack, bool populateAll=false, bool evenIgnoreDrumPreference=false); QStringList localizedStringListFromCharArray(const char** array, const char* context); QString getFilterExtension(const QString &filter); QString browseProjectFolder(QWidget* parent = 0); diff --git a/muse2/muse/widgets/genset.cpp b/muse2/muse/widgets/genset.cpp index df7dea78..422f5110 100644 --- a/muse2/muse/widgets/genset.cpp +++ b/muse2/muse/widgets/genset.cpp @@ -184,6 +184,14 @@ Shorter periods are desirable. addHiddenCheckBox->setChecked(MusEGlobal::config.addHiddenTracks); unhideTracksCheckBox->setChecked(MusEGlobal::config.unhideTracks); + + switch (MusEGlobal::config.drumTrackPreference) + { + case MusEGlobal::ONLY_NEW: onlyNewDrumBtn->setChecked(true); break; + case MusEGlobal::ONLY_OLD: onlyOldDrumBtn->setChecked(true); break; + case MusEGlobal::PREFER_NEW: preferNewDrumBtn->setChecked(true); break; + case MusEGlobal::PREFER_OLD: preferOldDrumBtn->setChecked(true); break; + } //updateSettings(); // TESTING @@ -332,6 +340,14 @@ void GlobalSettingsConfig::updateSettings() addHiddenCheckBox->setChecked(MusEGlobal::config.addHiddenTracks); unhideTracksCheckBox->setChecked(MusEGlobal::config.unhideTracks); + switch (MusEGlobal::config.drumTrackPreference) + { + case MusEGlobal::ONLY_NEW: onlyNewDrumBtn->setChecked(true); break; + case MusEGlobal::ONLY_OLD: onlyOldDrumBtn->setChecked(true); break; + case MusEGlobal::PREFER_NEW: preferNewDrumBtn->setChecked(true); break; + case MusEGlobal::PREFER_OLD: preferOldDrumBtn->setChecked(true); break; + } + updateMdiSettings(); } @@ -474,6 +490,16 @@ void GlobalSettingsConfig::apply() MusEGlobal::muse->setHeartBeat(); // set guiRefresh MusEGlobal::midiSeq->msgSetRtc(); // set midi tick rate + if (onlyNewDrumBtn->isChecked()) + MusEGlobal::config.drumTrackPreference=MusEGlobal::ONLY_NEW; + else if (onlyOldDrumBtn->isChecked()) + MusEGlobal::config.drumTrackPreference=MusEGlobal::ONLY_OLD; + else if (preferOldDrumBtn->isChecked()) + MusEGlobal::config.drumTrackPreference=MusEGlobal::PREFER_OLD; + else if (preferNewDrumBtn->isChecked()) + MusEGlobal::config.drumTrackPreference=MusEGlobal::PREFER_NEW; + + applyMdiSettings(); MusEGlobal::muse->changeConfig(true); // save settings diff --git a/muse2/muse/widgets/gensetbase.ui b/muse2/muse/widgets/gensetbase.ui index 1abc3cd1..aec753f1 100644 --- a/muse2/muse/widgets/gensetbase.ui +++ b/muse2/muse/widgets/gensetbase.ui @@ -1442,19 +1442,6 @@ left button behave like the middle button in such areas. - - - - Qt::Vertical - - - - 20 - 40 - - - - @@ -1486,6 +1473,56 @@ left button behave like the middle button in such areas. + + + + Drum tracks + + + + + + Only offer old-style drumtracks + + + + + + + Only offer new-style drumtracks + + + + + + + Prefer old-style drumtracks + + + + + + + Prefer new-style drumtracks + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + @@ -1544,8 +1581,8 @@ left button behave like the middle button in such areas. 0 0 - 96 - 26 + 486 + 375 diff --git a/muse2/muse/widgets/musewidgetsplug.cpp b/muse2/muse/widgets/musewidgetsplug.cpp index 5267436f..6cdc3812 100644 --- a/muse2/muse/widgets/musewidgetsplug.cpp +++ b/muse2/muse/widgets/musewidgetsplug.cpp @@ -220,7 +220,8 @@ MusEGlobal::GlobalConfigValues config = { false, // rangeMarkerWithoutMMB MusECore::DONT_REC_MUTED_OR_HIDDEN, true, // addHiddenTracks - true // unhideTracks + true, // unhideTracks + MusEGlobal::PREFER_NEW // drumTrackPreference }; //--------------------------------------------------------- -- cgit v1.2.3