From d8f96e1ea9981a855875831ae45ef3dc166be5c8 Mon Sep 17 00:00:00 2001 From: xavierqet Date: Fri, 5 Oct 2007 14:42:56 +0000 Subject: [PATCH] Amelioration du support de l'impression : *pour le moment, le schema est adapte a la taille de la feuille sans autre possibilite *necessite le paquet cupsys-bsd sous X11 *L'option QPrinter::HighResolution n'est pas encore exploitee git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@160 bfdf4180-ca20-0410-9c96-a3a8aa849046 --- diagramview.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/diagramview.cpp b/diagramview.cpp index 0c19d3203..4769e95ee 100644 --- a/diagramview.cpp +++ b/diagramview.cpp @@ -457,20 +457,26 @@ void DiagramView::dialogExport() { Imprime le schema. */ void DiagramView::dialogPrint() { + // initialise l'acces a l'imprimante QPrinter qprin; qprin.setOutputFormat(QPrinter::PdfFormat); qprin.setOrientation(QPrinter::Landscape); qprin.setPageSize(QPrinter::A4); -#ifdef Q_WS_X11 -// qprin.setPrintProgram("lpr"); -#endif QPrintDialog qpd(&qprin, this); if (qpd.exec() == QDialog::Accepted) { QPainter qp(&qprin); + // impression physique (!= fichier PDF) + if (qprin.outputFileName() == QString()) { + // lorsqu'on imprime en paysage sur imprimante reelle, il faut pivoter soi-meme le rendu + if (qprin.orientation() == QPrinter::Landscape) { + qp.rotate(90.0); + qp.translate(0.0, -qprin.pageRect().height()); + } + } scene -> setDisplayGrid(false); scene -> setDrawTerminals(false); - scene -> render(&qp); + scene -> render(&qp, QRectF(), scene -> border(), Qt::KeepAspectRatio); scene -> setDrawTerminals(true); scene -> setDisplayGrid(true); }