1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
#ifndef WIDGETS_CLEARSPINBOX_H
#define WIDGETS_CLEARSPINBOX_H
#include "./buttonoverlay.h"
#include <QLineEdit>
#include <QSpinBox>
QT_FORWARD_DECLARE_CLASS(QHBoxLayout)
namespace QtUtilities {
class IconButton;
class QT_UTILITIES_EXPORT ClearSpinBox : public QSpinBox, public ButtonOverlay {
Q_OBJECT
Q_PROPERTY(bool cleared READ isCleared)
Q_PROPERTY(bool minimumHidden READ minimumHidden WRITE setMinimumHidden)
Q_PROPERTY(QString placeholderText READ placeholderText WRITE setPlaceholderText)
public:
explicit ClearSpinBox(QWidget *parent = nullptr);
~ClearSpinBox() override;
bool minimumHidden() const;
void setMinimumHidden(bool value);
QString placeholderText() const;
void setPlaceholderText(const QString &placeholderText);
bool isCleared() const override;
protected:
int valueFromText(const QString &text) const override;
QString textFromValue(int val) const override;
private Q_SLOTS:
void handleValueChanged(int value);
void handleClearButtonClicked() override;
void handleCustomLayoutCreated() override;
private:
bool m_minimumHidden;
};
/*!
* \brief Returns whether the minimum value will be hidden.
*/
inline bool ClearSpinBox::minimumHidden() const
{
return m_minimumHidden;
}
/*!
* \brief Sets whether the minimum value should be hidden.
*/
inline void ClearSpinBox::setMinimumHidden(bool value)
{
m_minimumHidden = value;
}
/*!
* \brief Returns the placeholder text.
* \sa QLineEdit::placeholderText()
*/
inline QString ClearSpinBox::placeholderText() const
{
return lineEdit()->placeholderText();
}
/*!
* \brief Sets the placeholder text.
* \sa QLineEdit::setPlaceholderText()
*/
inline void ClearSpinBox::setPlaceholderText(const QString &placeholderText)
{
lineEdit()->setPlaceholderText(placeholderText);
}
} // namespace QtUtilities
#endif // WIDGETS_CLEARSPINBOX_H
|