95 lines
2.1 KiB
C++
95 lines
2.1 KiB
C++
#ifndef EOBJECT_H
|
|
#define EOBJECT_H
|
|
|
|
#include <math.h>
|
|
#include <QDebug>
|
|
#include <LoQClass/loqgraphicsobject.h>
|
|
#include <QPainter>
|
|
#include <QJsonValue>
|
|
#include <QJsonArray>
|
|
#include <QJsonObject>
|
|
#include <QJsonDocument>
|
|
#include <QWidget>
|
|
#include <QSpinBox>
|
|
#include <QDir>
|
|
#include <QFile>
|
|
#include <QFileInfo>
|
|
#include <QHBoxLayout>
|
|
#include <QVBoxLayout>
|
|
#include "loappconfig.h"
|
|
#include "loapptools.h"
|
|
#include "globaldefine.h"
|
|
|
|
#define MACRO_DEFAULT_PLAYDURATION 10
|
|
|
|
class eObjectAttr;
|
|
class eObject : public LoQGraphicsObject
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
enum ElementType {
|
|
Text = QGraphicsItem::UserType + 1,
|
|
Photo,
|
|
Movie,
|
|
Gif,
|
|
DClock,
|
|
AClock,
|
|
Audio,
|
|
Office,
|
|
Temp,
|
|
Weather,
|
|
Rss,
|
|
Timer,
|
|
ColorText,
|
|
Window
|
|
};
|
|
|
|
struct Data {
|
|
qreal x;
|
|
qreal y;
|
|
qreal w;
|
|
qreal h;
|
|
};
|
|
|
|
public:
|
|
explicit eObject(InteractiveType type = Dynamic, QGraphicsItem *parent = nullptr);
|
|
explicit eObject(QRectF rect, InteractiveType type = Dynamic, QGraphicsItem *parent = nullptr);
|
|
explicit eObject(const QJsonObject &json, InteractiveType type = Dynamic, QGraphicsItem *parent = nullptr);
|
|
int m_iType=-1;
|
|
|
|
private:
|
|
void init();
|
|
|
|
public:
|
|
virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) override { Q_UNUSED(event); }
|
|
|
|
public:
|
|
virtual QJsonObject save(const QString &pRoot) = 0;
|
|
virtual QWidget* wAttrElement() = 0;
|
|
|
|
public:
|
|
virtual QWidget* wAttr();
|
|
virtual QStringList filesList() const { return QStringList(); }
|
|
virtual QJsonObject elementJson() const;
|
|
|
|
public:
|
|
void setRLimit(const QRectF r);
|
|
QString getFileMd5(QString filePath);
|
|
|
|
signals: // Qt::BlockingQueuedConnection
|
|
void sPlayBQ();
|
|
void sStopBQ();
|
|
void sAttrSetting(const eObject::Data &);
|
|
|
|
public slots:
|
|
virtual void playElectment() {}
|
|
virtual void stopElectment() {}
|
|
void onAttrChanged(const eObject::Data &data);
|
|
void onAttrSetting(const QRectF &r);
|
|
|
|
private:
|
|
eObjectAttr *m_wAttr;
|
|
};
|
|
|
|
#endif // EOBJECT_H
|