5 #include "slidemodel.h"
9 uint SlideItem::idLastSlide = 0; // make instance
11 SlideItem::SlideItem(const QVector<QVariant> &data, SlideItem *parent,
17 slideID = idLastSlide;
21 easingCurve.setType(QEasingCurve::OutQuint);
26 model = parent->getModel();
29 itemData.append(QVariant("empty"));
32 SlideItem::~SlideItem() { qDeleteAll(childItems); }
34 SlideModel *SlideItem::getModel() { return model; }
36 uint SlideItem::getID() { return slideID; }
38 SlideItem *SlideItem::child(int number) { return childItems.value(number); }
40 int SlideItem::childCount() const { return childItems.count(); }
42 int SlideItem::childNumber() const
45 return parentItem->childItems.indexOf(const_cast<SlideItem *>(this));
50 int SlideItem::columnCount() const { return itemData.count(); }
52 QVariant SlideItem::data(int column) const { return itemData.value(column); }
54 int SlideItem::row() const
57 return parentItem->childItems.indexOf(const_cast<SlideItem *>(this));
62 void SlideItem::insertItem(int pos, SlideItem *si)
66 if (pos > childItems.count())
67 pos = childItems.count();
68 childItems.insert(pos, si);
69 si->parentItem = this;
72 void SlideItem::removeItem(int pos)
74 // Remove, but don't delete (needed for relinking)
75 if (pos < 0 || pos > childItems.size() - 1)
76 qWarning("TreeItem::removeChild tried to remove non existing item?!");
78 childItems.removeAt(pos);
81 bool SlideItem::insertChildren(int position, int count, int columns)
83 if (position < 0 || position > childItems.size())
86 for (int row = 0; row < count; ++row) {
87 QVector<QVariant> data(columns);
88 SlideItem *item = new SlideItem(data, this);
89 childItems.insert(position, item);
95 bool SlideItem::insertColumns(int position, int columns)
97 if (position < 0 || position > itemData.size())
100 for (int column = 0; column < columns; ++column)
101 itemData.insert(position, QVariant());
103 foreach (SlideItem *child, childItems)
104 child->insertColumns(position, columns);
109 SlideItem *SlideItem::parent() { return parentItem; }
111 bool SlideItem::removeChildren(int position, int count)
113 if (position < 0 || position + count > childItems.size())
116 for (int row = 0; row < count; ++row)
117 delete childItems.takeAt(position);
122 bool SlideItem::removeColumns(int position, int columns)
124 if (position < 0 || position + columns > itemData.size())
127 for (int column = 0; column < columns; ++column)
128 itemData.remove(position);
130 foreach (SlideItem *child, childItems)
131 child->removeColumns(position, columns);
136 bool SlideItem::setData(int column, const QVariant &value)
138 if (column < 0 || column >= itemData.size())
141 itemData[column] = value;
145 void SlideItem::setName(const QString &n) { setData(0, QVariant(n)); }
147 QString SlideItem::getName() { return data(0).toString(); }
149 void SlideItem::setTreeItem(TreeItem *ti)
152 treeItemID = ti->getID();
154 qWarning() << "SlideItem::setTreeItem no ID!";
157 int SlideItem::getTreeItemID() { return treeItemID; }
159 void SlideItem::setInScript(const QString &s) { inScript = s; }
161 QString SlideItem::getInScript() { return inScript; }
163 void SlideItem::setOutScript(const QString &s) { outScript = s; }
165 QString SlideItem::getOutScript() { return outScript; }
167 void SlideItem::setZoomFactor(const qreal &zf) { zoomFactor = zf; }
169 qreal SlideItem::getZoomFactor() { return zoomFactor; }
171 void SlideItem::setRotationAngle(const qreal &zf) { rotationAngle = zf; }
173 qreal SlideItem::getRotationAngle() { return rotationAngle; }
175 void SlideItem::setDuration(const int &d) { duration = d; }
177 int SlideItem::getDuration() { return duration; }
179 void SlideItem::setEasingCurve(const QEasingCurve &c) { easingCurve = c; }
181 QEasingCurve SlideItem::getEasingCurve() { return easingCurve; }
183 QString SlideItem::saveToDir()
185 QString att_ins, att_outs;
186 if (inScript.isEmpty()) {
189 QString("select(\"%1\")")
190 .arg(model->getVymModel()->getSelectString(treeItemID)));
193 att_ins = attribut("inScript", inScript);
194 if (!outScript.isEmpty())
195 att_outs = attribut("outScript", outScript);
197 return singleElement(
198 "slide", attribut("name", data(0).toString()) +
199 attribut("zoom", QString().setNum(zoomFactor)) +
200 attribut("rotation", QString().setNum(rotationAngle)) +
201 attribut("duration", QString().setNum(duration)) +
202 attribut("curve", QString().setNum(easingCurve.type())) +
203 attribut("mapitem", model->getVymModel()->getSelectString(