blob: 6877c5499928867684986008c25026346e23ef7d (
plain)
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
#include "resumewidget.h"
#include <QHBoxLayout>
#include <QBoxLayout>
#include <QTextEdit>
#include <QDialog>
#define MAX_COMPACT_SIZE 100
ResumeWidget::ResumeWidget(bool compact)
{
this->compact = compact;
setLayout(new QHBoxLayout());
layout()->setContentsMargins(10,2,2,2);
resume = new QLabel("<font style='color: #bbb;'>Endnu ikke udfyldt</font>");
#ifdef RICH
resume->setTextFormat(Qt::RichText);
#endif
resume->setWordWrap(true);
layout()->addWidget(resume);
connect(resume, SIGNAL(linkActivated(const QString &)), this, SLOT(showFull(const QString &)));
}
#define LINEWIDTH 80
static QString reformatString(QString help)
{
QString output;
int lastnl = 0;
for(int i = 0; i < help.size(); i++) {
if(help[i] == '\n') {
lastnl = 0;
} else {
if(lastnl > LINEWIDTH && help[i] == ' ') {
output += '\n';
lastnl = 0;
} else {
lastnl++;
}
}
output += help[i];
}
return output;
}
void ResumeWidget::setText(QString text)
{
QString f;
fulltext = text;
#ifdef FIXED_FONT
QFont font = resume->font();
font.setFamily("Courier New");
resume->setFont(font);
#endif
#ifdef RICH
for(int i = 0; i < text.length(); i++) {
if(text[i] >= '0' && text[i] <= '9') f += "<font style='color: #55F;'>" + text[i] + "</font>";
else if(text[i] == '\n') f += "<br/>";
else if(text[i] == ' ') f += " ";
else f += text[i];
}
resume->setWordWrap(true);
#else
f = text;
#endif
if(compact) {
if(f.count('\n') > 0) f = f.left(f.indexOf('\n'));
if(f.length() > MAX_COMPACT_SIZE) {
f = f.left(MAX_COMPACT_SIZE);
}
if(fulltext != f) {
f += " <a href=\"#\"><img src=\":icons/compressed.png\"/></a>";
}
}
resume->setText(f);
}
void ResumeWidget::showFull(const QString &)
{
QDialog d(this);
d.setWindowTitle("Resume");
QTextEdit *t = new QTextEdit(&d);
d.resize(500, 200);
d.move(mapToGlobal(pos()));
t->setText(reformatString(fulltext));
t->setReadOnly(true);
t->setLineWrapMode(QTextEdit::NoWrap);
d.setLayout(new QHBoxLayout());
d.layout()->addWidget(t);
d.exec();
}
|