Mercurial > hg > tony
diff src/Analyser.cpp @ 132:2abff42be385
Remember state of visibility & audibility between runs
author | Chris Cannam |
---|---|
date | Thu, 09 Jan 2014 17:20:15 +0000 |
parents | eae80729b665 |
children | c3b53a10c920 |
line wrap: on
line diff
--- a/src/Analyser.cpp Thu Jan 09 16:42:14 2014 +0000 +++ b/src/Analyser.cpp Thu Jan 09 17:20:15 2014 +0000 @@ -146,10 +146,38 @@ } } + loadState(Audio); + loadState(PitchTrack); + loadState(Notes); + emit layersChanged(); } void +Analyser::saveState(Component c) const +{ + bool v = isVisible(c); + bool a = isAudible(c); + QSettings settings; + settings.beginGroup("Analyser"); + settings.setValue(QString("Visibility %1").arg(int(c)), v); + settings.setValue(QString("Audibility %1").arg(int(c)), a); + settings.endGroup(); +} + +void +Analyser::loadState(Component c) +{ + QSettings settings; + settings.beginGroup("Analyser"); + bool v = settings.value(QString("Visibility %1").arg(int(c)), true).toBool(); + bool a = settings.value(QString("Audibility %1").arg(int(c)), true).toBool(); + settings.endGroup(); + setVisible(c, v); + setAudible(c, a); +} + +void Analyser::setIntelligentActions(bool on) { std::cerr << "toggle setIntelligentActions " << on << std::endl; @@ -177,6 +205,7 @@ if (m_layers[c]) { m_layers[c]->setLayerDormant(m_pane, !v); m_pane->layerParametersChanged(); + saveState(c); } } @@ -184,10 +213,8 @@ Analyser::isAudible(Component c) const { if (m_layers[c]) { - PlayParameters *params = m_layers[c]->getPlayParameters(); if (!params) return false; - return params->isPlayAudible(); } else { return false; @@ -198,11 +225,10 @@ Analyser::setAudible(Component c, bool a) { if (m_layers[c]) { - PlayParameters *params = m_layers[c]->getPlayParameters(); if (!params) return; - params->setPlayAudible(a); + saveState(c); } }