]> git.sven.stormbind.net Git - sven/vym.git/blob - src/findresultitem.cpp
New upstream version 2.9.22
[sven/vym.git] / src / findresultitem.cpp
1 #include <QStringList>
2
3 #include "findresultitem.h"
4 #include "treeitem.h"
5 #include "vymmodel.h"
6
7 FindResultItem::FindResultItem(const QVector<QVariant> &data,
8                                FindResultItem *parent)
9 {
10     parentItem = parent;
11     itemData = data;
12     orgID = -1;
13     orgIndex = -1;
14     orgModel = NULL;
15     if (data.isEmpty())
16         itemData.append(QVariant("empty"));
17 }
18
19 FindResultItem::~FindResultItem() { qDeleteAll(childItems); }
20
21 FindResultItem *FindResultItem::child(int number)
22 {
23     return childItems.value(number);
24 }
25
26 int FindResultItem::childCount() const { return childItems.count(); }
27
28 int FindResultItem::childNumber() const
29 {
30     if (parentItem)
31         return parentItem->childItems.indexOf(
32             const_cast<FindResultItem *>(this));
33
34     return 0;
35 }
36
37 int FindResultItem::columnCount() const { return itemData.count(); }
38
39 QVariant FindResultItem::data(int column) const
40 {
41     return itemData.value(column);
42 }
43
44 int FindResultItem::row() const
45 {
46     if (parentItem)
47         return parentItem->childItems.indexOf(
48             const_cast<FindResultItem *>(this));
49
50     return 0;
51 }
52
53 bool FindResultItem::insertChildren(int position, int count, int columns)
54 {
55     if (position < 0 || position > childItems.size())
56         return false;
57
58     for (int row = 0; row < count; ++row) {
59         QVector<QVariant> data(columns);
60         FindResultItem *item = new FindResultItem(data, this);
61         childItems.insert(position, item);
62     }
63
64     return true;
65 }
66
67 bool FindResultItem::insertColumns(int position, int columns)
68 {
69     if (position < 0 || position > itemData.size())
70         return false;
71
72     for (int column = 0; column < columns; ++column)
73         itemData.insert(position, QVariant());
74
75     foreach (FindResultItem *child, childItems)
76         child->insertColumns(position, columns);
77
78     return true;
79 }
80
81 FindResultItem *FindResultItem::parent() { return parentItem; }
82
83 bool FindResultItem::removeChildren(int position, int count)
84 {
85     if (position < 0 || position + count > childItems.size())
86         return false;
87
88     for (int row = 0; row < count; ++row)
89         delete childItems.takeAt(position);
90
91     return true;
92 }
93
94 bool FindResultItem::removeColumns(int position, int columns)
95 {
96     if (position < 0 || position + columns > itemData.size())
97         return false;
98
99     for (int column = 0; column < columns; ++column)
100         itemData.remove(position);
101
102     foreach (FindResultItem *child, childItems)
103         child->removeColumns(position, columns);
104
105     return true;
106 }
107
108 bool FindResultItem::setData(int column, const QVariant &value)
109 {
110     if (column < 0 || column >= itemData.size())
111         return false;
112
113     itemData[column] = value;
114     return true;
115 }
116
117 void FindResultItem::setOriginal(TreeItem *ti)
118 {
119     orgModel = ti->getModel();
120     orgID = ti->getID();
121 }
122
123 int FindResultItem::getOriginalID() { return orgID; }
124
125 void FindResultItem::setOriginalIndex(int i) { orgIndex = i; }
126
127 int FindResultItem::getOriginalIndex() { return orgIndex; }
128
129 VymModel *FindResultItem::getOrgModel() { return orgModel; }