File indexing completed on 2024-05-19 05:35:21
0001 ////////////////////////////////////////////////////////////////////////////// 0002 // oxygenscrollbarengine.cpp 0003 // stores event filters and maps widgets to timelines for 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 "oxygenscrollbarengine.h" 0012 0013 #include <QEvent> 0014 0015 namespace Oxygen 0016 { 0017 //____________________________________________________________ 0018 bool ScrollBarEngine::registerWidget(QWidget *widget) 0019 { 0020 // check widget 0021 /* 0022 note: widget is registered even if animation is disabled because OxygenScrollBarData 0023 is also used in non-animated mode to store arrow rect for hover highlight 0024 */ 0025 if (!widget) 0026 return false; 0027 0028 // create new data class 0029 if (!_data.contains(widget)) 0030 _data.insert(widget, new ScrollBarData(this, widget, duration()), enabled()); 0031 0032 // connect destruction signal 0033 connect(widget, SIGNAL(destroyed(QObject *)), this, SLOT(unregisterWidget(QObject *)), Qt::UniqueConnection); 0034 return true; 0035 } 0036 0037 //____________________________________________________________ 0038 bool ScrollBarEngine::isAnimated(const QObject *object, QStyle::SubControl control) 0039 { 0040 if (DataMap<ScrollBarData>::Value data = _data.find(object)) { 0041 if (Animation::Pointer animation = data.data()->animation(control)) 0042 return animation.data()->isRunning(); 0043 } 0044 0045 return false; 0046 } 0047 }