void ConsoleChannel::initMenu() { Fixture* fxi = m_doc->fixture(fixture()); Q_ASSERT(fxi != NULL); const QLCChannel* ch = fxi->channel(m_channel); Q_ASSERT(ch != NULL); // Get rid of a possible previous menu if (m_menu != NULL) { delete m_menu; m_menu = NULL; } // Create a popup menu and set the channel name as its title m_menu = new QMenu(this); m_presetButton->setMenu(m_menu); m_presetButton->setPopupMode(QToolButton::InstantPopup); QString btnIconStr = ch->getIconNameFromGroup(ch->group()); if (btnIconStr.startsWith(":")) m_presetButton->setStyleSheet("QToolButton { border-image: url(" + btnIconStr + ") 0 0 0 0 stretch stretch; }"); else { m_presetButton->setStyleSheet("QToolButton { background: " + btnIconStr + "; }"); setIntensityButton(ch); } switch(ch->group()) { case QLCChannel::Colour: m_cngWidget = new ClickAndGoWidget(); m_cngWidget->setType(ClickAndGoWidget::Preset, ch); break; case QLCChannel::Effect: m_cngWidget = new ClickAndGoWidget(); m_cngWidget->setType(ClickAndGoWidget::Preset, ch); break; case QLCChannel::Gobo: m_cngWidget = new ClickAndGoWidget(); m_cngWidget->setType(ClickAndGoWidget::Preset, ch); break; default: break; } if (m_cngWidget != NULL) { QWidgetAction* action = new QWidgetAction(this); action->setDefaultWidget(m_cngWidget); m_menu->addAction(action); connect(m_cngWidget, SIGNAL(levelChanged(uchar)), this, SLOT(slotClickAndGoLevelChanged(uchar))); connect(m_cngWidget, SIGNAL(levelAndPresetChanged(uchar,QImage)), this, SLOT(slotClickAndGoLevelAndPresetChanged(uchar, QImage))); } else { QAction* action = m_menu->addAction(m_presetButton->icon(), ch->name()); m_menu->setTitle(ch->name()); action->setEnabled(false); m_menu->addSeparator(); // Initialize the preset menu only for intelligent fixtures if (fxi->isDimmer() == false) initCapabilityMenu(ch); } }
void ConsoleChannel::initMenu() { const QLCChannel* ch; QAction* action; Q_ASSERT(m_fixture != NULL); ch = m_fixture->channel(m_channel); Q_ASSERT(ch != NULL); // Get rid of a possible previous menu if (m_menu != NULL) { delete m_menu; m_menu = NULL; } // Create a popup menu and set the channel name as its title m_menu = new QMenu(this); m_presetButton->setMenu(m_menu); m_presetButton->setPopupMode(QToolButton::InstantPopup); if (ch->group() == KQLCChannelGroupPan) m_presetButton->setIcon(QIcon(":/pan.png")); else if (ch->group() == KQLCChannelGroupTilt) m_presetButton->setIcon(QIcon(":/tilt.png")); else if (ch->group() == KQLCChannelGroupColour) { if (ch->name().contains("red", Qt::CaseInsensitive) == true) { QPalette pal = m_presetButton->palette(); pal.setColor(QPalette::Button, QColor("red")); m_presetButton->setPalette(pal); } else if (ch->name().contains("green", Qt::CaseInsensitive) == true) { QPalette pal = m_presetButton->palette(); pal.setColor(QPalette::Button, QColor("green")); m_presetButton->setPalette(pal); } else if (ch->name().contains("blue", Qt::CaseInsensitive) == true) { QPalette pal = m_presetButton->palette(); pal.setColor(QPalette::Button, QColor("blue")); m_presetButton->setPalette(pal); } else if (ch->name().contains("cyan", Qt::CaseInsensitive) == true) { QPalette pal = m_presetButton->palette(); pal.setColor(QPalette::Button, QColor("cyan")); m_presetButton->setPalette(pal); } else if (ch->name().contains("magenta", Qt::CaseInsensitive) == true) { QPalette pal = m_presetButton->palette(); pal.setColor(QPalette::Button, QColor("magenta")); m_presetButton->setPalette(pal); } else if (ch->name().contains("yellow", Qt::CaseInsensitive) == true) { QPalette pal = m_presetButton->palette(); pal.setColor(QPalette::Button, QColor("yellow")); m_presetButton->setPalette(pal); } m_presetButton->setIcon(QIcon(":/color.png")); } else if (ch->group() == KQLCChannelGroupEffect) m_presetButton->setIcon(QIcon(":/efx.png")); else if (ch->group() == KQLCChannelGroupGobo) m_presetButton->setIcon(QIcon(":/gobo.png")); else if (ch->group() == KQLCChannelGroupShutter) m_presetButton->setIcon(QIcon(":/shutter.png")); else if (ch->group() == KQLCChannelGroupSpeed) m_presetButton->setIcon(QIcon(":/speed.png")); else if (ch->group() == KQLCChannelGroupPrism) m_presetButton->setIcon(QIcon(":/prism.png")); else if (ch->group() == KQLCChannelGroupMaintenance) m_presetButton->setIcon(QIcon(":/maintenance.png")); else if (ch->group() == KQLCChannelGroupIntensity) m_presetButton->setIcon(QIcon(":/intensity.png")); else if (ch->group() == KQLCChannelGroupBeam) m_presetButton->setIcon(QIcon(":/beam.png")); action = m_menu->addAction(m_presetButton->icon(), ch->name()); m_menu->setTitle(ch->name()); action->setEnabled(false); m_menu->addSeparator(); // Initialize the preset menu only for normal fixtures, // i.e. not for Generic dimmer fixtures if (m_fixture->fixtureDef() != NULL && m_fixture->fixtureMode() != NULL) initCapabilityMenu(ch); }