2022-01-10 01:43:41 +01:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <QDialog>
|
|
|
|
|
|
|
|
|
|
#include <memory>
|
|
|
|
|
|
2022-01-11 02:35:26 +01:00
|
|
|
class QMenu;
|
2022-01-10 01:43:41 +01:00
|
|
|
namespace Ui { class ObjectPropertiesDialog; }
|
|
|
|
|
struct Object;
|
|
|
|
|
class ProjectTreeModel;
|
2022-01-11 02:35:26 +01:00
|
|
|
class ObjectEventsModel;
|
|
|
|
|
class ObjectActionsModel;
|
|
|
|
|
class Sprite;
|
2022-01-10 01:43:41 +01:00
|
|
|
|
|
|
|
|
class ObjectPropertiesDialog : public QDialog
|
|
|
|
|
{
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
explicit ObjectPropertiesDialog(Object &object, ProjectTreeModel &projectModel, QWidget *parent = nullptr);
|
|
|
|
|
~ObjectPropertiesDialog();
|
|
|
|
|
|
2022-01-11 02:35:26 +01:00
|
|
|
void accept() override;
|
|
|
|
|
void reject() override;
|
|
|
|
|
|
|
|
|
|
private slots:
|
|
|
|
|
void newSprite();
|
|
|
|
|
void editSprite();
|
|
|
|
|
void showInformation();
|
|
|
|
|
void addEvent();
|
|
|
|
|
void deleteEvent();
|
|
|
|
|
void replaceEvent();
|
|
|
|
|
|
|
|
|
|
void changed();
|
|
|
|
|
|
|
|
|
|
void objectNameChanged(const Object &object);
|
|
|
|
|
|
|
|
|
|
void spritesMenuAboutToShow();
|
|
|
|
|
|
|
|
|
|
void clearSprite();
|
|
|
|
|
void setSprite(const Sprite &sprite);
|
|
|
|
|
|
2022-01-10 01:43:41 +01:00
|
|
|
private:
|
2022-01-11 02:35:26 +01:00
|
|
|
void updateTitle();
|
|
|
|
|
|
2022-01-10 01:43:41 +01:00
|
|
|
const std::unique_ptr<Ui::ObjectPropertiesDialog> m_ui;
|
2022-01-11 02:35:26 +01:00
|
|
|
|
|
|
|
|
Object &m_object;
|
|
|
|
|
ProjectTreeModel &m_projectModel;
|
|
|
|
|
|
|
|
|
|
const std::unique_ptr<ObjectEventsModel> m_eventsModel;
|
|
|
|
|
const std::unique_ptr<ObjectActionsModel> m_actionsModel;
|
|
|
|
|
|
|
|
|
|
QMenu * const m_spritesMenu;
|
|
|
|
|
|
|
|
|
|
QString m_spriteName;
|
|
|
|
|
|
|
|
|
|
bool m_unsavedChanges{};
|
2022-01-10 01:43:41 +01:00
|
|
|
};
|