void GroupsConsole::init() { int idx = 0; foreach(quint32 id, m_ids) { ChannelsGroup *grp = m_doc->channelsGroup(id); SceneValue scv = grp->getChannels().at(0); ConsoleChannel* cc = new ConsoleChannel(this, m_doc, scv.fxi, scv.channel, false); cc->setLabel(grp->name()); cc->setChannelsGroup(id); if (idx < m_levels.count()) cc->setValue(m_levels.at(idx)); layout()->addWidget(cc); m_groups.append(cc); connect(cc, SIGNAL(groupValueChanged(quint32, uchar)), this, SIGNAL(groupValueChanged(quint32, uchar))); idx++; }
void SimpleDesk::slotUniversePageChanged(int page) { qDebug() << Q_FUNC_INFO; quint32 start = (page - 1) * m_channelsPerPage; QString ssEven = "QGroupBox { background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #C3D1C9, stop: 1 #AFBBB4); " " border: 1px solid gray; border-radius: 4px; }"; QString ssOdd = "QGroupBox { background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #D6D2D0, stop: 1 #AFACAB); " " border: 1px solid gray; border-radius: 4px; }"; QString ssNone = "QGroupBox { background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #D6D5E0, stop: 1 #A7A6AF); " " border: 1px solid gray; border-radius: 4px; }"; /* now, calculate the absolute address including current universe (0 - 2048) */ quint32 absoluteAddr = start | (m_currentUniverse << 9); /* Set the new page for this universe */ m_universesPage.replace(m_currentUniverse, page); //qDebug() << "[slotUniversePageChanged] start: " << start << ", absoluteAddr: " << absoluteAddr; for (quint32 i = 0; i < m_channelsPerPage; i++) { ConsoleChannel* slider = m_universeSliders[i]; if (slider != NULL) { m_universeGroup->layout()->removeWidget(slider); disconnect(slider, SIGNAL(valueChanged(quint32,quint32,uchar)), this, SLOT(slotUniverseSliderValueChanged(quint32,quint32,uchar))); delete slider; } const Fixture* fx = m_doc->fixture(m_doc->fixtureForAddress(absoluteAddr + i)); if (fx == NULL) { slider = new ConsoleChannel(this, m_doc, Fixture::invalidId(), start + i, false); slider->setStyleSheet(ssNone); } else { uint ch = (absoluteAddr + i) - fx->universeAddress(); slider = new ConsoleChannel(this, m_doc, fx->id(), ch, false); if (fx->id() % 2 == 0) slider->setStyleSheet(ssOdd); else slider->setStyleSheet(ssEven); } if ((start + i) < 512) { slider->setEnabled(true); slider->setProperty(PROP_ADDRESS, absoluteAddr + i); slider->setLabel(QString::number(start + i + 1)); //qDebug() << "Set slider value[" << (absoluteAddr + i) << "] = " << m_engine->value(absoluteAddr + i); slider->setValue(m_engine->value(absoluteAddr + i), false); connect(slider, SIGNAL(valueChanged(quint32,quint32,uchar)), this, SLOT(slotUniverseSliderValueChanged(quint32,quint32,uchar))); } else { slider->setEnabled(false); slider->setProperty(PROP_ADDRESS, QVariant()); slider->setValue(0); slider->setLabel("---"); slider->setPalette(this->palette()); } m_universeGroup->layout()->addWidget(slider); m_universeSliders[i] = slider; } }