feat(StatusQ/LeftJoinModel): Add init check on componentComplete
Earier attempts to initialize proxy may fail bc left/right models may be not ready when they are set. It may lead to a situation where the model remains uninitialized and reporint 0 row count.
This commit is contained in:
parent
0c34325841
commit
0b47e6ff8a
|
@ -2,8 +2,9 @@
|
|||
|
||||
#include <QAbstractListModel>
|
||||
#include <QPointer>
|
||||
#include <QQmlParserStatus>
|
||||
|
||||
class LeftJoinModel : public QAbstractListModel
|
||||
class LeftJoinModel : public QAbstractListModel, public QQmlParserStatus
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
@ -38,6 +39,9 @@ public:
|
|||
QHash<int, QByteArray> roleNames() const override;
|
||||
QVariant data(const QModelIndex& index, int role) const override;
|
||||
|
||||
void classBegin() override;
|
||||
void componentComplete() override;
|
||||
|
||||
signals:
|
||||
void leftModelChanged();
|
||||
void rightModelChanged();
|
||||
|
|
|
@ -271,6 +271,16 @@ QVariant LeftJoinModel::data(const QModelIndex& index, int role) const
|
|||
return match.first().data(role - m_rightModelRolesOffset);
|
||||
}
|
||||
|
||||
void LeftJoinModel::classBegin()
|
||||
{
|
||||
}
|
||||
|
||||
void LeftJoinModel::componentComplete()
|
||||
{
|
||||
if (!m_initialized)
|
||||
initializeIfReady(false);
|
||||
}
|
||||
|
||||
void LeftJoinModel::setLeftModel(QAbstractItemModel* model)
|
||||
{
|
||||
if (m_leftModel == model)
|
||||
|
|
Loading…
Reference in New Issue