void RGBMatrixEditor::slotFixtureGroupChanged(quint32 id) { if (id == m_matrix->fixtureGroup()) { // Update the whole chain -> maybe the fixture layout has changed fillFixtureGroupCombo(); slotFixtureGroupActivated(m_fixtureGroupCombo->currentIndex()); } else { // Just change the name of the group, nothing else is interesting at this point int index = m_fixtureGroupCombo->findData(id); if (index != -1) { FixtureGroup* grp = m_doc->fixtureGroup(id); m_fixtureGroupCombo->setItemText(index, grp->name()); } } }
void RGBMatrixEditor::slotSaveToSequenceClicked() { if (m_matrix == NULL || m_matrix->fixtureGroup() == FixtureGroup::invalidId()) return; FixtureGroup* grp = m_doc->fixtureGroup(m_matrix->fixtureGroup()); if (grp != NULL && m_matrix->algorithm() != NULL) { bool testRunning = false; if (m_testButton->isChecked() == true) { m_testButton->click(); testRunning = true; } else m_previewTimer->stop(); Scene *grpScene = new Scene(m_doc); grpScene->setName(grp->name()); QList<GroupHead> headList = grp->headList(); foreach (GroupHead head, headList) { Fixture *fxi = m_doc->fixture(head.fxi); if (fxi == NULL) continue; QList<quint32> rgbCh = fxi->rgbChannels(head.head); if (rgbCh.count() == 3) { grpScene->setValue(head.fxi, rgbCh.at(0), 0); grpScene->setValue(head.fxi, rgbCh.at(1), 0); grpScene->setValue(head.fxi, rgbCh.at(2), 0); } quint32 master = fxi->masterIntensityChannel(head.head); if (master != QLCChannel::invalid()) grpScene->setValue(head.fxi, master, 0); }