File indexing completed on 2024-04-21 04:02:05

0001 /******************************************************************************
0002 *   KBlocks, a falling blocks game by KDE                                     *
0003 *   SPDX-FileCopyrightText: 2009-2021 Mauricio Piacentini <mauricio@tabuleiro.com>      *
0004 *                           Zhongjie Cai <squall.leonhart.cai@gmail.com>      *
0005 *                           Julian Helfferich <julian.helfferich@mailbox.org> *
0006 *                                                                             *
0007 *   SPDX-License-Identifier: GPL-2.0-or-later
0008 ******************************************************************************/
0009 #include "KBlocksAnimFade.h"
0010 
0011 #include "SvgItemInterface.h"
0012 
0013 KBlocksAnimFade::KBlocksAnimFade(const QList<SvgItemInterface *> &items, int duration, QTimeLine::Direction direction)
0014 {
0015     mItemList = items;
0016 
0017     mpTimeLine = new QTimeLine(duration);
0018     mpTimeLine->setFrameRange(0, 30);
0019     mpTimeLine->setDirection(direction);
0020 
0021     connect(mpTimeLine, &QTimeLine::valueChanged, this, &KBlocksAnimFade::valueChanged);
0022     connect(mpTimeLine, &QTimeLine::finished, this, &KBlocksAnimFade::endAnimation);
0023 
0024     mpTimeLine->start();
0025 }
0026 
0027 KBlocksAnimFade::~KBlocksAnimFade()
0028 {
0029     delete mpTimeLine;
0030 }
0031 
0032 void KBlocksAnimFade::valueChanged(qreal value)
0033 {
0034     for (SvgItemInterface *pItem : std::as_const(mItemList)) {
0035         pItem->setOpacity(value);
0036     }
0037 }
0038 
0039 void KBlocksAnimFade::endAnimation()
0040 {
0041     Q_EMIT animationFinished();
0042 }
0043 
0044 #include "moc_KBlocksAnimFade.cpp"