diff --git a/sources/editor/partarc.cpp b/sources/editor/partarc.cpp index 7b2b84c8b..bb835b503 100644 --- a/sources/editor/partarc.cpp +++ b/sources/editor/partarc.cpp @@ -48,11 +48,14 @@ PartArc::~PartArc() { @param options Options pour affiner le rendu @param widget Widget sur lequel le rendu est effectue */ -void PartArc::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *) { +void PartArc::paint(QPainter *painter, const QStyleOptionGraphicsItem *options, QWidget *) { applyStylesToQPainter(*painter); // enleve systematiquement la couleur de fond painter -> setBrush(Qt::NoBrush); QPen t = painter -> pen(); + t.setCosmetic(options && options -> levelOfDetail < 1.0); + painter -> setPen(t); + if (isSelected()) { // dessine l'ellipse en noir painter -> drawEllipse(rect()); @@ -61,6 +64,7 @@ void PartArc::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget t.setColor(Qt::red); painter -> setPen(t); } + painter -> drawArc(rect(), start_angle * 16, _angle * 16); if (isSelected()) { // dessine la croix au centre de l'ellipse diff --git a/sources/editor/partcircle.cpp b/sources/editor/partcircle.cpp index 1bbebb839..194b2c7ec 100644 --- a/sources/editor/partcircle.cpp +++ b/sources/editor/partcircle.cpp @@ -43,13 +43,14 @@ PartCircle::~PartCircle() { @param options Options pour affiner le rendu @param widget Widget sur lequel le rendu est effectue */ -void PartCircle::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *) { +void PartCircle::paint(QPainter *painter, const QStyleOptionGraphicsItem *options, QWidget *) { applyStylesToQPainter(*painter); QPen t = painter -> pen(); + t.setCosmetic(options && options -> levelOfDetail < 1.0); if (isSelected()) { t.setColor(Qt::red); - painter -> setPen(t); } + painter -> setPen(t); painter -> drawEllipse(rect()); if (isSelected()) { painter -> setRenderHint(QPainter::Antialiasing, false); diff --git a/sources/editor/partellipse.cpp b/sources/editor/partellipse.cpp index 6bd4a2a0d..9c2aa1a79 100644 --- a/sources/editor/partellipse.cpp +++ b/sources/editor/partellipse.cpp @@ -43,13 +43,14 @@ PartEllipse::~PartEllipse() { @param options Options pour affiner le rendu @param widget Widget sur lequel le rendu est effectue */ -void PartEllipse::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *) { +void PartEllipse::paint(QPainter *painter, const QStyleOptionGraphicsItem *options, QWidget *) { applyStylesToQPainter(*painter); QPen t = painter -> pen(); + t.setCosmetic(options && options -> levelOfDetail < 1.0); if (isSelected()) { t.setColor(Qt::red); - painter -> setPen(t); } + painter -> setPen(t); painter -> drawEllipse(rect()); if (isSelected()) { painter -> setRenderHint(QPainter::Antialiasing, false); diff --git a/sources/editor/partline.cpp b/sources/editor/partline.cpp index c9253705a..6d298ffef 100644 --- a/sources/editor/partline.cpp +++ b/sources/editor/partline.cpp @@ -65,12 +65,13 @@ uint PartLine::requiredLengthForEndType(const QET::EndType &end_type) { @param options Options pour affiner le rendu @param widget Widget sur lequel le rendu est effectue */ -void PartLine::paint(QPainter *painter, const QStyleOptionGraphicsItem */*q*/, QWidget */*w*/) { +void PartLine::paint(QPainter *painter, const QStyleOptionGraphicsItem *options, QWidget */*w*/) { // inutile de dessiner une ligne nulle if (line().p1() == line().p2()) return; applyStylesToQPainter(*painter); QPen t = painter -> pen(); t.setJoinStyle(Qt::MiterJoin); + t.setCosmetic(options && options -> levelOfDetail < 1.0); if (isSelected()) { t.setColor(Qt::red); } diff --git a/sources/editor/partpolygon.cpp b/sources/editor/partpolygon.cpp index ec4d5b769..d7895dab7 100644 --- a/sources/editor/partpolygon.cpp +++ b/sources/editor/partpolygon.cpp @@ -94,13 +94,12 @@ const QDomElement PartPolygon::toXml(QDomDocument &xml_document) const { @param options Options pour affiner le rendu @param widget Widget sur lequel le rendu est effectue */ -void PartPolygon::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *) { +void PartPolygon::paint(QPainter *painter, const QStyleOptionGraphicsItem *options, QWidget *) { applyStylesToQPainter(*painter); QPen t = painter -> pen(); - if (isSelected()) { - t.setColor(Qt::red); - painter -> setPen(t); - } + t.setCosmetic(options && options -> levelOfDetail < 1.0); + if (isSelected()) t.setColor(Qt::red); + painter -> setPen(t); if (closed) painter -> drawPolygon(polygon()); else painter -> drawPolyline(polygon()); } diff --git a/sources/editor/partrectangle.cpp b/sources/editor/partrectangle.cpp index c94f21565..7b74b805c 100644 --- a/sources/editor/partrectangle.cpp +++ b/sources/editor/partrectangle.cpp @@ -43,9 +43,10 @@ PartRectangle::~PartRectangle() { @param options Options pour affiner le rendu @param widget Widget sur lequel le rendu est effectue */ -void PartRectangle::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *) { +void PartRectangle::paint(QPainter *painter, const QStyleOptionGraphicsItem *options, QWidget *) { applyStylesToQPainter(*painter); QPen t = painter -> pen(); + t.setCosmetic(options && options -> levelOfDetail < 1.0); if (isSelected()) { t.setColor(Qt::red); } diff --git a/sources/editor/partterminal.cpp b/sources/editor/partterminal.cpp index 2c5043cc5..976395f7c 100644 --- a/sources/editor/partterminal.cpp +++ b/sources/editor/partterminal.cpp @@ -90,7 +90,7 @@ QWidget *PartTerminal::elementInformations() { @param options Options pour affiner le rendu @param widget Widget sur lequel le rendu est effectue */ -void PartTerminal::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) { +void PartTerminal::paint(QPainter *p, const QStyleOptionGraphicsItem *options, QWidget *) { p -> save(); // annulation des renderhints @@ -100,6 +100,7 @@ void PartTerminal::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget QPen t; t.setWidthF(1.0); + t.setCosmetic(options && options -> levelOfDetail < 1.0); // dessin de la borne en rouge t.setColor(isSelected() ? Terminal::couleur_neutre : Qt::red);