File indexing completed on 2024-05-19 05:35:21

0001 //////////////////////////////////////////////////////////////////////////////
0002 // oxygenprogressbarengine.cpp
0003 // handle progress bar animations
0004 // -------------------
0005 //
0006 // SPDX-FileCopyrightText: 2009 Hugo Pereira Da Costa <hugo.pereira@free.fr>
0007 //
0008 // SPDX-License-Identifier: MIT
0009 //////////////////////////////////////////////////////////////////////////////
0010 
0011 #include "oxygenprogressbarengine.h"
0012 
0013 namespace Oxygen
0014 {
0015 //_______________________________________________
0016 bool ProgressBarEngine::registerWidget(QWidget *widget)
0017 {
0018     // check widget validity
0019     if (!widget)
0020         return false;
0021 
0022     // create new data class
0023     if (!_data.contains(widget))
0024         _data.insert(widget, new ProgressBarData(this, widget, duration()), enabled());
0025 
0026     // connect destruction signal
0027     connect(widget, SIGNAL(destroyed(QObject *)), this, SLOT(unregisterWidget(QObject *)), Qt::UniqueConnection);
0028 
0029     return true;
0030 }
0031 
0032 //____________________________________________________________
0033 bool ProgressBarEngine::isAnimated(const QObject *object)
0034 {
0035     DataMap<ProgressBarData>::Value data(ProgressBarEngine::data(object));
0036     return (data && data.data()->animation() && data.data()->animation().data()->isRunning());
0037 }
0038 
0039 //____________________________________________________________
0040 DataMap<ProgressBarData>::Value ProgressBarEngine::data(const QObject *object)
0041 {
0042     return _data.find(object).data();
0043 }
0044 }