X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fclient%2Ftreemodel.cpp;h=768a2959f878ae1ebbe2ceddb90864f6bd095935;hb=c194ed5fb3d15e14b9364f9796d3521910dc72fe;hp=2f748d3d6d721ca333c67eb6a16dee548bf44e0b;hpb=9d54503555534a2c554f09a33df6afa33d6308ec;p=quassel.git diff --git a/src/client/treemodel.cpp b/src/client/treemodel.cpp index 2f748d3d..768a2959 100644 --- a/src/client/treemodel.cpp +++ b/src/client/treemodel.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2018 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -22,6 +22,7 @@ #include #include +#include #include "quassel.h" @@ -41,7 +42,7 @@ private: AbstractTreeItem::AbstractTreeItem(AbstractTreeItem *parent) : QObject(parent), _flags(Qt::ItemIsSelectable | Qt::ItemIsEnabled), - _treeItemFlags(0) + _treeItemFlags(nullptr) { } @@ -103,9 +104,9 @@ void AbstractTreeItem::removeAllChilds() childIter = _childItems.begin(); while (childIter != _childItems.end()) { child = *childIter; - child->setTreeItemFlags(0); // disable self deletion, as this would only fuck up consitency and the child gets deleted anyways + child->setTreeItemFlags(nullptr); // disable self deletion, as this would only fuck up consitency and the child gets deleted anyways child->removeAllChilds(); - childIter++; + ++childIter; } emit beginRemoveChilds(0, numChilds - 1); @@ -182,7 +183,7 @@ bool AbstractTreeItem::reParent(AbstractTreeItem *newParent) AbstractTreeItem *AbstractTreeItem::child(int row) const { if (childCount() <= row) - return 0; + return nullptr; else return _childItems[row]; } @@ -220,7 +221,7 @@ void AbstractTreeItem::dumpChildList() while (childIter != _childItems.constEnd()) { child = *childIter; qDebug() << "Row:" << child->row() << child << child->data(0, Qt::DisplayRole); - childIter++; + ++childIter; } } qDebug() << "==== End Of Childlist ===="; @@ -230,14 +231,9 @@ void AbstractTreeItem::dumpChildList() /***************************************** * SimpleTreeItem *****************************************/ -SimpleTreeItem::SimpleTreeItem(const QList &data, AbstractTreeItem *parent) +SimpleTreeItem::SimpleTreeItem(QList data, AbstractTreeItem *parent) : AbstractTreeItem(parent), - _itemData(data) -{ -} - - -SimpleTreeItem::~SimpleTreeItem() + _itemData(std::move(data)) { } @@ -275,21 +271,8 @@ int SimpleTreeItem::columnCount() const /***************************************** * PropertyMapItem *****************************************/ -PropertyMapItem::PropertyMapItem(const QStringList &propertyOrder, AbstractTreeItem *parent) - : AbstractTreeItem(parent), - _propertyOrder(propertyOrder) -{ -} - - PropertyMapItem::PropertyMapItem(AbstractTreeItem *parent) - : AbstractTreeItem(parent), - _propertyOrder(QStringList()) -{ -} - - -PropertyMapItem::~PropertyMapItem() + : AbstractTreeItem(parent) { } @@ -304,7 +287,7 @@ QVariant PropertyMapItem::data(int column, int role) const return toolTip(column); case Qt::DisplayRole: case TreeModel::SortRole: // fallthrough, since SortRole should default to DisplayRole - return property(_propertyOrder[column].toAscii()); + return property(propertyOrder()[column].toLatin1()); default: return QVariant(); } @@ -316,20 +299,15 @@ bool PropertyMapItem::setData(int column, const QVariant &value, int role) if (column >= columnCount() || role != Qt::DisplayRole) return false; + setProperty(propertyOrder()[column].toLatin1(), value); emit dataChanged(column); - return setProperty(_propertyOrder[column].toAscii(), value); + return true; } int PropertyMapItem::columnCount() const { - return _propertyOrder.count(); -} - - -void PropertyMapItem::appendProperty(const QString &property) -{ - _propertyOrder << property; + return propertyOrder().count(); } @@ -341,7 +319,7 @@ TreeModel::TreeModel(const QList &data, QObject *parent) _childStatus(QModelIndex(), 0, 0, 0), _aboutToRemoveOrInsert(false) { - rootItem = new SimpleTreeItem(data, 0); + rootItem = new SimpleTreeItem(data, nullptr); connectItem(rootItem); if (Quassel::isOptionSet("debugmodel")) { @@ -365,6 +343,12 @@ TreeModel::~TreeModel() } +AbstractTreeItem *TreeModel::root() const +{ + return rootItem; +} + + QModelIndex TreeModel::index(int row, int column, const QModelIndex &parent) const { if (row < 0 || row >= rowCount(parent) || column < 0 || column >= columnCount(parent)) @@ -388,7 +372,7 @@ QModelIndex TreeModel::index(int row, int column, const QModelIndex &parent) con QModelIndex TreeModel::indexByItem(AbstractTreeItem *item) const { - if (item == 0) { + if (item == nullptr) { qWarning() << "TreeModel::indexByItem(AbstractTreeItem *item) received NULL-Pointer"; return QModelIndex(); } @@ -554,10 +538,11 @@ void TreeModel::endAppendChilds() } Q_ASSERT(_aboutToRemoveOrInsert); ChildStatus cs = _childStatus; +#ifndef QT_NO_DEBUG QModelIndex parent = indexByItem(parentItem); Q_ASSERT(cs.parent == parent); Q_ASSERT(rowCount(parent) == cs.childCount + cs.end - cs.start + 1); - +#endif _aboutToRemoveOrInsert = false; for (int i = cs.start; i <= cs.end; i++) { connectItem(parentItem->child(i)); @@ -575,7 +560,7 @@ void TreeModel::beginRemoveChilds(int firstRow, int lastRow) } for (int i = firstRow; i <= lastRow; i++) { - disconnect(parentItem->child(i), 0, this, 0); + disconnect(parentItem->child(i), nullptr, this, nullptr); } // consitency checks @@ -600,10 +585,12 @@ void TreeModel::endRemoveChilds() // concistency checks Q_ASSERT(_aboutToRemoveOrInsert); +#ifndef QT_NO_DEBUG ChildStatus cs = _childStatus; QModelIndex parent = indexByItem(parentItem); Q_ASSERT(cs.parent == parent); Q_ASSERT(rowCount(parent) == cs.childCount - cs.end + cs.start - 1); +#endif _aboutToRemoveOrInsert = false; endRemoveRows();