diff options
author | Mitch Curtis <mitch.curtis@qt.io> | 2021-08-12 14:39:51 +0200 |
---|---|---|
committer | Mitch Curtis <mitch.curtis@qt.io> | 2021-08-16 12:52:59 +0200 |
commit | 809339d1484cf556512534367b8170bc26baf072 (patch) | |
tree | 12871313b658f36d058b5ef25af1e247e9c46ce9 /src/quicktemplates2/qquickdelaybutton.cpp | |
parent | b01b4f00eae8022c6a97d90f54dac395144ae095 (diff) |
Now that qtquickcontrols2 has been merged into qtdeclarative,
we should make it obvious that this repo should no longer be
used, by preventing it from being built.
Task-number: QTBUG-95173
Pick-to: 6.2
Change-Id: I95bd6a214f3d75a865ab163ee0a1f9ffbeb7a051
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'src/quicktemplates2/qquickdelaybutton.cpp')
-rw-r--r-- | src/quicktemplates2/qquickdelaybutton.cpp | 266 |
1 files changed, 0 insertions, 266 deletions
diff --git a/src/quicktemplates2/qquickdelaybutton.cpp b/src/quicktemplates2/qquickdelaybutton.cpp deleted file mode 100644 index 25e12263..00000000 --- a/src/quicktemplates2/qquickdelaybutton.cpp +++ /dev/null @@ -1,266 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL3$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qquickdelaybutton_p.h" -#include "qquickabstractbutton_p_p.h" - -#include <QtQuick/private/qquickanimation_p.h> -#include <QtQuick/private/qquicktransition_p.h> -#include <QtQuick/private/qquicktransitionmanager_p_p.h> - -QT_BEGIN_NAMESPACE - -/*! - \qmltype DelayButton - \inherits AbstractButton -//! \instantiates QQuickDelayButton - \inqmlmodule QtQuick.Controls - \since 5.9 - \ingroup qtquickcontrols2-buttons - \brief Check button that triggers when held down long enough. - - \image qtquickcontrols2-delaybutton.gif - - DelayButton is a checkable button that incorporates a delay before the - button becomes \l {AbstractButton::}{checked} and the \l activated() - signal is emitted. This delay prevents accidental presses. - - The current progress is expressed as a decimal value between \c 0.0 - and \c 1.0. The time it takes for \l activated() to be emitted is - measured in milliseconds, and can be set with the \l delay property. - - The progress is indicated by a progress indicator on the button. - - \sa {Customizing DelayButton}, {Button Controls} -*/ - -/*! - \qmlsignal QtQuick.Controls::DelayButton::activated() - - This signal is emitted when \l progress reaches \c 1.0. -*/ - -class QQuickDelayTransitionManager; - -class QQuickDelayButtonPrivate : public QQuickAbstractButtonPrivate -{ - Q_DECLARE_PUBLIC(QQuickDelayButton) - -public: - void beginTransition(qreal to); - void finishTransition(); - void cancelTransition(); - - QPalette defaultPalette() const override { return QQuickTheme::palette(QQuickTheme::Button); } - - int delay = 300; - qreal progress = 0.0; - QQuickTransition *transition = nullptr; - QScopedPointer<QQuickDelayTransitionManager> transitionManager; -}; - -class QQuickDelayTransitionManager : public QQuickTransitionManager -{ -public: - QQuickDelayTransitionManager(QQuickDelayButton *button) : m_button(button) { } - - void transition(QQuickTransition *transition, qreal progress); - -protected: - void finished() override; - -private: - QQuickDelayButton *m_button = nullptr; -}; - -void QQuickDelayTransitionManager::transition(QQuickTransition *transition, qreal progress) -{ - qmlExecuteDeferred(transition); - - QQmlProperty defaultTarget(m_button, QLatin1String("progress")); - QQmlListProperty<QQuickAbstractAnimation> animations = transition->animations(); - const int count = animations.count(&animations); - for (int i = 0; i < count; ++i) { - QQuickAbstractAnimation *anim = animations.at(&animations, i); - anim->setDefaultTarget(defaultTarget); - } - - QList<QQuickStateAction> actions; - actions << QQuickStateAction(m_button, QLatin1String("progress"), progress); - QQuickTransitionManager::transition(actions, transition, m_button); -} - -void QQuickDelayTransitionManager::finished() -{ - if (qFuzzyCompare(m_button->progress(), qreal(1.0))) - emit m_button->activated(); -} - -void QQuickDelayButtonPrivate::beginTransition(qreal to) -{ - Q_Q(QQuickDelayButton); - if (!transition) { - q->setProgress(to); - finishTransition(); - return; - } - - if (!transitionManager) - transitionManager.reset(new QQuickDelayTransitionManager(q)); - - transitionManager->transition(transition, to); -} - -void QQuickDelayButtonPrivate::finishTransition() -{ - Q_Q(QQuickDelayButton); - if (qFuzzyCompare(progress, qreal(1.0))) - emit q->activated(); -} - -void QQuickDelayButtonPrivate::cancelTransition() -{ - if (transitionManager) - transitionManager->cancel(); -} - -QQuickDelayButton::QQuickDelayButton(QQuickItem *parent) - : QQuickAbstractButton(*(new QQuickDelayButtonPrivate), parent) -{ - setCheckable(true); -} - -/*! - \qmlproperty int QtQuick.Controls::DelayButton::delay - - This property holds the time it takes (in milliseconds) for \l progress - to reach \c 1.0 and emit \l activated(). - - The default value is \c 3000 ms. -*/ -int QQuickDelayButton::delay() const -{ - Q_D(const QQuickDelayButton); - return d->delay; -} - -void QQuickDelayButton::setDelay(int delay) -{ - Q_D(QQuickDelayButton); - if (d->delay == delay) - return; - - d->delay = delay; - emit delayChanged(); -} - -/*! - \qmlproperty real QtQuick.Controls::DelayButton::progress - \readonly - - This property holds the current progress as displayed by the progress - indicator, in the range \c 0.0 - \c 1.0. -*/ -qreal QQuickDelayButton::progress() const -{ - Q_D(const QQuickDelayButton); - return d->progress; -} - -void QQuickDelayButton::setProgress(qreal progress) -{ - Q_D(QQuickDelayButton); - if (qFuzzyCompare(d->progress, progress)) - return; - - d->progress = progress; - emit progressChanged(); -} - -/*! - \qmlproperty Transition QtQuick.Controls::DelayButton::transition - - This property holds the transition that is applied on the \l progress - property when the button is pressed or released. -*/ -QQuickTransition *QQuickDelayButton::transition() const -{ - Q_D(const QQuickDelayButton); - return d->transition; -} - -void QQuickDelayButton::setTransition(QQuickTransition *transition) -{ - Q_D(QQuickDelayButton); - if (d->transition == transition) - return; - - d->transition = transition; - emit transitionChanged(); -} - -void QQuickDelayButton::buttonChange(ButtonChange change) -{ - Q_D(QQuickDelayButton); - switch (change) { - case ButtonCheckedChange: - d->cancelTransition(); - setProgress(d->checked ? 1.0 : 0.0); - break; - case ButtonPressedChanged: - if (!d->checked) - d->beginTransition(d->pressed ? 1.0 : 0.0); - break; - default: - QQuickAbstractButton::buttonChange(change); - break; - } -} - -void QQuickDelayButton::nextCheckState() -{ - Q_D(QQuickDelayButton); - setChecked(!d->checked && qFuzzyCompare(d->progress, qreal(1.0))); -} - -QFont QQuickDelayButton::defaultFont() const -{ - return QQuickTheme::font(QQuickTheme::Button); -} - -QT_END_NAMESPACE - -#include "moc_qquickdelaybutton_p.cpp" |