summaryrefslogtreecommitdiffstats
path: root/src/waveform
diff options
context:
space:
mode:
authorNimit Bhardwaj <nimitbhardwaj@gmail.com>2016-12-20 14:34:41 +0530
committerDaniel Schürmann <daschuer@mixxx.org>2017-01-01 23:01:58 +0100
commitfcbfd6afbb60f11bb73de3a3f664c1077afc0ad0 (patch)
treec5ddd6aee173e7350c6b586beb609c7d1513ab79 /src/waveform
parentd8a92c5877be565431d0a4cde4af798b3a191c86 (diff)
simplified the waveformmarkset.cpp file
Diffstat (limited to 'src/waveform')
-rw-r--r--src/waveform/renderers/waveformmark.cpp8
-rw-r--r--src/waveform/renderers/waveformmark.h11
-rw-r--r--src/waveform/renderers/waveformmarkset.cpp19
-rw-r--r--src/waveform/renderers/waveformmarkset.h2
-rw-r--r--src/waveform/renderers/waveformrendermark.cpp2
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