#ifndef SLIDEITEM_H
#define SLIDEITEM_H
#include <QEasingCurve>
#include <QList>
#include <QVariant>
#include <QVector>
#include "xmlobj.h"
class TreeItem;
class SlideModel;
class SlideItem : public XMLObj
{
public:
SlideItem(const QVector<QVariant> &data, SlideItem *parent = 0, SlideModel *sm = 0 );
~SlideItem();
SlideModel* getModel();
uint getID();
SlideItem *child(int number);
int childCount() const;
int columnCount() const;
QVariant data(int column) const;
int row() const;
void insertItem (int pos, SlideItem *si);
void removeItem (int pos);
bool insertChildren(int position, int count, int columns);
bool insertColumns(int position, int columns);
SlideItem* parent();
bool removeChildren(int position, int count);
bool removeColumns(int position, int columns);
int childNumber() const;
bool setData(int column, const QVariant &value);
void setName (const QString &n);
QString getName ();
void setTreeItem (TreeItem *ti);
int getTreeItemID();
void setInScript (const QString &);
QString getInScript ();
void setOutScript (const QString &);
QString getOutScript ();
void setZoomFactor(const qreal &);
qreal getZoomFactor ();
void setRotationAngle(const qreal &);
qreal getRotationAngle ();
void setDuration (const int &);
int getDuration();
void setEasingCurve (const QEasingCurve &);
QEasingCurve getEasingCurve();
QString saveToDir();
private:
SlideModel *model;
QList<SlideItem*> childItems;
QVector<QVariant> itemData;
SlideItem *parentItem;
static uint idLastSlide; //! Last used unique ID for slide
uint slideID;
QString inScript;
QString outScript;
int treeItemID;
qreal zoomFactor;
qreal rotationAngle;
int duration;
QEasingCurve easingCurve;
};
#endif