5 #include <QDomDocument>
11 int zoomedWidth =
static_cast<int>(
static_cast<float>(size.width()) *
m_hzoom);
12 int zoomedHeight =
static_cast<int>(
static_cast<float>(size.height()) *
m_vzoom);
19 y = -zoomedHeight / 2;
break;
23 y = -size.height() / 2;
break;
27 y = size.height() - zoomedHeight / 2;
break;
35 x = -zoomedWidth / 2;
break;
39 x = -size.width() / 2;
break;
43 x = size.width() - zoomedWidth / 2;
break;
46 return {x, y, zoomedWidth, zoomedHeight};
89 setStartValue(animation->startValue());
90 setEndValue(animation->endValue());
91 setEasingCurve(animation->easingCurve());
92 setDuration(animation->duration());
106 int offset = (direction() == Forward) ? interval.count() : -interval.count();
107 setCurrentTime(currentTime() + offset);
109 if (endValue() == currentValue())
111 if (direction() == Forward)
114 setDirection(Backward);
119 else if (startValue() == currentValue())
121 if (direction() == Backward)
124 setDirection(Forward);
133 if (curve ==
"Linear") setEasingCurve(QEasingCurve::Linear);
134 else if (curve ==
"InQuad") setEasingCurve(QEasingCurve::InQuad);
135 else if (curve ==
"OutQuad") setEasingCurve(QEasingCurve::OutQuad);
136 else if (curve ==
"InOutQuad") setEasingCurve(QEasingCurve::InOutQuad);
137 else if (curve ==
"OutInQuad") setEasingCurve(QEasingCurve::OutInQuad);
138 else if (curve ==
"InCubic") setEasingCurve(QEasingCurve::InCubic);
139 else if (curve ==
"OutCubic") setEasingCurve(QEasingCurve::OutCubic);
140 else if (curve ==
"InOutCubic") setEasingCurve(QEasingCurve::InOutCubic);
141 else if (curve ==
"OutInCubic") setEasingCurve(QEasingCurve::OutInCubic);
142 else if (curve ==
"InQuart") setEasingCurve(QEasingCurve::InQuart);
143 else if (curve ==
"OutQuart") setEasingCurve(QEasingCurve::OutQuart);
144 else if (curve ==
"InOutQuart") setEasingCurve(QEasingCurve::InOutQuart);
145 else if (curve ==
"OutInQuart") setEasingCurve(QEasingCurve::OutInQuart);
146 else if (curve ==
"InQuint") setEasingCurve(QEasingCurve::InQuint);
147 else if (curve ==
"OutQuint") setEasingCurve(QEasingCurve::OutQuint);
148 else if (curve ==
"InOutQuint") setEasingCurve(QEasingCurve::InOutQuint);
149 else if (curve ==
"OutInQuint") setEasingCurve(QEasingCurve::OutInQuint);
150 else if (curve ==
"InSine") setEasingCurve(QEasingCurve::InSine);
151 else if (curve ==
"OutSine") setEasingCurve(QEasingCurve::OutSine);
152 else if (curve ==
"InOutSine") setEasingCurve(QEasingCurve::InOutSine);
153 else if (curve ==
"OutInSine") setEasingCurve(QEasingCurve::OutInSine);
154 else if (curve ==
"InExpo") setEasingCurve(QEasingCurve::InExpo);
155 else if (curve ==
"OutExpo") setEasingCurve(QEasingCurve::OutExpo);
156 else if (curve ==
"InOutExpo") setEasingCurve(QEasingCurve::InOutExpo);
157 else if (curve ==
"OutInExpo") setEasingCurve(QEasingCurve::OutInExpo);
158 else if (curve ==
"InCirc") setEasingCurve(QEasingCurve::InCirc);
159 else if (curve ==
"OutCirc") setEasingCurve(QEasingCurve::OutCirc);
160 else if (curve ==
"InOutCirc") setEasingCurve(QEasingCurve::InOutCirc);
161 else if (curve ==
"OutInCirc") setEasingCurve(QEasingCurve::OutInCirc);
162 else if (curve ==
"InElastic") setEasingCurve(QEasingCurve::InElastic);
163 else if (curve ==
"OutElastic") setEasingCurve(QEasingCurve::OutElastic);
164 else if (curve ==
"InOutElastic") setEasingCurve(QEasingCurve::InOutElastic);
165 else if (curve ==
"OutInElastic") setEasingCurve(QEasingCurve::OutInElastic);
166 else if (curve ==
"InBack") setEasingCurve(QEasingCurve::InBack);
167 else if (curve ==
"OutBack") setEasingCurve(QEasingCurve::OutBack);
168 else if (curve ==
"InOutBack") setEasingCurve(QEasingCurve::InOutBack);
169 else if (curve ==
"OutInBack") setEasingCurve(QEasingCurve::OutInBack);
170 else if (curve ==
"InBounce") setEasingCurve(QEasingCurve::InBounce);
171 else if (curve ==
"OutBounce") setEasingCurve(QEasingCurve::OutBounce);
172 else if (curve ==
"InOutBounce") setEasingCurve(QEasingCurve::InOutBounce);
173 else if (curve ==
"OutInBounce") setEasingCurve(QEasingCurve::OutInBounce);
174 else if (curve ==
"InCurve") setEasingCurve(QEasingCurve::InCurve);
175 else if (curve ==
"OutCurve") setEasingCurve(QEasingCurve::OutCurve);
176 else if (curve ==
"SineCurve") setEasingCurve(QEasingCurve::SineCurve);
177 else if (curve ==
"CosineCurve") setEasingCurve(QEasingCurve::CosineCurve);
196 QString
t = element.attribute(
"trigger",
"AboutToShow");
198 if (
"AboutToHide" ==
t)
201 for (QDomNode child = element.firstChild(); !child.isNull();
202 child = child.nextSibling())
204 QDomElement section = child.toElement();
205 if (section.isNull())
207 if (section.tagName() ==
"section")
215 int duration = element.attribute(
"duration",
"500").toInt();
216 QString centre = element.attribute(
"centre",
"Middle");
217 for (QDomNode child = element.firstChild(); !child.isNull();
218 child = child.nextSibling())
220 QDomElement effect = child.toElement();
225 int effectduration = duration;
227 QString effect_duration = effect.attribute(
"duration",
"");
228 if (!effect_duration.isEmpty())
229 effectduration = effect_duration.toInt();
231 bool looped =
parseBool(effect.attribute(
"looped",
"false"));
232 bool reversible =
parseBool(effect.attribute(
"reversible",
"false"));
233 QString easingcurve = effect.attribute(
"easingcurve",
"Linear");
237 QString fxtype = effect.tagName();
238 if (fxtype ==
"alpha")
243 else if (fxtype ==
"position")
248 else if (fxtype ==
"angle")
253 else if (fxtype ==
"zoom")
258 else if (fxtype ==
"horizontalzoom")
263 else if (fxtype ==
"verticalzoom")
272 a->setStartValue(start);
274 a->setDuration(effectduration);
275 a->SetEasingCurve(easingcurve);
276 a->SetCentre(centre);
277 a->SetLooped(looped);
278 a->SetReversible(reversible);
286 QVariant& startValue, QVariant& endValue)
288 startValue = element.attribute(
"start",
"0").toInt();
289 endValue = element.attribute(
"end",
"0").toInt();
293 QVariant& startValue, QVariant& endValue,
321 QVariant& startValue, QVariant& endValue)
323 startValue = element.attribute(
"start",
"0").toFloat() / 100.0F;
324 endValue = element.attribute(
"end",
"0").toFloat() /100.0F;
328 QVariant& startValue, QVariant& endValue)
330 startValue = element.attribute(
"start",
"0").toFloat();
331 endValue = element.attribute(
"end",
"0").toFloat();