diff options
author | Nimit Bhardwaj <nimitbhardwaj@gmail.com> | 2016-12-20 14:34:41 +0530 |
---|---|---|
committer | Daniel Schürmann <daschuer@mixxx.org> | 2017-01-01 23:01:58 +0100 |
commit | fcbfd6afbb60f11bb73de3a3f664c1077afc0ad0 (patch) | |
tree | c5ddd6aee173e7350c6b586beb609c7d1513ab79 /src/waveform | |
parent | d8a92c5877be565431d0a4cde4af798b3a191c86 (diff) |
simplified the waveformmarkset.cpp file
Diffstat (limited to 'src/waveform')
-rw-r--r-- | src/waveform/renderers/waveformmark.cpp | 8 | ||||
-rw-r--r-- | src/waveform/renderers/waveformmark.h | 11 | ||||
-rw-r--r-- | src/waveform/renderers/waveformmarkset.cpp | 19 | ||||
-rw-r--r-- | src/waveform/renderers/waveformmarkset.h | 2 | ||||
-rw-r--r-- | src/waveform/renderers/waveformrendermark.cpp | 2 |
5 files changed, 20 insertions, 22 deletions
diff --git a/src/waveform/renderers/waveformmark.cpp b/src/waveform/renderers/waveformmark.cpp index 3ccb006b2c..281d4c3a74 100644 --- a/src/waveform/renderers/waveformmark.cpp +++ b/src/waveform/renderers/waveformmark.cpp @@ -9,9 +9,11 @@ WaveformMark::WaveformMark( const QString& group, const QDomNode& node, const SkinContext& context, const WaveformSignalColors& signalColors, - int hotCue) + int hotCue, + QString item) : m_iHotCue(hotCue) { - QString item = context.selectString(node, "Control"); + if(item.isEmpty()) + item = context.selectString(node, "Control"); if (!item.isEmpty()) { m_pPointCos = std::make_unique<ControlProxy>(group, item); } @@ -19,7 +21,7 @@ WaveformMark::WaveformMark( const QString& group, } -void WaveformMark::connectSamplePositionChanged(const QObject *obj, const char *slt) { +void WaveformMark::connectSamplePositionChanged(const QObject *obj, const char *slt) const { m_pPointCos->connectValueChanged(obj, slt, Qt::AutoConnection); } diff --git a/src/waveform/renderers/waveformmark.h b/src/waveform/renderers/waveformmark.h index 243a2af1db..5208a30bca 100644 --- a/src/waveform/renderers/waveformmark.h +++ b/src/waveform/renderers/waveformmark.h @@ -22,7 +22,8 @@ class WaveformMark { const QDomNode& node, const SkinContext& context, const WaveformSignalColors& signalColors, - int hotCue = kDefaultHotCue); + int hotCue = kDefaultHotCue, + QString item = ""); // Disable copying @@ -36,11 +37,9 @@ class WaveformMark { void setHotCue(int hotCue) { m_iHotCue = hotCue; }; //The m_pPointCos related function - bool hasValidControlProxy() const{ return !(m_pPointCos == nullptr); } - ConfigKey getConfigKey(){ return m_pPointCos->getKey(); } - void changeKeyPosition(ControlObject *pObj) { m_pPointCos = std::make_unique<ControlProxy> (pObj->getKey()); } - void connectSamplePositionChanged(const QObject *, const char *); - double getSamplePosition(){ return m_pPointCos->get(); } + bool isValid() const { return m_pPointCos && m_pPointCos->valid(); } + void connectSamplePositionChanged(const QObject *, const char *) const; + double getSamplePosition() const { return m_pPointCos->get(); } private: diff --git a/src/waveform/renderers/waveformmarkset.cpp b/src/waveform/renderers/waveformmarkset.cpp index f5ebe0cbe0..2fded15be0 100644 --- a/src/waveform/renderers/waveformmarkset.cpp +++ b/src/waveform/renderers/waveformmarkset.cpp @@ -27,17 +27,19 @@ void WaveformMarkSet::setup(const QString& group, const QDomNode& node, bool hasDefaultMark = false; QDomNode child = node.firstChild(); + QDomNode defaultChild; while (!child.isNull()) { if (child.nodeName() == "DefaultMark") { - m_pdefaultMark = std::make_unique<WaveformMark>(group, child, context, signalColors); + m_pDefaultMark = std::make_unique<WaveformMark>(group, child, context, signalColors); hasDefaultMark = true; + defaultChild = child; } else if (child.nodeName() == "Mark") { WaveformMarkPointer pMark(new WaveformMark(group, child, context, signalColors)); bool uniqueMark = true; - if (pMark->hasValidControlProxy()) { + if (pMark->isValid()) { // guarantee uniqueness even if there is a misdesigned skin - QString item = pMark->getConfigKey().item; + QString item = context.selectString(child, "Control"); if (!controlItemSet.insert(item).second) { qWarning() << "WaveformRenderMark::setup - redefinition of" << item; uniqueMark = false; @@ -59,19 +61,14 @@ void WaveformMarkSet::setup(const QString& group, const QDomNode& node, if (hasDefaultMark) { for (int i = 1; i <= NUM_HOT_CUES; ++i) { QString hotCueControlItem = "hotcue_" + QString::number(i) + "_position"; - ControlObject* pHotcue = ControlObject::getControl( - ConfigKey(group, hotCueControlItem)); - if (pHotcue == NULL) { + WaveformMarkPointer pMark(new WaveformMark(group, defaultChild, context, signalColors, i, hotCueControlItem)); + if (!pMark->isValid()) { continue; } if (controlItemSet.insert(hotCueControlItem).second) { //qDebug() << "WaveformRenderMark::setup - Automatic mark" << hotCueControlItem; - WaveformMarkPointer pMark(new WaveformMark(group, node, context, signalColors, i)); - WaveformMarkProperties defaultProperties = m_pdefaultMark->getProperties(); - defaultProperties.setHotCueNumber(i); - pMark->setProperties(defaultProperties); - pMark->changeKeyPosition(pHotcue); + pMark->setHotcueNumber(i); m_marks.push_back(pMark); } } diff --git a/src/waveform/renderers/waveformmarkset.h b/src/waveform/renderers/waveformmarkset.h index 8adef376ad..b8a1a3ec74 100644 --- a/src/waveform/renderers/waveformmarkset.h +++ b/src/waveform/renderers/waveformmarkset.h @@ -27,7 +27,7 @@ class WaveformMarkSet { private: void clear(){ m_marks.clear(); } - std::unique_ptr<WaveformMark> m_pdefaultMark; + std::unique_ptr<WaveformMark> m_pDefaultMark; QList<WaveformMarkPointer> m_marks; int m_iFirstHotCue; DISALLOW_COPY_AND_ASSIGN(WaveformMarkSet); diff --git a/src/waveform/renderers/waveformrendermark.cpp b/src/waveform/renderers/waveformrendermark.cpp index 15aea538de..c104430d2e 100644 --- a/src/waveform/renderers/waveformrendermark.cpp +++ b/src/waveform/renderers/waveformrendermark.cpp @@ -41,7 +41,7 @@ void WaveformRenderMark::draw(QPainter* painter, QPaintEvent* /*event*/) { for (int i = 0; i < m_marks.size(); i++) { WaveformMarkPointer mark = m_marks[i]; - if (!mark->hasValidControlProxy()) + if (!mark->isValid()) continue; // Generate image on first paint can't be done in setup since we need |