File indexing completed on 2025-02-16 13:11:48
0001 /* 0002 SPDX-FileCopyrightText: 2009 Sebastian Trueg <trueg@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.1-or-later 0005 */ 0006 0007 #include "kpixmapsequencewidget.h" 0008 #include "kpixmapsequence.h" 0009 #include "kpixmapsequenceoverlaypainter.h" 0010 0011 class KPixmapSequenceWidgetPrivate 0012 { 0013 public: 0014 KPixmapSequenceOverlayPainter *m_painter = nullptr; 0015 }; 0016 0017 KPixmapSequenceWidget::KPixmapSequenceWidget(QWidget *parent) 0018 : QWidget(parent) 0019 , d(new KPixmapSequenceWidgetPrivate) 0020 { 0021 d->m_painter = new KPixmapSequenceOverlayPainter(this); 0022 d->m_painter->setWidget(this); 0023 } 0024 0025 KPixmapSequenceWidget::KPixmapSequenceWidget(const KPixmapSequence &seq, QWidget *parent) 0026 : QWidget(parent) 0027 , d(new KPixmapSequenceWidgetPrivate) 0028 { 0029 d->m_painter = new KPixmapSequenceOverlayPainter(seq); 0030 d->m_painter->setWidget(this); 0031 if (seq.isValid()) { 0032 d->m_painter->start(); 0033 } 0034 } 0035 0036 KPixmapSequenceWidget::~KPixmapSequenceWidget() 0037 { 0038 delete d->m_painter; 0039 } 0040 0041 KPixmapSequence KPixmapSequenceWidget::sequence() const 0042 { 0043 return d->m_painter->sequence(); 0044 } 0045 0046 int KPixmapSequenceWidget::interval() const 0047 { 0048 return d->m_painter->interval(); 0049 } 0050 0051 QSize KPixmapSequenceWidget::sizeHint() const 0052 { 0053 if (d->m_painter->sequence().isValid()) { 0054 return d->m_painter->sequence().frameSize(); 0055 } else { 0056 return QWidget::sizeHint(); 0057 } 0058 } 0059 0060 void KPixmapSequenceWidget::setSequence(const KPixmapSequence &seq) 0061 { 0062 d->m_painter->setSequence(seq); 0063 if (seq.isValid()) { 0064 setFixedSize(seq.frameSize()); 0065 d->m_painter->start(); 0066 } else { 0067 d->m_painter->stop(); 0068 } 0069 } 0070 0071 void KPixmapSequenceWidget::setInterval(int msecs) 0072 { 0073 d->m_painter->setInterval(msecs); 0074 } 0075 0076 #include "moc_kpixmapsequencewidget.cpp"