void VCSlider::setSliderMode(SliderMode mode) { Q_ASSERT(mode >= Level && mode <= Playback); /* Unregister this as a DMX source if the new mode is not "Level" or "Playback" */ if ((m_sliderMode == Level && mode != Level) || (m_sliderMode == Playback && mode != Playback)) { m_doc->masterTimer()->unregisterDMXSource(this); } m_sliderMode = mode; if (mode == Level) { /* Set the slider range */ uchar level = levelValue(); m_slider->setRange(levelLowLimit(), levelHighLimit()); m_slider->setValue(level); slotSliderMoved(level); m_bottomLabel->show(); m_tapButton->hide(); m_doc->masterTimer()->registerDMXSource(this); } else if (mode == Playback) { m_bottomLabel->show(); m_tapButton->hide(); uchar level = playbackValue(); m_slider->setRange(0, UCHAR_MAX); m_slider->setValue(level); slotSliderMoved(level); m_doc->masterTimer()->registerDMXSource(this); } }
void VCSlider::setSliderMode(SliderMode mode) { Q_ASSERT(mode >= Level && mode <= Submaster); m_sliderMode = mode; if (mode == Level) { /* Set the slider range */ uchar level = levelValue(); if (m_slider) { m_slider->setRange(levelLowLimit(), levelHighLimit()); m_slider->setValue(level); if (m_widgetMode == WSlider) m_slider->setStyleSheet(CNG_DEFAULT_STYLE); } slotSliderMoved(level); m_bottomLabel->show(); if (m_cngType != ClickAndGoWidget::None) { setClickAndGoType(m_cngType); setupClickAndGoWidget(); m_cngButton->show(); if (m_slider) setClickAndGoWidgetFromLevel(m_slider->value()); } if (m_doc->mode() == Doc::Operate) m_doc->masterTimer()->registerDMXSource(this, "Slider"); } else if (mode == Playback) { m_bottomLabel->show(); m_cngButton->hide(); m_monitorEnabled = false; uchar level = playbackValue(); if (m_slider) { m_slider->setRange(0, UCHAR_MAX); m_slider->setValue(level); if (m_widgetMode == WSlider) m_slider->setStyleSheet(CNG_DEFAULT_STYLE); } slotSliderMoved(level); if (m_doc->mode() == Doc::Operate) m_doc->masterTimer()->registerDMXSource(this, "Slider"); setPlaybackFunction(this->m_playbackFunction); } else if (mode == Submaster) { m_monitorEnabled = false; uchar level = levelValue(); if (m_slider) { m_slider->setRange(0, UCHAR_MAX); m_slider->setValue(level); if (m_widgetMode == WSlider) m_slider->setStyleSheet(submasterStyleSheet); } if (m_doc->mode() == Doc::Operate) m_doc->masterTimer()->unregisterDMXSource(this); } }
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; }