diff options
author | J-P Nurmi <jpnurmi@theqtcompany.com> | 2015-10-29 22:25:11 +0100 |
---|---|---|
committer | J-P Nurmi <jpnurmi@theqtcompany.com> | 2015-10-30 09:51:36 +0000 |
commit | 19e7cc53a7189c5c35a478d06b435433297771c5 (patch) | |
tree | a1b1958cdaf36813b362b943acc4a55ba5294b27 /src/templates/qquicktextfield.cpp | |
parent | 390fb0d4a8e4f308b225a86b48205b14633cf0e2 (diff) |
Simplify TextField & TextArea placeholder
Better not expose the extra Text item in the API. Ideally it should
be implemented as a scenegraph node. We might even want to promote
the placeholderText property (and add placeholderColor) to TextInput
and TextEdit in Qt Quick core.
Change-Id: I4f443c77d1c696b87a50ee184f868713dd50316f
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
Diffstat (limited to 'src/templates/qquicktextfield.cpp')
-rw-r--r-- | src/templates/qquicktextfield.cpp | 51 |
1 files changed, 13 insertions, 38 deletions
diff --git a/src/templates/qquicktextfield.cpp b/src/templates/qquicktextfield.cpp index b55c799e..dd8ef362 100644 --- a/src/templates/qquicktextfield.cpp +++ b/src/templates/qquicktextfield.cpp @@ -59,8 +59,8 @@ QT_BEGIN_NAMESPACE \ingroup qtlabscontrols-input \brief A single line text input control. - TextField is a single line text editor. TextField extends TextInput - with a \l placeholder text functionality, and adds decoration. + TextField is a single line text editor. TextField extends TextInput with + a \l {placeholderText}{placeholder text} functionality, and adds decoration. \table \row \li \image qtlabscontrols-textfield-normal.png @@ -73,7 +73,7 @@ QT_BEGIN_NAMESPACE \code TextField { - placeholder.text: qsTr("Enter name") + placeholderText: qsTr("Enter name") } \endcode @@ -90,7 +90,6 @@ QT_BEGIN_NAMESPACE QQuickTextFieldPrivate::QQuickTextFieldPrivate() : background(Q_NULLPTR) - , placeholder(Q_NULLPTR) , accessibleAttached(Q_NULLPTR) { #ifndef QT_NO_ACCESSIBILITY @@ -193,16 +192,6 @@ void QQuickTextFieldPrivate::_q_readOnlyChanged(bool isReadOnly) #endif } -void QQuickTextFieldPrivate::_q_placeholderTextChanged(const QString &text) -{ -#ifndef QT_NO_ACCESSIBILITY - if (accessibleAttached) - accessibleAttached->setDescription(text); -#else - Q_UNUSED(text) -#endif -} - void QQuickTextFieldPrivate::_q_echoModeChanged(QQuickTextField::EchoMode echoMode) { #ifndef QT_NO_ACCESSIBILITY @@ -225,8 +214,7 @@ void QQuickTextFieldPrivate::accessibilityActiveChanged(bool active) accessibleAttached->setRole(accessibleRole()); accessibleAttached->set_readOnly(m_readOnly); accessibleAttached->set_passwordEdit((m_echoMode == QQuickTextField::Password || m_echoMode == QQuickTextField::PasswordEchoOnEdit) ? true : false); - if (placeholder) - accessibleAttached->setDescription(placeholder->text()); + accessibleAttached->setDescription(placeholder); } else { qWarning() << "QQuickTextField: " << q << " QQuickAccessibleAttached object creation failed!"; } @@ -298,39 +286,26 @@ void QQuickTextField::setBackground(QQuickItem *background) } /*! - \qmlproperty Text Qt.labs.controls::TextField::placeholder - - This property holds the placeholder text item. + \qmlproperty string Qt.labs.controls::TextField::placeholderText - \sa {Customizing TextField} + This property holds the placeholder text. */ -QQuickText *QQuickTextField::placeholder() const +QString QQuickTextField::placeholderText() const { Q_D(const QQuickTextField); return d->placeholder; } -void QQuickTextField::setPlaceholder(QQuickText *placeholder) +void QQuickTextField::setPlaceholderText(const QString &text) { Q_D(QQuickTextField); - if (d->placeholder != placeholder) { - if (d->placeholder) { - QObjectPrivate::disconnect(d->placeholder, &QQuickText::textChanged, - d, &QQuickTextFieldPrivate::_q_placeholderTextChanged); - delete d->placeholder; - } - d->placeholder = placeholder; - if (placeholder && !placeholder->parentItem()) { - placeholder->setParentItem(this); - QObjectPrivate::connect(d->placeholder, &QQuickText::textChanged, - d, &QQuickTextFieldPrivate::_q_placeholderTextChanged); - } else { + if (d->placeholder != text) { + d->placeholder = text; #ifndef QT_NO_ACCESSIBILITY - if (d->accessibleAttached) - d->accessibleAttached->setDescription(QLatin1Literal("")); + if (d->accessibleAttached) + d->accessibleAttached->setDescription(text); #endif - } - emit placeholderChanged(); + emit placeholderTextChanged(); } } |