File indexing completed on 2024-04-14 03:59:23
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 "KBlocksAnimDrop.h" 0010 0011 #include "SvgItemInterface.h" 0012 0013 KBlocksAnimDrop::KBlocksAnimDrop(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, &KBlocksAnimDrop::valueChanged); 0022 connect(mpTimeLine, &QTimeLine::finished, this, &KBlocksAnimDrop::endAnimation); 0023 0024 mpTimeLine->start(); 0025 } 0026 0027 KBlocksAnimDrop::~KBlocksAnimDrop() 0028 { 0029 delete mpTimeLine; 0030 } 0031 0032 void KBlocksAnimDrop::valueChanged(qreal value) 0033 { 0034 Q_UNUSED(value); 0035 for (SvgItemInterface *pItem : std::as_const(mItemList)) { 0036 pItem->execPosAnim(value); 0037 } 0038 } 0039 0040 void KBlocksAnimDrop::endAnimation() 0041 { 0042 Q_EMIT animationFinished(); 0043 } 0044 0045 #include "moc_KBlocksAnimDrop.cpp"