void VCSlider::slotModeChanged(Doc::Mode mode) { if (mode == Doc::Operate) { m_topLabel->setEnabled(true); if (m_slider) m_slider->setEnabled(true); if (m_knob) m_knob->setEnabled(true); m_bottomLabel->setEnabled(true); m_tapButton->setEnabled(true); m_cngButton->setEnabled(true); if (sliderMode() == Playback) { /* Follow playback function running/stopped status in case the function is started from another control. */ Function* function = m_doc->function(playbackFunction()); if (function != NULL) { connect(function, SIGNAL(running(quint32)), this, SLOT(slotPlaybackFunctionRunning(quint32))); connect(function, SIGNAL(stopped(quint32)), this, SLOT(slotPlaybackFunctionStopped(quint32))); connect(function, SIGNAL(intensityChanged(qreal)), this, SLOT(slotPlaybackFunctionIntensityChanged(qreal))); } } } else { m_topLabel->setEnabled(false); if (m_slider) m_slider->setEnabled(false); if (m_knob) m_knob->setEnabled(false); m_bottomLabel->setEnabled(false); m_tapButton->setEnabled(false); m_cngButton->setEnabled(false); if (sliderMode() == Playback) { /* Stop following playback function running/stopped status in case the function is changed in Design mode to another. */ Function* function = m_doc->function(playbackFunction()); if (function != NULL) { disconnect(function, SIGNAL(running(quint32)), this, SLOT(slotPlaybackFunctionRunning(quint32))); disconnect(function, SIGNAL(stopped(quint32)), this, SLOT(slotPlaybackFunctionStopped(quint32))); disconnect(function, SIGNAL(intensityChanged(qreal)), this, SLOT(slotPlaybackFunctionIntensityChanged(qreal))); } } } VCWidget::slotModeChanged(mode); }
void VCSlider::slotPlaybackFunctionStopped(quint32 fid) { m_externalMovement = true; if (fid == playbackFunction()) m_slider->setValue(0); m_externalMovement = false; }
void VCSlider::slotModeChanged(Doc::Mode mode) { if (mode == Doc::Operate) { enableWidgetUI(true); if (sliderMode() == Playback) { /* Follow playback function running/stopped status in case the function is started from another control. */ Function* function = m_doc->function(playbackFunction()); if (function != NULL) { connect(function, SIGNAL(running(quint32)), this, SLOT(slotPlaybackFunctionRunning(quint32))); connect(function, SIGNAL(stopped(quint32)), this, SLOT(slotPlaybackFunctionStopped(quint32))); connect(function, SIGNAL(attributeChanged(int, qreal)), this, SLOT(slotPlaybackFunctionIntensityChanged(int, qreal))); }
bool VCSlider::saveXML(QDomDocument* doc, QDomElement* vc_root) { QDomElement root; QDomElement tag; QDomElement subtag; QDomText text; QString str; Q_ASSERT(doc != NULL); Q_ASSERT(vc_root != NULL); /* VC Slider entry */ root = doc->createElement(KXMLQLCVCSlider); vc_root->appendChild(root); /* Caption */ root.setAttribute(KXMLQLCVCCaption, caption()); /* Inverted appearance */ if (invertedAppearance() == true) root.setAttribute(KXMLQLCVCSliderInvertedAppearance, "true"); else root.setAttribute(KXMLQLCVCSliderInvertedAppearance, "false"); /* Window state */ saveXMLWindowState(doc, &root); /* Appearance */ saveXMLAppearance(doc, &root); /* External input */ saveXMLInput(doc, &root); /* Mode */ tag = doc->createElement(KXMLQLCVCSliderMode); root.appendChild(tag); text = doc->createTextNode(sliderModeToString(m_sliderMode)); tag.appendChild(text); /* Value display style */ str = valueDisplayStyleToString(valueDisplayStyle()); tag.setAttribute(KXMLQLCVCSliderValueDisplayStyle, str); /* Level */ tag = doc->createElement(KXMLQLCVCSliderLevel); root.appendChild(tag); /* Level low limit */ str.setNum(levelLowLimit()); tag.setAttribute(KXMLQLCVCSliderLevelLowLimit, str); /* Level high limit */ str.setNum(levelHighLimit()); tag.setAttribute(KXMLQLCVCSliderLevelHighLimit, str); /* Level value */ str.setNum(levelValue()); tag.setAttribute(KXMLQLCVCSliderLevelValue, str); /* Level channels */ QListIterator <LevelChannel> it(m_levelChannels); while (it.hasNext() == true) { LevelChannel lch(it.next()); lch.saveXML(doc, &tag); } /* Playback */ tag = doc->createElement(KXMLQLCVCSliderPlayback); root.appendChild(tag); /* Playback function */ subtag = doc->createElement(KXMLQLCVCSliderPlaybackFunction); text = doc->createTextNode(QString::number(playbackFunction())); subtag.appendChild(text); tag.appendChild(subtag); return true; }