aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2/qquicktextfield.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/quicktemplates2/qquicktextfield.cpp')
-rw-r--r--src/quicktemplates2/qquicktextfield.cpp163
1 files changed, 84 insertions, 79 deletions
diff --git a/src/quicktemplates2/qquicktextfield.cpp b/src/quicktemplates2/qquicktextfield.cpp
index 2718b13e..e6ca2496 100644
--- a/src/quicktemplates2/qquicktextfield.cpp
+++ b/src/quicktemplates2/qquicktextfield.cpp
@@ -39,13 +39,11 @@
#include "qquickcontrol_p.h"
#include "qquickcontrol_p_p.h"
-#include <QtCore/qbasictimer.h>
#include <QtQuick/private/qquickitem_p.h>
-#include <QtQuick/private/qquicktext_p.h>
#include <QtQuick/private/qquicktextinput_p.h>
#include <QtQuick/private/qquickclipnode_p.h>
-#ifndef QT_NO_ACCESSIBILITY
+#if QT_CONFIG(accessibility)
#include <QtQuick/private/qquickaccessibleattached_p.h>
#endif
@@ -114,20 +112,23 @@ QT_BEGIN_NAMESPACE
*/
QQuickTextFieldPrivate::QQuickTextFieldPrivate()
- : hovered(false)
- , explicitHoverEnabled(false)
- , background(nullptr)
- , focusReason(Qt::OtherFocusReason)
- , accessibleAttached(nullptr)
+ : QQuickTextInputPrivate(),
+#if QT_CONFIG(quicktemplates2_hover)
+ hovered(false),
+ explicitHoverEnabled(false),
+#endif
+ background(nullptr),
+ focusReason(Qt::OtherFocusReason),
+ accessibleAttached(nullptr)
{
-#ifndef QT_NO_ACCESSIBILITY
+#if QT_CONFIG(accessibility)
QAccessible::installActivationObserver(this);
#endif
}
QQuickTextFieldPrivate::~QQuickTextFieldPrivate()
{
-#ifndef QT_NO_ACCESSIBILITY
+#if QT_CONFIG(accessibility)
QAccessible::removeActivationObserver(this);
#endif
}
@@ -148,51 +149,6 @@ void QQuickTextFieldPrivate::resizeBackground()
}
}
-qreal QQuickTextFieldPrivate::getImplicitWidth() const
-{
- return QQuickItemPrivate::getImplicitWidth();
-}
-
-qreal QQuickTextFieldPrivate::getImplicitHeight() const
-{
- return QQuickItemPrivate::getImplicitHeight();
-}
-
-void QQuickTextFieldPrivate::implicitWidthChanged()
-{
- Q_Q(QQuickTextField);
- QQuickItemPrivate::implicitWidthChanged();
- emit q->implicitWidthChanged3();
-}
-
-void QQuickTextFieldPrivate::implicitHeightChanged()
-{
- Q_Q(QQuickTextField);
- QQuickItemPrivate::implicitHeightChanged();
- emit q->implicitHeightChanged3();
-}
-
-QQuickTextField::QQuickTextField(QQuickItem *parent) :
- QQuickTextInput(*(new QQuickTextFieldPrivate), parent)
-{
- Q_D(QQuickTextField);
- d->pressHandler.control = this;
- d->setImplicitResizeEnabled(false);
- setAcceptedMouseButtons(Qt::AllButtons);
- setActiveFocusOnTab(true);
-#ifndef QT_NO_CURSOR
- setCursor(Qt::IBeamCursor);
-#endif
- QObjectPrivate::connect(this, &QQuickTextInput::readOnlyChanged,
- d, &QQuickTextFieldPrivate::_q_readOnlyChanged);
- QObjectPrivate::connect(this, &QQuickTextInput::echoModeChanged,
- d, &QQuickTextFieldPrivate::_q_echoModeChanged);
-}
-
-QQuickTextField::~QQuickTextField()
-{
-}
-
/*!
\internal
@@ -222,6 +178,7 @@ void QQuickTextFieldPrivate::inheritFont(const QFont &f)
emit q->fontChanged();
}
+#if QT_CONFIG(quicktemplates2_hover)
void QQuickTextFieldPrivate::updateHoverEnabled(bool enabled, bool xplicit)
{
Q_Q(QQuickTextField);
@@ -236,22 +193,47 @@ void QQuickTextFieldPrivate::updateHoverEnabled(bool enabled, bool xplicit)
emit q->hoverEnabledChanged();
}
}
+#endif
+
+qreal QQuickTextFieldPrivate::getImplicitWidth() const
+{
+ return QQuickItemPrivate::getImplicitWidth();
+}
+
+qreal QQuickTextFieldPrivate::getImplicitHeight() const
+{
+ return QQuickItemPrivate::getImplicitHeight();
+}
+
+void QQuickTextFieldPrivate::implicitWidthChanged()
+{
+ Q_Q(QQuickTextField);
+ QQuickItemPrivate::implicitWidthChanged();
+ emit q->implicitWidthChanged3();
+}
-void QQuickTextFieldPrivate::_q_readOnlyChanged(bool isReadOnly)
+void QQuickTextFieldPrivate::implicitHeightChanged()
+{
+ Q_Q(QQuickTextField);
+ QQuickItemPrivate::implicitHeightChanged();
+ emit q->implicitHeightChanged3();
+}
+
+void QQuickTextFieldPrivate::readOnlyChanged(bool isReadOnly)
{
Q_UNUSED(isReadOnly);
-#ifndef QT_NO_ACCESSIBILITY
+#if QT_CONFIG(accessibility)
if (accessibleAttached)
accessibleAttached->set_readOnly(isReadOnly);
#endif
-#ifndef QT_NO_CURSOR
+#if QT_CONFIG(cursor)
q_func()->setCursor(isReadOnly ? Qt::ArrowCursor : Qt::IBeamCursor);
#endif
}
-void QQuickTextFieldPrivate::_q_echoModeChanged(QQuickTextField::EchoMode echoMode)
+void QQuickTextFieldPrivate::echoModeChanged(QQuickTextField::EchoMode echoMode)
{
-#ifndef QT_NO_ACCESSIBILITY
+#if QT_CONFIG(accessibility)
if (accessibleAttached)
accessibleAttached->set_passwordEdit((echoMode == QQuickTextField::Password || echoMode == QQuickTextField::PasswordEchoOnEdit) ? true : false);
#else
@@ -259,7 +241,7 @@ void QQuickTextFieldPrivate::_q_echoModeChanged(QQuickTextField::EchoMode echoMo
#endif
}
-#ifndef QT_NO_ACCESSIBILITY
+#if QT_CONFIG(accessibility)
void QQuickTextFieldPrivate::accessibilityActiveChanged(bool active)
{
if (accessibleAttached || !active)
@@ -283,16 +265,19 @@ QAccessible::Role QQuickTextFieldPrivate::accessibleRole() const
}
#endif
-/*
- Deletes "delegate" if Component.completed() has been emitted,
- otherwise stores it in pendingDeletions.
-*/
-void QQuickTextFieldPrivate::deleteDelegate(QObject *delegate)
+QQuickTextField::QQuickTextField(QQuickItem *parent)
+ : QQuickTextInput(*(new QQuickTextFieldPrivate), parent)
{
- if (componentComplete)
- delete delegate;
- else if (delegate)
- pendingDeletions.append(delegate);
+ Q_D(QQuickTextField);
+ d->pressHandler.control = this;
+ d->setImplicitResizeEnabled(false);
+ setAcceptedMouseButtons(Qt::AllButtons);
+ setActiveFocusOnTab(true);
+#if QT_CONFIG(cursor)
+ setCursor(Qt::IBeamCursor);
+#endif
+ QObjectPrivate::connect(this, &QQuickTextInput::readOnlyChanged, d, &QQuickTextFieldPrivate::readOnlyChanged);
+ QObjectPrivate::connect(this, &QQuickTextInput::echoModeChanged, d, &QQuickTextFieldPrivate::echoModeChanged);
}
QFont QQuickTextField::font() const
@@ -331,7 +316,7 @@ void QQuickTextField::setBackground(QQuickItem *background)
if (d->background == background)
return;
- d->deleteDelegate(d->background);
+ QQuickControlPrivate::destroyDelegate(d->background, this);
d->background = background;
if (background) {
background->setParentItem(this);
@@ -362,7 +347,7 @@ void QQuickTextField::setPlaceholderText(const QString &text)
return;
d->placeholder = text;
-#ifndef QT_NO_ACCESSIBILITY
+#if QT_CONFIG(accessibility)
if (d->accessibleAttached)
d->accessibleAttached->setDescription(text);
#endif
@@ -401,18 +386,26 @@ void QQuickTextField::setFocusReason(Qt::FocusReason reason)
*/
bool QQuickTextField::isHovered() const
{
+#if QT_CONFIG(quicktemplates2_hover)
Q_D(const QQuickTextField);
return d->hovered;
+#else
+ return false;
+#endif
}
void QQuickTextField::setHovered(bool hovered)
{
+#if QT_CONFIG(quicktemplates2_hover)
Q_D(QQuickTextField);
if (hovered == d->hovered)
return;
d->hovered = hovered;
emit hoveredChanged();
+#else
+ Q_UNUSED(hovered);
+#endif
}
/*!
@@ -425,27 +418,37 @@ void QQuickTextField::setHovered(bool hovered)
*/
bool QQuickTextField::isHoverEnabled() const
{
+#if QT_CONFIG(quicktemplates2_hover)
Q_D(const QQuickTextField);
return d->hoverEnabled;
+#else
+ return false;
+#endif
}
void QQuickTextField::setHoverEnabled(bool enabled)
{
+#if QT_CONFIG(quicktemplates2_hover)
Q_D(QQuickTextField);
if (d->explicitHoverEnabled && enabled == d->hoverEnabled)
return;
d->updateHoverEnabled(enabled, true); // explicit=true
+#else
+ Q_UNUSED(enabled);
+#endif
}
void QQuickTextField::resetHoverEnabled()
{
+#if QT_CONFIG(quicktemplates2_hover)
Q_D(QQuickTextField);
if (!d->explicitHoverEnabled)
return;
d->explicitHoverEnabled = false;
d->updateHoverEnabled(QQuickControlPrivate::calcHoverEnabled(d->parentItem), false); // explicit=false
+#endif
}
void QQuickTextField::classBegin()
@@ -459,15 +462,14 @@ void QQuickTextField::componentComplete()
{
Q_D(QQuickTextField);
QQuickTextInput::componentComplete();
+#if QT_CONFIG(quicktemplates2_hover)
if (!d->explicitHoverEnabled)
setAcceptHoverEvents(QQuickControlPrivate::calcHoverEnabled(d->parentItem));
-#ifndef QT_NO_ACCESSIBILITY
+#endif
+#if QT_CONFIG(accessibility)
if (!d->accessibleAttached && QAccessible::isActive())
d->accessibilityActiveChanged(true);
#endif
-
- qDeleteAll(d->pendingDeletions);
- d->pendingDeletions.clear();
}
void QQuickTextField::itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &value)
@@ -476,8 +478,10 @@ void QQuickTextField::itemChange(QQuickItem::ItemChange change, const QQuickItem
QQuickTextInput::itemChange(change, value);
if (change == ItemParentHasChanged && value.item) {
d->resolveFont();
+#if QT_CONFIG(quicktemplates2_hover)
if (!d->explicitHoverEnabled)
d->updateHoverEnabled(QQuickControlPrivate::calcHoverEnabled(d->parentItem), false); // explicit=false
+#endif
}
}
@@ -516,6 +520,7 @@ void QQuickTextField::focusOutEvent(QFocusEvent *event)
setFocusReason(event->reason());
}
+#if QT_CONFIG(quicktemplates2_hover)
void QQuickTextField::hoverEnterEvent(QHoverEvent *event)
{
Q_D(QQuickTextField);
@@ -531,6 +536,7 @@ void QQuickTextField::hoverLeaveEvent(QHoverEvent *event)
setHovered(false);
event->setAccepted(d->hoverEnabled);
}
+#endif
void QQuickTextField::mousePressEvent(QMouseEvent *event)
{
@@ -584,11 +590,10 @@ void QQuickTextField::mouseDoubleClickEvent(QMouseEvent *event)
void QQuickTextField::timerEvent(QTimerEvent *event)
{
Q_D(QQuickTextField);
- if (event->timerId() == d->pressHandler.timer.timerId()) {
+ if (event->timerId() == d->pressHandler.timer.timerId())
d->pressHandler.timerEvent(event);
- } else {
+ else
QQuickTextInput::timerEvent(event);
- }
}
QT_END_NAMESPACE