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();
}
DtSimCondExpr* DtNorthConditionalLogic::conditionalExpression()
const
{
MyConditionalExpression* expr = new MyConditionalExpression;
if (useNameSelected() && !useSelf())
{
if (!selectedName().isValid())
{
delete expr;
return 0;
}
expr->setEntity(selectedName());
}
expr->setModifier(createModifier().toLatin1().constData());
return expr;
}
void DtNorthConditionalLogic::setupConditional(
const DtSimCondExpr* cond,
const std::vector<makVrv::DtSimEntry*>& data)
{
const MyConditionalExpression* ce = dynamic_cast<const MyConditionalExpression*>(cond);
if (ce)
{
if (!setupFromModifier(ce->modifier().c_str()))
{
setSelectedName(ce->entity());
}
}
}
DtNorthConditional::DtNorthConditional(
makVrv::DtDe& de, QWidget* parent,
const Qt::WindowFlags& flags)
{
setWindowTitle(tr("Facing North"));
myLogic = new DtNorthConditionalLogic(de, this);
}
DtNorthConditional::~DtNorthConditional()
{
}
QString DtNorthConditional::value() const
{
return "";
}
void DtNorthConditional::setValue(const QString& s)
{
}
QWidget* DtNorthConditional::expressionExtension()
{
return NULL;
}
void DtNorthConditional::setupConditional(
const DtSimCondExpr* expr,
const std::vector<makVrv::DtSimEntry*>& data)
{
myLogic->setupConditional(expr, data);
}
}