Skip to content

Commit d8a4394

Browse files
committed
1 parent 95b0a2b commit d8a4394

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

objects/dialogs/editor/dialogmodifyunit.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#include "objects/base/label.h"
2020
#include "objects/base/textbox.h"
2121
#include "objects/base/spinbox.h"
22+
#include "3rd_party/oxygine-framework/oxygine/actor/Button.h"
2223

2324
DialogModifyUnit::DialogModifyUnit(GameMap* pMap, Unit* pUnit)
2425
: m_pUnit(pUnit),
@@ -60,6 +61,7 @@ DialogModifyUnit::DialogModifyUnit(GameMap* pMap, Unit* pUnit)
6061
connect(this, &DialogModifyUnit::sigLoadUnit, this, &DialogModifyUnit::loadUnit, Qt::QueuedConnection);
6162
updateData();
6263
connect(this, &DialogModifyUnit::sigFinished, this, &DialogModifyUnit::remove, Qt::QueuedConnection);
64+
connect(this, &DialogModifyUnit::sigShowEditLoadedUnit, this, &DialogModifyUnit::showEditLoadedUnit, Qt::QueuedConnection);
6365
}
6466

6567
void DialogModifyUnit::remove()
@@ -361,6 +363,14 @@ void DialogModifyUnit::addLoadUnit(qint32 index, qint32 sliderOffset, qint32& y)
361363
if (pLoadedUnit != nullptr)
362364
{
363365
pDropdownmenu->setCurrentItem(pLoadedUnit->getUnitID());
366+
oxygine::spButton pButton = ObjectManager::createButton(tr("Edit unit"), 200, "Edit this loaded unit", "button");
367+
pButton->addClickListener([this, pLoadedUnit](oxygine::Event*)
368+
{
369+
emit sigShowEditLoadedUnit(m_pMap, pLoadedUnit);
370+
});
371+
pButton->setY(pDropdownmenu->getY());
372+
pButton->setX(pDropdownmenu->getX() + pDropdownmenu->getWidth() + 10);
373+
m_pPanel->addItem(pButton);
364374
}
365375
else
366376
{
@@ -456,3 +466,9 @@ void DialogModifyUnit::addLoadLoopPoints(qint32& y, qint32 sliderOffset)
456466
m_pUnit->setAiMovePath(QVector<QPoint>());
457467
}
458468
}
469+
470+
void DialogModifyUnit::showEditLoadedUnit(GameMap* pMap, Unit* pUnit)
471+
{
472+
spDialogModifyUnit pDialog = MemoryManagement::create<DialogModifyUnit>(pMap, pUnit);
473+
addChild(pDialog);
474+
}

objects/dialogs/editor/dialogmodifyunit.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,13 @@ class DialogModifyUnit final : public QObject, public oxygine::Actor
2424
void sigFinished();
2525
void sigUpdateData();
2626
void sigLoadUnit(QString unitID, qint32 index);
27+
void sigShowEditLoadedUnit(GameMap* pMap, Unit* pUnit);
2728
protected slots:
2829
void updateData();
2930
void loadUnit(QString unitID, qint32 index);
3031
void addLoadLoopPoints(qint32& y, qint32 sliderOffset);
3132
void remove();
33+
void showEditLoadedUnit(GameMap* pMap, Unit* pUnit);
3234
private:
3335
void addLoadUnit(qint32 index, qint32 sliderOffset, qint32& y);
3436
spPanel m_pPanel;

0 commit comments

Comments
 (0)