File indexing completed on 2024-05-12 05:39:49

0001 #ifndef ROLISTEAMMIMEDATA_H
0002 #define ROLISTEAMMIMEDATA_H
0003 
0004 #include <QMimeData>
0005 
0006 #include "data/diceshortcut.h"
0007 #include "data/person.h"
0008 #include <core_global.h>
0009 /**
0010  * @brief allows drag and drop inside the application scope.
0011  */
0012 class  CORE_EXPORT RolisteamMimeData : public QMimeData
0013 {
0014     Q_OBJECT
0015     Q_PROPERTY(Person* person READ person WRITE setPerson NOTIFY personChanged)
0016     Q_PROPERTY(DiceShortCut alias READ alias NOTIFY aliasChanged)
0017     Q_PROPERTY(QString npcUuid READ npcUuid WRITE setNpcUuid NOTIFY npcUuidChanged)
0018     Q_PROPERTY(QString mediaUuid READ mediaUuid WRITE setMediaUuid NOTIFY mediaUuidChanged)
0019     // Q_PROPERTY(QByteArray imageData READ imageData WRITE setImageData NOTIFY imageDataChanged)
0020 public:
0021     RolisteamMimeData();
0022     bool hasFormat(const QString& mimeType) const;
0023 
0024     Person* person() const;
0025     DiceShortCut alias() const;
0026     QString npcUuid() const;
0027     QString mediaUuid() const;
0028     // QByteArray imageData() const;
0029 
0030 public slots:
0031     void setAlias(QString, QString, bool);
0032     void setPerson(Person*);
0033     // void setImageData(const QByteArray& data);
0034     void setNpcUuid(const QString& str);
0035     void setMediaUuid(const QString& uuid);
0036 
0037 signals:
0038     void personChanged();
0039     void aliasChanged();
0040     void npcUuidChanged();
0041     void mediaUuidChanged();
0042     // void imageDataChanged();
0043 
0044 private:
0045     Person* m_person= nullptr; /// pointer to stored data
0046     DiceShortCut m_alias;      /// alias
0047     // QByteArray m_imageData;
0048     QString m_npcUuid;
0049     QString m_mediaUuid;
0050 };
0051 #endif // ROLISTEAMMIMEDATA_H