mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-21 16:50:53 +01:00
Correction : les bords droits et inferieurs des schemas n'etaient pas imprimes a 1px pres.
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/branches/0.3@751 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
@@ -76,6 +76,19 @@ QString DiagramPrintDialog::docName() const {
|
|||||||
return(doc_name_);
|
return(doc_name_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
@param diagram Un schema
|
||||||
|
@return le rectangle a imprimer pour ce schema
|
||||||
|
*/
|
||||||
|
QRect DiagramPrintDialog::diagramRect(Diagram *diagram) const {
|
||||||
|
if (!diagram) return(QRect());
|
||||||
|
|
||||||
|
// ajuste la bordure du schema d'un pixel (epaisseur du trait)
|
||||||
|
QRect diagram_rect = diagram -> border().adjusted(0.0, 0.0, 1.0, 1.0).toAlignedRect();
|
||||||
|
|
||||||
|
return(diagram_rect);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Execute le dialogue d'impression
|
Execute le dialogue d'impression
|
||||||
*/
|
*/
|
||||||
@@ -135,7 +148,7 @@ int DiagramPrintDialog::pagesCount(Diagram *diagram, bool fullpage) const {
|
|||||||
int DiagramPrintDialog::horizontalPagesCount(Diagram *diagram, bool fullpage) const {
|
int DiagramPrintDialog::horizontalPagesCount(Diagram *diagram, bool fullpage) const {
|
||||||
// note : pageRect et Paper Rect tiennent compte de l'orientation du papier
|
// note : pageRect et Paper Rect tiennent compte de l'orientation du papier
|
||||||
QRect printable_area = fullpage ? printer_ -> paperRect() : printer_ -> pageRect();
|
QRect printable_area = fullpage ? printer_ -> paperRect() : printer_ -> pageRect();
|
||||||
QRect diagram_rect = diagram -> border().toRect();
|
QRect diagram_rect = diagramRect(diagram);
|
||||||
|
|
||||||
int h_pages_count = int(ceil(qreal(diagram_rect.width()) / qreal(printable_area.width())));
|
int h_pages_count = int(ceil(qreal(diagram_rect.width()) / qreal(printable_area.width())));
|
||||||
return(h_pages_count);
|
return(h_pages_count);
|
||||||
@@ -149,7 +162,7 @@ int DiagramPrintDialog::horizontalPagesCount(Diagram *diagram, bool fullpage) co
|
|||||||
int DiagramPrintDialog::verticalPagesCount(Diagram *diagram, bool fullpage) const {
|
int DiagramPrintDialog::verticalPagesCount(Diagram *diagram, bool fullpage) const {
|
||||||
// note : pageRect et Paper Rect tiennent compte de l'orientation du papier
|
// note : pageRect et Paper Rect tiennent compte de l'orientation du papier
|
||||||
QRect printable_area = fullpage ? printer_ -> paperRect() : printer_ -> pageRect();
|
QRect printable_area = fullpage ? printer_ -> paperRect() : printer_ -> pageRect();
|
||||||
QRect diagram_rect = diagram -> border().toRect();
|
QRect diagram_rect = diagramRect(diagram);
|
||||||
|
|
||||||
int v_pages_count = int(ceil(qreal(diagram_rect.height()) / qreal(printable_area.height())));
|
int v_pages_count = int(ceil(qreal(diagram_rect.height()) / qreal(printable_area.height())));
|
||||||
return(v_pages_count);
|
return(v_pages_count);
|
||||||
@@ -349,10 +362,10 @@ void DiagramPrintDialog::printDiagram(Diagram *diagram, bool fit_page, QPainter
|
|||||||
|
|
||||||
if (fit_page) {
|
if (fit_page) {
|
||||||
// impression adaptee sur une seule page
|
// impression adaptee sur une seule page
|
||||||
diagram -> render(qp, QRectF(), diagram -> border(), Qt::KeepAspectRatio);
|
diagram -> render(qp, QRectF(), diagramRect(diagram), Qt::KeepAspectRatio);
|
||||||
} else {
|
} else {
|
||||||
// impression sur une ou plusieurs pages
|
// impression sur une ou plusieurs pages
|
||||||
QRect diagram_rect = diagram -> border().adjusted(0.0, 0.0, 1.0, 1.0).toAlignedRect();
|
QRect diagram_rect = diagramRect(diagram);
|
||||||
QRect printed_area = full_page ? printer -> paperRect() : printer -> pageRect();
|
QRect printed_area = full_page ? printer -> paperRect() : printer -> pageRect();
|
||||||
//qDebug() << "impression sur une ou plusieurs pages";
|
//qDebug() << "impression sur une ou plusieurs pages";
|
||||||
//qDebug() << " schema :" << diagram_rect;
|
//qDebug() << " schema :" << diagram_rect;
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ class DiagramPrintDialog : public QWidget {
|
|||||||
QString fileName() const;
|
QString fileName() const;
|
||||||
void setDocName(const QString &);
|
void setDocName(const QString &);
|
||||||
QString docName() const;
|
QString docName() const;
|
||||||
|
QRect diagramRect(Diagram *) const;
|
||||||
int pagesCount(Diagram *, bool = false) const;
|
int pagesCount(Diagram *, bool = false) const;
|
||||||
int horizontalPagesCount(Diagram *, bool = false) const;
|
int horizontalPagesCount(Diagram *, bool = false) const;
|
||||||
int verticalPagesCount(Diagram *, bool = false) const;
|
int verticalPagesCount(Diagram *, bool = false) const;
|
||||||
|
|||||||
Reference in New Issue
Block a user