Add support for signals
This commit is contained in:
parent
872488d174
commit
039c093b15
13 changed files with 565 additions and 237 deletions
|
|
@ -3,7 +3,10 @@
|
|||
#include "ui_relayscrollbox.h"
|
||||
#include "../items/train.h"
|
||||
#include "../items/turnout.h"
|
||||
#include "../items/signal.h"
|
||||
#include "../trainjs.h"
|
||||
#include "trainwidget.h"
|
||||
#include "signalwidget.h"
|
||||
|
||||
ItemScrollBox::ItemScrollBox(QWidget *parent) :
|
||||
QWidget(parent),
|
||||
|
|
@ -23,44 +26,53 @@ void ItemScrollBox::addItem(std::weak_ptr<Item> item)
|
|||
{
|
||||
if(auto workItem = item.lock())
|
||||
{
|
||||
widgets_.push_back(new ItemWidget(item, this));
|
||||
Train* train = dynamic_cast<Train*>(workItem.get());
|
||||
Turnout* turnout = dynamic_cast<Turnout*>(workItem.get());
|
||||
Signal* signal = dynamic_cast<Signal*>(workItem.get());
|
||||
if(train)
|
||||
{
|
||||
TrainWidget *widget = new TrainWidget(item, this);
|
||||
widgets_.push_back(widget);
|
||||
if(train->getTrainId() == 0)
|
||||
widgets_.back()->setShortcuts(QKeySequence(Qt::Key_Q), QKeySequence(Qt::Key_A), QKeySequence(Qt::Key_Z));
|
||||
widget->setShortcuts(QKeySequence(Qt::Key_Q), QKeySequence(Qt::Key_A), QKeySequence(Qt::Key_Z));
|
||||
else if(train->getTrainId() == 1)
|
||||
widgets_.back()->setShortcuts(QKeySequence(Qt::Key_W), QKeySequence(Qt::Key_S), QKeySequence(Qt::Key_X));
|
||||
widget->setShortcuts(QKeySequence(Qt::Key_W), QKeySequence(Qt::Key_S), QKeySequence(Qt::Key_X));
|
||||
else if(train->getTrainId() == 2)
|
||||
widgets_.back()->setShortcuts(QKeySequence(Qt::Key_E), QKeySequence(Qt::Key_D), QKeySequence(Qt::Key_C));
|
||||
widget->setShortcuts(QKeySequence(Qt::Key_E), QKeySequence(Qt::Key_D), QKeySequence(Qt::Key_C));
|
||||
else if(train->getTrainId() == 3)
|
||||
widgets_.back()->setShortcuts(QKeySequence(Qt::Key_R), QKeySequence(Qt::Key_F), QKeySequence(Qt::Key_V));
|
||||
widget->setShortcuts(QKeySequence(Qt::Key_R), QKeySequence(Qt::Key_F), QKeySequence(Qt::Key_V));
|
||||
else if(train->getTrainId() == 4)
|
||||
widgets_.back()->setShortcuts(QKeySequence(Qt::Key_T), QKeySequence(Qt::Key_G), QKeySequence(Qt::Key_B));
|
||||
widget->setShortcuts(QKeySequence(Qt::Key_T), QKeySequence(Qt::Key_G), QKeySequence(Qt::Key_B));
|
||||
}
|
||||
else if(turnout)
|
||||
{
|
||||
TrainWidget *widget = new TrainWidget(item, this);
|
||||
widgets_.push_back(widget);
|
||||
if(turnout->getTurnoutId() == 0)
|
||||
widgets_.back()->setShortcuts(QKeySequence(), QKeySequence(), QKeySequence(Qt::Key_1));
|
||||
widget->setShortcuts(QKeySequence(), QKeySequence(), QKeySequence(Qt::Key_1));
|
||||
else if(turnout->getTurnoutId() == 1)
|
||||
widgets_.back()->setShortcuts(QKeySequence(), QKeySequence(), QKeySequence(Qt::Key_2));
|
||||
widget->setShortcuts(QKeySequence(), QKeySequence(), QKeySequence(Qt::Key_2));
|
||||
else if(turnout->getTurnoutId() == 2)
|
||||
widgets_.back()->setShortcuts(QKeySequence(), QKeySequence(), QKeySequence(Qt::Key_3));
|
||||
widget->setShortcuts(QKeySequence(), QKeySequence(), QKeySequence(Qt::Key_3));
|
||||
else if(turnout->getTurnoutId() == 3)
|
||||
widgets_.back()->setShortcuts(QKeySequence(), QKeySequence(), QKeySequence(Qt::Key_4));
|
||||
widget->setShortcuts(QKeySequence(), QKeySequence(), QKeySequence(Qt::Key_4));
|
||||
else if(turnout->getTurnoutId() == 4)
|
||||
widgets_.back()->setShortcuts(QKeySequence(), QKeySequence(), QKeySequence(Qt::Key_5));
|
||||
widget->setShortcuts(QKeySequence(), QKeySequence(), QKeySequence(Qt::Key_5));
|
||||
else if(turnout->getTurnoutId() == 5)
|
||||
widgets_.back()->setShortcuts(QKeySequence(), QKeySequence(), QKeySequence(Qt::Key_6));
|
||||
widget->setShortcuts(QKeySequence(), QKeySequence(), QKeySequence(Qt::Key_6));
|
||||
else if(turnout->getTurnoutId() == 6)
|
||||
widgets_.back()->setShortcuts(QKeySequence(), QKeySequence(), QKeySequence(Qt::Key_7));
|
||||
widget->setShortcuts(QKeySequence(), QKeySequence(), QKeySequence(Qt::Key_7));
|
||||
else if(turnout->getTurnoutId() == 7)
|
||||
widgets_.back()->setShortcuts(QKeySequence(), QKeySequence(), QKeySequence(Qt::Key_8));
|
||||
widget->setShortcuts(QKeySequence(), QKeySequence(), QKeySequence(Qt::Key_8));
|
||||
else if(turnout->getTurnoutId() == 8)
|
||||
widgets_.back()->setShortcuts(QKeySequence(), QKeySequence(), QKeySequence(Qt::Key_9));
|
||||
widget->setShortcuts(QKeySequence(), QKeySequence(), QKeySequence(Qt::Key_9));
|
||||
else if(turnout->getTurnoutId() == 9)
|
||||
widgets_.back()->setShortcuts(QKeySequence(), QKeySequence(), QKeySequence(Qt::Key_0));
|
||||
widget->setShortcuts(QKeySequence(), QKeySequence(), QKeySequence(Qt::Key_0));
|
||||
}
|
||||
else if(signal)
|
||||
{
|
||||
SignalWidget *widget = new SignalWidget(item, this);
|
||||
widgets_.push_back(widget);
|
||||
}
|
||||
ui->relayWidgetVbox->addWidget(widgets_.back());
|
||||
connect(widgets_.back(), &ItemWidget::deleteRequest, this, &ItemScrollBox::deleteRequest);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue