Implemented edit sprite button in object properties dialog

This commit is contained in:
feedc0de committed 2023-12-29 10:49:04 +01:00
1 parent a51ab2a889
commit 95d1936a5f
4 files changed
+83 -46

No files matched your search

+20 -3
View File
@@ -7,15 +7,17 @@
#include <algorithm>
#include "mainwindow.h"
#include "models/projecttreemodel.h"
#include "models/objecteventsmodel.h"
#include "addeventdialog.h"
ObjectPropertiesDialog::ObjectPropertiesDialog(Object &object, ProjectTreeModel &projectModel, QWidget *parent) :
QDialog{parent},
ObjectPropertiesDialog::ObjectPropertiesDialog(Object &object, ProjectTreeModel &projectModel, MainWindow *mainWindow) :
QDialog{mainWindow},
m_ui{std::make_unique<Ui::ObjectPropertiesDialog>()},
m_object{object},
m_projectModel{projectModel},
m_mainWindow{mainWindow},
m_events{m_object.events},
m_eventsModel{std::make_unique<ObjectEventsModel>(m_events)},
m_menuSprites{new QMenu{this}},
@@ -177,7 +179,22 @@ void ObjectPropertiesDialog::newSprite()
void ObjectPropertiesDialog::editSprite()
{
QMessageBox::warning(this, tr("Not yet implemented"), tr("Not yet implemented"));
if (!m_mainWindow)
{
qCritical() << "no mainWindow available";
return;
}
auto &sprites = m_projectModel.project()->sprites;
const auto iter = std::find_if(std::begin(sprites), std::end(sprites),
[&](const Sprite &sprite){ return sprite.name == m_spriteName; });
if (iter == std::end(sprites))
{
qCritical() << "sprite" << m_spriteName << "not found";
return;
}
m_mainWindow->openPropertiesWindowFor(*iter);
}
void ObjectPropertiesDialog::showInformation()
+3 -1
View File
@@ -11,13 +11,14 @@ class QMenu;
namespace Ui { class ObjectPropertiesDialog; }
class ProjectTreeModel;
class ObjectEventsModel;
class MainWindow;
class ObjectPropertiesDialog : public QDialog
{
Q_OBJECT
public:
explicit ObjectPropertiesDialog(Object &object, ProjectTreeModel &projectModel, QWidget *parent = nullptr);
explicit ObjectPropertiesDialog(Object &object, ProjectTreeModel &projectModel, MainWindow *mainWindow);
~ObjectPropertiesDialog();
void accept() override;
@@ -56,6 +57,7 @@ private:
Object &m_object;
ProjectTreeModel &m_projectModel;
MainWindow * const m_mainWindow;
Object::events_container_t m_events;