Beispiel #1
0
void VCProperties_Test::loadXMLSad()
{
    QBuffer buffer;
    buffer.open(QIODevice::ReadWrite | QIODevice::Text);
    QXmlStreamWriter xmlWriter(&buffer);

    xmlWriter.writeStartElement("VirtualConsole");

    xmlWriter.writeStartElement("Properties");
    xmlWriter.writeEndElement();

    xmlWriter.writeStartElement("Frame");
    xmlWriter.writeEndElement();

    xmlWriter.writeStartElement("Foo");
    xmlWriter.writeEndElement();

    xmlWriter.writeEndDocument();
    xmlWriter.setDevice(NULL);

    buffer.seek(0);
    QXmlStreamReader xmlReader(&buffer);
    xmlReader.readNextStartElement();

    VCProperties p;
    QVERIFY(p.loadXML(xmlReader) == false);
}
Beispiel #2
0
void VCProperties_Test::saveXML()
{
    VCProperties p;
    p.m_size = QSize(33, 44);
    p.m_gmChannelMode = GrandMaster::AllChannels;
    p.m_gmValueMode = GrandMaster::Limit;
    p.m_gmInputUniverse = 3;
    p.m_gmInputChannel = 42;

    QBuffer buffer;
    buffer.open(QIODevice::WriteOnly | QIODevice::Text);
    QXmlStreamWriter xmlWriter(&buffer);

    QVERIFY(p.saveXML(&xmlWriter) == true);

    xmlWriter.setDevice(NULL);
    buffer.close();

    buffer.open(QIODevice::ReadOnly | QIODevice::Text);
    QXmlStreamReader xmlReader(&buffer);
    xmlReader.readNextStartElement();

    VCProperties p2;
    QVERIFY(p2.loadXML(xmlReader) == true);
    QCOMPARE(p2.size(), QSize(33, 44));
    QCOMPARE(p2.grandMasterChannelMode(), GrandMaster::AllChannels);
    QCOMPARE(p2.grandMasterValueMode(), GrandMaster::Limit);
    QCOMPARE(p2.grandMasterInputUniverse(), quint32(3));
    QCOMPARE(p2.grandMasterInputChannel(), quint32(42));
}
Beispiel #3
0
VCPropertiesEditor::VCPropertiesEditor(QWidget* parent, const VCProperties& properties,
                                       InputMap* inputMap)
    : QDialog(parent)
    , m_inputMap(inputMap)
{
    Q_ASSERT(inputMap != NULL);

    setupUi(this);

    QAction* action = new QAction(this);
    action->setShortcut(QKeySequence(QKeySequence::Close));
    connect(action, SIGNAL(triggered(bool)), this, SLOT(reject()));
    addAction(action);

    m_properties = properties;

    /* General page */
    m_sizeXSpin->setValue(properties.size().width());
    m_sizeYSpin->setValue(properties.size().height());
    fillTapModifierCombo();

    /* Grand Master page */
    switch (properties.grandMasterChannelMode())
    {
    default:
    case UniverseArray::GMIntensity:
        m_gmIntensityRadio->setChecked(true);
        break;
    case UniverseArray::GMAllChannels:
        m_gmAllChannelsRadio->setChecked(true);
        break;
    }

    switch (properties.grandMasterValueMode())
    {
    default:
    case UniverseArray::GMReduce:
        m_gmReduceRadio->setChecked(true);
        break;
    case UniverseArray::GMLimit:
        m_gmLimitRadio->setChecked(true);
        break;
    }

    switch (properties.grandMasterSlideMode())
    {
    default:
    case UniverseArray::GMNormal:
        m_gmSliderModeNormalRadio->setChecked(true);
        break;
    case UniverseArray::GMInverted:
        m_gmSliderModeInvertedRadio->setChecked(true);
        break;
    }

    updateGrandMasterInputSource();
}
Beispiel #4
0
VCPropertiesEditor::VCPropertiesEditor(QWidget* parent,
	const VCProperties& properties) : QDialog(parent)
{
	setupUi(this);

	connect(m_chooseFadeInputButton, SIGNAL(clicked()),
		this, SLOT(slotChooseFadeInputClicked()));
	connect(m_chooseHoldInputButton, SIGNAL(clicked()),
		this, SLOT(slotChooseHoldInputClicked()));

	m_properties = properties;

	/* Grid */
	m_gridGroup->setChecked(properties.isGridEnabled());
	m_gridXSpin->setValue(properties.gridX());
	m_gridYSpin->setValue(properties.gridY());

	/* Keyboard */
	m_grabKeyboardCheck->setChecked(properties.isGrabKeyboard());
	m_keyRepeatOffCheck->setChecked(properties.isKeyRepeatOff());

	/* Slider limits */
	m_fadeLowSpin->setValue(properties.fadeLowLimit());
	m_fadeHighSpin->setValue(properties.fadeHighLimit());
	m_holdLowSpin->setValue(properties.holdLowLimit());
	m_holdHighSpin->setValue(properties.holdHighLimit());

	/* External input */
	updateFadeInputSource();
	updateHoldInputSource();
}
Beispiel #5
0
void VCProperties_Test::loadXMLHappyNoInput()
{
    QBuffer buffer;
    buffer.open(QIODevice::ReadWrite | QIODevice::Text);
    QXmlStreamWriter xmlWriter(&buffer);

    xmlWriter.writeStartElement("Properties");

    // Size
    xmlWriter.writeStartElement("Size");
    xmlWriter.writeAttribute("Width", "30");
    xmlWriter.writeAttribute("Height", "40");
    xmlWriter.writeEndElement();

    // Grand Master
    xmlWriter.writeStartElement("GrandMaster");
    xmlWriter.writeAttribute("ChannelMode", "Intensity");
    xmlWriter.writeAttribute("ValueMode", "Reduce");
    xmlWriter.writeEndElement();

    // Extra crap
    xmlWriter.writeStartElement("Foo");
    xmlWriter.writeEndElement();

    xmlWriter.writeEndDocument();
    xmlWriter.setDevice(NULL);

    buffer.seek(0);
    QXmlStreamReader xmlReader(&buffer);
    xmlReader.readNextStartElement();

    qDebug() << "Buffer:" << buffer.data();

    VCProperties p;
    QVERIFY(p.loadXML(xmlReader) == true);
    QCOMPARE(p.size(), QSize(30, 40));
    QCOMPARE(p.grandMasterChannelMode(), GrandMaster::Intensity);
    QCOMPARE(p.grandMasterValueMode(), GrandMaster::Reduce);
}
Beispiel #6
0
VCPropertiesEditor::VCPropertiesEditor(QWidget* parent, const VCProperties& properties,
                                       InputMap* inputMap)
    : QDialog(parent)
    , m_inputMap(inputMap)
{
    Q_ASSERT(inputMap != NULL);

    setupUi(this);

    QAction* action = new QAction(this);
    action->setShortcut(QKeySequence(QKeySequence::Close));
    connect(action, SIGNAL(triggered(bool)), this, SLOT(reject()));
    addAction(action);

    m_properties = properties;

    /* General page */
    m_gridGroup->setChecked(properties.isGridEnabled());
    m_gridXSpin->setValue(properties.gridX());
    m_gridYSpin->setValue(properties.gridY());
    m_grabKeyboardCheck->setChecked(properties.isGrabKeyboard());
    m_keyRepeatOffCheck->setChecked(properties.isKeyRepeatOff());
    fillTapModifierCombo();

    /* Grand Master page */
    switch (properties.grandMasterChannelMode())
    {
    default:
    case UniverseArray::GMIntensity:
        m_gmIntensityRadio->setChecked(true);
        break;
    case UniverseArray::GMAllChannels:
        m_gmAllChannelsRadio->setChecked(true);
        break;
    }

    switch (properties.grandMasterValueMode())
    {
    default:
    case UniverseArray::GMReduce:
        m_gmReduceRadio->setChecked(true);
        break;
    case UniverseArray::GMLimit:
        m_gmLimitRadio->setChecked(true);
        break;
    }

    updateGrandMasterInputSource();

    /* Blackout page*/
    updateBlackoutInputSource();
}
Beispiel #7
0
void VCProperties_Test::loadXMLHappy()
{
    QBuffer buffer;
    buffer.open(QIODevice::ReadWrite | QIODevice::Text);
    QXmlStreamWriter xmlWriter(&buffer);

    xmlWriter.writeStartElement("Properties");

    // Size
    xmlWriter.writeStartElement("Size");
    xmlWriter.writeAttribute("Width", "10");
    xmlWriter.writeAttribute("Height", "20");
    xmlWriter.writeEndElement();

    // Grand Master
    xmlWriter.writeStartElement("GrandMaster");
    xmlWriter.writeAttribute("ChannelMode", "All");
    xmlWriter.writeAttribute("ValueMode", "Limit");

    xmlWriter.writeStartElement("Input");
    xmlWriter.writeAttribute("Universe", "2");
    xmlWriter.writeAttribute("Channel", "15");
    xmlWriter.writeEndElement();
    xmlWriter.writeEndElement();

    // Extra crap
    xmlWriter.writeStartElement("Foo");
    xmlWriter.writeEndElement();

    xmlWriter.writeEndDocument();
    xmlWriter.setDevice(NULL);

    buffer.seek(0);
    QXmlStreamReader xmlReader(&buffer);
    xmlReader.readNextStartElement();

    qDebug() << "Buffer:" << buffer.data();

    VCProperties p;
    QVERIFY(p.loadXML(xmlReader) == true);
    QCOMPARE(p.size(), QSize(10, 20));
    QCOMPARE(p.grandMasterChannelMode(), GrandMaster::AllChannels);
    QCOMPARE(p.grandMasterValueMode(), GrandMaster::Limit);
    QCOMPARE(p.grandMasterInputUniverse(), quint32(2));
    QCOMPARE(p.grandMasterInputChannel(), quint32(15));
}
VCPropertiesEditor::VCPropertiesEditor(QWidget* parent, const VCProperties& properties,
                                       InputMap* inputMap)
    : QDialog(parent)
    , m_inputMap(inputMap)
{
    Q_ASSERT(inputMap != NULL);

    setupUi(this);

    QAction* action = new QAction(this);
    action->setShortcut(QKeySequence(QKeySequence::Close));
    connect(action, SIGNAL(triggered(bool)), this, SLOT(reject()));
    addAction(action);

    m_properties = properties;

    /* General page */
    m_sizeXSpin->setValue(properties.size().width());
    m_sizeYSpin->setValue(properties.size().height());
    fillTapModifierCombo();

    /* Widgets page */
    QSettings settings;
    // ********************* BUTTON ****************************
    QVariant var = settings.value(SETTINGS_BUTTON_SIZE);
    if (var.isValid() == true)
    {
        QSize size = var.toSize();
        m_buttonWspin->setValue(size.width());
        m_buttonHspin->setValue(size.height());
    }
    else
    {
        m_buttonWspin->setValue(50);
        m_buttonHspin->setValue(50);
    }
    // ********************* BUTTON STATUS *********************
    var = settings.value(SETTINGS_BUTTON_STATUSLED);
    if (var.isValid() == true && var.toBool() == true)
            m_buttonStatusLEDRadio->setChecked(true);
    // ********************* SLIDER ****************************
    var = settings.value(SETTINGS_SLIDER_SIZE);
    if (var.isValid() == true)
    {
        QSize size = var.toSize();
        m_sliderWspin->setValue(size.width());
        m_sliderHspin->setValue(size.height());
    }
    else
    {
        m_sliderWspin->setValue(60);
        m_sliderHspin->setValue(200);
    }
    // ********************* SPEED DIAL ************************
    var = settings.value(SETTINGS_SPEEDDIAL_SIZE);
    if (var.isValid() == true)
    {
        QSize size = var.toSize();
        m_speedWspin->setValue(size.width());
        m_speedHspin->setValue(size.height());
    }
    else
    {
        m_speedWspin->setValue(200);
        m_speedHspin->setValue(175);
    }
    // ********************* SPEED DIAL VALUE ******************
    var = settings.value(SETTINGS_SPEEDDIAL_VALUE);
    if (var.isValid() == true)
        m_speedValueEdit->setText(Function::speedToString(var.toUInt()));
    else
        m_speedValueEdit->setText(Function::speedToString(0));

    connect(m_speedValueEdit, SIGNAL(editingFinished()),
            this, SLOT(slotSpeedDialConfirmed()));

    // ********************* XY PAD ****************************
    var = settings.value(SETTINGS_XYPAD_SIZE);
    if (var.isValid() == true)
    {
        QSize size = var.toSize();
        m_xypadWspin->setValue(size.width());
        m_xypadHspin->setValue(size.height());
    }
    else
    {
        m_xypadWspin->setValue(230);
        m_xypadHspin->setValue(230);
    }
    // ********************* CUE LIST **************************
    var = settings.value(SETTINGS_CUELIST_SIZE);
    if (var.isValid() == true)
    {
        QSize size = var.toSize();
        m_cuelistWspin->setValue(size.width());
        m_cuelistHspin->setValue(size.height());
    }
    else
    {
        m_cuelistWspin->setValue(300);
        m_cuelistHspin->setValue(220);
    }
    // ************************ FRAME **************************
    var = settings.value(SETTINGS_FRAME_SIZE);
    if (var.isValid() == true)
    {
        QSize size = var.toSize();
        m_frameWspin->setValue(size.width());
        m_frameHspin->setValue(size.height());
    }
    else
    {
        m_frameWspin->setValue(200);
        m_frameHspin->setValue(200);
    }
    // ********************* SOLO FRAME ************************
    var = settings.value(SETTINGS_SOLOFRAME_SIZE);
    if (var.isValid() == true)
    {
        QSize size = var.toSize();
        m_soloWspin->setValue(size.width());
        m_soloHspin->setValue(size.height());
    }
    else
    {
        m_soloWspin->setValue(200);
        m_soloHspin->setValue(200);
    }
    // ***************** AUDIO TRIGGERS ************************
    var = settings.value(SETTINGS_AUDIOTRIGGERS_SIZE);
    if (var.isValid() == true)
    {
        QSize size = var.toSize();
        m_audioWspin->setValue(size.width());
        m_audioHspin->setValue(size.height());
    }
    else
    {
        m_audioWspin->setValue(200);
        m_audioHspin->setValue(200);
    }

    /* Grand Master page */
    switch (properties.grandMasterChannelMode())
    {
    default:
    case UniverseArray::GMIntensity:
        m_gmIntensityRadio->setChecked(true);
        break;
    case UniverseArray::GMAllChannels:
        m_gmAllChannelsRadio->setChecked(true);
        break;
    }

    switch (properties.grandMasterValueMode())
    {
    default:
    case UniverseArray::GMReduce:
        m_gmReduceRadio->setChecked(true);
        break;
    case UniverseArray::GMLimit:
        m_gmLimitRadio->setChecked(true);
        break;
    }

    switch (properties.grandMasterSlideMode())
    {
    default:
    case UniverseArray::GMNormal:
        m_gmSliderModeNormalRadio->setChecked(true);
        break;
    case UniverseArray::GMInverted:
        m_gmSliderModeInvertedRadio->setChecked(true);
        break;
    }

    updateGrandMasterInputSource();
}