RGBText::RGBText(const RGBText& t) : RGBAlgorithm() , m_text(t.text()) , m_font(t.font()) , m_animationStyle(t.animationStyle()) , m_xOffset(t.xOffset()) , m_yOffset(t.yOffset()) { }
void RGBMatrixEditor::slotAnimationActivated(const QString& text) { if (m_matrix->algorithm() != NULL && m_matrix->algorithm()->type() == RGBAlgorithm::Text) { RGBText* algo = static_cast<RGBText*> (m_matrix->algorithm()); Q_ASSERT(algo != NULL); algo->setAnimationStyle(RGBText::stringToAnimationStyle(text)); slotRestartTest(); } }
void RGBMatrixEditor::slotTextEdited(const QString& text) { if (m_matrix->algorithm() != NULL && m_matrix->algorithm()->type() == RGBAlgorithm::Text) { RGBText* algo = static_cast<RGBText*> (m_matrix->algorithm()); Q_ASSERT(algo != NULL); algo->setText(text); slotRestartTest(); } }
QString RGBMatrixEditor::algoText() const { if (m_matrix != NULL && m_matrix->algorithm() != NULL && m_matrix->algorithm()->type() == RGBAlgorithm::Text) { RGBText* algo = static_cast<RGBText*> (m_matrix->algorithm()); return algo->text(); } return QString(" Q LIGHT CONTROLLER + "); }
void RGBMatrixEditor::setAlgoText(QString text) { if (m_matrix != NULL && m_matrix->algorithm() != NULL && m_matrix->algorithm()->type() == RGBAlgorithm::Text) { RGBText* algo = static_cast<RGBText*> (m_matrix->algorithm()); if (algo->text() == text) return; QMutexLocker algorithmLocker(&m_matrix->algorithmMutex()); algo->setText(text); emit algoTextChanged(text); } }
void RGBMatrixEditor::slotFontButtonClicked() { if (m_matrix->algorithm() != NULL && m_matrix->algorithm()->type() == RGBAlgorithm::Text) { RGBText* algo = static_cast<RGBText*> (m_matrix->algorithm()); Q_ASSERT(algo != NULL); bool ok = false; QFont font = QFontDialog::getFont(&ok, algo->font(), this); if (ok == true) { algo->setFont(font); slotRestartTest(); } } }
void RGBMatrixEditor::updateExtraOptions() { if (m_matrix->algorithm() == NULL || m_matrix->algorithm()->type() == RGBAlgorithm::Script || m_matrix->algorithm()->type() == RGBAlgorithm::Audio || m_matrix->algorithm()->type() == RGBAlgorithm::Plain) { m_textGroup->hide(); m_imageGroup->hide(); m_offsetGroup->hide(); } else if (m_matrix->algorithm()->type() == RGBAlgorithm::Image) { m_textGroup->hide(); m_imageGroup->show(); m_offsetGroup->show(); RGBImage* image = static_cast<RGBImage*> (m_matrix->algorithm()); Q_ASSERT(image != NULL); m_imageEdit->setText(image->filename()); int index = m_imageAnimationCombo->findText(RGBImage::animationStyleToString(image->animationStyle())); if (index != -1) m_imageAnimationCombo->setCurrentIndex(index); m_xOffsetSpin->setValue(image->xOffset()); m_yOffsetSpin->setValue(image->yOffset()); } else if (m_matrix->algorithm()->type() == RGBAlgorithm::Text) { m_textGroup->show(); m_offsetGroup->show(); m_imageGroup->hide(); RGBText* text = static_cast<RGBText*> (m_matrix->algorithm()); Q_ASSERT(text != NULL); m_textEdit->setText(text->text()); int index = m_animationCombo->findText(RGBText::animationStyleToString(text->animationStyle())); if (index != -1) m_animationCombo->setCurrentIndex(index); m_xOffsetSpin->setValue(text->xOffset()); m_yOffsetSpin->setValue(text->yOffset()); } }
void VCMatrix::slotCustomControlClicked() { QPushButton *btn = qobject_cast<QPushButton*>(sender()); VCMatrixControl *control = m_controls[btn]; if (control != NULL) { RGBMatrix* matrix = qobject_cast<RGBMatrix*>(m_doc->function(m_matrixID)); if (matrix == NULL || mode() == Doc::Design) return; if (control->m_type == VCMatrixControl::StartColor) { QPixmap px(42, 42); px.fill(control->m_color); m_startColorButton->setIcon(px); matrix->setStartColor(control->m_color); matrix->calculateColorDelta(); } else if (control->m_type == VCMatrixControl::EndColor) { QPixmap px(42, 42); px.fill(control->m_color); m_endColorButton->setIcon(px); matrix->setEndColor(control->m_color); matrix->calculateColorDelta(); } else if (control->m_type == VCMatrixControl::Animation) { RGBAlgorithm* algo = RGBAlgorithm::algorithm(m_doc, control->m_resource); matrix->setAlgorithm(algo); if (instantChanges() == true) matrix->calculateColorDelta(); } else if (control->m_type == VCMatrixControl::Text) { RGBAlgorithm* algo = RGBAlgorithm::algorithm(m_doc, "Text"); RGBText* text = static_cast<RGBText*> (algo); text->setText(control->m_resource); matrix->setAlgorithm(algo); if (instantChanges() == true) matrix->calculateColorDelta(); } } }
void RGBMatrixEditor::slotOffsetSpinChanged() { if (m_matrix->algorithm() != NULL && m_matrix->algorithm()->type() == RGBAlgorithm::Text) { RGBText* algo = static_cast<RGBText*> (m_matrix->algorithm()); Q_ASSERT(algo != NULL); algo->setXOffset(m_xOffsetSpin->value()); algo->setYOffset(m_yOffsetSpin->value()); slotRestartTest(); } if (m_matrix->algorithm() != NULL && m_matrix->algorithm()->type() == RGBAlgorithm::Image) { RGBImage* algo = static_cast<RGBImage*> (m_matrix->algorithm()); Q_ASSERT(algo != NULL); algo->setXOffset(m_xOffsetSpin->value()); algo->setYOffset(m_yOffsetSpin->value()); slotRestartTest(); } }
void VCMatrix::slotCustomControlClicked() { QPushButton *btn = qobject_cast<QPushButton*>(sender()); VCMatrixControl *control = m_controls[btn]; if (control != NULL) { RGBMatrix* matrix = qobject_cast<RGBMatrix*>(m_doc->function(m_matrixID)); if (matrix == NULL || mode() == Doc::Design) return; if (control->m_type == VCMatrixControl::StartColor) { QPixmap px(42, 42); px.fill(control->m_color); m_startColorButton->setIcon(px); matrix->setStartColor(control->m_color); matrix->calculateColorDelta(); } else if (control->m_type == VCMatrixControl::EndColor) { QPixmap px(42, 42); px.fill(control->m_color); m_endColorButton->setIcon(px); matrix->setEndColor(control->m_color); matrix->calculateColorDelta(); } else if (control->m_type == VCMatrixControl::Animation) { RGBAlgorithm* algo = RGBAlgorithm::algorithm(m_doc, control->m_resource); if (!control->m_properties.isEmpty()) { RGBScript *script = static_cast<RGBScript*> (algo); QHashIterator<QString, QString> it(control->m_properties); while(it.hasNext()) { it.next(); script->setProperty(it.key(), it.value()); } } matrix->setAlgorithm(algo); if (instantChanges() == true) matrix->calculateColorDelta(); m_presetCombo->blockSignals(true); #if QT_VERSION >= QT_VERSION_CHECK(5,0,0) m_presetCombo->setCurrentText(control->m_resource); #else m_presetCombo->setCurrentIndex(m_presetCombo->findText(control->m_resource)); #endif m_presetCombo->blockSignals(false); } else if (control->m_type == VCMatrixControl::Text) { RGBAlgorithm* algo = RGBAlgorithm::algorithm(m_doc, "Text"); RGBText* text = static_cast<RGBText*> (algo); text->setText(control->m_resource); matrix->setAlgorithm(algo); if (instantChanges() == true) matrix->calculateColorDelta(); } } }
void RGBMatrixEditor::updateExtraOptions() { resetProperties(m_propertiesLayout->layout()); m_propertiesGroup->hide(); if (m_matrix->algorithm() == NULL || m_matrix->algorithm()->type() == RGBAlgorithm::Script || m_matrix->algorithm()->type() == RGBAlgorithm::Audio) { m_textGroup->hide(); m_imageGroup->hide(); m_offsetGroup->hide(); if (m_matrix->algorithm() != NULL && m_matrix->algorithm()->type() == RGBAlgorithm::Script) { RGBScript *script = static_cast<RGBScript*> (m_matrix->algorithm()); displayProperties(script); } } else if (m_matrix->algorithm()->type() == RGBAlgorithm::Plain) { m_textGroup->hide(); m_imageGroup->hide(); m_offsetGroup->hide(); } else if (m_matrix->algorithm()->type() == RGBAlgorithm::Image) { m_textGroup->hide(); m_imageGroup->show(); m_offsetGroup->show(); RGBImage* image = static_cast<RGBImage*> (m_matrix->algorithm()); Q_ASSERT(image != NULL); m_imageEdit->setText(image->filename()); int index = m_imageAnimationCombo->findText(RGBImage::animationStyleToString(image->animationStyle())); if (index != -1) m_imageAnimationCombo->setCurrentIndex(index); m_xOffsetSpin->setValue(image->xOffset()); m_yOffsetSpin->setValue(image->yOffset()); } else if (m_matrix->algorithm()->type() == RGBAlgorithm::Text) { m_textGroup->show(); m_offsetGroup->show(); m_imageGroup->hide(); RGBText* text = static_cast<RGBText*> (m_matrix->algorithm()); Q_ASSERT(text != NULL); m_textEdit->setText(text->text()); int index = m_animationCombo->findText(RGBText::animationStyleToString(text->animationStyle())); if (index != -1) m_animationCombo->setCurrentIndex(index); m_xOffsetSpin->setValue(text->xOffset()); m_yOffsetSpin->setValue(text->yOffset()); } if (m_matrix->algorithm() != NULL) { int accColors = m_matrix->algorithm()->acceptColors(); if (accColors == 0) { m_startColorButton->hide(); m_endColorButton->hide(); m_resetEndColorButton->hide(); m_blendModeLabel->hide(); m_blendModeCombo->hide(); } else { m_startColorButton->show(); if (accColors == 1 || m_blendModeCombo->currentIndex() != 0) { m_endColorButton->hide(); m_resetEndColorButton->hide(); } else { m_endColorButton->show(); m_resetEndColorButton->show(); } m_blendModeLabel->show(); m_blendModeCombo->show(); } } }