diff --git a/sources/createdxf.cpp b/sources/createdxf.cpp index 29a4102da..445ff9b26 100644 --- a/sources/createdxf.cpp +++ b/sources/createdxf.cpp @@ -437,9 +437,11 @@ int Createdxf::getcolorCode (const long red, const long green, const long blue) } return minndx; } + int Createdxf::dxfColor(QColor color) { return Createdxf::getcolorCode(color.red(), color.green(), color.blue()); } + int Createdxf::dxfColor(QPen pen) { return Createdxf::dxfColor(pen.color()); } @@ -984,7 +986,13 @@ void Createdxf::drawPolygon( const QPolygonF &poly, const int &colorcode) { - drawPolyline(filepath,poly,colorcode); + qDebug() << "PolygonIsClosed: " << poly.isClosed(); + QPolygonF pg = poly; + if(!poly.isClosed()) { + pg << poly.at(0); + } + qDebug() << "PolygonIsClosed: " << poly.isClosed(); + drawPolyline(filepath,pg,colorcode); } /** diff --git a/sources/exportdialog.cpp b/sources/exportdialog.cpp index e7f4a128d..f79f6bdc5 100644 --- a/sources/exportdialog.cpp +++ b/sources/exportdialog.cpp @@ -660,7 +660,7 @@ void ExportDialog::generateDxf( qreal offset = fontSize * 1.6; foreach (QString line, lines) { if (line.size() > 0 && line != "_" ) - Createdxf::drawText(file_path, line, QPointF(x, y), fontSize, 360-angle, 0, 0.72 ); + Createdxf::drawText(file_path, line, QPointF(x, y), fontSize, 360-angle, Createdxf::dxfColor(dti->color()), 0.72 ); x += offset * xdir; y -= offset * ydir; } diff --git a/sources/qetgraphicsitem/qetshapeitem.cpp b/sources/qetgraphicsitem/qetshapeitem.cpp index 89f99b90e..adac49f45 100644 --- a/sources/qetgraphicsitem/qetshapeitem.cpp +++ b/sources/qetgraphicsitem/qetshapeitem.cpp @@ -965,30 +965,28 @@ bool QetShapeItem::toDXF(const QString &filepath,const QPen &pen) switch (m_shapeType) { case Line: - Createdxf::drawLine(filepath, - QLineF(mapToScene(m_P1), - mapToScene(m_P2)), - Createdxf::getcolorCode(pen.color().red(), - pen.color().green(), - pen.color().blue())); - return true; + Createdxf::drawLine(filepath, + QLineF( mapToScene(m_P1), + mapToScene(m_P2)), + Createdxf::dxfColor(pen)); + return true; case Rectangle: - Createdxf::drawRectangle(filepath, - QRectF(mapToScene(m_P1), - mapToScene(m_P2)).normalized(), - Createdxf::getcolorCode(pen.color().red(), - pen.color().green(), - pen.color().blue())); - return true; + Createdxf::drawRectangle(filepath, + QRectF(mapToScene(m_P1), + mapToScene(m_P2)).normalized(), + Createdxf::dxfColor(pen)); + return true; case Ellipse: - Createdxf::drawEllipse (filepath, - QRectF(mapToScene(m_P1), - mapToScene(m_P2)).normalized(), - Createdxf::getcolorCode(pen.color().red(), - pen.color().green(), - pen.color().blue())); - return true; - default: return false; + Createdxf::drawEllipse(filepath, + QRectF(mapToScene(m_P1), + mapToScene(m_P2)).normalized(), + Createdxf::dxfColor(pen)); + return true; + case Polygon: + Createdxf::drawPolygon(filepath,m_polygon,Createdxf::dxfColor(pen)); + return true; + default: + return false; } }