aboutsummaryrefslogtreecommitdiffstats
path: root/src/templates/qquicktextfield.cpp
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@theqtcompany.com>2015-10-29 22:25:11 +0100
committerJ-P Nurmi <jpnurmi@theqtcompany.com>2015-10-30 09:51:36 +0000
commit19e7cc53a7189c5c35a478d06b435433297771c5 (patch)
treea1b1958cdaf36813b362b943acc4a55ba5294b27 /src/templates/qquicktextfield.cpp
parent390fb0d4a8e4f308b225a86b48205b14633cf0e2 (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.cpp51
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();
}
}