File indexing completed on 2024-05-12 05:28:37

0001 /*
0002  * SPDX-FileCopyrightText: 2014 Hugo Pereira Da Costa <hugo.pereira@free.fr>
0003  *
0004  * SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #include "breezedialengine.h"
0008 
0009 #include <QEvent>
0010 
0011 namespace Breeze
0012 {
0013 //____________________________________________________________
0014 bool DialEngine::registerWidget(QWidget *widget, AnimationModes mode)
0015 {
0016     // check widget
0017     if (!widget) {
0018         return false;
0019     }
0020 
0021     // only handle hover and focus
0022     if (mode & AnimationHover && !dataMap(AnimationHover).contains(widget)) {
0023         dataMap(AnimationHover).insert(widget, new DialData(this, widget, duration()), enabled());
0024     }
0025     if (mode & AnimationFocus && !dataMap(AnimationFocus).contains(widget)) {
0026         dataMap(AnimationFocus).insert(widget, new WidgetStateData(this, widget, duration()), enabled());
0027     }
0028 
0029     // connect destruction signal
0030     connect(widget, SIGNAL(destroyed(QObject *)), this, SLOT(unregisterWidget(QObject *)), Qt::UniqueConnection);
0031 
0032     return true;
0033 }
0034 
0035 }