X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Ftreemodel.cpp;h=e456f6fda126fa3081e589b3e7910d41d2625741;hp=e481ea8db107a0f7f4b8c1e9f906b63a64f7b3ab;hb=3a3e844f9fcfd12235a0086af75ecd503b621ef4;hpb=5b686746c880e5cda6d5de3e08180ea4332ff222 diff --git a/src/client/treemodel.cpp b/src/client/treemodel.cpp index e481ea8d..e456f6fd 100644 --- a/src/client/treemodel.cpp +++ b/src/client/treemodel.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2012 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,9 +231,9 @@ void AbstractTreeItem::dumpChildList() /***************************************** * SimpleTreeItem *****************************************/ -SimpleTreeItem::SimpleTreeItem(const QList &data, AbstractTreeItem *parent) +SimpleTreeItem::SimpleTreeItem(QList data, AbstractTreeItem *parent) : AbstractTreeItem(parent), - _itemData(data) + _itemData(std::move(data)) { } @@ -275,21 +276,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 +292,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 +304,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 +324,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 +348,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 +377,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 +543,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 +565,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 +590,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();