insilmaril@825: #include insilmaril@825: insilmaril@825: #include "findresultitem.h" insilmaril@829: #include "treeitem.h" insilmaril@829: #include "vymmodel.h" insilmaril@825: insilmaril@825: FindResultItem::FindResultItem(const QVector &data, FindResultItem *parent) insilmaril@825: { insilmaril@825: parentItem = parent; insilmaril@825: itemData = data; insilmaril@829: orgID=-1; insilmaril@842: orgIndex=-1; insilmaril@829: orgModel=NULL; insilmaril@842: itemData.append(QVariant("empty")); insilmaril@825: } insilmaril@825: insilmaril@825: FindResultItem::~FindResultItem() insilmaril@825: { insilmaril@825: qDeleteAll(childItems); insilmaril@825: } insilmaril@825: insilmaril@825: FindResultItem *FindResultItem::child(int number) insilmaril@825: { insilmaril@825: return childItems.value(number); insilmaril@825: } insilmaril@825: insilmaril@825: int FindResultItem::childCount() const insilmaril@825: { insilmaril@825: return childItems.count(); insilmaril@825: } insilmaril@825: insilmaril@825: int FindResultItem::childNumber() const insilmaril@825: { insilmaril@825: if (parentItem) insilmaril@825: return parentItem->childItems.indexOf(const_cast(this)); insilmaril@825: insilmaril@825: return 0; insilmaril@825: } insilmaril@825: insilmaril@825: int FindResultItem::columnCount() const insilmaril@825: { insilmaril@825: return itemData.count(); insilmaril@825: } insilmaril@825: insilmaril@825: QVariant FindResultItem::data(int column) const insilmaril@825: { insilmaril@825: return itemData.value(column); insilmaril@825: } insilmaril@825: insilmaril@829: int FindResultItem::row() const insilmaril@829: { insilmaril@829: if (parentItem) insilmaril@829: return parentItem->childItems.indexOf(const_cast(this)); insilmaril@829: insilmaril@829: return 0; insilmaril@829: } insilmaril@829: insilmaril@825: bool FindResultItem::insertChildren(int position, int count, int columns) insilmaril@825: { insilmaril@825: if (position < 0 || position > childItems.size()) insilmaril@825: return false; insilmaril@825: insilmaril@825: for (int row = 0; row < count; ++row) { insilmaril@825: QVector data(columns); insilmaril@825: FindResultItem *item = new FindResultItem(data, this); insilmaril@825: childItems.insert(position, item); insilmaril@825: } insilmaril@825: insilmaril@825: return true; insilmaril@825: } insilmaril@825: insilmaril@825: bool FindResultItem::insertColumns(int position, int columns) insilmaril@825: { insilmaril@825: if (position < 0 || position > itemData.size()) insilmaril@825: return false; insilmaril@825: insilmaril@825: for (int column = 0; column < columns; ++column) insilmaril@825: itemData.insert(position, QVariant()); insilmaril@825: insilmaril@825: foreach (FindResultItem *child, childItems) insilmaril@825: child->insertColumns(position, columns); insilmaril@825: insilmaril@825: return true; insilmaril@825: } insilmaril@825: insilmaril@825: FindResultItem *FindResultItem::parent() insilmaril@825: { insilmaril@825: return parentItem; insilmaril@825: } insilmaril@825: insilmaril@825: bool FindResultItem::removeChildren(int position, int count) insilmaril@825: { insilmaril@825: if (position < 0 || position + count > childItems.size()) insilmaril@825: return false; insilmaril@825: insilmaril@825: for (int row = 0; row < count; ++row) insilmaril@825: delete childItems.takeAt(position); insilmaril@825: insilmaril@825: return true; insilmaril@825: } insilmaril@825: insilmaril@825: bool FindResultItem::removeColumns(int position, int columns) insilmaril@825: { insilmaril@825: if (position < 0 || position + columns > itemData.size()) insilmaril@825: return false; insilmaril@825: insilmaril@825: for (int column = 0; column < columns; ++column) insilmaril@825: itemData.remove(position); insilmaril@825: insilmaril@825: foreach (FindResultItem *child, childItems) insilmaril@825: child->removeColumns(position, columns); insilmaril@825: insilmaril@825: return true; insilmaril@825: } insilmaril@825: insilmaril@825: bool FindResultItem::setData(int column, const QVariant &value) insilmaril@825: { insilmaril@825: if (column < 0 || column >= itemData.size()) insilmaril@825: return false; insilmaril@825: insilmaril@825: itemData[column] = value; insilmaril@825: return true; insilmaril@825: } insilmaril@829: insilmaril@829: void FindResultItem::setOriginal (TreeItem *ti) insilmaril@829: { insilmaril@829: orgModel=ti->getModel(); insilmaril@829: orgID=ti->getID(); insilmaril@829: } insilmaril@829: insilmaril@842: int FindResultItem::getOriginalID() insilmaril@829: { insilmaril@829: return orgID; insilmaril@829: } insilmaril@829: insilmaril@842: void FindResultItem::setOriginalIndex(int i) insilmaril@842: { insilmaril@842: orgIndex=i; insilmaril@842: } insilmaril@842: insilmaril@842: int FindResultItem::getOriginalIndex() insilmaril@842: { insilmaril@842: return orgIndex; insilmaril@842: } insilmaril@842: insilmaril@829: VymModel* FindResultItem::getOrgModel() insilmaril@829: { insilmaril@829: return orgModel; insilmaril@829: } insilmaril@829: