1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/findresultitem.cpp Tue Mar 02 13:59:19 2010 +0000
1.3 @@ -0,0 +1,109 @@
1.4 +#include <QStringList>
1.5 +
1.6 +#include "findresultitem.h"
1.7 +
1.8 +FindResultItem::FindResultItem(const QVector<QVariant> &data, FindResultItem *parent)
1.9 +{
1.10 + parentItem = parent;
1.11 + itemData = data;
1.12 +}
1.13 +
1.14 +FindResultItem::~FindResultItem()
1.15 +{
1.16 + qDeleteAll(childItems);
1.17 +}
1.18 +
1.19 +FindResultItem *FindResultItem::child(int number)
1.20 +{
1.21 + return childItems.value(number);
1.22 +}
1.23 +
1.24 +int FindResultItem::childCount() const
1.25 +{
1.26 + return childItems.count();
1.27 +}
1.28 +
1.29 +int FindResultItem::childNumber() const
1.30 +{
1.31 + if (parentItem)
1.32 + return parentItem->childItems.indexOf(const_cast<FindResultItem*>(this));
1.33 +
1.34 + return 0;
1.35 +}
1.36 +
1.37 +int FindResultItem::columnCount() const
1.38 +{
1.39 + return itemData.count();
1.40 +}
1.41 +
1.42 +QVariant FindResultItem::data(int column) const
1.43 +{
1.44 + return itemData.value(column);
1.45 +}
1.46 +
1.47 +bool FindResultItem::insertChildren(int position, int count, int columns)
1.48 +{
1.49 + if (position < 0 || position > childItems.size())
1.50 + return false;
1.51 +
1.52 + for (int row = 0; row < count; ++row) {
1.53 + QVector<QVariant> data(columns);
1.54 + FindResultItem *item = new FindResultItem(data, this);
1.55 + childItems.insert(position, item);
1.56 + }
1.57 +
1.58 + return true;
1.59 +}
1.60 +
1.61 +bool FindResultItem::insertColumns(int position, int columns)
1.62 +{
1.63 + if (position < 0 || position > itemData.size())
1.64 + return false;
1.65 +
1.66 + for (int column = 0; column < columns; ++column)
1.67 + itemData.insert(position, QVariant());
1.68 +
1.69 + foreach (FindResultItem *child, childItems)
1.70 + child->insertColumns(position, columns);
1.71 +
1.72 + return true;
1.73 +}
1.74 +
1.75 +FindResultItem *FindResultItem::parent()
1.76 +{
1.77 + return parentItem;
1.78 +}
1.79 +
1.80 +bool FindResultItem::removeChildren(int position, int count)
1.81 +{
1.82 + if (position < 0 || position + count > childItems.size())
1.83 + return false;
1.84 +
1.85 + for (int row = 0; row < count; ++row)
1.86 + delete childItems.takeAt(position);
1.87 +
1.88 + return true;
1.89 +}
1.90 +
1.91 +bool FindResultItem::removeColumns(int position, int columns)
1.92 +{
1.93 + if (position < 0 || position + columns > itemData.size())
1.94 + return false;
1.95 +
1.96 + for (int column = 0; column < columns; ++column)
1.97 + itemData.remove(position);
1.98 +
1.99 + foreach (FindResultItem *child, childItems)
1.100 + child->removeColumns(position, columns);
1.101 +
1.102 + return true;
1.103 +}
1.104 +
1.105 +bool FindResultItem::setData(int column, const QVariant &value)
1.106 +{
1.107 + if (column < 0 || column >= itemData.size())
1.108 + return false;
1.109 +
1.110 + itemData[column] = value;
1.111 + return true;
1.112 +}