qtutilities/widgets/clearspinbox.h

79 lines
1.9 KiB
C
Raw Normal View History

2015-04-22 18:57:44 +02:00
#ifndef WIDGETS_CLEARSPINBOX_H
#define WIDGETS_CLEARSPINBOX_H
2015-09-06 20:19:21 +02:00
#include "./buttonoverlay.h"
2015-04-22 18:57:44 +02:00
#include <QLineEdit>
2017-05-01 03:16:25 +02:00
#include <QSpinBox>
2015-04-22 18:57:44 +02:00
QT_FORWARD_DECLARE_CLASS(QHBoxLayout)
2015-04-22 18:57:44 +02:00
namespace QtUtilities {
2015-04-22 18:57:44 +02:00
class IconButton;
2017-05-01 03:16:25 +02:00
class QT_UTILITIES_EXPORT ClearSpinBox : public QSpinBox, public ButtonOverlay {
2015-04-22 18:57:44 +02:00
Q_OBJECT
2019-07-07 12:41:11 +02:00
Q_PROPERTY(bool cleared READ isCleared)
2015-04-22 18:57:44 +02:00
Q_PROPERTY(bool minimumHidden READ minimumHidden WRITE setMinimumHidden)
Q_PROPERTY(QString placeholderText READ placeholderText WRITE setPlaceholderText)
public:
explicit ClearSpinBox(QWidget *parent = nullptr);
2018-10-10 21:12:58 +02:00
~ClearSpinBox() override;
2015-04-22 18:57:44 +02:00
bool minimumHidden() const;
void setMinimumHidden(bool value);
QString placeholderText() const;
void setPlaceholderText(const QString &placeholderText);
2018-10-10 21:12:58 +02:00
bool isCleared() const override;
2015-04-22 18:57:44 +02:00
protected:
2018-10-10 21:12:58 +02:00
int valueFromText(const QString &text) const override;
QString textFromValue(int val) const override;
2015-04-22 18:57:44 +02:00
private Q_SLOTS:
2015-04-22 18:57:44 +02:00
void handleValueChanged(int value);
2018-10-10 21:12:58 +02:00
void handleClearButtonClicked() override;
void handleCustomLayoutCreated() override;
2015-04-22 18:57:44 +02:00
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
2015-04-22 18:57:44 +02:00
#endif // WIDGETS_CLEARSPINBOX_H