diff options
author | be_ <be.0@gmx.com> | 2016-12-24 21:22:28 -0600 |
---|---|---|
committer | be_ <be.0@gmx.com> | 2017-01-19 14:39:44 -0600 |
commit | d7b45ea5466e3847e8a76e0ac9899db58f1cd10d (patch) | |
tree | bf5c8de588e778696347d297f4aca0a84cb576f6 /src/effects/effectchainmanager.cpp | |
parent | 17ccb78da5df237d5810f7645a1eaa4dcb8fb7ff (diff) |
implement effect saving to/loading from XML
Diffstat (limited to 'src/effects/effectchainmanager.cpp')
-rw-r--r-- | src/effects/effectchainmanager.cpp | 48 |
1 files changed, 31 insertions, 17 deletions
diff --git a/src/effects/effectchainmanager.cpp b/src/effects/effectchainmanager.cpp index f37bf759dc..315209cf48 100644 --- a/src/effects/effectchainmanager.cpp +++ b/src/effects/effectchainmanager.cpp @@ -128,7 +128,6 @@ EffectChainPointer EffectChainManager::getPrevEffectChain(EffectChainPointer pEf } bool EffectChainManager::saveEffectChains() { - //qDebug() << debugString() << "saveEffectChains"; QDomDocument doc("MixxxEffects"); QString blank = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" @@ -137,13 +136,13 @@ bool EffectChainManager::saveEffectChains() { doc.setContent(blank); QDomElement rootNode = doc.documentElement(); - - QDomElement chains = doc.createElement("EffectChains"); - foreach (EffectChainPointer pChain, m_effectChains) { - QDomElement chain = pChain->toXML(&doc); - chains.appendChild(chain); + foreach(EffectRackPointer pRack, m_standardEffectRacks) { + rootNode.appendChild(pRack->toXML(&doc)); } - rootNode.appendChild(chains); + // TODO? Save QuickEffects in effects.xml too, or keep stored in ConfigObjects? +// foreach(EffectRackPointer pRack, m_quickEffectRacks) { +// rootNode.appendChild(pRack->toXML(&doc)); +// } QDir settingsPath(m_pConfig->getSettingsPath()); @@ -164,37 +163,52 @@ bool EffectChainManager::saveEffectChains() { return true; } -bool EffectChainManager::loadEffectChains() { - //qDebug() << debugString() << "loadEffectChains"; +QList<EffectChainPointer> EffectChainManager::loadEffectChains() { + QList<EffectChainPointer> loadedChains; QDir settingsPath(m_pConfig->getSettingsPath()); QFile file(settingsPath.absoluteFilePath("effects.xml")); if (!file.open(QIODevice::ReadOnly)) { - return false; + EffectChainPointer pEmptyChain; + for (int i = 0; i < 4; ++i) { + pEmptyChain = EffectChainPointer(new EffectChain(m_pEffectsManager, + QString(), + EffectChainPointer())); + loadedChains.append(pEmptyChain); + } + return loadedChains; } QDomDocument doc; if (!doc.setContent(&file)) { file.close(); - return false; + EffectChainPointer pEmptyChain; + for (int i = 0; i < 4; ++i) { + pEmptyChain = EffectChainPointer(new EffectChain(m_pEffectsManager, + QString(), + EffectChainPointer())); + loadedChains.append(pEmptyChain); + } + return loadedChains; } file.close(); QDomElement root = doc.documentElement(); + QDomElement rackElement = XmlParse::selectElement(root, "Rack"); + QDomElement chainsElement = XmlParse::selectElement(rackElement, "Chains"); + QDomNodeList chainsList = chainsElement.elementsByTagName("EffectChain"); - QDomElement effectChains = XmlParse::selectElement(root, "EffectChains"); - QDomNodeList chains = effectChains.childNodes(); - - for (int i = 0; i < chains.count(); ++i) { - QDomNode chainNode = chains.at(i); + for (int i = 0; i < chainsList.count(); ++i) { + QDomNode chainNode = chainsList.at(i); if (chainNode.isElement()) { EffectChainPointer pChain = EffectChain::fromXML( m_pEffectsManager, chainNode.toElement()); + loadedChains.append(pChain); m_effectChains.append(pChain); } } - return true; + return loadedChains; } |