findresultitem.cpp
author insilmaril
Fri, 09 Apr 2010 14:16:02 +0000
changeset 845 b98c1793bb8b
parent 842 bec082472471
child 847 43268373032d
permissions -rw-r--r--
XHTML export obsoleted by HTML export
insilmaril@825
     1
#include <QStringList>
insilmaril@825
     2
insilmaril@825
     3
#include "findresultitem.h"
insilmaril@829
     4
#include "treeitem.h"
insilmaril@829
     5
#include "vymmodel.h"
insilmaril@825
     6
insilmaril@825
     7
FindResultItem::FindResultItem(const QVector<QVariant> &data, FindResultItem *parent)
insilmaril@825
     8
{
insilmaril@825
     9
    parentItem = parent;
insilmaril@825
    10
    itemData = data;
insilmaril@829
    11
	orgID=-1;
insilmaril@842
    12
	orgIndex=-1;
insilmaril@829
    13
	orgModel=NULL;
insilmaril@842
    14
	itemData.append(QVariant("empty"));
insilmaril@825
    15
}
insilmaril@825
    16
insilmaril@825
    17
FindResultItem::~FindResultItem()
insilmaril@825
    18
{
insilmaril@825
    19
    qDeleteAll(childItems);
insilmaril@825
    20
}
insilmaril@825
    21
insilmaril@825
    22
FindResultItem *FindResultItem::child(int number)
insilmaril@825
    23
{
insilmaril@825
    24
    return childItems.value(number);
insilmaril@825
    25
}
insilmaril@825
    26
insilmaril@825
    27
int FindResultItem::childCount() const
insilmaril@825
    28
{
insilmaril@825
    29
    return childItems.count();
insilmaril@825
    30
}
insilmaril@825
    31
insilmaril@825
    32
int FindResultItem::childNumber() const
insilmaril@825
    33
{
insilmaril@825
    34
    if (parentItem)
insilmaril@825
    35
        return parentItem->childItems.indexOf(const_cast<FindResultItem*>(this));
insilmaril@825
    36
insilmaril@825
    37
    return 0;
insilmaril@825
    38
}
insilmaril@825
    39
insilmaril@825
    40
int FindResultItem::columnCount() const
insilmaril@825
    41
{
insilmaril@825
    42
    return itemData.count();
insilmaril@825
    43
}
insilmaril@825
    44
insilmaril@825
    45
QVariant FindResultItem::data(int column) const
insilmaril@825
    46
{
insilmaril@825
    47
    return itemData.value(column);
insilmaril@825
    48
}
insilmaril@825
    49
insilmaril@829
    50
int FindResultItem::row() const
insilmaril@829
    51
{
insilmaril@829
    52
    if (parentItem)
insilmaril@829
    53
        return parentItem->childItems.indexOf(const_cast<FindResultItem*>(this));
insilmaril@829
    54
insilmaril@829
    55
    return 0;
insilmaril@829
    56
}
insilmaril@829
    57
insilmaril@825
    58
bool FindResultItem::insertChildren(int position, int count, int columns)
insilmaril@825
    59
{
insilmaril@825
    60
    if (position < 0 || position > childItems.size())
insilmaril@825
    61
        return false;
insilmaril@825
    62
insilmaril@825
    63
    for (int row = 0; row < count; ++row) {
insilmaril@825
    64
        QVector<QVariant> data(columns);
insilmaril@825
    65
        FindResultItem *item = new FindResultItem(data, this);
insilmaril@825
    66
        childItems.insert(position, item);
insilmaril@825
    67
    }
insilmaril@825
    68
insilmaril@825
    69
    return true;
insilmaril@825
    70
}
insilmaril@825
    71
insilmaril@825
    72
bool FindResultItem::insertColumns(int position, int columns)
insilmaril@825
    73
{
insilmaril@825
    74
    if (position < 0 || position > itemData.size())
insilmaril@825
    75
        return false;
insilmaril@825
    76
insilmaril@825
    77
    for (int column = 0; column < columns; ++column)
insilmaril@825
    78
        itemData.insert(position, QVariant());
insilmaril@825
    79
insilmaril@825
    80
    foreach (FindResultItem *child, childItems)
insilmaril@825
    81
        child->insertColumns(position, columns);
insilmaril@825
    82
insilmaril@825
    83
    return true;
insilmaril@825
    84
}
insilmaril@825
    85
insilmaril@825
    86
FindResultItem *FindResultItem::parent()
insilmaril@825
    87
{
insilmaril@825
    88
    return parentItem;
insilmaril@825
    89
}
insilmaril@825
    90
insilmaril@825
    91
bool FindResultItem::removeChildren(int position, int count)
insilmaril@825
    92
{
insilmaril@825
    93
    if (position < 0 || position + count > childItems.size())
insilmaril@825
    94
        return false;
insilmaril@825
    95
insilmaril@825
    96
    for (int row = 0; row < count; ++row)
insilmaril@825
    97
        delete childItems.takeAt(position);
insilmaril@825
    98
insilmaril@825
    99
    return true;
insilmaril@825
   100
}
insilmaril@825
   101
insilmaril@825
   102
bool FindResultItem::removeColumns(int position, int columns)
insilmaril@825
   103
{
insilmaril@825
   104
    if (position < 0 || position + columns > itemData.size())
insilmaril@825
   105
        return false;
insilmaril@825
   106
insilmaril@825
   107
    for (int column = 0; column < columns; ++column)
insilmaril@825
   108
        itemData.remove(position);
insilmaril@825
   109
insilmaril@825
   110
    foreach (FindResultItem *child, childItems)
insilmaril@825
   111
        child->removeColumns(position, columns);
insilmaril@825
   112
insilmaril@825
   113
    return true;
insilmaril@825
   114
}
insilmaril@825
   115
insilmaril@825
   116
bool FindResultItem::setData(int column, const QVariant &value)
insilmaril@825
   117
{
insilmaril@825
   118
    if (column < 0 || column >= itemData.size())
insilmaril@825
   119
        return false;
insilmaril@825
   120
insilmaril@825
   121
    itemData[column] = value;
insilmaril@825
   122
    return true;
insilmaril@825
   123
}
insilmaril@829
   124
insilmaril@829
   125
void FindResultItem::setOriginal (TreeItem *ti)
insilmaril@829
   126
{
insilmaril@829
   127
	orgModel=ti->getModel();
insilmaril@829
   128
	orgID=ti->getID();
insilmaril@829
   129
}
insilmaril@829
   130
insilmaril@842
   131
int FindResultItem::getOriginalID()
insilmaril@829
   132
{
insilmaril@829
   133
	return orgID;
insilmaril@829
   134
}
insilmaril@829
   135
insilmaril@842
   136
void FindResultItem::setOriginalIndex(int i)
insilmaril@842
   137
{
insilmaril@842
   138
	orgIndex=i;
insilmaril@842
   139
}
insilmaril@842
   140
insilmaril@842
   141
int FindResultItem::getOriginalIndex()
insilmaril@842
   142
{
insilmaril@842
   143
	return orgIndex;
insilmaril@842
   144
}
insilmaril@842
   145
insilmaril@829
   146
VymModel* FindResultItem::getOrgModel()
insilmaril@829
   147
{
insilmaril@829
   148
	return orgModel;
insilmaril@829
   149
}
insilmaril@829
   150