X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Ftreemodel.cpp;h=3e243a42023924d4357bc43b7e47ff0133c89fea;hp=2819353a351b851c844ea2ae98f0b57215f713a4;hb=a700bd999215313b075ced5a1e3ba4ea8917fbbc;hpb=a453c963cf1872e14c83adf1d40a31821c166805 diff --git a/src/client/treemodel.cpp b/src/client/treemodel.cpp index 2819353a..3e243a42 100644 --- a/src/client/treemodel.cpp +++ b/src/client/treemodel.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2019 by the Quassel Project * + * Copyright (C) 2005-2020 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -45,7 +45,6 @@ private: AbstractTreeItem::AbstractTreeItem(AbstractTreeItem* parent) : QObject(parent) , _flags(Qt::ItemIsSelectable | Qt::ItemIsEnabled) - , _treeItemFlags(nullptr) {} bool AbstractTreeItem::newChild(AbstractTreeItem* item) @@ -102,7 +101,7 @@ void AbstractTreeItem::removeAllChilds() childIter = _childItems.begin(); while (childIter != _childItems.end()) { child = *childIter; - child->setTreeItemFlags(nullptr); // disable self deletion, as this would only fuck up consitency and the child gets deleted anyways + child->setTreeItemFlags({}); // disable self deletion, as this would only fuck up consitency and the child gets deleted anyways child->removeAllChilds(); ++childIter; } @@ -569,6 +568,12 @@ void TreeModel::debug_rowsAboutToBeRemoved(const QModelIndex& parent, int start, parentItem = rootItem; qDebug() << "debug_rowsAboutToBeRemoved" << parent << parentItem << parent.data().toString() << rowCount(parent) << start << end; + // Make sure model is valid first + if (!parent.model()) { + qDebug() << "Parent model is not valid!" << end; + return; + } + QModelIndex child; for (int i = end; i >= start; i--) { child = parent.model()->index(i, 0, parent); @@ -585,6 +590,12 @@ void TreeModel::debug_rowsInserted(const QModelIndex& parent, int start, int end parentItem = rootItem; qDebug() << "debug_rowsInserted:" << parent << parentItem << parent.data().toString() << rowCount(parent) << start << end; + // Make sure model is valid first + if (!parent.model()) { + qDebug() << "Parent model is not valid!" << end; + return; + } + QModelIndex child; for (int i = start; i <= end; i++) { child = parent.model()->index(i, 0, parent);