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_);
|
||||
}
|
||||
|
||||
/**
|
||||
@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
|
||||
*/
|
||||
@@ -135,7 +148,7 @@ int DiagramPrintDialog::pagesCount(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
|
||||
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())));
|
||||
return(h_pages_count);
|
||||
@@ -149,7 +162,7 @@ int DiagramPrintDialog::horizontalPagesCount(Diagram *diagram, bool fullpage) co
|
||||
int DiagramPrintDialog::verticalPagesCount(Diagram *diagram, bool fullpage) const {
|
||||
// note : pageRect et Paper Rect tiennent compte de l'orientation du papier
|
||||
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())));
|
||||
return(v_pages_count);
|
||||
@@ -349,10 +362,10 @@ void DiagramPrintDialog::printDiagram(Diagram *diagram, bool fit_page, QPainter
|
||||
|
||||
if (fit_page) {
|
||||
// impression adaptee sur une seule page
|
||||
diagram -> render(qp, QRectF(), diagram -> border(), Qt::KeepAspectRatio);
|
||||
diagram -> render(qp, QRectF(), diagramRect(diagram), Qt::KeepAspectRatio);
|
||||
} else {
|
||||
// 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();
|
||||
//qDebug() << "impression sur une ou plusieurs pages";
|
||||
//qDebug() << " schema :" << diagram_rect;
|
||||
|
||||
Reference in New Issue
Block a user