void RGBMatrixEditor::init() { /* Name */ m_nameEdit->setText(m_matrix->name()); m_nameEdit->setSelection(0, m_matrix->name().length()); /* Running order */ switch (m_matrix->runOrder()) { default: case Function::Loop: m_loop->setChecked(true); break; case Function::PingPong: m_pingPong->setChecked(true); break; case Function::SingleShot: m_singleShot->setChecked(true); break; } /* Running direction */ switch (m_matrix->direction()) { default: case Function::Forward: m_forward->setChecked(true); break; case Function::Backward: m_backward->setChecked(true); break; } fillPatternCombo(); fillFixtureGroupCombo(); fillAnimationCombo(); fillImageAnimationCombo(); QPixmap pm(100, 26); pm.fill(m_matrix->startColor()); m_startColorButton->setIcon(QIcon(pm)); if (m_matrix->endColor().isValid()) pm.fill(m_matrix->endColor()); else pm.fill(Qt::transparent); m_endColorButton->setIcon(QIcon(pm)); updateExtraOptions(); updateSpeedDials(); connect(m_nameEdit, SIGNAL(textEdited(const QString&)), this, SLOT(slotNameEdited(const QString&))); connect(m_speedDialButton, SIGNAL(toggled(bool)), this, SLOT(slotSpeedDialToggle(bool))); connect(m_patternCombo, SIGNAL(activated(const QString&)), this, SLOT(slotPatternActivated(const QString&))); connect(m_fixtureGroupCombo, SIGNAL(activated(int)), this, SLOT(slotFixtureGroupActivated(int))); connect(m_startColorButton, SIGNAL(clicked()), this, SLOT(slotStartColorButtonClicked())); connect(m_endColorButton, SIGNAL(clicked()), this, SLOT(slotEndColorButtonClicked())); connect(m_textEdit, SIGNAL(textEdited(const QString&)), this, SLOT(slotTextEdited(const QString&))); connect(m_fontButton, SIGNAL(clicked()), this, SLOT(slotFontButtonClicked())); connect(m_animationCombo, SIGNAL(activated(const QString&)), this, SLOT(slotAnimationActivated(const QString&))); connect(m_imageEdit, SIGNAL(editingFinished()), this, SLOT(slotImageEdited())); connect(m_imageButton, SIGNAL(clicked()), this, SLOT(slotImageButtonClicked())); connect(m_imageAnimationCombo, SIGNAL(activated(const QString&)), this, SLOT(slotImageAnimationActivated(const QString&))); connect(m_xOffsetSpin, SIGNAL(valueChanged(int)), this, SLOT(slotOffsetSpinChanged())); connect(m_yOffsetSpin, SIGNAL(valueChanged(int)), this, SLOT(slotOffsetSpinChanged())); connect(m_saveToSequenceButton, SIGNAL(clicked()), this, SLOT(slotSaveToSequenceClicked())); connect(m_loop, SIGNAL(clicked()), this, SLOT(slotLoopClicked())); connect(m_pingPong, SIGNAL(clicked()), this, SLOT(slotPingPongClicked())); connect(m_singleShot, SIGNAL(clicked()), this, SLOT(slotSingleShotClicked())); connect(m_forward, SIGNAL(clicked()), this, SLOT(slotForwardClicked())); connect(m_backward, SIGNAL(clicked()), this, SLOT(slotBackwardClicked())); // Test slots connect(m_testButton, SIGNAL(clicked(bool)), this, SLOT(slotTestClicked())); m_preview->setScene(m_scene); if (createPreviewItems() == true) m_previewTimer->start(MasterTimer::tick()); }
void EFXEditor::initMovementPage() { new QHBoxLayout(m_previewFrame); m_previewArea = new EFXPreviewArea(m_previewFrame); m_previewFrame->layout()->setMargin(0); m_previewFrame->layout()->addWidget(m_previewArea); /* Get supported algorithms and fill the algorithm combo with them */ m_algorithmCombo->addItems(EFX::algorithmList()); connect(m_loop, SIGNAL(clicked()), this, SLOT(slotLoopClicked())); connect(m_singleShot, SIGNAL(clicked()), this, SLOT(slotSingleShotClicked())); connect(m_pingPong, SIGNAL(clicked()), this, SLOT(slotPingPongClicked())); connect(m_forward, SIGNAL(clicked()), this, SLOT(slotForwardClicked())); connect(m_backward, SIGNAL(clicked()), this, SLOT(slotBackwardClicked())); connect(m_algorithmCombo, SIGNAL(activated(const QString&)), this, SLOT(slotAlgorithmSelected(const QString&))); connect(m_widthSpin, SIGNAL(valueChanged(int)), this, SLOT(slotWidthSpinChanged(int))); connect(m_heightSpin, SIGNAL(valueChanged(int)), this, SLOT(slotHeightSpinChanged(int))); connect(m_xOffsetSpin, SIGNAL(valueChanged(int)), this, SLOT(slotXOffsetSpinChanged(int))); connect(m_yOffsetSpin, SIGNAL(valueChanged(int)), this, SLOT(slotYOffsetSpinChanged(int))); connect(m_rotationSpin, SIGNAL(valueChanged(int)), this, SLOT(slotRotationSpinChanged(int))); connect(m_startOffsetSpin, SIGNAL(valueChanged(int)), this, SLOT(slotStartOffsetSpinChanged(int))); connect(m_xFrequencySpin, SIGNAL(valueChanged(int)), this, SLOT(slotXFrequencySpinChanged(int))); connect(m_yFrequencySpin, SIGNAL(valueChanged(int)), this, SLOT(slotYFrequencySpinChanged(int))); connect(m_xPhaseSpin, SIGNAL(valueChanged(int)), this, SLOT(slotXPhaseSpinChanged(int))); connect(m_yPhaseSpin, SIGNAL(valueChanged(int)), this, SLOT(slotYPhaseSpinChanged(int))); QString algo(EFX::algorithmToString(m_efx->algorithm())); /* Select the EFX's algorithm from the algorithm combo */ for (int i = 0; i < m_algorithmCombo->count(); i++) { if (m_algorithmCombo->itemText(i) == algo) { m_algorithmCombo->setCurrentIndex(i); break; } } /* Causes the EFX function to update the preview point array */ slotAlgorithmSelected(algo); /* Get the algorithm parameters */ m_widthSpin->setValue(m_efx->width()); m_heightSpin->setValue(m_efx->height()); m_xOffsetSpin->setValue(m_efx->xOffset()); m_yOffsetSpin->setValue(m_efx->yOffset()); m_rotationSpin->setValue(m_efx->rotation()); m_startOffsetSpin->setValue(m_efx->startOffset()); m_xFrequencySpin->setValue(m_efx->xFrequency()); m_yFrequencySpin->setValue(m_efx->yFrequency()); m_xPhaseSpin->setValue(m_efx->xPhase()); m_yPhaseSpin->setValue(m_efx->yPhase()); /* Running order */ switch (m_efx->runOrder()) { default: case Function::Loop: m_loop->setChecked(true); break; case Function::SingleShot: m_singleShot->setChecked(true); break; case Function::PingPong: m_pingPong->setChecked(true); break; } /* Direction */ switch (m_efx->direction()) { default: case Function::Forward: m_forward->setChecked(true); break; case Function::Backward: m_backward->setChecked(true); break; } redrawPreview(); }