File indexing completed on 2024-05-12 17:06:30

0001 #ifndef oxygengenericanimationconfigitem_h
0002 #define oxygengenericanimationconfigitem_h
0003 
0004 //////////////////////////////////////////////////////////////////////////////
0005 // oxygengenericanimationconfigitem.h
0006 // animation configuration item
0007 // -------------------
0008 //
0009 // SPDX-FileCopyrightText: 2010 Hugo Pereira Da Costa <hugo.pereira@free.fr>
0010 //
0011 // SPDX-License-Identifier: MIT
0012 //////////////////////////////////////////////////////////////////////////////
0013 
0014 #include "oxygen_config_export.h"
0015 #include "oxygenanimationconfigitem.h"
0016 
0017 #include <QFrame>
0018 #include <QPointer>
0019 #include <QSpinBox>
0020 
0021 class Ui_GenericAnimationConfigBox;
0022 
0023 namespace Oxygen
0024 {
0025 
0026 class OXYGEN_CONFIG_EXPORT GenericAnimationConfigBox : public QFrame
0027 {
0028     Q_OBJECT
0029 
0030 public:
0031     //* constructor
0032     explicit GenericAnimationConfigBox(QWidget *);
0033 
0034     //* destructor
0035     virtual ~GenericAnimationConfigBox();
0036 
0037     //* duration spin box
0038     QSpinBox *durationSpinBox(void) const;
0039 
0040 private:
0041     Ui_GenericAnimationConfigBox *ui = nullptr;
0042 };
0043 
0044 //* generic animation config item
0045 class OXYGEN_CONFIG_EXPORT GenericAnimationConfigItem : public AnimationConfigItem
0046 {
0047     Q_OBJECT
0048 
0049 public:
0050     //* constructor
0051     explicit GenericAnimationConfigItem(QWidget *parent, const QString &title = QString(), const QString &description = QString())
0052         : AnimationConfigItem(parent, title, description)
0053     {
0054     }
0055 
0056     //* configure
0057     void initializeConfigurationWidget(QWidget *) override;
0058 
0059     //* configuration widget
0060     QWidget *configurationWidget(void) const override
0061     {
0062         return _configurationWidget.data();
0063     }
0064 
0065     //* duration
0066     virtual int duration(void) const
0067     {
0068         return _configurationWidget ? _configurationWidget.data()->durationSpinBox()->value() : 0;
0069     }
0070 
0071 public Q_SLOTS:
0072 
0073     //* duration
0074     virtual void setDuration(int value)
0075     {
0076         if (_configurationWidget) {
0077             _configurationWidget.data()->durationSpinBox()->setValue(value);
0078         }
0079     }
0080 
0081 private:
0082     //* configuration widget
0083     QPointer<GenericAnimationConfigBox> _configurationWidget;
0084 };
0085 }
0086 
0087 #endif