findresultitem.cpp
author insilmaril
Mon, 22 Mar 2010 15:37:23 +0000
changeset 841 46553c106c52
parent 829 832e96c9abb6
child 842 bec082472471
permissions -rw-r--r--
Fixes for QLineEdit and moving vym.changelog up one level
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@829
    12
	orgModel=NULL;
insilmaril@825
    13
}
insilmaril@825
    14
insilmaril@825
    15
FindResultItem::~FindResultItem()
insilmaril@825
    16
{
insilmaril@825
    17
    qDeleteAll(childItems);
insilmaril@825
    18
}
insilmaril@825
    19
insilmaril@825
    20
FindResultItem *FindResultItem::child(int number)
insilmaril@825
    21
{
insilmaril@825
    22
    return childItems.value(number);
insilmaril@825
    23
}
insilmaril@825
    24
insilmaril@825
    25
int FindResultItem::childCount() const
insilmaril@825
    26
{
insilmaril@825
    27
    return childItems.count();
insilmaril@825
    28
}
insilmaril@825
    29
insilmaril@825
    30
int FindResultItem::childNumber() const
insilmaril@825
    31
{
insilmaril@825
    32
    if (parentItem)
insilmaril@825
    33
        return parentItem->childItems.indexOf(const_cast<FindResultItem*>(this));
insilmaril@825
    34
insilmaril@825
    35
    return 0;
insilmaril@825
    36
}
insilmaril@825
    37
insilmaril@825
    38
int FindResultItem::columnCount() const
insilmaril@825
    39
{
insilmaril@825
    40
    return itemData.count();
insilmaril@825
    41
}
insilmaril@825
    42
insilmaril@825
    43
QVariant FindResultItem::data(int column) const
insilmaril@825
    44
{
insilmaril@825
    45
    return itemData.value(column);
insilmaril@825
    46
}
insilmaril@825
    47
insilmaril@829
    48
int FindResultItem::row() const
insilmaril@829
    49
{
insilmaril@829
    50
    if (parentItem)
insilmaril@829
    51
        return parentItem->childItems.indexOf(const_cast<FindResultItem*>(this));
insilmaril@829
    52
insilmaril@829
    53
    return 0;
insilmaril@829
    54
}
insilmaril@829
    55
insilmaril@829
    56
insilmaril@825
    57
bool FindResultItem::insertChildren(int position, int count, int columns)
insilmaril@825
    58
{
insilmaril@825
    59
    if (position < 0 || position > childItems.size())
insilmaril@825
    60
        return false;
insilmaril@825
    61
insilmaril@825
    62
    for (int row = 0; row < count; ++row) {
insilmaril@825
    63
        QVector<QVariant> data(columns);
insilmaril@825
    64
        FindResultItem *item = new FindResultItem(data, this);
insilmaril@825
    65
        childItems.insert(position, item);
insilmaril@825
    66
    }
insilmaril@825
    67
insilmaril@825
    68
    return true;
insilmaril@825
    69
}
insilmaril@825
    70
insilmaril@825
    71
bool FindResultItem::insertColumns(int position, int columns)
insilmaril@825
    72
{
insilmaril@825
    73
    if (position < 0 || position > itemData.size())
insilmaril@825
    74
        return false;
insilmaril@825
    75
insilmaril@825
    76
    for (int column = 0; column < columns; ++column)
insilmaril@825
    77
        itemData.insert(position, QVariant());
insilmaril@825
    78
insilmaril@825
    79
    foreach (FindResultItem *child, childItems)
insilmaril@825
    80
        child->insertColumns(position, columns);
insilmaril@825
    81
insilmaril@825
    82
    return true;
insilmaril@825
    83
}
insilmaril@825
    84
insilmaril@825
    85
FindResultItem *FindResultItem::parent()
insilmaril@825
    86
{
insilmaril@825
    87
    return parentItem;
insilmaril@825
    88
}
insilmaril@825
    89
insilmaril@825
    90
bool FindResultItem::removeChildren(int position, int count)
insilmaril@825
    91
{
insilmaril@825
    92
    if (position < 0 || position + count > childItems.size())
insilmaril@825
    93
        return false;
insilmaril@825
    94
insilmaril@825
    95
    for (int row = 0; row < count; ++row)
insilmaril@825
    96
        delete childItems.takeAt(position);
insilmaril@825
    97
insilmaril@825
    98
    return true;
insilmaril@825
    99
}
insilmaril@825
   100
insilmaril@825
   101
bool FindResultItem::removeColumns(int position, int columns)
insilmaril@825
   102
{
insilmaril@825
   103
    if (position < 0 || position + columns > itemData.size())
insilmaril@825
   104
        return false;
insilmaril@825
   105
insilmaril@825
   106
    for (int column = 0; column < columns; ++column)
insilmaril@825
   107
        itemData.remove(position);
insilmaril@825
   108
insilmaril@825
   109
    foreach (FindResultItem *child, childItems)
insilmaril@825
   110
        child->removeColumns(position, columns);
insilmaril@825
   111
insilmaril@825
   112
    return true;
insilmaril@825
   113
}
insilmaril@825
   114
insilmaril@825
   115
bool FindResultItem::setData(int column, const QVariant &value)
insilmaril@825
   116
{
insilmaril@825
   117
    if (column < 0 || column >= itemData.size())
insilmaril@825
   118
        return false;
insilmaril@825
   119
insilmaril@825
   120
    itemData[column] = value;
insilmaril@825
   121
    return true;
insilmaril@825
   122
}
insilmaril@829
   123
insilmaril@829
   124
void FindResultItem::setOriginal (TreeItem *ti)
insilmaril@829
   125
{
insilmaril@829
   126
	orgModel=ti->getModel();
insilmaril@829
   127
	orgID=ti->getID();
insilmaril@829
   128
}
insilmaril@829
   129
insilmaril@829
   130
uint FindResultItem::getOrgID()
insilmaril@829
   131
{
insilmaril@829
   132
	return orgID;
insilmaril@829
   133
}
insilmaril@829
   134
insilmaril@829
   135
VymModel* FindResultItem::getOrgModel()
insilmaril@829
   136
{
insilmaril@829
   137
	return orgModel;
insilmaril@829
   138
}
insilmaril@829
   139