9 : QFrame(parent), m_Layout{ new QGridLayout(this) },
10 m_ActiveAgentComboBox{ new QComboBox(this) },
11 m_ActiveAgentColorBox{ new
ColorBox(this) },
12 m_NewAgentButton{ new QPushButton(this) }, m_ActiveAgentIndex{}
14 setObjectName(
"AgentControls");
16 setFrameStyle(QFrame::Panel | QFrame::Raised);
18 QLabel* heading{
new QLabel(
this) };
19 heading->setText(
"Agent Controls");
20 m_Layout->addWidget(heading, 0, 0, 1, 3, Qt::AlignHCenter);
22 QFrame* hLine{
new QFrame(
this) };
23 hLine->setFrameStyle(QFrame::HLine | QFrame::Sunken);
24 m_Layout->addWidget(hLine, 1, 0, 1, 3);
26 QFrame* activeAgentFrame{
new QFrame(
this) };
27 activeAgentFrame->setFrameStyle(QFrame::Panel | QFrame::Raised);
28 QGridLayout* activeAgentFrameLayout{
new QGridLayout(
30 QLabel* activeAgentHeading{
new QLabel(activeAgentFrame) };
31 activeAgentHeading->setText(
"Active agent");
32 activeAgentFrameLayout->addWidget(activeAgentHeading, 0, 0, 1, 3,
37 m_Layout->addWidget(activeAgentFrame, 2, 0, 1, 3);
58 [&](
const Core::Agent& agent) { return agent.Id == m_ActiveAgentIndex; });
60 agent->
Color = color.name().toStdString();
68 std::pair<std::vector<Core::Agent>::iterator, std::vector<Core::Agent>::iterator>
73 for (
auto iter{ agents.first }; iter != agents.second; ++iter) {
74 QString newAgentText =
"Agent " + QString::number(iter->Id);
97 [&](
const Core::Agent& agent) { return agent.Id == index; });
100 QColor(QString::fromStdString(agent->
Color)));
112 [&](
const Core::Agent& agent) { return agent.Id == m_ActiveAgentIndex; });
115 QColor(QString::fromStdString(agent->
Color)));
QComboBox * m_ActiveAgentComboBox
QPushButton * m_NewAgentButton
AgentControls(QWidget *parent=nullptr)
void UpdateAgents(std::pair< std::vector< Core::Agent >::iterator, std::vector< Core::Agent >::iterator >)
void ActiveAgentChanged(int)
void SetAgentColor(QColor color)
void AgentChanged(std::pair< std::vector< Core::Agent >::iterator, std::vector< Core::Agent >::iterator >)
std::pair< std::vector< Core::Agent >::iterator, std::vector< Core::Agent >::iterator > m_Agents
ColorBox * m_ActiveAgentColorBox
void SetActiveAgentIndex(int index)
void UpdateColor(QColor color)