The FacingNorthWidget allows the user to select an entity that will be used to test this conditional It will then emit a signal that contains the MyConditionalExpression that is to be sent to the back-end
#include "../addConditionalSim/conditionalExpression.h"
using namespace makVrf;
namespace vrfAddConditionalExample
{
{
}
QString DtNorthConditionalCreator::title() const
{
return QObject::tr("Facing North");
}
bool DtNorthConditionalCreator::canEditType(int t) const
{
return (MyConditionalExpression().type() == t);
}
{
}
DtNorthConditionalLogic::~DtNorthConditionalLogic()
{
}
const std::vector<makVrv::DtSimEntry*>& data)
{
myInterface->signal_conditionComplete();
}
{
MyConditionalExpression* expr = new MyConditionalExpression;
if (useNameSelected() && !useSelf())
{
if (selectedName().length() == 0)
{
delete expr;
return 0;
}
expr->setEntityName((const char*)selectedName().toLocal8Bit());
}
expr->setModifier(createModifier().toLatin1().constData());
return expr;
}
const std::vector<makVrv::DtSimEntry*>& data)
{
const MyConditionalExpression* ce = dynamic_cast<const MyConditionalExpression*>(cond);
if (ce)
{
if (!setupFromModifier(ce->modifier().c_str()))
{
setSelectedName(QString::fromLocal8Bit(ce->entityName()));
}
}
}
DtNorthConditional::DtNorthConditional(makVrv::DtDe& de,
QWidget* parent,
const Qt::WindowFlags& flags)
{
setWindowTitle(tr("Facing North"));
myLogic = new DtNorthConditionalLogic(de, this);
}
DtNorthConditional::~DtNorthConditional()
{
}
{
return "";
}
{
}
{
return NULL;
}
{
myLogic->setupConditional(expr, data);
}
}