summaryrefslogtreecommitdiffstats
path: root/src/dot.cpp
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2017-12-28 09:13:43 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2017-12-28 09:13:43 (GMT)
commit989de07559a112c398da0bf3e7a1112ed5c8dbd7 (patch)
tree07e79b6c76dec9c20f6c0df3c6662d73dcade4ef /src/dot.cpp
parent9538bfd15c99aceb619f426b30c87004c4820370 (diff)
parent3977359bd3fb5527a237c2c0cdb61407f2d85464 (diff)
downloadDoxygen-989de07559a112c398da0bf3e7a1112ed5c8dbd7.zip
Doxygen-989de07559a112c398da0bf3e7a1112ed5c8dbd7.tar.gz
Doxygen-989de07559a112c398da0bf3e7a1112ed5c8dbd7.tar.bz2
Merge branch 'master' of https://github.com/ahoogol/doxygen into ahoogol-master
Diffstat (limited to 'src/dot.cpp')
-rw-r--r--src/dot.cpp32
1 files changed, 16 insertions, 16 deletions
diff --git a/src/dot.cpp b/src/dot.cpp
index db77b18..80703b9 100644
--- a/src/dot.cpp
+++ b/src/dot.cpp
@@ -1524,21 +1524,21 @@ void DotNode::setDistance(int distance)
static QCString convertLabel(const QCString &l)
{
- QCString result;
- QCString bBefore("\\_/<({[: =-+@%#~?$"); // break before character set
- QCString bAfter(">]),:;|"); // break after character set
- const char *p=l.data();
- if (p==0) return result;
- char c,pc=0;
- char cs[2];
- cs[1]=0;
- int len=l.length();
+ QString bBefore("\\_/<({[: =-+@%#~?$"); // break before character set
+ QString bAfter(">]),:;|"); // break after character set
+ QString p(l);
+ if (p.isEmpty()) return QCString();
+ QString result;
+ QChar c,pc=0;
+ uint idx = 0;
+ int len=p.length();
int charsLeft=len;
int sinceLast=0;
int foldLen=17; // ideal text length
- while ((c=*p++))
+ while (idx < p.length())
{
- QCString replacement;
+ c = p[idx++];
+ QString replacement;
switch(c)
{
case '\\': replacement="\\\\"; break;
@@ -1549,7 +1549,7 @@ static QCString convertLabel(const QCString &l)
case '{': replacement="\\{"; break;
case '}': replacement="\\}"; break;
case '"': replacement="\\\""; break;
- default: cs[0]=c; replacement=cs; break;
+ default: replacement=c; break;
}
// Some heuristics to insert newlines to prevent too long
// boxes and at the same time prevent ugly breaks
@@ -1567,14 +1567,14 @@ static QCString convertLabel(const QCString &l)
sinceLast=1;
}
else if (charsLeft>1+foldLen/4 && sinceLast>foldLen+foldLen/3 &&
- !isupper(c) && isupper(*p))
+ !isupper(c) && p[idx].category()==QChar::Letter_Uppercase)
{
result+=replacement;
result+="\\l";
foldLen = (foldLen+sinceLast+1)/2;
sinceLast=0;
}
- else if (charsLeft>foldLen/3 && sinceLast>foldLen && bAfter.contains(c) && (c!=':' || *p!=':'))
+ else if (charsLeft>foldLen/3 && sinceLast>foldLen && bAfter.contains(c) && (c!=':' || p[idx]!=':'))
{
result+=replacement;
result+="\\l";
@@ -1589,7 +1589,7 @@ static QCString convertLabel(const QCString &l)
charsLeft--;
pc=c;
}
- return result;
+ return result.utf8();
}
static QCString escapeTooltip(const QCString &tooltip)
@@ -4715,7 +4715,7 @@ void DotGroupCollaboration::writeGraphHeader(FTextStream &t,
}
t << " edge [fontname=\"" << FONTNAME << "\",fontsize=\"" << FONTSIZE << "\","
"labelfontname=\"" << FONTNAME << "\",labelfontsize=\"" << FONTSIZE << "\"];\n";
- t << " node [fontname=\"" << FONTNAME << "\",fontsize=\"" << FONTSIZE << "\",shape=record];\n";
+ t << " node [fontname=\"" << FONTNAME << "\",fontsize=\"" << FONTSIZE << "\",shape=box];\n";
t << " rankdir=LR;\n";
}