RGBMatrixEditor::RGBMatrixEditor(QWidget* parent, RGBMatrix* mtx, Doc* doc) : QWidget(parent) , m_doc(doc) , m_matrix(mtx) , m_speedDials(NULL) , m_scene(new QGraphicsScene(this)) , m_previewTimer(new QTimer(this)) , m_previewIterator(0) , m_previewStep(0) { Q_ASSERT(doc != NULL); Q_ASSERT(mtx != NULL); setupUi(this); // Set a nice gradient backdrop m_scene->setBackgroundBrush(Qt::darkGray); QLinearGradient gradient(200, 200, 200, 2000); gradient.setSpread(QGradient::ReflectSpread); m_scene->setBackgroundBrush(gradient); connect(m_previewTimer, SIGNAL(timeout()), this, SLOT(slotPreviewTimeout())); connect(m_doc, SIGNAL(modeChanged(Doc::Mode)), this, SLOT(slotModeChanged(Doc::Mode))); connect(m_doc, SIGNAL(fixtureGroupAdded(quint32)), this, SLOT(slotFixtureGroupAdded())); connect(m_doc, SIGNAL(fixtureGroupRemoved(quint32)), this, SLOT(slotFixtureGroupRemoved())); connect(m_doc, SIGNAL(fixtureGroupChanged(quint32)), this, SLOT(slotFixtureGroupChanged(quint32))); init(); slotModeChanged(m_doc->mode()); // Set focus to the editor m_nameEdit->setFocus(); }
bool Doc::addFixtureGroup(FixtureGroup* grp, quint32 id) { Q_ASSERT(grp != NULL); // No ID given, this method can assign one if (id == FixtureGroup::invalidId()) id = createFixtureGroupId(); if (m_fixtureGroups.contains(id) == true || id == FixtureGroup::invalidId()) { qWarning() << Q_FUNC_INFO << "a fixture group with ID" << id << "already exists!"; return false; } else { grp->setId(id); m_fixtureGroups[id] = grp; /* Patch fixture group change signals thru Doc */ connect(grp, SIGNAL(changed(quint32)), this, SLOT(slotFixtureGroupChanged(quint32))); emit fixtureGroupAdded(id); setModified(); return true; } }
void Doc_Test::addFixtureGroup() { QSignalSpy spy(m_doc, SIGNAL(fixtureGroupAdded(quint32))); QCOMPARE(m_doc->fixtureGroups().size(), 0); QCOMPARE(m_doc->m_latestFixtureGroupId, quint32(0)); FixtureGroup* grp = new FixtureGroup(m_doc); QCOMPARE(m_doc->addFixtureGroup(grp), true); QCOMPARE(grp->id(), quint32(0)); QCOMPARE(m_doc->m_latestFixtureGroupId, quint32(0)); QCOMPARE(m_doc->fixtureGroups().size(), 1); QCOMPARE(spy.size(), 1); QCOMPARE(spy[0].size(), 1); QCOMPARE(spy[0][0].toUInt(), quint32(0)); QCOMPARE(m_doc->addFixtureGroup(grp, 0), false); QCOMPARE(m_doc->fixtureGroups().size(), 1); grp = new FixtureGroup(m_doc); QCOMPARE(m_doc->addFixtureGroup(grp, 0), false); QCOMPARE(m_doc->addFixtureGroup(grp, 15), true); QCOMPARE(m_doc->m_latestFixtureGroupId, quint32(0)); QCOMPARE(m_doc->fixtureGroups().size(), 2); QCOMPARE(spy.size(), 2); QCOMPARE(spy[1].size(), 1); QCOMPARE(spy[1][0].toUInt(), quint32(15)); grp = new FixtureGroup(m_doc); QCOMPARE(m_doc->addFixtureGroup(grp), true); QCOMPARE(grp->id(), quint32(1)); QCOMPARE(m_doc->m_latestFixtureGroupId, quint32(1)); QCOMPARE(m_doc->fixtureGroups().size(), 3); QCOMPARE(spy.size(), 3); QCOMPARE(spy[2].size(), 1); QCOMPARE(spy[2][0].toUInt(), quint32(1)); }