X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fclient%2Ftreemodel.cpp;h=314ec7f50c19f18bc20bff1dd176a6df079020df;hb=8582c2ad5708a1972c85bea1cf8d81ad3ece4814;hp=fd47bc04991e8ef86d8bdbd32bf19551a849df67;hpb=078477395aaec1edee90922037ebc8a36b072d90;p=quassel.git diff --git a/src/client/treemodel.cpp b/src/client/treemodel.cpp index fd47bc04..314ec7f5 100644 --- a/src/client/treemodel.cpp +++ b/src/client/treemodel.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2015 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); @@ -135,7 +136,7 @@ void AbstractTreeItem::customEvent(QEvent *event) event->accept(); - RemoveChildLaterEvent *removeEvent = static_cast(event); + auto *removeEvent = static_cast(event); int childRow = _childItems.indexOf(removeEvent->child()); if (childRow == -1) return; @@ -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].toLatin1()); + 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].toLatin1(), 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,10 +343,16 @@ 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)) - return QModelIndex(); + return {}; AbstractTreeItem *parentItem; @@ -382,19 +366,19 @@ QModelIndex TreeModel::index(int row, int column, const QModelIndex &parent) con if (childItem) return createIndex(row, column, childItem); else - return QModelIndex(); + return {}; } QModelIndex TreeModel::indexByItem(AbstractTreeItem *item) const { - if (item == 0) { + if (item == nullptr) { qWarning() << "TreeModel::indexByItem(AbstractTreeItem *item) received NULL-Pointer"; - return QModelIndex(); + return {}; } if (item == rootItem) - return QModelIndex(); + return {}; else return createIndex(item->row(), 0, item); } @@ -405,15 +389,15 @@ QModelIndex TreeModel::parent(const QModelIndex &index) const if (!index.isValid()) { // ModelTest does this // qWarning() << "TreeModel::parent(): has been asked for the rootItems Parent!"; - return QModelIndex(); + return {}; } - AbstractTreeItem *childItem = static_cast(index.internalPointer()); + auto *childItem = static_cast(index.internalPointer()); AbstractTreeItem *parentItem = childItem->parent(); Q_ASSERT(parentItem); if (parentItem == rootItem) - return QModelIndex(); + return {}; return createIndex(parentItem->row(), 0, parentItem); } @@ -454,7 +438,7 @@ QVariant TreeModel::data(const QModelIndex &index, int role) const if (!index.isValid()) return QVariant(); - AbstractTreeItem *item = static_cast(index.internalPointer()); + auto *item = static_cast(index.internalPointer()); return item->data(index.column(), role); } @@ -464,7 +448,7 @@ bool TreeModel::setData(const QModelIndex &index, const QVariant &value, int rol if (!index.isValid()) return false; - AbstractTreeItem *item = static_cast(index.internalPointer()); + auto *item = static_cast(index.internalPointer()); return item->setData(index.column(), value, role); } @@ -475,7 +459,7 @@ Qt::ItemFlags TreeModel::flags(const QModelIndex &index) const return rootItem->flags() & Qt::ItemIsDropEnabled; } else { - AbstractTreeItem *item = static_cast(index.internalPointer()); + auto *item = static_cast(index.internalPointer()); return item->flags(); } } @@ -492,7 +476,7 @@ QVariant TreeModel::headerData(int section, Qt::Orientation orientation, int rol void TreeModel::itemDataChanged(int column) { - AbstractTreeItem *item = qobject_cast(sender()); + auto *item = qobject_cast(sender()); QModelIndex leftIndex, rightIndex; if (item == rootItem) @@ -530,7 +514,7 @@ void TreeModel::connectItem(AbstractTreeItem *item) void TreeModel::beginAppendChilds(int firstRow, int lastRow) { - AbstractTreeItem *parentItem = qobject_cast(sender()); + auto *parentItem = qobject_cast(sender()); if (!parentItem) { qWarning() << "TreeModel::beginAppendChilds(): cannot append Children to unknown parent"; return; @@ -547,7 +531,7 @@ void TreeModel::beginAppendChilds(int firstRow, int lastRow) void TreeModel::endAppendChilds() { - AbstractTreeItem *parentItem = qobject_cast(sender()); + auto *parentItem = qobject_cast(sender()); if (!parentItem) { qWarning() << "TreeModel::endAppendChilds(): cannot append Children to unknown parent"; return; @@ -569,14 +553,14 @@ void TreeModel::endAppendChilds() void TreeModel::beginRemoveChilds(int firstRow, int lastRow) { - AbstractTreeItem *parentItem = qobject_cast(sender()); + auto *parentItem = qobject_cast(sender()); if (!parentItem) { qWarning() << "TreeModel::beginRemoveChilds(): cannot append Children to unknown parent"; return; } for (int i = firstRow; i <= lastRow; i++) { - disconnect(parentItem->child(i), 0, this, 0); + disconnect(parentItem->child(i), nullptr, this, nullptr); } // consitency checks @@ -593,7 +577,7 @@ void TreeModel::beginRemoveChilds(int firstRow, int lastRow) void TreeModel::endRemoveChilds() { - AbstractTreeItem *parentItem = qobject_cast(sender()); + auto *parentItem = qobject_cast(sender()); if (!parentItem) { qWarning() << "TreeModel::endRemoveChilds(): cannot remove Children from unknown parent"; return;