5 #include "slidemodel.h"
9 uint SlideItem::idLastSlide=0; // make instance
11 SlideItem::SlideItem(const QVector<QVariant> &data, SlideItem *parent, SlideModel *sm )
20 easingCurve.setType (QEasingCurve::OutQuint);
25 model=parent->getModel();
27 if (data.isEmpty()) itemData.append(QVariant("empty"));
30 SlideItem::~SlideItem()
32 qDeleteAll(childItems);
35 SlideModel* SlideItem::getModel()
40 uint SlideItem::getID()
45 SlideItem *SlideItem::child(int number)
47 return childItems.value(number);
50 int SlideItem::childCount() const
52 return childItems.count();
55 int SlideItem::childNumber() const
58 return parentItem->childItems.indexOf(const_cast<SlideItem*>(this));
63 int SlideItem::columnCount() const
65 return itemData.count();
68 QVariant SlideItem::data(int column) const
70 return itemData.value(column);
73 int SlideItem::row() const
76 return parentItem->childItems.indexOf(const_cast<SlideItem*>(this));
81 void SlideItem::insertItem (int pos, SlideItem *si)
84 if (pos>childItems.count() ) pos=childItems.count();
85 childItems.insert (pos,si);
89 void SlideItem::removeItem (int pos)
91 // Remove, but don't delete (needed for relinking)
92 if (pos<0 || pos > childItems.size()-1)
93 qWarning ("TreeItem::removeChild tried to remove non existing item?!");
95 childItems.removeAt (pos);
98 bool SlideItem::insertChildren(int position, int count, int columns)
100 if (position < 0 || position > childItems.size())
103 for (int row = 0; row < count; ++row) {
104 QVector<QVariant> data(columns);
105 SlideItem *item = new SlideItem(data, this);
106 childItems.insert(position, item);
112 bool SlideItem::insertColumns(int position, int columns)
114 if (position < 0 || position > itemData.size())
117 for (int column = 0; column < columns; ++column)
118 itemData.insert(position, QVariant());
120 foreach (SlideItem *child, childItems)
121 child->insertColumns(position, columns);
126 SlideItem *SlideItem::parent()
131 bool SlideItem::removeChildren(int position, int count)
133 if (position < 0 || position + count > childItems.size())
136 for (int row = 0; row < count; ++row)
137 delete childItems.takeAt(position);
142 bool SlideItem::removeColumns(int position, int columns)
144 if (position < 0 || position + columns > itemData.size())
147 for (int column = 0; column < columns; ++column)
148 itemData.remove(position);
150 foreach (SlideItem *child, childItems)
151 child->removeColumns(position, columns);
156 bool SlideItem::setData(int column, const QVariant &value)
158 if (column < 0 || column >= itemData.size())
161 itemData[column] = value;
165 void SlideItem::setName (const QString &n)
167 setData ( 0, QVariant (n) );
170 QString SlideItem::getName ()
172 return data(0).toString();
175 void SlideItem::setTreeItem (TreeItem *ti)
178 treeItemID=ti->getID();
180 qWarning()<<"SlideItem::setTreeItem no ID!";
183 int SlideItem::getTreeItemID()
188 void SlideItem::setInScript (const QString &s)
193 QString SlideItem::getInScript()
198 void SlideItem::setOutScript (const QString &s)
203 QString SlideItem::getOutScript()
208 void SlideItem::setZoomFactor (const qreal &zf)
213 qreal SlideItem::getZoomFactor()
218 void SlideItem::setRotationAngle (const qreal &zf)
223 qreal SlideItem::getRotationAngle()
225 return rotationAngle;
228 void SlideItem::setDuration (const int &d)
233 int SlideItem::getDuration()
238 void SlideItem::setEasingCurve (const QEasingCurve &c)
243 QEasingCurve SlideItem::getEasingCurve()
248 QString SlideItem::saveToDir()
250 QString att_ins, att_outs;
251 if (inScript.isEmpty())
253 att_ins=attribut ("inScript",QString("select(\"%1\")").arg(model->getVymModel()->getSelectString (treeItemID ) ) );
255 att_ins=attribut ("inScript",inScript );
256 if (!outScript.isEmpty()) att_outs=attribut ("outScript",outScript );
258 return singleElement ("slide",
259 attribut ("name",data(0).toString() ) +
260 attribut ("zoom",QString().setNum ( zoomFactor) ) +
261 attribut ("rotation",QString().setNum ( rotationAngle ) ) +
262 attribut ("duration",QString().setNum ( duration ) ) +
263 attribut ("curve",QString().setNum ( easingCurve.type() ) ) +
264 attribut ("mapitem",model->getVymModel()->getSelectString (treeItemID ) ) +