summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2016-12-19 13:38:23 +0100
committerJ-P Nurmi <jpnurmi@qt.io>2016-12-19 12:40:32 +0000
commit28ce8a2241f2d4becc102bcb1301e52c30f00ef2 (patch)
tree6be85c44450dd5fd7a0a3d8cfa8c0c5e0b117661
parent1c17f731a8898e6b500539bde1ff23f07ab8b0a8 (diff)
Pimplify support classes
Change-Id: Idf7d58d67e1c8b5956f3bcc54929629b1b9ca16d Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
-rw-r--r--src/android/support/v4/widget/qnativeandroiddrawerlayout.cpp4
-rw-r--r--src/android/support/v4/widget/qnativeandroiddrawerlayoutparams.cpp25
-rw-r--r--src/android/support/v4/widget/qnativeandroiddrawerlayoutparams_p.h5
-rw-r--r--src/android/support/v4/widget/qnativeandroidswiperefreshlayout.cpp25
-rw-r--r--src/android/support/v4/widget/qnativeandroidswiperefreshlayout_p.h6
-rw-r--r--src/android/support/v7/app/qnativeandroidactionbardrawertoggle.cpp4
-rw-r--r--src/android/support/v7/widget/qnativeandroidcardview.cpp4
-rw-r--r--src/android/support/v7/widget/qnativeandroidrecycleradapter.cpp52
-rw-r--r--src/android/support/v7/widget/qnativeandroidrecycleradapter_p.h6
-rw-r--r--src/android/support/v7/widget/qnativeandroidrecyclerview.cpp46
-rw-r--r--src/android/support/v7/widget/qnativeandroidrecyclerview_p.h5
11 files changed, 119 insertions, 63 deletions
diff --git a/src/android/support/v4/widget/qnativeandroiddrawerlayout.cpp b/src/android/support/v4/widget/qnativeandroiddrawerlayout.cpp
index d0f35c3..6059889 100644
--- a/src/android/support/v4/widget/qnativeandroiddrawerlayout.cpp
+++ b/src/android/support/v4/widget/qnativeandroiddrawerlayout.cpp
@@ -40,8 +40,8 @@
QT_BEGIN_NAMESPACE
-QNativeAndroidDrawerLayout::QNativeAndroidDrawerLayout(QNativeAndroidContext *context) :
- QNativeAndroidViewGroup(context)
+QNativeAndroidDrawerLayout::QNativeAndroidDrawerLayout(QNativeAndroidContext *context)
+ : QNativeAndroidViewGroup(context)
{
}
diff --git a/src/android/support/v4/widget/qnativeandroiddrawerlayoutparams.cpp b/src/android/support/v4/widget/qnativeandroiddrawerlayoutparams.cpp
index 9f79f1e..229934f 100644
--- a/src/android/support/v4/widget/qnativeandroiddrawerlayoutparams.cpp
+++ b/src/android/support/v4/widget/qnativeandroiddrawerlayoutparams.cpp
@@ -35,25 +35,34 @@
****************************************************************************/
#include "qnativeandroiddrawerlayoutparams_p.h"
+#include "qnativeandroidmarginlayoutparams_p_p.h"
#include "qnativeandroiddrawerlayout_p.h"
#include "qnativeandroidview_p.h"
QT_BEGIN_NAMESPACE
-QNativeAndroidDrawerLayoutParams::QNativeAndroidDrawerLayoutParams(QNativeAndroidView *view) :
- QNativeAndroidMarginLayoutParams(view), m_gravity(0)
+class QNativeAndroidDrawerLayoutParamsPrivate : public QNativeAndroidMarginLayoutParamsPrivate
+{
+public:
+ int gravity = 0;
+};
+
+QNativeAndroidDrawerLayoutParams::QNativeAndroidDrawerLayoutParams(QNativeAndroidView *view)
+ : QNativeAndroidMarginLayoutParams(*(new QNativeAndroidDrawerLayoutParamsPrivate), view)
{
}
int QNativeAndroidDrawerLayoutParams::gravity() const
{
- return m_gravity;
+ Q_D(const QNativeAndroidDrawerLayoutParams);
+ return d->gravity;
}
void QNativeAndroidDrawerLayoutParams::setGravity(int value)
{
- if (m_gravity != value) {
- m_gravity = value;
+ Q_D(QNativeAndroidDrawerLayoutParams);
+ if (d->gravity != value) {
+ d->gravity = value;
invalidate();
emit gravityChanged();
}
@@ -61,16 +70,18 @@ void QNativeAndroidDrawerLayoutParams::setGravity(int value)
QAndroidJniObject QNativeAndroidDrawerLayoutParams::onCreate()
{
+ Q_D(QNativeAndroidDrawerLayoutParams);
return QAndroidJniObject("android/support/v4/widget/DrawerLayout$LayoutParams",
"(III)V",
- MATCH_PARENT, MATCH_PARENT, m_gravity);
+ MATCH_PARENT, MATCH_PARENT, d->gravity);
}
void QNativeAndroidDrawerLayoutParams::onInflate(QAndroidJniObject &instance)
{
+ Q_D(QNativeAndroidDrawerLayoutParams);
QNativeAndroidMarginLayoutParams::onInflate(instance);
- instance.setField<int>("gravity", m_gravity);
+ instance.setField<int>("gravity", d->gravity);
}
QT_END_NAMESPACE
diff --git a/src/android/support/v4/widget/qnativeandroiddrawerlayoutparams_p.h b/src/android/support/v4/widget/qnativeandroiddrawerlayoutparams_p.h
index 96e65ca..935c750 100644
--- a/src/android/support/v4/widget/qnativeandroiddrawerlayoutparams_p.h
+++ b/src/android/support/v4/widget/qnativeandroiddrawerlayoutparams_p.h
@@ -52,6 +52,8 @@
QT_BEGIN_NAMESPACE
+class QNativeAndroidDrawerLayoutParamsPrivate;
+
class Q_NATIVEANDROID_EXPORT QNativeAndroidDrawerLayoutParams : public QNativeAndroidMarginLayoutParams
{
Q_OBJECT
@@ -71,7 +73,8 @@ protected:
void onInflate(QAndroidJniObject &instance) override;
private:
- int m_gravity;
+ Q_DISABLE_COPY(QNativeAndroidDrawerLayoutParams)
+ Q_DECLARE_PRIVATE(QNativeAndroidDrawerLayoutParams)
};
QT_END_NAMESPACE
diff --git a/src/android/support/v4/widget/qnativeandroidswiperefreshlayout.cpp b/src/android/support/v4/widget/qnativeandroidswiperefreshlayout.cpp
index 26f376d..55739c1 100644
--- a/src/android/support/v4/widget/qnativeandroidswiperefreshlayout.cpp
+++ b/src/android/support/v4/widget/qnativeandroidswiperefreshlayout.cpp
@@ -35,18 +35,27 @@
****************************************************************************/
#include "qnativeandroidswiperefreshlayout_p.h"
+#include "qnativeandroidviewgroup_p_p.h"
#include "qtnativeandroidfunctions_p.h"
QT_BEGIN_NAMESPACE
-QNativeAndroidSwipeRefreshLayout::QNativeAndroidSwipeRefreshLayout(QNativeAndroidContext *context) :
- QNativeAndroidViewGroup(context), m_refreshing(false)
+class QNativeAndroidSwipeRefreshLayoutPrivate : public QNativeAndroidViewGroupPrivate
+{
+public:
+ bool refreshing = false;
+ QAndroidJniObject listener;
+};
+
+QNativeAndroidSwipeRefreshLayout::QNativeAndroidSwipeRefreshLayout(QNativeAndroidContext *context)
+ : QNativeAndroidViewGroup(*(new QNativeAndroidSwipeRefreshLayoutPrivate), context)
{
}
bool QNativeAndroidSwipeRefreshLayout::isRefreshing() const
{
- return m_refreshing;
+ Q_D(const QNativeAndroidSwipeRefreshLayout);
+ return d->refreshing;
}
void QNativeAndroidSwipeRefreshLayout::setRefreshing(bool refreshing)
@@ -57,8 +66,9 @@ void QNativeAndroidSwipeRefreshLayout::setRefreshing(bool refreshing)
bool QNativeAndroidSwipeRefreshLayout::updateRefreshing(bool refreshing)
{
- if (m_refreshing != refreshing) {
- m_refreshing = refreshing;
+ Q_D(QNativeAndroidSwipeRefreshLayout);
+ if (d->refreshing != refreshing) {
+ d->refreshing = refreshing;
emit refreshingChanged();
return true;
}
@@ -74,16 +84,17 @@ QAndroidJniObject QNativeAndroidSwipeRefreshLayout::onCreate()
void QNativeAndroidSwipeRefreshLayout::onInflate(QAndroidJniObject &instance)
{
+ Q_D(QNativeAndroidSwipeRefreshLayout);
QNativeAndroidViewGroup::onInflate(instance);
- m_listener = QAndroidJniObject("org/qtproject/qt5/android/bindings/support/v4/widget/QtNativeSwipeRefreshLayoutListener",
+ d->listener = QAndroidJniObject("org/qtproject/qt5/android/bindings/support/v4/widget/QtNativeSwipeRefreshLayoutListener",
"(Landroid/support/v4/widget/SwipeRefreshLayout;J)V",
instance.object(),
reinterpret_cast<jlong>(this));
static bool nativeMethodsRegistered = false;
if (!nativeMethodsRegistered) {
- onRegisterNativeMethods(m_listener.object());
+ onRegisterNativeMethods(d->listener.object());
nativeMethodsRegistered = true;
}
}
diff --git a/src/android/support/v4/widget/qnativeandroidswiperefreshlayout_p.h b/src/android/support/v4/widget/qnativeandroidswiperefreshlayout_p.h
index 1130c62..17ed50c 100644
--- a/src/android/support/v4/widget/qnativeandroidswiperefreshlayout_p.h
+++ b/src/android/support/v4/widget/qnativeandroidswiperefreshlayout_p.h
@@ -52,6 +52,8 @@
QT_BEGIN_NAMESPACE
+class QNativeAndroidSwipeRefreshLayoutPrivate;
+
class Q_NATIVEANDROID_EXPORT QNativeAndroidSwipeRefreshLayout : public QNativeAndroidViewGroup
{
Q_OBJECT
@@ -77,8 +79,8 @@ private Q_SLOTS:
bool updateRefreshing(bool refreshing);
private:
- bool m_refreshing;
- QAndroidJniObject m_listener;
+ Q_DISABLE_COPY(QNativeAndroidSwipeRefreshLayout)
+ Q_DECLARE_PRIVATE(QNativeAndroidSwipeRefreshLayout)
};
QT_END_NAMESPACE
diff --git a/src/android/support/v7/app/qnativeandroidactionbardrawertoggle.cpp b/src/android/support/v7/app/qnativeandroidactionbardrawertoggle.cpp
index 52446c2..a09c0e0 100644
--- a/src/android/support/v7/app/qnativeandroidactionbardrawertoggle.cpp
+++ b/src/android/support/v7/app/qnativeandroidactionbardrawertoggle.cpp
@@ -38,8 +38,8 @@
QT_BEGIN_NAMESPACE
-QNativeAndroidActionBarDrawerToggle::QNativeAndroidActionBarDrawerToggle(QObject *parent) :
- QNativeAndroidObject(parent)
+QNativeAndroidActionBarDrawerToggle::QNativeAndroidActionBarDrawerToggle(QObject *parent)
+ : QNativeAndroidObject(parent)
{
}
diff --git a/src/android/support/v7/widget/qnativeandroidcardview.cpp b/src/android/support/v7/widget/qnativeandroidcardview.cpp
index 1e57a17..58feadc 100644
--- a/src/android/support/v7/widget/qnativeandroidcardview.cpp
+++ b/src/android/support/v7/widget/qnativeandroidcardview.cpp
@@ -38,8 +38,8 @@
QT_BEGIN_NAMESPACE
-QNativeAndroidCardView::QNativeAndroidCardView(QNativeAndroidContext *context) :
- QNativeAndroidFrameLayout(context)
+QNativeAndroidCardView::QNativeAndroidCardView(QNativeAndroidContext *context)
+ : QNativeAndroidFrameLayout(context)
{
}
diff --git a/src/android/support/v7/widget/qnativeandroidrecycleradapter.cpp b/src/android/support/v7/widget/qnativeandroidrecycleradapter.cpp
index bf2e2b8..f4a147a 100644
--- a/src/android/support/v7/widget/qnativeandroidrecycleradapter.cpp
+++ b/src/android/support/v7/widget/qnativeandroidrecycleradapter.cpp
@@ -35,6 +35,7 @@
****************************************************************************/
#include "qnativeandroidrecycleradapter_p.h"
+#include "qnativeandroidcontextual_p_p.h"
#include "qtnativeandroidfunctions_p.h"
#include "qnativeandroidview_p.h"
#include <QtQml/qqmlcomponent.h>
@@ -42,20 +43,30 @@
QT_BEGIN_NAMESPACE
-QNativeAndroidRecyclerAdapter::QNativeAndroidRecyclerAdapter(QObject *parent) :
- QNativeAndroidContextual(parent), m_count(0), m_delegate(0)
+class QNativeAndroidRecyclerAdapterPrivate : public QNativeAndroidContextualPrivate
+{
+public:
+ int count = 0;
+ QQmlComponent *delegate = nullptr;
+ QList<QAndroidJniObject> holders;
+};
+
+QNativeAndroidRecyclerAdapter::QNativeAndroidRecyclerAdapter(QObject *parent)
+ : QNativeAndroidContextual(*(new QNativeAndroidRecyclerAdapterPrivate), parent)
{
}
int QNativeAndroidRecyclerAdapter::count() const
{
- return m_count;
+ Q_D(const QNativeAndroidRecyclerAdapter);
+ return d->count;
}
void QNativeAndroidRecyclerAdapter::setCount(int count)
{
- if (m_count != count) {
- m_count = count;
+ Q_D(QNativeAndroidRecyclerAdapter);
+ if (d->count != count) {
+ d->count = count;
QtNativeAndroid::callIntMethod(instance(), "setItemCount", count);
emit countChanged();
}
@@ -63,13 +74,15 @@ void QNativeAndroidRecyclerAdapter::setCount(int count)
QQmlComponent *QNativeAndroidRecyclerAdapter::delegate() const
{
- return m_delegate;
+ Q_D(const QNativeAndroidRecyclerAdapter);
+ return d->delegate;
}
void QNativeAndroidRecyclerAdapter::setDelegate(QQmlComponent *delegate)
{
- if (m_delegate != delegate) {
- m_delegate = delegate;
+ Q_D(QNativeAndroidRecyclerAdapter);
+ if (d->delegate != delegate) {
+ d->delegate = delegate;
QtNativeAndroid::callVoidMethod(instance(), "notifyDataSetChanged");
emit delegateChanged();
}
@@ -77,14 +90,16 @@ void QNativeAndroidRecyclerAdapter::setDelegate(QQmlComponent *delegate)
QAndroidJniObject QNativeAndroidRecyclerAdapter::onCreate()
{
+ Q_D(QNativeAndroidRecyclerAdapter);
return QAndroidJniObject("org/qtproject/qt5/android/bindings/support/v7/widget/QtNativeRecyclerAdapter",
"(IJ)V",
- m_count,
+ d->count,
reinterpret_cast<jlong>(this));
}
void QNativeAndroidRecyclerAdapter::onInflate(QAndroidJniObject &instance)
{
+ Q_D(QNativeAndroidRecyclerAdapter);
QNativeAndroidContextual::onInflate(instance);
static bool nativeMethodsRegistered = false;
@@ -93,8 +108,8 @@ void QNativeAndroidRecyclerAdapter::onInflate(QAndroidJniObject &instance)
nativeMethodsRegistered = true;
}
- if (m_count > 0)
- instance.callMethod<void>("setItemCount", "(I)V", m_count);
+ if (d->count > 0)
+ instance.callMethod<void>("setItemCount", "(I)V", d->count);
}
void QNativeAndroidRecyclerAdapter::onRegisterNativeMethods(jobject adapter)
@@ -119,11 +134,11 @@ jobject QNativeAndroidRecyclerAdapter::onCreateViewHolder(JNIEnv *env, jobject o
QNativeAndroidView *item = nullptr;
QMetaObject::invokeMethod(adapter, "createItem", Qt::BlockingQueuedConnection, Q_RETURN_ARG(QNativeAndroidView *, item));
item->construct();
- adapter->m_holders += QAndroidJniObject("org/qtproject/qt5/android/bindings/support/v7/widget/QtNativeRecyclerAdapter$ViewHolder",
+ adapter->d_func()->holders += QAndroidJniObject("org/qtproject/qt5/android/bindings/support/v7/widget/QtNativeRecyclerAdapter$ViewHolder",
"(Landroid/view/View;J)V",
item->instance().object(),
reinterpret_cast<jlong>(item));
- return adapter->m_holders.last().object();
+ return adapter->d_func()->holders.last().object();
}
return 0;
}
@@ -143,11 +158,12 @@ void QNativeAndroidRecyclerAdapter::onBindViewHolder(JNIEnv *env, jobject object
QNativeAndroidView *QNativeAndroidRecyclerAdapter::createItem()
{
+ Q_D(QNativeAndroidRecyclerAdapter);
QNativeAndroidView *item = nullptr;
- if (m_delegate) {
- QQmlContext *creationContext = m_delegate->creationContext();
+ if (d->delegate) {
+ QQmlContext *creationContext = d->delegate->creationContext();
QQmlContext *context = new QQmlContext(creationContext ? creationContext : qmlContext(this));
- QObject *object = m_delegate->beginCreate(context);
+ QObject *object = d->delegate->beginCreate(context);
if (object) {
context->setParent(object);
item = qobject_cast<QNativeAndroidView *>(object);
@@ -164,8 +180,8 @@ QNativeAndroidView *QNativeAndroidRecyclerAdapter::createItem()
item->setParentView(qobject_cast<QNativeAndroidView *>(parent())); // TODO
setItemPosition(item, -1);
}
- if (m_delegate)
- m_delegate->completeCreate();
+ if (d->delegate)
+ d->delegate->completeCreate();
return item;
}
diff --git a/src/android/support/v7/widget/qnativeandroidrecycleradapter_p.h b/src/android/support/v7/widget/qnativeandroidrecycleradapter_p.h
index fbb4584..fdc6f27 100644
--- a/src/android/support/v7/widget/qnativeandroidrecycleradapter_p.h
+++ b/src/android/support/v7/widget/qnativeandroidrecycleradapter_p.h
@@ -54,6 +54,7 @@ QT_BEGIN_NAMESPACE
class QQmlComponent;
class QNativeAndroidView;
+class QNativeAndroidRecyclerAdapterPrivate;
class Q_NATIVEANDROID_EXPORT QNativeAndroidRecyclerAdapter : public QNativeAndroidContextual
{
@@ -87,9 +88,8 @@ private Q_SLOTS:
void setItemPosition(QNativeAndroidView *item, int position);
private:
- int m_count;
- QQmlComponent *m_delegate;
- QList<QAndroidJniObject> m_holders;
+ Q_DISABLE_COPY(QNativeAndroidRecyclerAdapter)
+ Q_DECLARE_PRIVATE(QNativeAndroidRecyclerAdapter)
};
QT_END_NAMESPACE
diff --git a/src/android/support/v7/widget/qnativeandroidrecyclerview.cpp b/src/android/support/v7/widget/qnativeandroidrecyclerview.cpp
index 4f38fcf..6bffa43 100644
--- a/src/android/support/v7/widget/qnativeandroidrecyclerview.cpp
+++ b/src/android/support/v7/widget/qnativeandroidrecyclerview.cpp
@@ -35,35 +35,45 @@
****************************************************************************/
#include "qnativeandroidrecyclerview_p.h"
+#include "qnativeandroidviewgroup_p_p.h"
#include "qnativeandroidrecycleradapter_p.h"
#include "qtnativeandroidfunctions_p.h"
QT_BEGIN_NAMESPACE
-QNativeAndroidRecyclerView::QNativeAndroidRecyclerView(QNativeAndroidContext *context) :
- QNativeAndroidViewGroup(context), m_adapter(0)
+class QNativeAndroidRecyclerViewPrivate : public QNativeAndroidViewGroupPrivate
+{
+public:
+ QNativeAndroidRecyclerAdapter *adapter = nullptr;
+ QAndroidJniObject layoutManager;
+};
+
+QNativeAndroidRecyclerView::QNativeAndroidRecyclerView(QNativeAndroidContext *context)
+ : QNativeAndroidViewGroup(*(new QNativeAndroidRecyclerViewPrivate), context)
{
}
QNativeAndroidRecyclerAdapter *QNativeAndroidRecyclerView::adapter() const
{
- return m_adapter;
+ Q_D(const QNativeAndroidRecyclerView);
+ return d->adapter;
}
void QNativeAndroidRecyclerView::setAdapter(QNativeAndroidRecyclerAdapter *adapter)
{
- if (m_adapter != adapter) {
- if (m_adapter) {
- m_adapter->setContext(0);
- disconnect(m_adapter, &QNativeAndroidObject::instanceChanged, this, &QNativeAndroidRecyclerView::updateAdapter);
- m_adapter->destruct();
+ Q_D(QNativeAndroidRecyclerView);
+ if (d->adapter != adapter) {
+ if (d->adapter) {
+ d->adapter->setContext(0);
+ disconnect(d->adapter, &QNativeAndroidObject::instanceChanged, this, &QNativeAndroidRecyclerView::updateAdapter);
+ d->adapter->destruct();
}
- m_adapter = adapter;
- if (m_adapter) {
- m_adapter->setContext(context());
- connect(m_adapter, &QNativeAndroidObject::instanceChanged, this, &QNativeAndroidRecyclerView::updateAdapter);
+ d->adapter = adapter;
+ if (d->adapter) {
+ d->adapter->setContext(context());
+ connect(d->adapter, &QNativeAndroidObject::instanceChanged, this, &QNativeAndroidRecyclerView::updateAdapter);
if (isValid())
- m_adapter->construct();
+ d->adapter->construct();
}
emit adapterChanged();
}}
@@ -77,13 +87,14 @@ QAndroidJniObject QNativeAndroidRecyclerView::onCreate()
void QNativeAndroidRecyclerView::onInflate(QAndroidJniObject& instance)
{
- m_layoutManager = QAndroidJniObject("android/support/v7/widget/LinearLayoutManager",
+ Q_D(QNativeAndroidRecyclerView);
+ d->layoutManager = QAndroidJniObject("android/support/v7/widget/LinearLayoutManager",
"(Landroid/content/Context;)V",
ctx().object());
instance.callMethod<void>("setLayoutManager",
"(Landroid/support/v7/widget/RecyclerView$LayoutManager;)V",
- m_layoutManager.object());
+ d->layoutManager.object());
QNativeAndroidViewGroup::onInflate(instance);
}
@@ -97,11 +108,12 @@ void QNativeAndroidRecyclerView::objectChange(ObjectChange change)
void QNativeAndroidRecyclerView::updateAdapter()
{
- if (!isValid() || !m_adapter)
+ Q_D(QNativeAndroidRecyclerView);
+ if (!isValid() || !d->adapter)
return;
QAndroidJniObject view = instance();
- QAndroidJniObject adapter = m_adapter->instance();
+ QAndroidJniObject adapter = d->adapter->instance();
QtNativeAndroid::callFunction([=]() {
view.callMethod<void>("setAdapter", "(Landroid/support/v7/widget/RecyclerView$Adapter;)V", adapter.object());
});
diff --git a/src/android/support/v7/widget/qnativeandroidrecyclerview_p.h b/src/android/support/v7/widget/qnativeandroidrecyclerview_p.h
index 7270741..6b4d8a0 100644
--- a/src/android/support/v7/widget/qnativeandroidrecyclerview_p.h
+++ b/src/android/support/v7/widget/qnativeandroidrecyclerview_p.h
@@ -53,6 +53,7 @@
QT_BEGIN_NAMESPACE
class QNativeAndroidRecyclerAdapter;
+class QNativeAndroidRecyclerViewPrivate;
class Q_NATIVEANDROID_EXPORT QNativeAndroidRecyclerView : public QNativeAndroidViewGroup
{
@@ -78,8 +79,8 @@ private Q_SLOTS:
void updateAdapter();
private:
- QNativeAndroidRecyclerAdapter *m_adapter;
- QAndroidJniObject m_layoutManager;
+ Q_DISABLE_COPY(QNativeAndroidRecyclerView)
+ Q_DECLARE_PRIVATE(QNativeAndroidRecyclerView)
};
QT_END_NAMESPACE