qskinny/src/controls/QskTextInput.h

93 lines
2.2 KiB
C
Raw Normal View History

2024-12-18 11:37:18 +00:00
/******************************************************************************
* QSkinny - Copyright (C) The authors
* SPDX-License-Identifier: BSD-3-Clause
*****************************************************************************/
#ifndef QSK_TEXT_INPUT_H
#define QSK_TEXT_INPUT_H
#include "QskAbstractTextInput.h"
2024-12-18 11:37:18 +00:00
#include "QskTextOptions.h"
class QValidator;
class QSK_EXPORT QskTextInput : public QskAbstractTextInput
2024-12-18 11:37:18 +00:00
{
Q_OBJECT
Q_PROPERTY( EchoMode echoMode READ echoMode
WRITE setEchoMode NOTIFY echoModeChanged )
Q_PROPERTY( QString passwordCharacter READ passwordCharacter
WRITE setPasswordCharacter RESET resetPasswordCharacter
NOTIFY passwordCharacterChanged )
Q_PROPERTY( int passwordMaskDelay READ passwordMaskDelay
WRITE setPasswordMaskDelay RESET resetPasswordMaskDelay
NOTIFY passwordMaskDelayChanged )
using Inherited = QskAbstractTextInput;
2024-12-18 11:37:18 +00:00
public:
QSK_SUBCONTROLS( TextPanel )
2024-12-18 11:37:18 +00:00
QSK_STATES( Error )
2024-12-18 11:37:18 +00:00
enum EchoMode : quint8
{
Normal,
NoEcho,
Password,
PasswordEchoOnEdit
};
Q_ENUM( EchoMode )
QskTextInput( QQuickItem* parent = nullptr );
2024-12-18 11:37:18 +00:00
~QskTextInput() override;
int maxLength() const;
void setMaxLength( int );
QValidator* validator() const;
void setValidator( QValidator* );
QString inputMask() const;
void setInputMask( const QString& );
EchoMode echoMode() const;
void setEchoMode( EchoMode );
QString passwordCharacter() const;
void setPasswordCharacter( const QString& );
void resetPasswordCharacter();
int passwordMaskDelay() const;
void setPasswordMaskDelay( int );
void resetPasswordMaskDelay();
QString displayText() const;
bool hasAcceptableInput() const;
bool fixup();
bool acceptInput() override;
2024-12-18 11:37:18 +00:00
void ensureVisible( int position );
Q_SIGNALS:
void maximumLengthChanged( int );
void echoModeChanged( EchoMode );
void passwordMaskDelayChanged();
void passwordCharacterChanged();
void validatorChanged();
void inputMaskChanged( const QString& );
private:
class PrivateData;
std::unique_ptr< PrivateData > m_data;
};
#endif