@@ -45,10 +45,22 QVariant BarAnimation::interpolated(const QVariant &from, const QVariant &to, qr | |||
|
45 | 45 | Q_ASSERT(startVector.count() == endVector.count()); |
|
46 | 46 | |
|
47 | 47 | for(int i = 0; i < startVector.count(); i++) { |
|
48 |
|
|
|
49 | qreal h = startVector[i].height() + ((endVector[i].height() - startVector[i].height()) * progress); | |
|
50 | qreal x = endVector[i].topLeft().x(); | |
|
51 | qreal y = endVector[i].topLeft().y() + endVector[i].height() - h; | |
|
48 | QRectF start = startVector[i].normalized(); | |
|
49 | QRectF end = endVector[i].normalized(); | |
|
50 | ||
|
51 | qreal x = end.left(); | |
|
52 | qreal y; | |
|
53 | qreal w = end.width(); | |
|
54 | qreal h; | |
|
55 | ||
|
56 | if (endVector[i].height() < 0) { | |
|
57 | // Negative bar | |
|
58 | y = end.top(); | |
|
59 | h = start.height() + ((end.height() - start.height()) * progress); | |
|
60 | } else { | |
|
61 | h = startVector[i].height() + ((endVector[i].height() - startVector[i].height()) * progress); | |
|
62 | y = endVector[i].top() + endVector[i].height() - h; | |
|
63 | } | |
|
52 | 64 | |
|
53 | 65 | QRectF value(x,y,w,h); |
|
54 | 66 | result << value.normalized(); |
@@ -46,10 +46,22 QVariant HorizontalBarAnimation::interpolated(const QVariant &from, const QVaria | |||
|
46 | 46 | Q_ASSERT(startVector.count() == endVector.count()); |
|
47 | 47 | |
|
48 | 48 | for(int i = 0; i < startVector.count(); i++) { |
|
49 | qreal h = endVector[i].height(); | |
|
50 | qreal w = startVector[i].width() + ((endVector[i].width() - startVector[i].width()) * progress); | |
|
51 | qreal x = endVector[i].left(); | |
|
52 | qreal y = endVector[i].top(); | |
|
49 | QRectF start = startVector[i].normalized(); | |
|
50 | QRectF end = endVector[i].normalized(); | |
|
51 | ||
|
52 | qreal x; | |
|
53 | qreal y = end.top(); | |
|
54 | qreal w; | |
|
55 | qreal h = end.height(); | |
|
56 | ||
|
57 | if (endVector[i].width() < 0) { | |
|
58 | // Negative bar | |
|
59 | w = start.width() + ((end.width() - start.width()) * progress); | |
|
60 | x = endVector[i].right() - endVector[i].width() - w; | |
|
61 | } else { | |
|
62 | w = startVector[i].width() + ((endVector[i].width() - startVector[i].width()) * progress); | |
|
63 | x = end.left(); | |
|
64 | } | |
|
53 | 65 | |
|
54 | 66 | QRectF value(x,y,w,h); |
|
55 | 67 | result << value.normalized(); |
General Comments 0
You need to be logged in to leave comments.
Login now