Skip to content

Commit 31fde04

Browse files
committed
OcdFileImport: Fix point symbol line element styles
Fixes #1070.
1 parent 59d4e22 commit 31fde04

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

src/fileformats/ocd_file_import.cpp

+19
Original file line numberDiff line numberDiff line change
@@ -1544,6 +1544,25 @@ void OcdFileImport::setupPointSymbolPattern(PointSymbol* symbol, std::size_t dat
15441544
auto element_symbol = new OcdImportedLineSymbol();
15451545
element_symbol->line_width = convertLength(element->line_width);
15461546
element_symbol->color = convertColor(element->color);
1547+
// The flags variable doesn't seem to contain individual flags.
1548+
switch (element->flags)
1549+
{
1550+
default:
1551+
qDebug("Ocd::PointSymbolElementV8: Unknown flags value %d", element->flags);
1552+
// fall through
1553+
case Ocd::PointSymbolElementV8::NoFlags:
1554+
element_symbol->setCapStyle(LineSymbol::FlatCap);
1555+
element_symbol->setJoinStyle(LineSymbol::BevelJoin);
1556+
break;
1557+
case Ocd::PointSymbolElementV8::RoundStyle:
1558+
element_symbol->setCapStyle(LineSymbol::RoundCap);
1559+
element_symbol->setJoinStyle(LineSymbol::RoundJoin);
1560+
break;
1561+
case Ocd::PointSymbolElementV8::FlatMiterStyle:
1562+
element_symbol->setCapStyle(LineSymbol::FlatCap);
1563+
element_symbol->setJoinStyle(LineSymbol::MiterJoin);
1564+
break;
1565+
}
15471566
auto element_object = new OcdImportedPathObject(element_symbol);
15481567
fillPathCoords(element_object, false, element->num_coords, coords);
15491568
element_object->recalculateParts();

src/fileformats/ocd_types_v8.h

+7
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,13 @@ namespace Ocd
119119
TypeCircle = 3,
120120
TypeDot = 4
121121
};
122+
123+
enum Flags
124+
{
125+
NoFlags = 0,
126+
RoundStyle = 1,
127+
FlatMiterStyle = 4,
128+
};
122129
};
123130

124131
struct PointSymbolV8

0 commit comments

Comments
 (0)