diff options
Diffstat (limited to 'src/quicktemplates2/qquicktooltip.cpp')
-rw-r--r-- | src/quicktemplates2/qquicktooltip.cpp | 37 |
1 files changed, 18 insertions, 19 deletions
diff --git a/src/quicktemplates2/qquicktooltip.cpp b/src/quicktemplates2/qquicktooltip.cpp index 27449194..c05f5a0b 100644 --- a/src/quicktemplates2/qquicktooltip.cpp +++ b/src/quicktemplates2/qquicktooltip.cpp @@ -244,25 +244,27 @@ void QQuickToolTip::setTimeout(int timeout) emit timeoutChanged(); } -QQuickToolTipAttached *QQuickToolTip::qmlAttachedProperties(QObject *object) -{ - return new QQuickToolTipAttached(object); -} - -void QQuickToolTip::open() +void QQuickToolTip::setVisible(bool visible) { Q_D(QQuickToolTip); - if (d->delay > 0) - d->startDelay(); - else - QQuickPopup::open(); + if (visible) { + if (!d->visible && d->delay > 0) { + d->startDelay(); + return; + } + } else { + d->stopDelay(); + } + QQuickPopup::setVisible(visible); } -void QQuickToolTip::close() +QQuickToolTipAttached *QQuickToolTip::qmlAttachedProperties(QObject *object) { - Q_D(QQuickToolTip); - d->stopDelay(); - QQuickPopup::close(); + QQuickItem *item = qobject_cast<QQuickItem *>(object); + if (!item) + qmlInfo(object) << "ToolTip must be attached to an Item"; + + return new QQuickToolTipAttached(object); } QFont QQuickToolTip::defaultFont() const @@ -291,10 +293,10 @@ void QQuickToolTip::timerEvent(QTimerEvent *event) Q_D(QQuickToolTip); if (event->timerId() == d->timeoutTimer.timerId()) { d->stopTimeout(); - close(); + QQuickPopup::setVisible(false); } else if (event->timerId() == d->delayTimer.timerId()) { d->stopDelay(); - QQuickPopup::open(); + QQuickPopup::setVisible(true); } } @@ -349,9 +351,6 @@ QQuickToolTip *QQuickToolTipAttachedPrivate::instance(bool create) const QQuickToolTipAttached::QQuickToolTipAttached(QObject *parent) : QObject(*(new QQuickToolTipAttachedPrivate), parent) { - QQuickItem *item = qobject_cast<QQuickItem *>(parent); - if (!item && parent) - qmlInfo(parent) << "ToolTip must be attached to an Item"; } /*! |