diff options
-rw-r--r-- | src/skin/legacyskinparser.cpp | 121 | ||||
-rw-r--r-- | src/widget/weffect.cpp | 49 | ||||
-rw-r--r-- | src/widget/weffect.h | 14 | ||||
-rw-r--r-- | src/widget/weffectchain.cpp | 37 | ||||
-rw-r--r-- | src/widget/weffectchain.h | 13 | ||||
-rw-r--r-- | src/widget/weffectparameter.cpp | 61 | ||||
-rw-r--r-- | src/widget/weffectparameter.h | 16 |
7 files changed, 176 insertions, 135 deletions
diff --git a/src/skin/legacyskinparser.cpp b/src/skin/legacyskinparser.cpp index f5c71d3e31..bab019cc77 100644 --- a/src/skin/legacyskinparser.cpp +++ b/src/skin/legacyskinparser.cpp @@ -1360,34 +1360,7 @@ const char* LegacySkinParser::safeChannelString(QString channelStr) { } QWidget* LegacySkinParser::parseEffectChainName(QDomElement node) { - WEffectChain* pEffectChain = new WEffectChain(m_pParent); - - bool rackOk = false; - int rackNumber = m_pContext->selectInt(node, "EffectRack", &rackOk) - 1; - bool chainOk = false; - int chainNumber = m_pContext->selectInt(node, "EffectChain", &chainOk) - 1; - - // Tolerate no <EffectRack>. Use the default one. - if (!rackOk) { - rackNumber = 0; - } - - if (!chainOk) { - qDebug() << "EffectChainName node had invalid EffectChain number:" << chainNumber; - } - - EffectRackPointer pRack = m_pEffectsManager->getEffectRack(rackNumber); - if (pRack) { - EffectChainSlotPointer pChainSlot = pRack->getEffectChainSlot(chainNumber); - if (pChainSlot) { - pEffectChain->setEffectChainSlot(pChainSlot); - } else { - qDebug() << "EffectChainName node had invalid EffectChain number:" << chainNumber; - } - } else { - qDebug() << "EffectChainName node had invalid EffectRack number:" << rackNumber; - } - + WEffectChain* pEffectChain = new WEffectChain(m_pParent, m_pEffectsManager); // NOTE(rryan): To support color schemes, the WWidget::setup() call must // come first. This is because WNumber/WLabel both change the palette based // on the node and setupWidget() will set the widget style. If the style is @@ -1403,45 +1376,7 @@ QWidget* LegacySkinParser::parseEffectChainName(QDomElement node) { } QWidget* LegacySkinParser::parseEffectName(QDomElement node) { - WEffect* pEffect = new WEffect(m_pParent); - - bool rackOk = false; - int rackNumber = m_pContext->selectInt(node, "EffectRack", &rackOk) - 1; - bool chainOk = false; - int chainNumber = m_pContext->selectInt(node, "EffectChain", &chainOk) - 1; - bool effectOk = false; - int effectNumber = m_pContext->selectInt(node, "Effect", &effectOk) - 1; - - // Tolerate no <EffectRack>. Use the default one. - if (!rackOk) { - rackNumber = 0; - } - - if (!chainOk) { - qDebug() << "EffectName node had invalid EffectChain number:" << chainNumber; - } - - if (!effectOk) { - qDebug() << "EffectName node had invalid Effect number:" << effectNumber; - } - - EffectRackPointer pRack = m_pEffectsManager->getEffectRack(rackNumber); - if (pRack) { - EffectChainSlotPointer pChainSlot = pRack->getEffectChainSlot(chainNumber); - if (pChainSlot) { - EffectSlotPointer pEffectSlot = pChainSlot->getEffectSlot(effectNumber); - if (pEffectSlot) { - pEffect->setEffectSlot(pEffectSlot); - } else { - qDebug() << "EffectName node had invalid Effect number:" << effectNumber; - } - } else { - qDebug() << "EffectName node had invalid EffectChain number:" << chainNumber; - } - } else { - qDebug() << "EffectName node had invalid EffectRack number:" << rackNumber; - } - + WEffect* pEffect = new WEffect(m_pParent, m_pEffectsManager); // NOTE(rryan): To support color schemes, the WWidget::setup() call must // come first. This is because WNumber/WLabel both change the palette based // on the node and setupWidget() will set the widget style. If the style is @@ -1457,57 +1392,7 @@ QWidget* LegacySkinParser::parseEffectName(QDomElement node) { } QWidget* LegacySkinParser::parseEffectParameterName(QDomElement node) { - WEffectParameter* pEffectParameter = new WEffectParameter(m_pParent); - - bool rackOk = false; - int rackNumber = m_pContext->selectInt(node, "EffectRack", &rackOk) - 1; - bool chainOk = false; - int chainNumber = m_pContext->selectInt(node, "EffectChain", &chainOk) - 1; - bool effectOk = false; - int effectNumber = m_pContext->selectInt(node, "Effect", &effectOk) - 1; - bool parameterOk = false; - int parameterNumber = m_pContext->selectInt(node, "EffectParameter", ¶meterOk) - 1; - - // Tolerate no <EffectRack>. Use the default one. - if (!rackOk) { - rackNumber = 0; - } - - if (!chainOk) { - qDebug() << "EffectParameterName node had invalid EffectChain number:" << chainNumber; - } - - if (!effectOk) { - qDebug() << "EffectParameterName node had invalid Effect number:" << effectNumber; - } - - if (!parameterOk) { - qDebug() << "EffectParameterName node had invalid Parameter number:" << parameterNumber; - } - - EffectRackPointer pRack = m_pEffectsManager->getEffectRack(rackNumber); - if (pRack) { - EffectChainSlotPointer pChainSlot = pRack->getEffectChainSlot(chainNumber); - if (pChainSlot) { - EffectSlotPointer pEffectSlot = pChainSlot->getEffectSlot(effectNumber); - if (pEffectSlot) { - EffectParameterSlotPointer pParameterSlot = - pEffectSlot->getEffectParameterSlot(parameterNumber); - if (pParameterSlot) { - pEffectParameter->setEffectParameterSlot(pParameterSlot); - } else { - qDebug() << "EffectParameterName node had invalid Parameter number:" << parameterNumber; - } - } else { - qDebug() << "EffectParameterName node had invalid Effect number:" << effectNumber; - } - } else { - qDebug() << "EffectParameterName node had invalid EffectChain number:" << chainNumber; - } - } else { - qDebug() << "EffectParameterName node had invalid EffectRack number:" << rackNumber; - } - + WEffectParameter* pEffectParameter = new WEffectParameter(m_pParent, m_pEffectsManager); // NOTE(rryan): To support color schemes, the WWidget::setup() call must // come first. This is because WNumber/WLabel both change the palette based // on the node and setupWidget() will set the widget style. If the style is diff --git a/src/widget/weffect.cpp b/src/widget/weffect.cpp index 08aacd59b9..a9944ed83b 100644 --- a/src/widget/weffect.cpp +++ b/src/widget/weffect.cpp @@ -1,12 +1,57 @@ +#include <QtDebug> + #include "widget/weffect.h" -WEffect::WEffect(QWidget* pParent) - : WLabel(pParent) { +#include "effects/effectsmanager.h" + +WEffect::WEffect(QWidget* pParent, EffectsManager* pEffectsManager) + : WLabel(pParent), + m_pEffectsManager(pEffectsManager) { + effectUpdated(); } WEffect::~WEffect() { } +void WEffect::setup(QDomNode node, const SkinContext& context) { + bool rackOk = false; + int rackNumber = context.selectInt(node, "EffectRack", &rackOk) - 1; + bool chainOk = false; + int chainNumber = context.selectInt(node, "EffectChain", &chainOk) - 1; + bool effectOk = false; + int effectNumber = context.selectInt(node, "Effect", &effectOk) - 1; + + // Tolerate no <EffectRack>. Use the default one. + if (!rackOk) { + rackNumber = 0; + } + + if (!chainOk) { + qDebug() << "EffectName node had invalid EffectChain number:" << chainNumber; + } + + if (!effectOk) { + qDebug() << "EffectName node had invalid Effect number:" << effectNumber; + } + + EffectRackPointer pRack = m_pEffectsManager->getEffectRack(rackNumber); + if (pRack) { + EffectChainSlotPointer pChainSlot = pRack->getEffectChainSlot(chainNumber); + if (pChainSlot) { + EffectSlotPointer pEffectSlot = pChainSlot->getEffectSlot(effectNumber); + if (pEffectSlot) { + setEffectSlot(pEffectSlot); + } else { + qDebug() << "EffectName node had invalid Effect number:" << effectNumber; + } + } else { + qDebug() << "EffectName node had invalid EffectChain number:" << chainNumber; + } + } else { + qDebug() << "EffectName node had invalid EffectRack number:" << rackNumber; + } +} + void WEffect::setEffectSlot(EffectSlotPointer pEffectSlot) { if (pEffectSlot) { m_pEffectSlot = pEffectSlot; diff --git a/src/widget/weffect.h b/src/widget/weffect.h index 41ba29bc25..e3916941b5 100644 --- a/src/widget/weffect.h +++ b/src/widget/weffect.h @@ -1,22 +1,30 @@ #ifndef WEFFECT_H #define WEFFECT_H +#include <QDomNode> + #include "widget/wlabel.h" #include "effects/effectslot.h" +#include "skin/skincontext.h" + +class EffectsManager; class WEffect : public WLabel { Q_OBJECT public: - WEffect(QWidget* pParent=NULL); + WEffect(QWidget* pParent, EffectsManager* pEffectsManager); virtual ~WEffect(); - // Set the EffectSlot that should be monitored by this WEffect. - void setEffectSlot(EffectSlotPointer pEffectSlot); + void setup(QDomNode node, const SkinContext& context); private slots: void effectUpdated(); private: + // Set the EffectSlot that should be monitored by this WEffect. + void setEffectSlot(EffectSlotPointer pEffectSlot); + + EffectsManager* m_pEffectsManager; EffectSlotPointer m_pEffectSlot; }; diff --git a/src/widget/weffectchain.cpp b/src/widget/weffectchain.cpp index 20cf187219..94f2897099 100644 --- a/src/widget/weffectchain.cpp +++ b/src/widget/weffectchain.cpp @@ -1,12 +1,45 @@ +#include <QtDebug> + #include "widget/weffectchain.h" +#include "effects/effectsmanager.h" -WEffectChain::WEffectChain(QWidget* pParent) - : WLabel(pParent) { +WEffectChain::WEffectChain(QWidget* pParent, EffectsManager* pEffectsManager) + : WLabel(pParent), + m_pEffectsManager(pEffectsManager) { + chainUpdated(); } WEffectChain::~WEffectChain() { } +void WEffectChain::setup(QDomNode node, const SkinContext& context) { + bool rackOk = false; + int rackNumber = context.selectInt(node, "EffectRack", &rackOk) - 1; + bool chainOk = false; + int chainNumber = context.selectInt(node, "EffectChain", &chainOk) - 1; + + // Tolerate no <EffectRack>. Use the default one. + if (!rackOk) { + rackNumber = 0; + } + + if (!chainOk) { + qDebug() << "EffectChainName node had invalid EffectChain number:" << chainNumber; + } + + EffectRackPointer pRack = m_pEffectsManager->getEffectRack(rackNumber); + if (pRack) { + EffectChainSlotPointer pChainSlot = pRack->getEffectChainSlot(chainNumber); + if (pChainSlot) { + setEffectChainSlot(pChainSlot); + } else { + qDebug() << "EffectChainName node had invalid EffectChain number:" << chainNumber; + } + } else { + qDebug() << "EffectChainName node had invalid EffectRack number:" << rackNumber; + } +} + void WEffectChain::setEffectChainSlot(EffectChainSlotPointer pEffectChainSlot) { if (pEffectChainSlot) { m_pEffectChainSlot = pEffectChainSlot; diff --git a/src/widget/weffectchain.h b/src/widget/weffectchain.h index 8d5457758c..ffc0eb9ced 100644 --- a/src/widget/weffectchain.h +++ b/src/widget/weffectchain.h @@ -3,23 +3,30 @@ #include <QWidget> #include <QLabel> +#include <QDomNode> #include "effects/effectchainslot.h" #include "widget/wlabel.h" +#include "skin/skincontext.h" + +class EffectsManager; class WEffectChain : public WLabel { Q_OBJECT public: - WEffectChain(QWidget* pParent=NULL); + WEffectChain(QWidget* pParent, EffectsManager* pEffectsManager); virtual ~WEffectChain(); - // Set the EffectChain that should be monitored by this WEffectChain - void setEffectChainSlot(EffectChainSlotPointer pEffectChainSlot); + void setup(QDomNode node, const SkinContext& context); private slots: void chainUpdated(); private: + // Set the EffectChain that should be monitored by this WEffectChain + void setEffectChainSlot(EffectChainSlotPointer pEffectChainSlot); + + EffectsManager* m_pEffectsManager; EffectChainSlotPointer m_pEffectChainSlot; }; diff --git a/src/widget/weffectparameter.cpp b/src/widget/weffectparameter.cpp index 95c1d69285..3d1397bbfd 100644 --- a/src/widget/weffectparameter.cpp +++ b/src/widget/weffectparameter.cpp @@ -1,13 +1,68 @@ -#include "widget/weffectparameter.h" +#include <QtDebug> -WEffectParameter::WEffectParameter(QWidget* pParent) - : WLabel(pParent) { +#include "widget/weffectparameter.h" +#include "effects/effectsmanager.h" +WEffectParameter::WEffectParameter(QWidget* pParent, EffectsManager* pEffectsManager) + : WLabel(pParent), + m_pEffectsManager(pEffectsManager) { + parameterUpdated(); } WEffectParameter::~WEffectParameter() { } +void WEffectParameter::setup(QDomNode node, const SkinContext& context) { + bool rackOk = false; + int rackNumber = context.selectInt(node, "EffectRack", &rackOk) - 1; + bool chainOk = false; + int chainNumber = context.selectInt(node, "EffectChain", &chainOk) - 1; + bool effectOk = false; + int effectNumber = context.selectInt(node, "Effect", &effectOk) - 1; + bool parameterOk = false; + int parameterNumber = context.selectInt(node, "EffectParameter", ¶meterOk) - 1; + + // Tolerate no <EffectRack>. Use the default one. + if (!rackOk) { + rackNumber = 0; + } + + if (!chainOk) { + qDebug() << "EffectParameterName node had invalid EffectChain number:" << chainNumber; + } + + if (!effectOk) { + qDebug() << "EffectParameterName node had invalid Effect number:" << effectNumber; + } + + if (!parameterOk) { + qDebug() << "EffectParameterName node had invalid Parameter number:" << parameterNumber; + } + + EffectRackPointer pRack = m_pEffectsManager->getEffectRack(rackNumber); + if (pRack) { + EffectChainSlotPointer pChainSlot = pRack->getEffectChainSlot(chainNumber); + if (pChainSlot) { + EffectSlotPointer pEffectSlot = pChainSlot->getEffectSlot(effectNumber); + if (pEffectSlot) { + EffectParameterSlotPointer pParameterSlot = + pEffectSlot->getEffectParameterSlot(parameterNumber); + if (pParameterSlot) { + setEffectParameterSlot(pParameterSlot); + } else { + qDebug() << "EffectParameterName node had invalid Parameter number:" << parameterNumber; + } + } else { + qDebug() << "EffectParameterName node had invalid Effect number:" << effectNumber; + } + } else { + qDebug() << "EffectParameterName node had invalid EffectChain number:" << chainNumber; + } + } else { + qDebug() << "EffectParameterName node had invalid EffectRack number:" << rackNumber; + } +} + void WEffectParameter::setEffectParameterSlot(EffectParameterSlotPointer pEffectParameterSlot) { if (pEffectParameterSlot) { m_pEffectParameterSlot = pEffectParameterSlot; diff --git a/src/widget/weffectparameter.h b/src/widget/weffectparameter.h index 190aefb141..272bdb0da0 100644 --- a/src/widget/weffectparameter.h +++ b/src/widget/weffectparameter.h @@ -1,23 +1,31 @@ #ifndef WEFFECTPARAMETER_H #define WEFFECTPARAMETER_H +#include <QDomNode> + #include "widget/wlabel.h" #include "effects/effectparameterslot.h" +#include "skin/skincontext.h" + +class EffectsManager; class WEffectParameter : public WLabel { Q_OBJECT public: - WEffectParameter(QWidget* pParent=NULL); + WEffectParameter(QWidget* pParent, EffectsManager* pEffectsManager); virtual ~WEffectParameter(); - // Set the EffectParameterSlot that should be monitored by this - // WEffectParameter. - void setEffectParameterSlot(EffectParameterSlotPointer pEffectParameterSlot); + void setup(QDomNode node, const SkinContext& context); private slots: void parameterUpdated(); private: + // Set the EffectParameterSlot that should be monitored by this + // WEffectParameter. + void setEffectParameterSlot(EffectParameterSlotPointer pEffectParameterSlot); + + EffectsManager* m_pEffectsManager; EffectParameterSlotPointer m_pEffectParameterSlot; }; |