diff options
Diffstat (limited to 'src')
14 files changed, 400 insertions, 199 deletions
diff --git a/src/android/view/animation/animation.pri b/src/android/view/animation/animation.pri index b4cf55c..5349d52 100644 --- a/src/android/view/animation/animation.pri +++ b/src/android/view/animation/animation.pri @@ -5,6 +5,7 @@ HEADERS += \ $$PWD/qnativeandroidaccelerateinterpolator_p.h \ $$PWD/qnativeandroidalphaanimation_p.h \ $$PWD/qnativeandroidanimation_p.h \ + $$PWD/qnativeandroidanimation_p_p.h \ $$PWD/qnativeandroidanimationset_p.h \ $$PWD/qnativeandroidanticipateinterpolator_p.h \ $$PWD/qnativeandroidanticipateovershootinterpolator_p.h \ diff --git a/src/android/view/animation/qnativeandroidalphaanimation.cpp b/src/android/view/animation/qnativeandroidalphaanimation.cpp index ae52dc6..370551f 100644 --- a/src/android/view/animation/qnativeandroidalphaanimation.cpp +++ b/src/android/view/animation/qnativeandroidalphaanimation.cpp @@ -35,45 +35,58 @@ ****************************************************************************/ #include "qnativeandroidalphaanimation_p.h" +#include "qnativeandroidanimation_p_p.h" QT_BEGIN_NAMESPACE -QNativeAndroidAlphaAnimation::QNativeAndroidAlphaAnimation(QObject *parent) : - QNativeAndroidAnimation(parent), m_fromAlpha(0), m_toAlpha(0) +class QNativeAndroidAlphaAnimationPrivate : public QNativeAndroidAnimationPrivate +{ +public: + qreal fromAlpha = 0.0; + qreal toAlpha = 0.0; +}; + +QNativeAndroidAlphaAnimation::QNativeAndroidAlphaAnimation(QObject *parent) + : QNativeAndroidAnimation(*(new QNativeAndroidAlphaAnimationPrivate), parent) { } qreal QNativeAndroidAlphaAnimation::fromAlpha() const { - return m_fromAlpha; + Q_D(const QNativeAndroidAlphaAnimation); + return d->fromAlpha; } void QNativeAndroidAlphaAnimation::setFromAlpha(qreal alpha) { - if (m_fromAlpha != alpha) { - m_fromAlpha = alpha; + Q_D(QNativeAndroidAlphaAnimation); + if (d->fromAlpha != alpha) { + d->fromAlpha = alpha; emit fromAlphaChanged(); } } qreal QNativeAndroidAlphaAnimation::toAlpha() const { - return m_toAlpha; + Q_D(const QNativeAndroidAlphaAnimation); + return d->toAlpha; } void QNativeAndroidAlphaAnimation::setToAlpha(qreal alpha) { - if (m_toAlpha != alpha) { - m_toAlpha = alpha; + Q_D(QNativeAndroidAlphaAnimation); + if (d->toAlpha != alpha) { + d->toAlpha = alpha; emit toAlphaChanged(); } } QAndroidJniObject QNativeAndroidAlphaAnimation::onCreate() { + Q_D(QNativeAndroidAlphaAnimation); return QAndroidJniObject("android/view/animation/AlphaAnimation", "(FF)V", - m_fromAlpha, m_toAlpha); + d->fromAlpha, d->toAlpha); } QT_END_NAMESPACE diff --git a/src/android/view/animation/qnativeandroidalphaanimation_p.h b/src/android/view/animation/qnativeandroidalphaanimation_p.h index a5db2da..2b79bf6 100644 --- a/src/android/view/animation/qnativeandroidalphaanimation_p.h +++ b/src/android/view/animation/qnativeandroidalphaanimation_p.h @@ -52,6 +52,8 @@ QT_BEGIN_NAMESPACE +class QNativeAndroidAlphaAnimationPrivate; + class Q_NATIVEANDROID_EXPORT QNativeAndroidAlphaAnimation : public QNativeAndroidAnimation { Q_OBJECT @@ -75,8 +77,8 @@ protected: QAndroidJniObject onCreate() override; private: - qreal m_fromAlpha; - qreal m_toAlpha; + Q_DISABLE_COPY(QNativeAndroidAlphaAnimation) + Q_DECLARE_PRIVATE(QNativeAndroidAlphaAnimation) }; QT_END_NAMESPACE diff --git a/src/android/view/animation/qnativeandroidanimation.cpp b/src/android/view/animation/qnativeandroidanimation.cpp index f8c94dc..1c2c3ca 100644 --- a/src/android/view/animation/qnativeandroidanimation.cpp +++ b/src/android/view/animation/qnativeandroidanimation.cpp @@ -35,42 +35,52 @@ ****************************************************************************/ #include "qnativeandroidanimation_p.h" +#include "qnativeandroidanimation_p_p.h" #include "qtnativeandroidfunctions_p.h" #include "qnativeandroidinterpolator_p.h" QT_BEGIN_NAMESPACE -QNativeAndroidAnimation::QNativeAndroidAnimation(QObject *parent) : - QNativeAndroidContextual(parent), m_interpolator(0) +QNativeAndroidAnimation::QNativeAndroidAnimation(QObject *parent) + : QNativeAndroidContextual(*(new QNativeAndroidAnimationPrivate), parent) +{ +} + +QNativeAndroidAnimation::QNativeAndroidAnimation(QNativeAndroidAnimationPrivate &dd, QObject *parent) + : QNativeAndroidContextual(dd, parent) { } int QNativeAndroidAnimation::resource() const { - if (m_resource.isNull()) + Q_D(const QNativeAndroidAnimation); + if (d->resource.isNull()) return 0; - return m_resource; + return d->resource; } void QNativeAndroidAnimation::setResource(int resource) { - if (m_resource.isNull() || m_resource != resource) { - m_resource = resource; + Q_D(QNativeAndroidAnimation); + if (d->resource.isNull() || d->resource != resource) { + d->resource = resource; emit resourceChanged(); } } int QNativeAndroidAnimation::duration() const { - if (m_duration.isNull()) + Q_D(const QNativeAndroidAnimation); + if (d->duration.isNull()) return 0; - return m_duration; + return d->duration; } void QNativeAndroidAnimation::setDuration(int duration) { - if (m_duration.isNull() || m_duration != duration) { - m_duration = duration; + Q_D(QNativeAndroidAnimation); + if (d->duration.isNull() || d->duration != duration) { + d->duration = duration; QtNativeAndroid::callIntMethod(instance(), "setDuration", duration); emit durationChanged(); } @@ -78,15 +88,17 @@ void QNativeAndroidAnimation::setDuration(int duration) bool QNativeAndroidAnimation::fillAfter() const { - if (m_fillAfter.isNull()) + Q_D(const QNativeAndroidAnimation); + if (d->fillAfter.isNull()) return false; - return m_fillAfter; + return d->fillAfter; } void QNativeAndroidAnimation::setFillAfter(bool fill) { - if (m_fillAfter.isNull() || m_fillAfter != fill) { - m_fillAfter = fill; + Q_D(QNativeAndroidAnimation); + if (d->fillAfter.isNull() || d->fillAfter != fill) { + d->fillAfter = fill; QtNativeAndroid::callBoolMethod(instance(), "setFillAfter", fill); emit fillAfterChanged(); } @@ -94,15 +106,17 @@ void QNativeAndroidAnimation::setFillAfter(bool fill) bool QNativeAndroidAnimation::fillBefore() const { - if (m_fillBefore.isNull()) + Q_D(const QNativeAndroidAnimation); + if (d->fillBefore.isNull()) return true; - return m_fillBefore; + return d->fillBefore; } void QNativeAndroidAnimation::setFillBefore(bool fill) { - if (m_fillBefore.isNull() || m_fillBefore != fill) { - m_fillBefore = fill; + Q_D(QNativeAndroidAnimation); + if (d->fillBefore.isNull() || d->fillBefore != fill) { + d->fillBefore = fill; QtNativeAndroid::callBoolMethod(instance(), "setFillBefore", fill); emit fillBeforeChanged(); } @@ -110,15 +124,17 @@ void QNativeAndroidAnimation::setFillBefore(bool fill) bool QNativeAndroidAnimation::fillEnabled() const { - if (!m_fillEnabled.isNull()) + Q_D(const QNativeAndroidAnimation); + if (!d->fillEnabled.isNull()) return false; - return m_fillEnabled; + return d->fillEnabled; } void QNativeAndroidAnimation::setFillEnabled(bool fill) { - if (m_fillEnabled.isNull() || m_fillEnabled != fill) { - m_fillEnabled = fill; + Q_D(QNativeAndroidAnimation); + if (d->fillEnabled.isNull() || d->fillEnabled != fill) { + d->fillEnabled = fill; QtNativeAndroid::callBoolMethod(instance(), "setFillEnabled", fill); emit fillEnabledChanged(); } @@ -126,36 +142,40 @@ void QNativeAndroidAnimation::setFillEnabled(bool fill) QNativeAndroidInterpolator *QNativeAndroidAnimation::interpolator() const { - return m_interpolator; + Q_D(const QNativeAndroidAnimation); + return d->interpolator; } void QNativeAndroidAnimation::setInterpolator(QNativeAndroidInterpolator *interpolator) { - if (m_interpolator != interpolator) { - if (m_interpolator) { - disconnect(m_interpolator, &QNativeAndroidObject::instanceChanged, this, &QNativeAndroidAnimation::updateInterpolator); - m_interpolator->destruct(); + Q_D(QNativeAndroidAnimation); + if (d->interpolator != interpolator) { + if (d->interpolator) { + disconnect(d->interpolator, &QNativeAndroidObject::instanceChanged, this, &QNativeAndroidAnimation::updateInterpolator); + d->interpolator->destruct(); } - m_interpolator = interpolator; - if (m_interpolator) { - connect(m_interpolator, &QNativeAndroidObject::instanceChanged, this, &QNativeAndroidAnimation::updateInterpolator); + d->interpolator = interpolator; + if (d->interpolator) { + connect(d->interpolator, &QNativeAndroidObject::instanceChanged, this, &QNativeAndroidAnimation::updateInterpolator); if (isValid()) - m_interpolator->construct(); + d->interpolator->construct(); } } } int QNativeAndroidAnimation::repeatCount() const { - if (m_repeatCount.isNull()) + Q_D(const QNativeAndroidAnimation); + if (d->repeatCount.isNull()) return 0; - return m_repeatCount; + return d->repeatCount; } void QNativeAndroidAnimation::setRepeatCount(int count) { - if (m_repeatCount.isNull() || m_repeatCount != count) { - m_repeatCount = count; + Q_D(QNativeAndroidAnimation); + if (d->repeatCount.isNull() || d->repeatCount != count) { + d->repeatCount = count; QtNativeAndroid::callIntMethod(instance(), "setRepeatCount", count); emit repeatCountChanged(); } @@ -163,15 +183,17 @@ void QNativeAndroidAnimation::setRepeatCount(int count) QNativeAndroidAnimation::RepeatMode QNativeAndroidAnimation::repeatMode() const { - if (m_repeatMode.isNull()) + Q_D(const QNativeAndroidAnimation); + if (d->repeatMode.isNull()) return RESTART; - return m_repeatMode; + return d->repeatMode; } void QNativeAndroidAnimation::setRepeatMode(RepeatMode mode) { - if (m_repeatMode.isNull() || m_repeatMode != mode) { - m_repeatMode = mode; + Q_D(QNativeAndroidAnimation); + if (d->repeatMode.isNull() || d->repeatMode != mode) { + d->repeatMode = mode; QtNativeAndroid::callIntMethod(instance(), "setRepeatMode", mode); emit repeatModeChanged(); } @@ -179,15 +201,17 @@ void QNativeAndroidAnimation::setRepeatMode(RepeatMode mode) int QNativeAndroidAnimation::startOffset() const { - if (m_startOffset.isNull()) + Q_D(const QNativeAndroidAnimation); + if (d->startOffset.isNull()) return 0; - return m_startOffset; + return d->startOffset; } void QNativeAndroidAnimation::setStartOffset(int offset) { - if (m_startOffset.isNull() || m_startOffset != offset) { - m_startOffset = offset; + Q_D(QNativeAndroidAnimation); + if (d->startOffset.isNull() || d->startOffset != offset) { + d->startOffset = offset; QtNativeAndroid::callIntMethod(instance(), "setStartOffset", offset); emit startOffsetChanged(); } @@ -195,15 +219,17 @@ void QNativeAndroidAnimation::setStartOffset(int offset) QNativeAndroidAnimation::ZAdjustment QNativeAndroidAnimation::zAdjustment() const { - if (m_zAdjustment.isNull()) + Q_D(const QNativeAndroidAnimation); + if (d->zAdjustment.isNull()) return ZORDER_NORMAL; - return m_zAdjustment; + return d->zAdjustment; } void QNativeAndroidAnimation::setZAdjustment(ZAdjustment adjustment) { - if (m_zAdjustment.isNull() || m_zAdjustment != adjustment) { - m_zAdjustment = adjustment; + Q_D(QNativeAndroidAnimation); + if (d->zAdjustment.isNull() || d->zAdjustment != adjustment) { + d->zAdjustment = adjustment; QtNativeAndroid::callIntMethod(instance(), "setZAdjustment", adjustment); emit zAdjustmentChanged(); } @@ -226,37 +252,39 @@ void QNativeAndroidAnimation::startNow() QAndroidJniObject QNativeAndroidAnimation::onCreate() { - if (m_resource.isNull()) + Q_D(QNativeAndroidAnimation); + if (d->resource.isNull()) return QAndroidJniObject("android/view/animation/Animation"); return QAndroidJniObject::callStaticObjectMethod("android/view/animation/AnimationUtils", "loadAnimation", "(Landroid/content/Context;I)Landroid/view/animation/Animation;", ctx().object(), - m_resource); + d->resource); } void QNativeAndroidAnimation::onInflate(QAndroidJniObject &instance) { + Q_D(QNativeAndroidAnimation); QNativeAndroidContextual::onInflate(instance); - if (m_resource.isNull()) { - if (!m_duration.isNull()) - instance.callMethod<void>("setDuration", "(J)V", static_cast<jlong>(m_duration)); - if (!m_fillAfter.isNull()) - instance.callMethod<void>("setFillAfter", "(Z)V", m_fillAfter); - if (!m_fillBefore.isNull()) - instance.callMethod<void>("setFillBefore", "(Z)V", m_fillBefore); - if (!m_fillEnabled.isNull()) - instance.callMethod<void>("setFillEnabled", "(Z)V", m_fillEnabled); - if (!m_repeatCount.isNull()) - instance.callMethod<void>("setRepeatCount", "(I)V", m_repeatCount); - if (!m_repeatMode.isNull()) - instance.callMethod<void>("setRepeatMode", "(I)V", m_repeatMode); - if (!m_startOffset.isNull()) - instance.callMethod<void>("setStartOffset", "(J)V", static_cast<jlong>(m_startOffset)); - if (!m_zAdjustment.isNull()) - instance.callMethod<void>("setZAdjustment", "(I)V", m_zAdjustment); + if (d->resource.isNull()) { + if (!d->duration.isNull()) + instance.callMethod<void>("setDuration", "(J)V", static_cast<jlong>(d->duration)); + if (!d->fillAfter.isNull()) + instance.callMethod<void>("setFillAfter", "(Z)V", d->fillAfter); + if (!d->fillBefore.isNull()) + instance.callMethod<void>("setFillBefore", "(Z)V", d->fillBefore); + if (!d->fillEnabled.isNull()) + instance.callMethod<void>("setFillEnabled", "(Z)V", d->fillEnabled); + if (!d->repeatCount.isNull()) + instance.callMethod<void>("setRepeatCount", "(I)V", d->repeatCount); + if (!d->repeatMode.isNull()) + instance.callMethod<void>("setRepeatMode", "(I)V", d->repeatMode); + if (!d->startOffset.isNull()) + instance.callMethod<void>("setStartOffset", "(J)V", static_cast<jlong>(d->startOffset)); + if (!d->zAdjustment.isNull()) + instance.callMethod<void>("setZAdjustment", "(I)V", d->zAdjustment); } } @@ -268,11 +296,12 @@ void QNativeAndroidAnimation::objectChange(ObjectChange change) void QNativeAndroidAnimation::updateInterpolator() { - if (!isValid() || !m_interpolator || !m_interpolator->isValid()) + Q_D(QNativeAndroidAnimation); + if (!isValid() || !d->interpolator || !d->interpolator->isValid()) return; QAndroidJniObject animation = instance(); - QAndroidJniObject interpolator = m_interpolator->instance(); + QAndroidJniObject interpolator = d->interpolator->instance(); QtNativeAndroid::callFunction([=]() { animation.callMethod<void>("setInterpolator", "(Landroid/view/animation/Interpolator;)V", interpolator.object()); }); diff --git a/src/android/view/animation/qnativeandroidanimation_p.h b/src/android/view/animation/qnativeandroidanimation_p.h index 0934cda..3537735 100644 --- a/src/android/view/animation/qnativeandroidanimation_p.h +++ b/src/android/view/animation/qnativeandroidanimation_p.h @@ -54,6 +54,7 @@ QT_BEGIN_NAMESPACE class QNativeAndroidInterpolator; +class QNativeAndroidAnimationPrivate; class Q_NATIVEANDROID_EXPORT QNativeAndroidAnimation : public QNativeAndroidContextual { @@ -142,6 +143,8 @@ Q_SIGNALS: void zAdjustmentChanged(); protected: + QNativeAndroidAnimation(QNativeAndroidAnimationPrivate &dd, QObject *parent = nullptr); + QAndroidJniObject onCreate() override; void onInflate(QAndroidJniObject &instance) override; @@ -151,16 +154,8 @@ private Q_SLOTS: void updateInterpolator(); private: - QNativeAndroidOptional<int> m_resource; - QNativeAndroidOptional<int> m_duration; - QNativeAndroidOptional<bool> m_fillAfter; - QNativeAndroidOptional<bool> m_fillBefore; - QNativeAndroidOptional<bool> m_fillEnabled; - QNativeAndroidInterpolator *m_interpolator; - QNativeAndroidOptional<int> m_repeatCount; - QNativeAndroidOptional<RepeatMode> m_repeatMode; - QNativeAndroidOptional<int> m_startOffset; - QNativeAndroidOptional<ZAdjustment> m_zAdjustment; + Q_DISABLE_COPY(QNativeAndroidAnimation) + Q_DECLARE_PRIVATE(QNativeAndroidAnimation) }; QT_END_NAMESPACE diff --git a/src/android/view/animation/qnativeandroidanimation_p_p.h b/src/android/view/animation/qnativeandroidanimation_p_p.h new file mode 100644 index 0000000..66f2c22 --- /dev/null +++ b/src/android/view/animation/qnativeandroidanimation_p_p.h @@ -0,0 +1,74 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt QML Android 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$ +** +****************************************************************************/ + +#ifndef QNATIVEANDROIDANIMATION_P_P_H +#define QNATIVEANDROIDANIMATION_P_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include <QtNativeAndroid/private/qnativeandroidcontextual_p_p.h> +#include <QtNativeAndroid/private/qnativeandroidoptional_p.h> +#include <QtNativeAndroid/private/qnativeandroidanimation_p.h> + +QT_BEGIN_NAMESPACE + +class QNativeAndroidAnimationPrivate : public QNativeAndroidContextualPrivate +{ +public: + QNativeAndroidOptional<int> resource; + QNativeAndroidOptional<int> duration; + QNativeAndroidOptional<bool> fillAfter; + QNativeAndroidOptional<bool> fillBefore; + QNativeAndroidOptional<bool> fillEnabled; + QNativeAndroidInterpolator *interpolator = nullptr; + QNativeAndroidOptional<int> repeatCount; + QNativeAndroidOptional<int> startOffset; + QNativeAndroidOptional<QNativeAndroidAnimation::RepeatMode> repeatMode; + QNativeAndroidOptional<QNativeAndroidAnimation::ZAdjustment> zAdjustment; +}; + +QT_END_NAMESPACE + +#endif // QNATIVEANDROIDANIMATION_P_P_H diff --git a/src/android/view/animation/qnativeandroidanimationset.cpp b/src/android/view/animation/qnativeandroidanimationset.cpp index a11d37a..89f80b8 100644 --- a/src/android/view/animation/qnativeandroidanimationset.cpp +++ b/src/android/view/animation/qnativeandroidanimationset.cpp @@ -35,32 +35,42 @@ ****************************************************************************/ #include "qnativeandroidanimationset_p.h" +#include "qnativeandroidanimation_p_p.h" QT_BEGIN_NAMESPACE -QNativeAndroidAnimationSet::QNativeAndroidAnimationSet(QObject *parent) : - QNativeAndroidAnimation(parent), m_shareInterpolator(false) +class QNativeAndroidAnimationSetPrivate : public QNativeAndroidAnimationPrivate +{ +public: + bool shareInterpolator = false; +}; + +QNativeAndroidAnimationSet::QNativeAndroidAnimationSet(QObject *parent) + : QNativeAndroidAnimation(*(new QNativeAndroidAnimationSetPrivate), parent) { } bool QNativeAndroidAnimationSet::shareInterpolator() const { - return m_shareInterpolator; + Q_D(const QNativeAndroidAnimationSet); + return d->shareInterpolator; } void QNativeAndroidAnimationSet::setShareInterpolator(bool share) { - if (m_shareInterpolator != share) { - m_shareInterpolator = share; + Q_D(QNativeAndroidAnimationSet); + if (d->shareInterpolator != share) { + d->shareInterpolator = share; emit shareInterpolatorChanged(); } } QAndroidJniObject QNativeAndroidAnimationSet::onCreate() { + Q_D(QNativeAndroidAnimationSet); return QAndroidJniObject("android/view/animation/AnimationSet", "(Z)V", - m_shareInterpolator); + d->shareInterpolator); } void QNativeAndroidAnimationSet::onInflate(QAndroidJniObject &instance) diff --git a/src/android/view/animation/qnativeandroidanimationset_p.h b/src/android/view/animation/qnativeandroidanimationset_p.h index bb178ca..bb79d2d 100644 --- a/src/android/view/animation/qnativeandroidanimationset_p.h +++ b/src/android/view/animation/qnativeandroidanimationset_p.h @@ -52,6 +52,8 @@ QT_BEGIN_NAMESPACE +class QNativeAndroidAnimationSetPrivate; + class Q_NATIVEANDROID_EXPORT QNativeAndroidAnimationSet : public QNativeAndroidAnimation { Q_OBJECT @@ -71,7 +73,8 @@ protected: void onInflate(QAndroidJniObject &instance) override; private: - bool m_shareInterpolator; + Q_DISABLE_COPY(QNativeAndroidAnimationSet) + Q_DECLARE_PRIVATE(QNativeAndroidAnimationSet) }; QT_END_NAMESPACE diff --git a/src/android/view/animation/qnativeandroidrotateanimation.cpp b/src/android/view/animation/qnativeandroidrotateanimation.cpp index 1304a1b..19b2045 100644 --- a/src/android/view/animation/qnativeandroidrotateanimation.cpp +++ b/src/android/view/animation/qnativeandroidrotateanimation.cpp @@ -35,99 +35,123 @@ ****************************************************************************/ #include "qnativeandroidrotateanimation_p.h" +#include "qnativeandroidanimation_p_p.h" QT_BEGIN_NAMESPACE -QNativeAndroidRotateAnimation::QNativeAndroidRotateAnimation(QObject *parent) : - QNativeAndroidAnimation(parent), m_from(0), m_to(0), - m_pivotX(0), m_pivotY(0), m_pivotXType(ABSOLUTE), m_pivotYType(ABSOLUTE) +class QNativeAndroidRotateAnimationPrivate : public QNativeAndroidAnimationPrivate +{ +public: + qreal from = 0.0; + qreal to = 0.0; + qreal pivotX = 0.0; + qreal pivotY = 0.0; + QNativeAndroidRotateAnimation::Relation pivotXType = QNativeAndroidRotateAnimation::ABSOLUTE; + QNativeAndroidRotateAnimation::Relation pivotYType = QNativeAndroidRotateAnimation::ABSOLUTE; +}; + +QNativeAndroidRotateAnimation::QNativeAndroidRotateAnimation(QObject *parent) + : QNativeAndroidAnimation(*(new QNativeAndroidRotateAnimationPrivate), parent) { } qreal QNativeAndroidRotateAnimation::fromDegrees() const { - return m_from; + Q_D(const QNativeAndroidRotateAnimation); + return d->from; } void QNativeAndroidRotateAnimation::setFromDegrees(qreal degrees) { - if (m_from != degrees) { - m_from = degrees; + Q_D(QNativeAndroidRotateAnimation); + if (d->from != degrees) { + d->from = degrees; emit fromDegreesChanged(); } } qreal QNativeAndroidRotateAnimation::toDegrees() const { - return m_to; + Q_D(const QNativeAndroidRotateAnimation); + return d->to; } void QNativeAndroidRotateAnimation::setToDegrees(qreal degrees) { - if (m_to != degrees) { - m_to = degrees; + Q_D(QNativeAndroidRotateAnimation); + if (d->to != degrees) { + d->to = degrees; emit toDegreesChanged(); } } qreal QNativeAndroidRotateAnimation::pivotX() const { - return m_pivotX; + Q_D(const QNativeAndroidRotateAnimation); + return d->pivotX; } void QNativeAndroidRotateAnimation::setPivotX(qreal pivotX) { - if (m_pivotX != pivotX) { - m_pivotX = pivotX; + Q_D(QNativeAndroidRotateAnimation); + if (d->pivotX != pivotX) { + d->pivotX = pivotX; emit pivotXChanged(); } } qreal QNativeAndroidRotateAnimation::pivotY() const { - return m_pivotY; + Q_D(const QNativeAndroidRotateAnimation); + return d->pivotY; } void QNativeAndroidRotateAnimation::setPivotY(qreal pivotY) { - if (m_pivotY != pivotY) { - m_pivotY = pivotY; + Q_D(QNativeAndroidRotateAnimation); + if (d->pivotY != pivotY) { + d->pivotY = pivotY; emit pivotYChanged(); } } QNativeAndroidRotateAnimation::Relation QNativeAndroidRotateAnimation::pivotXType() const { - return m_pivotXType; + Q_D(const QNativeAndroidRotateAnimation); + return d->pivotXType; } void QNativeAndroidRotateAnimation::setPivotXType(Relation type) { - if (m_pivotXType != type) { - m_pivotXType = type; + Q_D(QNativeAndroidRotateAnimation); + if (d->pivotXType != type) { + d->pivotXType = type; emit pivotXTypeChanged(); } } QNativeAndroidRotateAnimation::Relation QNativeAndroidRotateAnimation::pivotYType() const { - return m_pivotYType; + Q_D(const QNativeAndroidRotateAnimation); + return d->pivotYType; } void QNativeAndroidRotateAnimation::setPivotYType(Relation type) { - if (m_pivotYType != type) { - m_pivotYType = type; + Q_D(QNativeAndroidRotateAnimation); + if (d->pivotYType != type) { + d->pivotYType = type; emit pivotYTypeChanged(); } } QAndroidJniObject QNativeAndroidRotateAnimation::onCreate() { + Q_D(QNativeAndroidRotateAnimation); return QAndroidJniObject("android/view/animation/RotateAnimation", "(FFIFIF)V", - m_from, m_to, - m_pivotXType, m_pivotX, m_pivotYType, m_pivotY); + d->from, d->to, + d->pivotXType, d->pivotX, d->pivotYType, d->pivotY); } QT_END_NAMESPACE diff --git a/src/android/view/animation/qnativeandroidrotateanimation_p.h b/src/android/view/animation/qnativeandroidrotateanimation_p.h index 85eec7b..aeb6db2 100644 --- a/src/android/view/animation/qnativeandroidrotateanimation_p.h +++ b/src/android/view/animation/qnativeandroidrotateanimation_p.h @@ -52,6 +52,8 @@ QT_BEGIN_NAMESPACE +class QNativeAndroidRotateAnimationPrivate; + class Q_NATIVEANDROID_EXPORT QNativeAndroidRotateAnimation : public QNativeAndroidAnimation { Q_OBJECT @@ -96,12 +98,8 @@ protected: QAndroidJniObject onCreate() override; private: - qreal m_from; - qreal m_to; - qreal m_pivotX; - qreal m_pivotY; - Relation m_pivotXType; - Relation m_pivotYType; + Q_DISABLE_COPY(QNativeAndroidRotateAnimation) + Q_DECLARE_PRIVATE(QNativeAndroidRotateAnimation) }; QT_END_NAMESPACE diff --git a/src/android/view/animation/qnativeandroidscaleanimation.cpp b/src/android/view/animation/qnativeandroidscaleanimation.cpp index 369a783..1271aef 100644 --- a/src/android/view/animation/qnativeandroidscaleanimation.cpp +++ b/src/android/view/animation/qnativeandroidscaleanimation.cpp @@ -35,125 +35,155 @@ ****************************************************************************/ #include "qnativeandroidscaleanimation_p.h" +#include "qnativeandroidanimation_p_p.h" QT_BEGIN_NAMESPACE -QNativeAndroidScaleAnimation::QNativeAndroidScaleAnimation(QObject *parent) : - QNativeAndroidAnimation(parent), m_fromX(0), m_fromY(0), m_toX(0), m_toY(0), - m_pivotX(0), m_pivotY(0), m_pivotXType(ABSOLUTE), m_pivotYType(ABSOLUTE) +class QNativeAndroidScaleAnimationPrivate : public QNativeAndroidAnimationPrivate +{ +public: + qreal fromX = 0.0; + qreal fromY = 0.0; + qreal toX = 0.0; + qreal toY = 0.0; + qreal pivotX = 0.0; + qreal pivotY = 0.0; + QNativeAndroidScaleAnimation::Relation pivotXType = QNativeAndroidScaleAnimation::ABSOLUTE; + QNativeAndroidScaleAnimation::Relation pivotYType = QNativeAndroidScaleAnimation::ABSOLUTE; +}; + +QNativeAndroidScaleAnimation::QNativeAndroidScaleAnimation(QObject *parent) + : QNativeAndroidAnimation(*(new QNativeAndroidScaleAnimationPrivate), parent) { } qreal QNativeAndroidScaleAnimation::fromXScale() const { - return m_fromX; + Q_D(const QNativeAndroidScaleAnimation); + return d->fromX; } void QNativeAndroidScaleAnimation::setFromXScale(qreal x) { - if (m_fromX != x) { - m_fromX = x; + Q_D(QNativeAndroidScaleAnimation); + if (d->fromX != x) { + d->fromX = x; emit fromXScaleChanged(); } } qreal QNativeAndroidScaleAnimation::fromYScale() const { - return m_fromY; + Q_D(const QNativeAndroidScaleAnimation); + return d->fromY; } void QNativeAndroidScaleAnimation::setFromYScale(qreal y) { - if (m_fromY != y) { - m_fromY = y; + Q_D(QNativeAndroidScaleAnimation); + if (d->fromY != y) { + d->fromY = y; emit fromYScaleChanged(); } } qreal QNativeAndroidScaleAnimation::toXScale() const { - return m_toX; + Q_D(const QNativeAndroidScaleAnimation); + return d->toX; } void QNativeAndroidScaleAnimation::setToXScale(qreal x) { - if (m_toX != x) { - m_toX = x; + Q_D(QNativeAndroidScaleAnimation); + if (d->toX != x) { + d->toX = x; emit toXScaleChanged(); } } qreal QNativeAndroidScaleAnimation::toYScale() const { - return m_toY; + Q_D(const QNativeAndroidScaleAnimation); + return d->toY; } void QNativeAndroidScaleAnimation::setToYScale(qreal y) { - if (m_toY != y) { - m_toY = y; + Q_D(QNativeAndroidScaleAnimation); + if (d->toY != y) { + d->toY = y; emit toYScaleChanged(); } } qreal QNativeAndroidScaleAnimation::pivotX() const { - return m_pivotX; + Q_D(const QNativeAndroidScaleAnimation); + return d->pivotX; } void QNativeAndroidScaleAnimation::setPivotX(qreal pivotX) { - if (m_pivotX != pivotX) { - m_pivotX = pivotX; + Q_D(QNativeAndroidScaleAnimation); + if (d->pivotX != pivotX) { + d->pivotX = pivotX; emit pivotXChanged(); } } qreal QNativeAndroidScaleAnimation::pivotY() const { - return m_pivotY; + Q_D(const QNativeAndroidScaleAnimation); + return d->pivotY; } void QNativeAndroidScaleAnimation::setPivotY(qreal pivotY) { - if (m_pivotY != pivotY) { - m_pivotY = pivotY; + Q_D(QNativeAndroidScaleAnimation); + if (d->pivotY != pivotY) { + d->pivotY = pivotY; emit pivotYChanged(); } } QNativeAndroidAnimation::Relation QNativeAndroidScaleAnimation::pivotXType() const { - return m_pivotXType; + Q_D(const QNativeAndroidScaleAnimation); + return d->pivotXType; } void QNativeAndroidScaleAnimation::setPivotXType(Relation type) { - if (m_pivotXType != type) { - m_pivotXType = type; + Q_D(QNativeAndroidScaleAnimation); + if (d->pivotXType != type) { + d->pivotXType = type; emit pivotXTypeChanged(); } } QNativeAndroidAnimation::Relation QNativeAndroidScaleAnimation::pivotYType() const { - return m_pivotYType; + Q_D(const QNativeAndroidScaleAnimation); + return d->pivotYType; } void QNativeAndroidScaleAnimation::setPivotYType(Relation type) { - if (m_pivotYType != type) { - m_pivotYType = type; + Q_D(QNativeAndroidScaleAnimation); + if (d->pivotYType != type) { + d->pivotYType = type; emit pivotYTypeChanged(); } } QAndroidJniObject QNativeAndroidScaleAnimation::onCreate() { + Q_D(QNativeAndroidScaleAnimation); return QAndroidJniObject("android/view/animation/ScaleAnimation", "(FFFFIFIF)V", - m_fromX, m_toX, m_fromY, m_toY, - m_pivotXType, m_pivotX, m_pivotYType, m_pivotY); + d->fromX, d->toX, d->fromY, d->toY, + d->pivotXType, d->pivotX, d->pivotYType, d->pivotY); } QT_END_NAMESPACE diff --git a/src/android/view/animation/qnativeandroidscaleanimation_p.h b/src/android/view/animation/qnativeandroidscaleanimation_p.h index 3c4e925..92f8495 100644 --- a/src/android/view/animation/qnativeandroidscaleanimation_p.h +++ b/src/android/view/animation/qnativeandroidscaleanimation_p.h @@ -52,6 +52,8 @@ QT_BEGIN_NAMESPACE +class QNativeAndroidScaleAnimationPrivate; + class Q_NATIVEANDROID_EXPORT QNativeAndroidScaleAnimation : public QNativeAndroidAnimation { Q_OBJECT @@ -105,14 +107,8 @@ protected: QAndroidJniObject onCreate() override; private: - qreal m_fromX; - qreal m_fromY; - qreal m_toX; - qreal m_toY; - qreal m_pivotX; - qreal m_pivotY; - Relation m_pivotXType; - Relation m_pivotYType; + Q_DISABLE_COPY(QNativeAndroidScaleAnimation) + Q_DECLARE_PRIVATE(QNativeAndroidScaleAnimation) }; QT_END_NAMESPACE diff --git a/src/android/view/animation/qnativeandroidtranslateanimation.cpp b/src/android/view/animation/qnativeandroidtranslateanimation.cpp index a4f57c3..4e4d642 100644 --- a/src/android/view/animation/qnativeandroidtranslateanimation.cpp +++ b/src/android/view/animation/qnativeandroidtranslateanimation.cpp @@ -35,125 +35,155 @@ ****************************************************************************/ #include "qnativeandroidtranslateanimation_p.h" +#include "qnativeandroidanimation_p_p.h" QT_BEGIN_NAMESPACE -QNativeAndroidTranslateAnimation::QNativeAndroidTranslateAnimation(QObject *parent) : - QNativeAndroidAnimation(parent), m_fromX(0), m_fromY(0), m_toX(0), m_toY(0), - m_fromXType(ABSOLUTE), m_fromYType(ABSOLUTE), m_toXType(ABSOLUTE), m_toYType(ABSOLUTE) +class QNativeAndroidTranslateAnimationPrivate : public QNativeAndroidAnimationPrivate +{ +public: + qreal fromX = 0.0; + qreal fromY = 0.0; + qreal toX = 0.0; + qreal toY = 0.0; + QNativeAndroidTranslateAnimation::Relation fromXType = QNativeAndroidTranslateAnimation::ABSOLUTE; + QNativeAndroidTranslateAnimation::Relation fromYType = QNativeAndroidTranslateAnimation::ABSOLUTE; + QNativeAndroidTranslateAnimation::Relation toXType = QNativeAndroidTranslateAnimation::ABSOLUTE; + QNativeAndroidTranslateAnimation::Relation toYType = QNativeAndroidTranslateAnimation::ABSOLUTE; +}; + +QNativeAndroidTranslateAnimation::QNativeAndroidTranslateAnimation(QObject *parent) + : QNativeAndroidAnimation(*(new QNativeAndroidTranslateAnimationPrivate), parent) { } qreal QNativeAndroidTranslateAnimation::fromX() const { - return m_fromX; + Q_D(const QNativeAndroidTranslateAnimation); + return d->fromX; } void QNativeAndroidTranslateAnimation::setFromX(qreal x) { - if (m_fromX != x) { - m_fromX = x; + Q_D(QNativeAndroidTranslateAnimation); + if (d->fromX != x) { + d->fromX = x; emit fromXChanged(); } } qreal QNativeAndroidTranslateAnimation::fromY() const { - return m_fromY; + Q_D(const QNativeAndroidTranslateAnimation); + return d->fromY; } void QNativeAndroidTranslateAnimation::setFromY(qreal y) { - if (m_fromY != y) { - m_fromY = y; + Q_D(QNativeAndroidTranslateAnimation); + if (d->fromY != y) { + d->fromY = y; emit fromYChanged(); } } qreal QNativeAndroidTranslateAnimation::toX() const { - return m_toX; + Q_D(const QNativeAndroidTranslateAnimation); + return d->toX; } void QNativeAndroidTranslateAnimation::setToX(qreal x) { - if (m_toX != x) { - m_toX = x; + Q_D(QNativeAndroidTranslateAnimation); + if (d->toX != x) { + d->toX = x; emit toXChanged(); } } qreal QNativeAndroidTranslateAnimation::toY() const { - return m_toY; + Q_D(const QNativeAndroidTranslateAnimation); + return d->toY; } void QNativeAndroidTranslateAnimation::setToY(qreal y) { - if (m_toY != y) { - m_toY = y; + Q_D(QNativeAndroidTranslateAnimation); + if (d->toY != y) { + d->toY = y; emit toYChanged(); } } QNativeAndroidAnimation::Relation QNativeAndroidTranslateAnimation::fromXType() const { - return m_fromXType; + Q_D(const QNativeAndroidTranslateAnimation); + return d->fromXType; } void QNativeAndroidTranslateAnimation::setFromXType(Relation type) { - if (m_fromXType != type) { - m_fromXType = type; + Q_D(QNativeAndroidTranslateAnimation); + if (d->fromXType != type) { + d->fromXType = type; emit fromXTypeChanged(); } } QNativeAndroidAnimation::Relation QNativeAndroidTranslateAnimation::fromYType() const { - return m_fromYType; + Q_D(const QNativeAndroidTranslateAnimation); + return d->fromYType; } void QNativeAndroidTranslateAnimation::setFromYType(Relation type) { - if (m_fromYType != type) { - m_fromYType = type; + Q_D(QNativeAndroidTranslateAnimation); + if (d->fromYType != type) { + d->fromYType = type; emit fromYTypeChanged(); } } QNativeAndroidAnimation::Relation QNativeAndroidTranslateAnimation::toXType() const { - return m_toXType; + Q_D(const QNativeAndroidTranslateAnimation); + return d->toXType; } void QNativeAndroidTranslateAnimation::setToXType(Relation type) { - if (m_toXType != type) { - m_toXType = type; + Q_D(QNativeAndroidTranslateAnimation); + if (d->toXType != type) { + d->toXType = type; emit toXTypeChanged(); } } QNativeAndroidAnimation::Relation QNativeAndroidTranslateAnimation::toYType() const { - return m_toYType; + Q_D(const QNativeAndroidTranslateAnimation); + return d->toYType; } void QNativeAndroidTranslateAnimation::setToYType(Relation type) { - if (m_toYType != type) { - m_toYType = type; + Q_D(QNativeAndroidTranslateAnimation); + if (d->toYType != type) { + d->toYType = type; emit toYTypeChanged(); } } QAndroidJniObject QNativeAndroidTranslateAnimation::onCreate() { + Q_D(QNativeAndroidTranslateAnimation); return QAndroidJniObject("android/view/animation/TranslateAnimation", "(IFIFIFIF)V", - m_fromXType, m_fromX, m_toXType, m_toX, - m_fromYType, m_fromY, m_toYType, m_toY); + d->fromXType, d->fromX, d->toXType, d->toX, + d->fromYType, d->fromY, d->toYType, d->toY); } QT_END_NAMESPACE diff --git a/src/android/view/animation/qnativeandroidtranslateanimation_p.h b/src/android/view/animation/qnativeandroidtranslateanimation_p.h index f00efdd..30b2855 100644 --- a/src/android/view/animation/qnativeandroidtranslateanimation_p.h +++ b/src/android/view/animation/qnativeandroidtranslateanimation_p.h @@ -52,6 +52,8 @@ QT_BEGIN_NAMESPACE +class QNativeAndroidTranslateAnimationPrivate; + class Q_NATIVEANDROID_EXPORT QNativeAndroidTranslateAnimation : public QNativeAndroidAnimation { Q_OBJECT @@ -105,14 +107,8 @@ protected: QAndroidJniObject onCreate() override; private: - qreal m_fromX; - qreal m_fromY; - qreal m_toX; - qreal m_toY; - Relation m_fromXType; - Relation m_fromYType; - Relation m_toXType; - Relation m_toYType; + Q_DISABLE_COPY(QNativeAndroidTranslateAnimation) + Q_DECLARE_PRIVATE(QNativeAndroidTranslateAnimation) }; QT_END_NAMESPACE |