-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathElement.cpp
More file actions
83 lines (72 loc) · 1.74 KB
/
Copy pathElement.cpp
File metadata and controls
83 lines (72 loc) · 1.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include "Element.h"
#include "Formula.h"
Element::Element(){ _parent = nullptr; init(); }
Element::Element(QString text){ _text = text; _parent = nullptr; init(); }
Element::Element(QString text, Formula* parent)
{
_text = text;
setParent(parent);
init();
}
Element* Element::getLeftElement() const{
int index = _parent->IndexOf(const_cast<Element*>(this)) - 1;
if (index>=0)
{
return _parent->at(index);
}
return nullptr;
}
Element* Element::getRightElement() const{
int index = _parent->IndexOf(const_cast<Element*>(this)) + 1;
if (index<_parent->getListLength())
{
return _parent->at(index);
}
return nullptr;
}
void Element::setParent(Formula* val)
{
_parent = val;
if (val != nullptr)
{
if (!val->containsEle(this)){
val->push_back(this);
}
}
}
void Element::setParentDetach(Formula* val)
{
_parent = val;
}
void Element::insertBefore(Element* ele)
{
int index = ele->getParent()->IndexOf(ele);
ele->getParent()->insertEle(this, index);
setParentDetach(ele->getParent());
}
void Element::insertLast(Element* ele)
{
int index = ele->getParent()->IndexOf(ele);
ele->getParent()->insertEle(this, index + 1);
setParentDetach(ele->getParent());
}
Element* Element::getLeftEleFromPoor()
{
int index = getParent()->CalculatePoor.indexOf(this);
if (index - 1 < 0)
{
qDebug() <<"left out range"<< index << this->getText();
qDebug() << getParent()->getText();
}
return getParent()->CalculatePoor.at(index - 1);
}
Element* Element::getRightEleFromPoor()
{
int index = getParent()->CalculatePoor.indexOf(this);
if (index + 1 > getParent()->CalculatePoor.size() - 1)
{
qDebug() << "right out range" << index << this->getText();
qDebug() << getParent()->getText();
}
return getParent()->CalculatePoor.at(index + 1);
}