diff options
Diffstat (limited to 'src/gui/itemmodels')
-rw-r--r-- | src/gui/itemmodels/qstandarditemmodel.cpp | 34 | ||||
-rw-r--r-- | src/gui/itemmodels/qstandarditemmodel_p.h | 1 |
2 files changed, 14 insertions, 21 deletions
diff --git a/src/gui/itemmodels/qstandarditemmodel.cpp b/src/gui/itemmodels/qstandarditemmodel.cpp index e965045524..1d6e2924b1 100644 --- a/src/gui/itemmodels/qstandarditemmodel.cpp +++ b/src/gui/itemmodels/qstandarditemmodel.cpp @@ -91,23 +91,6 @@ public: /*! \internal */ -QStandardItemPrivate::~QStandardItemPrivate() -{ - QVector<QStandardItem*>::const_iterator it; - for (it = children.constBegin(); it != children.constEnd(); ++it) { - QStandardItem *child = *it; - if (child) - child->d_func()->setModel(0); - delete child; - } - children.clear(); - if (parent && model) - parent->d_func()->childDeleted(q_func()); -} - -/*! - \internal -*/ QPair<int, int> QStandardItemPrivate::position() const { if (QStandardItem *par = parent) { @@ -340,9 +323,6 @@ QStandardItemModelPrivate::QStandardItemModelPrivate() */ QStandardItemModelPrivate::~QStandardItemModelPrivate() { - delete itemPrototype; - qDeleteAll(columnHeaderItems); - qDeleteAll(rowHeaderItems); } /*! @@ -780,6 +760,15 @@ QStandardItem &QStandardItem::operator=(const QStandardItem &other) */ QStandardItem::~QStandardItem() { + Q_D(QStandardItem); + for (QStandardItem *child : qAsConst(d->children)) { + if (child) + child->d_func()->setModel(0); + delete child; + } + d->children.clear(); + if (d->parent && d->model) + d->parent->d_func()->childDeleted(this); } /*! @@ -2116,6 +2105,11 @@ QStandardItemModel::QStandardItemModel(QStandardItemModelPrivate &dd, QObject *p */ QStandardItemModel::~QStandardItemModel() { + Q_D(QStandardItemModel); + delete d->itemPrototype; + qDeleteAll(d->columnHeaderItems); + qDeleteAll(d->rowHeaderItems); + d->root.reset(); } /*! diff --git a/src/gui/itemmodels/qstandarditemmodel_p.h b/src/gui/itemmodels/qstandarditemmodel_p.h index fbba93b93a..516cce8613 100644 --- a/src/gui/itemmodels/qstandarditemmodel_p.h +++ b/src/gui/itemmodels/qstandarditemmodel_p.h @@ -105,7 +105,6 @@ public: q_ptr(0), lastIndexOf(2) { } - virtual ~QStandardItemPrivate(); inline int childIndex(int row, int column) const { if ((row < 0) || (column < 0) |