findresultitem.cpp
changeset 825 1ad892c1a709
child 829 832e96c9abb6
     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 +}