diff --git a/src/editor/dialogs/addeventdialog.cpp b/src/editor/dialogs/addeventdialog.cpp index 3d7cd58..d4ce1f9 100644 --- a/src/editor/dialogs/addeventdialog.cpp +++ b/src/editor/dialogs/addeventdialog.cpp @@ -29,26 +29,32 @@ AddEventDialog::AddEventDialog(ProjectTreeModel &projectModel, QWidget *parent) this, [this](){ m_eventType = Object::EventType::Destroy; accept(); }); connect(m_ui->pushButtonDraw, &QAbstractButton::clicked, this, [this](){ m_eventType = Object::EventType::Draw; accept(); }); - connect(m_ui->pushButtonStep, &QAbstractButton::clicked, - this, [this](){ m_eventType = Object::EventType::Step; accept(); }); { auto menu = new QMenu; - menu->addAction(tr("Alarm 0"), this, [this](){ m_eventType = Object::EventType::Alarm0; accept(); }); - menu->addAction(tr("Alarm 1"), this, [this](){ m_eventType = Object::EventType::Alarm1; accept(); }); - menu->addAction(tr("Alarm 2"), this, [this](){ m_eventType = Object::EventType::Alarm2; accept(); }); - menu->addAction(tr("Alarm 3"), this, [this](){ m_eventType = Object::EventType::Alarm3; accept(); }); - menu->addAction(tr("Alarm 4"), this, [this](){ m_eventType = Object::EventType::Alarm4; accept(); }); - menu->addAction(tr("Alarm 5"), this, [this](){ m_eventType = Object::EventType::Alarm5; accept(); }); - menu->addAction(tr("Alarm 6"), this, [this](){ m_eventType = Object::EventType::Alarm6; accept(); }); - menu->addAction(tr("Alarm 7"), this, [this](){ m_eventType = Object::EventType::Alarm7; accept(); }); - menu->addAction(tr("Alarm 8"), this, [this](){ m_eventType = Object::EventType::Alarm8; accept(); }); - menu->addAction(tr("Alarm 9"), this, [this](){ m_eventType = Object::EventType::Alarm9; accept(); }); + menu->addAction(tr("Alarm 0"), this, [this](){ m_eventType = Object::EventType::Alarm0; accept(); }); + menu->addAction(tr("Alarm 1"), this, [this](){ m_eventType = Object::EventType::Alarm1; accept(); }); + menu->addAction(tr("Alarm 2"), this, [this](){ m_eventType = Object::EventType::Alarm2; accept(); }); + menu->addAction(tr("Alarm 3"), this, [this](){ m_eventType = Object::EventType::Alarm3; accept(); }); + menu->addAction(tr("Alarm 4"), this, [this](){ m_eventType = Object::EventType::Alarm4; accept(); }); + menu->addAction(tr("Alarm 5"), this, [this](){ m_eventType = Object::EventType::Alarm5; accept(); }); + menu->addAction(tr("Alarm 6"), this, [this](){ m_eventType = Object::EventType::Alarm6; accept(); }); + menu->addAction(tr("Alarm 7"), this, [this](){ m_eventType = Object::EventType::Alarm7; accept(); }); + menu->addAction(tr("Alarm 8"), this, [this](){ m_eventType = Object::EventType::Alarm8; accept(); }); + menu->addAction(tr("Alarm 9"), this, [this](){ m_eventType = Object::EventType::Alarm9; accept(); }); menu->addAction(tr("Alarm 10"), this, [this](){ m_eventType = Object::EventType::Alarm10; accept(); }); menu->addAction(tr("Alarm 11"), this, [this](){ m_eventType = Object::EventType::Alarm11; accept(); }); m_ui->pushButtonAlarm->setMenu(menu); } + { + auto menu = new QMenu; + menu->addAction(tr("Step"), this, [this](){ m_eventType = Object::EventType::Step; accept(); }); + menu->addAction(tr("Begin Step"), this, [this](){ m_eventType = Object::EventType::BeginStep; accept(); }); + menu->addAction(tr("End Step"), this, [this](){ m_eventType = Object::EventType::EndStep; accept(); }); + m_ui->pushButtonStep->setMenu(menu); + } + { auto menu = new QMenu; connect(menu, &QMenu::aboutToShow, menu, [this,menu](){ diff --git a/src/editor/models/objecteventsmodel.cpp b/src/editor/models/objecteventsmodel.cpp index ad559f6..c7f7984 100644 --- a/src/editor/models/objecteventsmodel.cpp +++ b/src/editor/models/objecteventsmodel.cpp @@ -38,22 +38,24 @@ QVariant ObjectEventsModel::data(const QModelIndex &index, int role) const case Qt::EditRole: switch (pair.first) { - case Object::EventType::Create: return tr("Create"); - case Object::EventType::Destroy: return tr("Destroy"); - case Object::EventType::Alarm0: return tr("Alarm 0"); - case Object::EventType::Alarm1: return tr("Alarm 1"); - case Object::EventType::Alarm2: return tr("Alarm 2"); - case Object::EventType::Alarm3: return tr("Alarm 3"); - case Object::EventType::Alarm4: return tr("Alarm 4"); - case Object::EventType::Alarm5: return tr("Alarm 5"); - case Object::EventType::Alarm6: return tr("Alarm 6"); - case Object::EventType::Alarm7: return tr("Alarm 7"); - case Object::EventType::Alarm8: return tr("Alarm 8"); - case Object::EventType::Alarm9: return tr("Alarm 9"); - case Object::EventType::Alarm10: return tr("Alarm 10"); - case Object::EventType::Alarm11: return tr("Alarm 11"); - case Object::EventType::Step: return tr("Step"); - case Object::EventType::Draw: return tr("Draw"); + case Object::EventType::Create: return tr("Create"); + case Object::EventType::Destroy: return tr("Destroy"); + case Object::EventType::Alarm0: return tr("Alarm 0"); + case Object::EventType::Alarm1: return tr("Alarm 1"); + case Object::EventType::Alarm2: return tr("Alarm 2"); + case Object::EventType::Alarm3: return tr("Alarm 3"); + case Object::EventType::Alarm4: return tr("Alarm 4"); + case Object::EventType::Alarm5: return tr("Alarm 5"); + case Object::EventType::Alarm6: return tr("Alarm 6"); + case Object::EventType::Alarm7: return tr("Alarm 7"); + case Object::EventType::Alarm8: return tr("Alarm 8"); + case Object::EventType::Alarm9: return tr("Alarm 9"); + case Object::EventType::Alarm10: return tr("Alarm 10"); + case Object::EventType::Alarm11: return tr("Alarm 11"); + case Object::EventType::Step: return tr("Step"); + case Object::EventType::BeginStep: return tr("Begin Step"); + case Object::EventType::EndStep: return tr("End Step"); + case Object::EventType::Draw: return tr("Draw"); } qWarning() << "unknown event type" << std::to_underlying(pair.first); @@ -61,8 +63,8 @@ QVariant ObjectEventsModel::data(const QModelIndex &index, int role) const case Qt::DecorationRole: switch (pair.first) { - case Object::EventType::Create: return QIcon{":/qtgameengine/icons/event-create.png"}; - case Object::EventType::Destroy: return QIcon{":/qtgameengine/icons/event-destroy.png"}; + case Object::EventType::Create: return QIcon{":/qtgameengine/icons/event-create.png"}; + case Object::EventType::Destroy: return QIcon{":/qtgameengine/icons/event-destroy.png"}; case Object::EventType::Alarm0: case Object::EventType::Alarm1: case Object::EventType::Alarm2: @@ -74,9 +76,11 @@ QVariant ObjectEventsModel::data(const QModelIndex &index, int role) const case Object::EventType::Alarm8: case Object::EventType::Alarm9: case Object::EventType::Alarm10: - case Object::EventType::Alarm11: return QIcon{":/qtgameengine/icons/event-alarm.png"}; - case Object::EventType::Step: return QIcon{":/qtgameengine/icons/event-step.png"}; - case Object::EventType::Draw: return QIcon{":/qtgameengine/icons/event-draw.png"}; + case Object::EventType::Alarm11: return QIcon{":/qtgameengine/icons/event-alarm.png"}; + case Object::EventType::Step: + case Object::EventType::BeginStep: + case Object::EventType::EndStep: return QIcon{":/qtgameengine/icons/event-step.png"}; + case Object::EventType::Draw: return QIcon{":/qtgameengine/icons/event-draw.png"}; } qWarning() << "unknown event type" << std::to_underlying(pair.first); diff --git a/src/projectcontainer.h b/src/projectcontainer.h index 7f2bf43..b42437a 100644 --- a/src/projectcontainer.h +++ b/src/projectcontainer.h @@ -126,6 +126,8 @@ struct Object Alarm10, Alarm11, Step, + BeginStep, + EndStep, Draw, };