File indexing completed on 2025-04-27 03:58:37

0001 /* ============================================================
0002  *
0003  * This file is a part of digiKam project
0004  * https://www.digikam.org
0005  *
0006  * Date        : 2008-08-16
0007  * Description : Integer and double num input widget
0008  *               re-implemented with a reset button to switch to
0009  *               a default value
0010  *
0011  * SPDX-FileCopyrightText: 2008-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
0012  *
0013  * SPDX-License-Identifier: GPL-2.0-or-later
0014  *
0015  * ============================================================ */
0016 
0017 #ifndef DIGIKAM_DNUM_INPUT_H
0018 #define DIGIKAM_DNUM_INPUT_H
0019 
0020 // Qt includes
0021 
0022 #include <QWidget>
0023 
0024 // Local includes
0025 
0026 #include "digikam_export.h"
0027 
0028 namespace Digikam
0029 {
0030 
0031 class DIGIKAM_EXPORT DIntNumInput : public QWidget
0032 {
0033     Q_OBJECT
0034 
0035 public:
0036 
0037     explicit DIntNumInput(QWidget* const parent = nullptr);
0038     ~DIntNumInput() override;
0039 
0040     void setRange(int min, int max, int step);
0041 
0042     void setDefaultValue(int d);
0043     int  defaultValue() const;
0044     int  value()        const;
0045 
0046     void setSuffix(const QString& suffix);
0047 
0048 Q_SIGNALS:
0049 
0050     void reset();
0051     void valueChanged(int);
0052 
0053 public Q_SLOTS:
0054 
0055     void setValue(int d);
0056     void slotReset();
0057 
0058 private Q_SLOTS:
0059 
0060     void slotValueChanged(int);
0061 
0062 private:
0063 
0064     class Private;
0065     Private* const d;
0066 };
0067 
0068 // ---------------------------------------------------------
0069 
0070 class DIGIKAM_EXPORT DDoubleNumInput : public QWidget
0071 {
0072     Q_OBJECT
0073 
0074 public:
0075 
0076     explicit DDoubleNumInput(QWidget* const parent = nullptr);
0077     ~DDoubleNumInput() override;
0078 
0079     void   setDecimals(int p);
0080     void   setRange(double min, double max, double step);
0081 
0082     void   setDefaultValue(double d);
0083     double defaultValue() const;
0084     double value()        const;
0085 
0086     void setSuffix(const QString& suffix);
0087 
0088 Q_SIGNALS:
0089 
0090     void reset();
0091     void valueChanged(double);
0092 
0093 public Q_SLOTS:
0094 
0095     void setValue(double d);
0096     void slotReset();
0097 
0098 private Q_SLOTS:
0099 
0100     void slotValueChanged(double);
0101 
0102 private:
0103 
0104     class Private;
0105     Private* const d;
0106 };
0107 
0108 } // namespace Digikam
0109 
0110 #endif // DIGIKAM_DNUM_INPUT_H