コード例 #1
0
void SCgCommandCreateBus::redo()
{
    SCgBaseCommand::redo();

    SCgBus *bus = 0;
    if (mObject == 0)
    {
        bus = mScene->construction()->createBus();
        bus->setOwner(mOwner);

        mObject = bus;

        QPointF pt;
        foreach (pt, mPoints)
            bus->appendPoint(pt);

        connect(mObject, SIGNAL(destroyed()), this, SLOT(busDestroyed()));
    }else
    {
        mScene->construction()->appendObject(mObject);
        bus = qobject_cast<SCgBus*>(mObject);
    }

    bus->setOwner(mOwner);
    bus->updatePoints();
}
コード例 #2
0
void SCgCommandCreateBus::undo()
{
    Q_ASSERT_X(mObject != 0,
               "void SCgCommandCreateBus::undo()",
               "Bus doesn't exists");

    mScene->construction()->removeObject(mObject);
    SCgBus *bus = qobject_cast<SCgBus*>(mObject);
    bus->setOwner(mOwner);

    SCgBaseCommand::undo();
}
コード例 #3
0
ファイル: scgscene.cpp プロジェクト: burikella/kbe
SCgBus* SCgScene::createSCgBus(const QVector<QPointF>& points, SCgNode *owner)
{
    SCgBus* bus = new SCgBus;

    if (owner != 0)
        bus->setOwner(owner);

    bus->setPoints(points);

    addItem(bus);

    return bus;
}