117 lines
2.9 KiB
C++
117 lines
2.9 KiB
C++
/******************************************************************************
|
|
* QSkinny - Copyright (C) The authors
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*****************************************************************************/
|
|
|
|
#ifndef QSK_TEXT_INPUT_H
|
|
#define QSK_TEXT_INPUT_H
|
|
|
|
#include "QskAbstractTextInput.h"
|
|
#include "QskTextOptions.h"
|
|
|
|
class QValidator;
|
|
|
|
class QSK_EXPORT QskTextInput : public QskAbstractTextInput
|
|
{
|
|
Q_OBJECT
|
|
|
|
Q_PROPERTY( QString displayText READ displayText NOTIFY displayTextChanged )
|
|
|
|
Q_PROPERTY( int maximumLength READ maxLength
|
|
WRITE setMaxLength NOTIFY maximumLengthChanged )
|
|
|
|
Q_PROPERTY( QString inputMask READ inputMask
|
|
WRITE setInputMask NOTIFY inputMaskChanged )
|
|
|
|
Q_PROPERTY( bool acceptableInput READ hasAcceptableInput
|
|
NOTIFY acceptableInputChanged)
|
|
|
|
Q_PROPERTY( bool autoScroll READ autoScroll
|
|
WRITE setAutoScroll NOTIFY autoScrollChanged )
|
|
|
|
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 )
|
|
|
|
Q_PROPERTY( QValidator* validator READ validator
|
|
WRITE setValidator NOTIFY validatorChanged )
|
|
|
|
using Inherited = QskAbstractTextInput;
|
|
|
|
public:
|
|
QSK_SUBCONTROLS( TextPanel )
|
|
|
|
QSK_STATES( Error )
|
|
|
|
enum EchoMode : quint8
|
|
{
|
|
Normal,
|
|
NoEcho,
|
|
Password,
|
|
PasswordEchoOnEdit
|
|
};
|
|
|
|
Q_ENUM( EchoMode )
|
|
|
|
QskTextInput( QQuickItem* parent = nullptr );
|
|
~QskTextInput() override;
|
|
|
|
int maxLength() const;
|
|
void setMaxLength( int );
|
|
|
|
QValidator* validator() const;
|
|
void setValidator( QValidator* );
|
|
|
|
QString inputMask() const;
|
|
void setInputMask( const QString& );
|
|
|
|
bool autoScroll() const;
|
|
void setAutoScroll( bool );
|
|
|
|
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();
|
|
|
|
void ensureVisible( int position );
|
|
|
|
Q_SIGNALS:
|
|
void maximumLengthChanged( int );
|
|
|
|
void autoScrollChanged( bool );
|
|
|
|
void echoModeChanged( EchoMode );
|
|
void passwordMaskDelayChanged();
|
|
void passwordCharacterChanged();
|
|
|
|
void validatorChanged( const QValidator* );
|
|
void inputMaskChanged( const QString& );
|
|
void acceptableInputChanged( bool );
|
|
|
|
void displayTextChanged();
|
|
|
|
private:
|
|
class PrivateData;
|
|
std::unique_ptr< PrivateData > m_data;
|
|
};
|
|
|
|
#endif
|