void Fixture::initialize() { if (!isComponentComplete()) return; updateFixture(); }
void Kolf::Shape::setTraits(Kolf::Shape::Traits traits) { if (m_traits == traits) return; m_traits = traits; updateFixture(createShape()); }
bool Kolf::Shape::attach(CanvasItem* item) { if (m_citem) return false; m_citem = item; m_body = item->m_body; updateFixture(createShape()); return true; }
void MonitorGraphicsView::setGridMetrics(float value) { m_unitValue = value; QHashIterator <quint32, MonitorFixtureItem*> it(m_fixtures); while (it.hasNext() == true) { it.next(); updateFixture(it.key()); } }
void MonitorGraphicsView::setGridSize(QSize size) { m_gridSize = size; updateGrid(); QHashIterator <quint32, MonitorFixtureItem*> it(m_fixtures); while (it.hasNext() == true) { it.next(); updateFixture(it.key()); } }
void MonitorGraphicsView::resizeEvent(QResizeEvent *event) { QGraphicsView::resizeEvent(event); updateGrid(); QHashIterator <quint32, MonitorFixtureItem*> it(m_fixtures); while (it.hasNext() == true) { it.next(); updateFixture(it.key()); } }
void Fixture::setSensor(const bool &sensor) { if (m_sensor == sensor) return; m_sensor = sensor; if (m_fixture) updateFixture(); emit sensorChanged(); }
void Kolf::Shape::update() { updateFixture(createShape()); m_interactionOutline = m_activationOutline = QPainterPath(); createOutlines(m_activationOutline, m_interactionOutline); //propagate update to overlays if (m_citem) { Kolf::Overlay* overlay = m_citem->overlay(false); if (overlay) //may be 0 if the overlay has not yet been instantiated overlay->update(); } }
void MonitorGraphicsView::addFixture(quint32 id, QPointF pos) { if (id == Fixture::invalidId() || m_fixtures.contains(id) == true) return; MonitorFixtureItem *item = new MonitorFixtureItem(m_doc, id); item->setZValue(1); item->setRealPosition(pos); m_fixtures[id] = item; m_scene->addItem(item); updateFixture(id); connect(item, SIGNAL(itemDropped(MonitorFixtureItem*)), this, SLOT(slotFixtureMoved(MonitorFixtureItem*))); }
void Fixture::onShapeUpdated() { updateShape(); updateFixture(); }
Kolf::Shape::~Shape() { delete m_fixtureDef; updateFixture(0); //clear fixture and shape }
void MainView2D::createFixtureItem(quint32 fxID, quint16 headIndex, quint16 linkedIndex, QVector3D pos, bool mmCoords) { if (isEnabled() == false) return; if (m_gridItem == NULL) initialize2DProperties(); qDebug() << "[MainView2D] Creating fixture with ID" << fxID << headIndex << linkedIndex << "pos:" << pos; Fixture *fixture = m_doc->fixture(fxID); if (fixture == NULL) return; quint32 itemID = FixtureUtils::fixtureItemID(fxID, headIndex, linkedIndex); QLCFixtureMode *fxMode = fixture->fixtureMode(); QQuickItem *newFixtureItem = qobject_cast<QQuickItem*>(fixtureComponent->create()); quint32 itemFlags = m_monProps->fixtureFlags(fxID, headIndex, linkedIndex); newFixtureItem->setParentItem(m_gridItem); newFixtureItem->setProperty("itemID", itemID); if (itemFlags & MonitorProperties::HiddenFlag) newFixtureItem->setProperty("visible", false); if (fxMode != NULL && fixture->type() != QLCFixtureDef::Dimmer) { QLCPhysical phy = fxMode->physical(); //qDebug() << "Current mode fixture heads:" << fxMode->heads().count(); newFixtureItem->setProperty("headsNumber", fxMode->heads().count()); if (fixture->channelNumber(QLCChannel::Pan, QLCChannel::MSB) != QLCChannel::invalid()) { int panDeg = phy.focusPanMax(); if (panDeg == 0) panDeg = 360; newFixtureItem->setProperty("panMaxDegrees", panDeg); } if (fixture->channelNumber(QLCChannel::Tilt, QLCChannel::MSB) != QLCChannel::invalid()) { int tiltDeg = phy.focusTiltMax(); if (tiltDeg == 0) tiltDeg = 270; newFixtureItem->setProperty("tiltMaxDegrees", tiltDeg); } } QPointF itemPos; QSizeF size = FixtureUtils::item2DDimension(fixture->type() == QLCFixtureDef::Dimmer ? NULL : fxMode, m_monProps->pointOfView()); if (mmCoords == false && (pos.x() != 0 || pos.y() != 0)) { float gridUnits = m_monProps->gridUnits() == MonitorProperties::Meters ? 1000.0 : 304.8; itemPos.setX((pos.x() * gridUnits) / m_cellPixels); itemPos.setY((pos.y() * gridUnits) / m_cellPixels); } if (m_monProps->containsItem(fxID, headIndex, linkedIndex)) { itemPos = FixtureUtils::item2DPosition(m_monProps, m_monProps->pointOfView(), pos); newFixtureItem->setProperty("rotation", FixtureUtils::item2DRotation(m_monProps->pointOfView(), m_monProps->fixtureRotation(fxID, headIndex, linkedIndex))); } else { itemPos = FixtureUtils::available2DPosition(m_doc, m_monProps->pointOfView(), QRectF(itemPos.x(), itemPos.y(), size.width(), size.height())); // add the new fixture to the Doc monitor properties QVector3D newPos = FixtureUtils::item3DPosition(m_monProps, itemPos, 1000.0); m_monProps->setFixturePosition(fxID, headIndex, linkedIndex, newPos); m_monProps->setFixtureFlags(fxID, headIndex, linkedIndex, 0); Tardis::instance()->enqueueAction(Tardis::FixtureSetPosition, itemID, QVariant(QVector3D(0, 0, 0)), QVariant(newPos)); } newFixtureItem->setProperty("mmXPos", itemPos.x()); newFixtureItem->setProperty("mmYPos", itemPos.y()); newFixtureItem->setProperty("mmWidth", size.width()); newFixtureItem->setProperty("mmHeight", size.height()); newFixtureItem->setProperty("fixtureName", fixture->name()); // and finally add the new item to the items map m_itemsMap[itemID] = newFixtureItem; QByteArray values; updateFixture(fixture, values); }