void TestController::unload() {
    //Inputs
    QLayout* layout = getView().getUi().grx_test_inputs->layout();

    for (int i = layout->count() - 1; i >= 0; --i) {
        QLayoutItem* item = layout->itemAt(i);
        GuiGrapher* g = dynamic_cast<GuiGrapher*> (item->widget());
        if (g) {
            QObject::disconnect(g, SIGNAL(onChangeInputValue()), this,
                                SLOT(onInputValueChanged()));
        }
        layout->removeItem(item);
        delete item->widget();
        delete item;
    }

    //Rules
    getView().getUi().lsw_test_rules->clear();
    getView().getUi().lsw_test_rules_activation->clear();

    //Outputs
    layout = getView().getUi().grx_test_outputs->layout();
    for (int i = layout->count() - 1; i >= 0; --i) {
        QLayoutItem* item = layout->itemAt(i);
        GuiGrapher* g = dynamic_cast<GuiGrapher*> (item->widget());
        if (g) {
            QObject::disconnect(this, SIGNAL(forceUpdate()), g, SLOT(updateUi()));
        }
        layout->removeItem(item);
        delete item->widget();
        delete item;
    }
}
int fl_gui::TestController::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QObject::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        switch (_id) {
        case 0: forceUpdate(); break;
        case 1: load(); break;
        case 2: unload(); break;
        case 3: onInputValueChanged(); break;
        default: ;
        }
        _id -= 4;
    }
    return _id;
}
void TestController::load() {
    unload();
    //Inputs
    QLayout* layout = getView().getUi().grx_test_inputs->layout();
    for (int i = 0; i < getModel().numberOfInputLVars(); ++i) {
        GuiGrapher* g = new GuiGrapher(*getModel().inputLVar(i));
        g->setup();
        //            layout->insertWidget(i, g);
        layout->addWidget(g);
        QObject::connect(g, SIGNAL(onChangeInputValue()), this,
                         SLOT(onInputValueChanged()));
    }
    layout->addItem(new QSpacerItem(20, 40, QSizePolicy::Ignored, QSizePolicy::Expanding));

    //Rules
    for (int i = 0; i < getModel().ruleBlock(0)->numberOfRules(); ++i) {
        QString rule = QString::fromStdString(getModel().ruleBlock(0)->rule(i)->toString());
        getView().getUi().lsw_test_rules->addItem(rule);
        QListWidgetItem* item = new QListWidgetItem;
        item->setText("-");
        item->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
        getView().getUi().lsw_test_rules_activation->addItem(item);
    }
    for (int i = 0; i < getModel().ruleBlock(0)->numberOfRules(); ++i) {
        QListWidgetItem* rule = getView().getUi().lsw_test_rules->item(i);
        QListWidgetItem* act = getView().getUi().lsw_test_rules_activation->item(i);
        QRect rect = getView().getUi().lsw_test_rules->visualItemRect(rule);
        act->setSizeHint(rect.size());
    }

    layout = getView().getUi().grx_test_outputs->layout();
    //Outputs
    for (int i = 0; i < getModel().numberOfOutputLVars(); ++i) {
        GuiGrapher* g = new GuiGrapher(*getModel().outputLVar(i));
        g->setup();
        layout->addWidget(g);
        QObject::connect(this, SIGNAL(forceUpdate()), g, SLOT(updateUi()));
    }
    layout->addItem(new QSpacerItem(20, 40, QSizePolicy::Ignored, QSizePolicy::Expanding));

    getView().getUi().tab_container->setCurrentIndex(1);
}
Beispiel #4
0
void Stage::inputValueChanged(AbstractSlot * slot)
{
    inputChanged(slot);

    onInputValueChanged(slot);
}