Beispiel #1
0
void QMultistageBehMod::stageContextMenu(const QPoint& pos)
{
    plMultistageBehMod* obj = plMultistageBehMod::Convert(fCreatable);

    QMenu menu(this);
    QAction* addObjItem = menu.addAction(tr("Add Stage..."));
    QAction* delObjItem = menu.addAction(tr("Remove Stage"));

    if (fStages->currentItem() == NULL)
        delObjItem->setEnabled(false);

    QAction* sel = menu.exec(fStages->viewport()->mapToGlobal(pos));
    if (sel == addObjItem) {
        plAnimStage* stage = new plAnimStage();
        int id = obj->getStages().getSize();
        QTreeWidgetItem* item = new QTreeWidgetItem(fStages,
            QStringList() << QString("%1").arg(id) << pqGetFriendlyClassName(stage->ClassIndex()));
        item->setIcon(0, pqGetTypeIcon(stage->ClassIndex()));
        obj->addStage(stage);
    } else if (sel == delObjItem) {
        int idx = fStages->indexOfTopLevelItem(fStages->currentItem());
        QTreeWidgetItem* item = fStages->takeTopLevelItem(idx);
        delete item;
        obj->delStage(idx);
    }
}
Beispiel #2
0
void QKeyList::addKey(plKey key)
{
    QTreeWidgetItem* item = new QTreeWidgetItem(this,
        QStringList() << ~key->getName() << pqGetFriendlyClassName(key->getType()));
    item->setIcon(0, pqGetTypeIcon(key->getType()));
    fKeys << key;
}
Beispiel #3
0
QCreatable::QCreatable(plCreatable* pCre, int type, QWidget* parent)
          : QWidget(parent), fCreatable(pCre), fForceType(type)
{
    setAttribute(Qt::WA_DeleteOnClose);
    QIcon ico = pqGetTypeIcon(type);
    if (!ico.isNull())
        setWindowIcon(ico);
    hsKeyedObject* ko = hsKeyedObject::Convert(fCreatable, false);
    if (ko != NULL && ko->getKey().Exists()) {
        setWindowTitle(pqGetFriendlyClassName(type) +
                       ": " + ~ko->getKey()->getName());
    } else {
        setWindowTitle(pqGetFriendlyClassName(type));
    }
}
/* QGUIRadioGroupCtrl */
QGUIRadioGroupCtrl::QGUIRadioGroupCtrl(plCreatable* pCre, QWidget* parent)
                  : QCreatable(pCre, kGUIRadioGroupCtrl, parent)
{
    pfGUIRadioGroupCtrl* ctrl = pfGUIRadioGroupCtrl::Convert(fCreatable);

    fControlModLink = new QCreatableLink(this, false);
    fControlModLink->setText(tr("GUI Control Common Properties"));
    fControlModLink->setCreatable(ctrl);
    fControlModLink->setForceType(kGUIControlMod);

    QGroupBox* grpFlags = new QGroupBox(tr("Flags"), this);
    fModFlagAllowNoSelection = new QCheckBox(tr("Allow No Selection"), grpFlags);
    QGridLayout* flagLayout = new QGridLayout(grpFlags);
    flagLayout->setContentsMargins(8, 8, 8, 8);
    flagLayout->setVerticalSpacing(0);
    flagLayout->setHorizontalSpacing(8);
    flagLayout->addWidget(fModFlagAllowNoSelection, 0, 0);
    fModFlagAllowNoSelection->setChecked(ctrl->getFlag(pfGUIRadioGroupCtrl::kAllowNoSelection));

    fControls = new QKeyList(ctrl->getKey(), this);
    fDefaultValue = new QComboBox(this);
    for (size_t i=0; i<ctrl->getControls().size(); i++) {
        fControls->addKey(ctrl->getControls()[i]);
        fDefaultValue->addItem(pqGetTypeIcon(ctrl->getControls()[i]->getType()),
                               ~ctrl->getControls()[i]->getName());
    }
    fDefaultValue->setCurrentIndex(ctrl->getDefaultValue());

    QGridLayout* layout = new QGridLayout(this);
    layout->setContentsMargins(8, 8, 8, 8);
    layout->addWidget(fControlModLink, 0, 0, 1, 2);
    layout->addWidget(grpFlags, 1, 0, 1, 2);
    layout->addItem(new QSpacerItem(0, 8, QSizePolicy::Minimum, QSizePolicy::Minimum), 2, 0, 1, 2);
    layout->addWidget(new QLabel(tr("Controls:"), this), 3, 0, 1, 2);
    layout->addWidget(fControls, 4, 0, 1, 2);
    layout->addWidget(new QLabel(tr("Default:"), this), 5, 0);
    layout->addWidget(fDefaultValue, 5, 1);

    connect(fControls, SIGNAL(itemAdded(plKey)), this, SLOT(controlAdded(plKey)));
    connect(fControls, SIGNAL(itemRemoved(int)), this, SLOT(controlRemoved(int)));
    fControls->adjustColumns();
}
void QGUIRadioGroupCtrl::controlAdded(plKey ctrl)
{
    fDefaultValue->addItem(pqGetTypeIcon(ctrl->getType()), ~ctrl->getName());
}
Beispiel #6
0
/* QMultistageBehMod */
QMultistageBehMod::QMultistageBehMod(plCreatable* pCre, QWidget* parent)
                 : QCreatable(pCre, kMultistageBehMod, parent)
{
    plMultistageBehMod* obj = plMultistageBehMod::Convert(fCreatable);

    fSynchObjLink = new QCreatableLink(this, false);
    fSynchObjLink->setText(tr("Synch Flags"));
    fSynchObjLink->setCreatable(obj);
    fSynchObjLink->setForceType(kSynchedObject);

    QGroupBox* grpFlags = new QGroupBox(tr("Flags"), this);
    QGridLayout* layFlags = new QGridLayout(grpFlags);
    layFlags->setVerticalSpacing(0);
    layFlags->setHorizontalSpacing(8);
    fFreezePhys = new QCheckBox(tr("Freeze Physics"), grpFlags);
    fFreezePhys->setChecked(obj->getFreezePhys());
    fSmartSeek = new QCheckBox(tr("Smart Seek"), grpFlags);
    fSmartSeek->setChecked(obj->getSmartSeek());
    fReverseControls = new QCheckBox(tr("Reverse Controls on Release"), grpFlags);
    fReverseControls->setChecked(obj->getReverseFBControlsOnRelease());
    layFlags->addWidget(fFreezePhys, 0, 0);
    layFlags->addWidget(fSmartSeek, 1, 0);
    layFlags->addWidget(fReverseControls, 2, 0);

    QTabWidget* listTabs = new QTabWidget(this);

    fStages = new QTreeWidget(listTabs);
    fStages->setColumnCount(2);
    fStages->setUniformRowHeights(true);
    fStages->setRootIsDecorated(false);
    fStages->headerItem()->setText(0, tr("Idx"));
    fStages->headerItem()->setText(1, tr("Type"));
    fStages->setContextMenuPolicy(Qt::CustomContextMenu);
    for (size_t i=0; i<obj->getStages().getSize(); i++) {
        plAnimStage* stage = obj->getStages()[i];
        QTreeWidgetItem* item = new QTreeWidgetItem(fStages,
            QStringList() << QString("%1").arg(i) << pqGetFriendlyClassName(stage->ClassIndex()));
        item->setIcon(0, pqGetTypeIcon(stage->ClassIndex()));
    }

    fReceivers = new QKeyList(obj->getKey(), listTabs);
    for (size_t i=0; i<obj->getReceivers().getSize(); i++)
        fReceivers->addKey(obj->getReceivers()[i]);

    listTabs->addTab(fStages, tr("Animation Stages"));
    listTabs->addTab(fReceivers, tr("Receivers"));

    QGridLayout* layout = new QGridLayout(this);
    layout->setContentsMargins(8, 8, 8, 8);
    layout->addWidget(fSynchObjLink, 0, 0);
    layout->addWidget(grpFlags, 1, 0);
    layout->addWidget(listTabs, 2, 0);
    fStages->resizeColumnToContents(1);
    fStages->resizeColumnToContents(0);
    fReceivers->adjustColumns();

    connect(fStages, SIGNAL(customContextMenuRequested(const QPoint&)),
            this, SLOT(stageContextMenu(const QPoint&)));
    connect(fStages, SIGNAL(itemActivated(QTreeWidgetItem*, int)),
            this, SLOT(activateStageItem(QTreeWidgetItem*, int)));
}