void FixtureConsole::enableAllChannels(bool enable)
{
    /* All of this' children are ConsoleChannel objects, except layout */
    QListIterator <QObject*> it(children());
    while (it.hasNext() == true)
    {
        ConsoleChannel* cc = qobject_cast<ConsoleChannel*> (it.next());
        if (cc != NULL)
            cc->enable(enable);
    }
}
void FixtureConsole::setSceneValue(const SceneValue& scv)
{
    Q_ASSERT(scv.fxi == m_fixture);

    QListIterator <QObject*> it(children());
    while (it.hasNext() == true)
    {
        ConsoleChannel* cc = qobject_cast<ConsoleChannel*> (it.next());
        if (cc != NULL && cc->channel() == scv.channel)
        {
            cc->enable(true);
            cc->setValue(scv.value);
        }
    }
}
void FixtureConsole::setValues(const QList <SceneValue>& list)
{
    enableAllChannels(false);

    QListIterator <SceneValue> it(list);
    while (it.hasNext() == true)
    {
        SceneValue val(it.next());
        if (val.channel < quint32(children().size()))
        {
            ConsoleChannel* cc = channel(val.channel);
            if (cc != NULL)
            {
                cc->enable(true);
                cc->setValue(val.value);
            }
        }
    }
}