-
Notifications
You must be signed in to change notification settings - Fork 0
/
QEdge.cpp
89 lines (83 loc) · 2.44 KB
/
QEdge.cpp
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
84
85
86
87
88
89
/*******************************************
* Written in 2014 by Kamil Niemczyk
*
* PL:
* ! Kod kopiować wraz z tym komentarzem !
* W przypadku wprowadzenia zmian
* dopisać się do listy autorów kodu.
* Rozprowadzać bezpłatnie.
* Wyrażam zgodę na używanie programu oraz
* jego kodu w celach dydaktycznych.
*
* EN:
* ! Copy only with this comment !
* In case of any changes add your nick/name
* to authors list.
* Distribute free of charge.
* I agree to use this program and its code
* for educational purposes.
*******************************************/
#include "QEdge.hh"
#include "QVertex.hh"
void QEdge::highlight(int r, int g, int b, int alpha)
{
setZValue(50);
elltextV[wP]->setZValue(100);
elltextV[wK]->setZValue(100);
QPalette palette;
QColor color(r,g,b,alpha);
QBrush brush(color);
QPen pen(color);
pen.setStyle(Qt::SolidLine);
brush.setStyle(Qt::SolidPattern);
palette.setBrush(QPalette::Active, QPalette::WindowText, brush);
palette.setBrush(QPalette::Inactive, QPalette::WindowText, brush);
if(*linkM){
labelWagi[wP][wK]->setPalette(palette);
labelWagi[wK][wP]->setPalette(palette);
}
if(*linkLk){
labelListaK[Ki]->setPalette(palette);
}
if(*linkLs){
int a = 1;
QString * s = new QString("V");
s->append(QString::number(wK+1));
s->append(",");
while(labelListaS[wP][a]->text().contains(s) == false) a++;
labelListaS[wP][a]->setPalette(palette);
delete s;
a = 1;
s = new QString("V");
s->append(QString::number(wP+1));
s->append(",");
while(labelListaS[wK][a]->text().contains(s) == false) a++;
labelListaS[wK][a]->setPalette(palette);
delete s;
}
elltextV[wP]->setPen(pen);
elltextV[wK]->setPen(pen);
elltextV[wP]->Label()->setDefaultTextColor(color);
elltextV[wK]->Label()->setDefaultTextColor(color);
this->QGraphicsLineItem::setPen(pen);
label->setDefaultTextColor(color);
label->setVisible(true);
}
void QEdge::highlightDij(int r, int g, int b, int alpha)
{
setAcceptHoverEvents(false);
QColor color(r,g,b,alpha);
QPen pen(color);
pen.setStyle(Qt::SolidLine);
if(!elltextV[wP]->isClicked()){
elltextV[wP]->setPen(pen);
elltextV[wP]->Label()->setDefaultTextColor(color);
}
if(!elltextV[wK]->isClicked()){
elltextV[wK]->setPen(pen);
elltextV[wK]->Label()->setDefaultTextColor(color);
}
this->QGraphicsLineItem::setPen(pen);
label->setDefaultTextColor(color);
label->setVisible(true);
}