fix startup animation fist frame position error

Change-Id: I05d40e552141e7ccd3ba14ee645e4b0884d40c3c
This commit is contained in:
石博文 2017-05-02 14:15:06 +08:00
parent b860927629
commit 73e8e56c1a
Notes: Deepin Code Review 2017-05-02 14:44:17 +08:00
Verified+1: Anonymous Coward #1000004
Code-Review+2: 石博文 <sbw@sbw.so>
Submitted-by: 石博文 <sbw@sbw.so>
Submitted-at: Tue, 02 May 2017 14:44:10 +0800
Reviewed-on: https://cr.deepin.io/22729
Project: dde/dde-dock
Branch: refs/heads/master

View File

@ -260,9 +260,10 @@ void AppItem::mouseReleaseEvent(QMouseEvent *e)
return;
// start launching effects
const QPixmap icon = DockDisplayMode == Efficient ? m_smallIcon : m_largeIcon;
const QRect r = rect();
QGraphicsPixmapItem *item = m_itemScene->addPixmap(m_largeIcon);
item->setPos(r.center() + QPoint(0, 18));
QGraphicsPixmapItem *item = m_itemScene->addPixmap(icon);
item->setPos(r.center() - QPoint(18, 18));
item->setTransformationMode(Qt::SmoothTransformation);
m_itemView->setSceneRect(r);
@ -278,10 +279,12 @@ void AppItem::mouseReleaseEvent(QMouseEvent *e)
ani->setItem(item);
ani->setTimeLine(tl);
const int px = -m_largeIcon.rect().center().x();
const int py = -m_largeIcon.rect().center().y() - 18;
const int px = -icon.rect().center().x();
const int py = -icon.rect().center().y() - 18;
const QPoint pos = r.center() + QPoint(0, 18);
for (int i(0); i != 60; ++i)
{
ani->setPosAt(i / 60.0, pos);
ani->setTranslationAt(i / 60.0, px, py);
ani->setRotationAt(i / 60.0, Frames[i]);
}