aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/quick/items/qquicktableview.cpp25
-rw-r--r--src/quick/items/qquicktableview_p.h4
-rw-r--r--src/quick/items/qquicktableview_p_p.h10
3 files changed, 25 insertions, 14 deletions
diff --git a/src/quick/items/qquicktableview.cpp b/src/quick/items/qquicktableview.cpp
index 28a0cddb8f..09d74d939e 100644
--- a/src/quick/items/qquicktableview.cpp
+++ b/src/quick/items/qquicktableview.cpp
@@ -2241,6 +2241,21 @@ void QQuickTableViewPrivate::syncDelegate()
tableModel->setDelegate(assignedDelegate);
}
+QVariant QQuickTableViewPrivate::modelImpl() const
+{
+ return assignedModel;
+}
+
+void QQuickTableViewPrivate::setModelImpl(const QVariant &newModel)
+{
+ if (newModel == assignedModel)
+ return;
+
+ assignedModel = newModel;
+ scheduleRebuildTable(QQuickTableViewPrivate::RebuildOption::All);
+ emit q_func()->modelChanged();
+}
+
void QQuickTableViewPrivate::syncModel()
{
if (modelVariant == assignedModel)
@@ -2662,18 +2677,12 @@ void QQuickTableView::setColumnWidthProvider(const QJSValue &provider)
QVariant QQuickTableView::model() const
{
- return d_func()->assignedModel;
+ return d_func()->modelImpl();
}
void QQuickTableView::setModel(const QVariant &newModel)
{
- Q_D(QQuickTableView);
- if (newModel == d->assignedModel)
- return;
-
- d->assignedModel = newModel;
- d->scheduleRebuildTable(QQuickTableViewPrivate::RebuildOption::All);
- emit modelChanged();
+ return d_func()->setModelImpl(newModel);
}
QQmlComponent *QQuickTableView::delegate() const
diff --git a/src/quick/items/qquicktableview_p.h b/src/quick/items/qquicktableview_p.h
index 5ef73a816f..d549aaddf7 100644
--- a/src/quick/items/qquicktableview_p.h
+++ b/src/quick/items/qquicktableview_p.h
@@ -104,8 +104,8 @@ public:
QJSValue columnWidthProvider() const;
void setColumnWidthProvider(const QJSValue &provider);
- virtual QVariant model() const;
- virtual void setModel(const QVariant &newModel);
+ QVariant model() const;
+ void setModel(const QVariant &newModel);
QQmlComponent *delegate() const;
void setDelegate(QQmlComponent *);
diff --git a/src/quick/items/qquicktableview_p_p.h b/src/quick/items/qquicktableview_p_p.h
index ec043f5e7e..bf4bd0b511 100644
--- a/src/quick/items/qquicktableview_p_p.h
+++ b/src/quick/items/qquicktableview_p_p.h
@@ -403,11 +403,13 @@ public:
void itemReusedCallback(int modelIndex, QObject *object);
void modelUpdated(const QQmlChangeSet &changeSet, bool reset);
- inline void syncWithPendingChanges();
- inline void syncDelegate();
- inline void syncModel();
+ virtual void syncWithPendingChanges();
+ virtual void syncDelegate();
+ virtual QVariant modelImpl() const;
+ virtual void setModelImpl(const QVariant &newModel);
+ virtual void syncModel();
inline void syncRebuildOptions();
- inline void syncSyncView();
+ virtual void syncSyncView();
void connectToModel();
void disconnectFromModel();