X-Git-Url: https://git.sven.stormbind.net/?a=blobdiff_plain;f=src%2Ffindresultitem.cpp;fp=src%2Ffindresultitem.cpp;h=604f7f4eb7b105b6eeaa020cf305f56cd6e68b06;hb=d483bd8e6523c23c6f1d8908a2e0611c2bc9ff4f;hp=0000000000000000000000000000000000000000;hpb=7dfa3fe589d1722d49681f42cdb0bf1e6efb5223;p=sven%2Fvym.git diff --git a/src/findresultitem.cpp b/src/findresultitem.cpp new file mode 100644 index 0000000..604f7f4 --- /dev/null +++ b/src/findresultitem.cpp @@ -0,0 +1,129 @@ +#include + +#include "findresultitem.h" +#include "treeitem.h" +#include "vymmodel.h" + +FindResultItem::FindResultItem(const QVector &data, + FindResultItem *parent) +{ + parentItem = parent; + itemData = data; + orgID = -1; + orgIndex = -1; + orgModel = NULL; + if (data.isEmpty()) + itemData.append(QVariant("empty")); +} + +FindResultItem::~FindResultItem() { qDeleteAll(childItems); } + +FindResultItem *FindResultItem::child(int number) +{ + return childItems.value(number); +} + +int FindResultItem::childCount() const { return childItems.count(); } + +int FindResultItem::childNumber() const +{ + if (parentItem) + return parentItem->childItems.indexOf( + const_cast(this)); + + return 0; +} + +int FindResultItem::columnCount() const { return itemData.count(); } + +QVariant FindResultItem::data(int column) const +{ + return itemData.value(column); +} + +int FindResultItem::row() const +{ + if (parentItem) + return parentItem->childItems.indexOf( + const_cast(this)); + + return 0; +} + +bool FindResultItem::insertChildren(int position, int count, int columns) +{ + if (position < 0 || position > childItems.size()) + return false; + + for (int row = 0; row < count; ++row) { + QVector data(columns); + FindResultItem *item = new FindResultItem(data, this); + childItems.insert(position, item); + } + + return true; +} + +bool FindResultItem::insertColumns(int position, int columns) +{ + if (position < 0 || position > itemData.size()) + return false; + + for (int column = 0; column < columns; ++column) + itemData.insert(position, QVariant()); + + foreach (FindResultItem *child, childItems) + child->insertColumns(position, columns); + + return true; +} + +FindResultItem *FindResultItem::parent() { return parentItem; } + +bool FindResultItem::removeChildren(int position, int count) +{ + if (position < 0 || position + count > childItems.size()) + return false; + + for (int row = 0; row < count; ++row) + delete childItems.takeAt(position); + + return true; +} + +bool FindResultItem::removeColumns(int position, int columns) +{ + if (position < 0 || position + columns > itemData.size()) + return false; + + for (int column = 0; column < columns; ++column) + itemData.remove(position); + + foreach (FindResultItem *child, childItems) + child->removeColumns(position, columns); + + return true; +} + +bool FindResultItem::setData(int column, const QVariant &value) +{ + if (column < 0 || column >= itemData.size()) + return false; + + itemData[column] = value; + return true; +} + +void FindResultItem::setOriginal(TreeItem *ti) +{ + orgModel = ti->getModel(); + orgID = ti->getID(); +} + +int FindResultItem::getOriginalID() { return orgID; } + +void FindResultItem::setOriginalIndex(int i) { orgIndex = i; } + +int FindResultItem::getOriginalIndex() { return orgIndex; } + +VymModel *FindResultItem::getOrgModel() { return orgModel; }