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