Make preset saving oblivious to mute/solo/muteBeforeSolo states (#6214)
This commit is contained in:
@@ -186,6 +186,11 @@ public:
|
||||
{
|
||||
return m_hasColor;
|
||||
}
|
||||
|
||||
bool isMutedBeforeSolo() const
|
||||
{
|
||||
return m_mutedBeforeSolo;
|
||||
}
|
||||
|
||||
BoolModel* getMutedModel();
|
||||
|
||||
@@ -196,6 +201,11 @@ public slots:
|
||||
emit nameChanged();
|
||||
}
|
||||
|
||||
void setMutedBeforeSolo(const bool muted)
|
||||
{
|
||||
m_mutedBeforeSolo = muted;
|
||||
}
|
||||
|
||||
void toggleSolo();
|
||||
|
||||
void setColor(const QColor& c);
|
||||
@@ -209,6 +219,7 @@ private:
|
||||
|
||||
protected:
|
||||
BoolModel m_mutedModel;
|
||||
|
||||
private:
|
||||
BoolModel m_soloModel;
|
||||
bool m_mutedBeforeSolo;
|
||||
@@ -230,7 +241,6 @@ signals:
|
||||
void nameChanged();
|
||||
void trackContentObjectAdded( TrackContentObject * );
|
||||
void colorChanged();
|
||||
|
||||
} ;
|
||||
|
||||
|
||||
|
||||
@@ -387,20 +387,20 @@ void InstrumentTrackWindow::modelChanged()
|
||||
|
||||
void InstrumentTrackWindow::saveSettingsBtnClicked()
|
||||
{
|
||||
FileDialog sfd( this, tr( "Save preset" ), "", tr( "XML preset file (*.xpf)" ) );
|
||||
FileDialog sfd(this, tr("Save preset"), "", tr("XML preset file (*.xpf)"));
|
||||
|
||||
QString presetRoot = ConfigManager::inst()->userPresetsDir();
|
||||
if( !QDir( presetRoot ).exists() )
|
||||
if(!QDir(presetRoot).exists())
|
||||
{
|
||||
QDir().mkdir( presetRoot );
|
||||
QDir().mkdir(presetRoot);
|
||||
}
|
||||
if( !QDir( presetRoot + m_track->instrumentName() ).exists() )
|
||||
if(!QDir(presetRoot + m_track->instrumentName()).exists())
|
||||
{
|
||||
QDir( presetRoot ).mkdir( m_track->instrumentName() );
|
||||
QDir(presetRoot).mkdir(m_track->instrumentName());
|
||||
}
|
||||
|
||||
sfd.setAcceptMode( FileDialog::AcceptSave );
|
||||
sfd.setDirectory( presetRoot + m_track->instrumentName() );
|
||||
sfd.setAcceptMode(FileDialog::AcceptSave);
|
||||
sfd.setDirectory(presetRoot + m_track->instrumentName());
|
||||
sfd.setFileMode( FileDialog::AnyFile );
|
||||
QString fname = m_track->name();
|
||||
sfd.selectFile(fname.remove(QRegExp(FILENAME_FILTER)));
|
||||
@@ -410,11 +410,17 @@ void InstrumentTrackWindow::saveSettingsBtnClicked()
|
||||
!sfd.selectedFiles().isEmpty() &&
|
||||
!sfd.selectedFiles().first().isEmpty() )
|
||||
{
|
||||
DataFile dataFile( DataFile::InstrumentTrackSettings );
|
||||
DataFile dataFile(DataFile::InstrumentTrackSettings);
|
||||
QDomElement& content(dataFile.content());
|
||||
|
||||
m_track->setSimpleSerializing();
|
||||
m_track->saveSettings( dataFile, dataFile.content() );
|
||||
m_track->saveSettings(dataFile, content);
|
||||
//We don't want to save muted & solo settings when we're saving a preset
|
||||
content.setAttribute("muted", 0);
|
||||
content.setAttribute("solo", 0);
|
||||
content.setAttribute("mutedBeforeSolo", 0);
|
||||
QString f = sfd.selectedFiles()[0];
|
||||
dataFile.writeFile( f );
|
||||
dataFile.writeFile(f);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -986,8 +986,18 @@ void InstrumentTrack::replaceInstrument(DataFile dataFile)
|
||||
|
||||
InstrumentTrack::removeMidiPortNode(dataFile);
|
||||
setSimpleSerializing();
|
||||
|
||||
//Replacing an instrument shouldn't change the solo/mute state.
|
||||
bool oldMute = isMuted();
|
||||
bool oldSolo = isSolo();
|
||||
bool oldMutedBeforeSolo = isMutedBeforeSolo();
|
||||
|
||||
loadSettings(dataFile.content().toElement());
|
||||
|
||||
setMuted(oldMute);
|
||||
setSolo(oldSolo);
|
||||
setMutedBeforeSolo(oldMutedBeforeSolo);
|
||||
|
||||
m_effectChannelModel.setValue(effectChannel);
|
||||
Engine::getSong()->setModified();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user